-
X-Received: by 10.49.85.2 with SMTP id d2mr556509qez.9.1386245900150; Thu, 05 Dec
2013 04:18:20 -0800 (PST)
X-Received: by 10.49.85.2 with SMTP id d2mr556509qez.9.1386245900150; Thu, 05 Dec
2013 04:18:20 -0800 (PST)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!p15no5623697qaj.0!n
ews-out.google.com!9ni1174qaf.0!nntp.google.com!bm17no13958118qab.0!postnews.go
ogle.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 5 Dec 2013 04:18:19 -0800 (PST)
In-Reply-To: <a...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.184.107.52;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.184.107.52
References: <5...@g...com>
<l7nqcc$q5f$1@node2.news.atman.pl>
<5...@g...com>
<l7nt2e$so1$1@node2.news.atman.pl>
<5...@g...com>
<l7o5nr$5v8$1@node2.news.atman.pl>
<7...@g...com>
<l7oijc$ilg$1@node2.news.atman.pl>
<a...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6...@g...com>
Subject: Re: minmax(a,b,c)
From: firr <p...@g...com>
Injection-Date: Thu, 05 Dec 2013 12:18:20 +0000
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:204769
[ ukryj nagłówki ]>
> co prawda chyba raczej powinno sie liczyc nie sumarycznie a po danej sciezce
wykonania ale
>
> z tego co sie slyszy liczy sie tez chyba ilosc
>
> missów, tak czy owak ten kod ktory zminimalizowal
>
> ilosc skokow do 2 jak dla mnie akurat wyglada tutaj calkiem dobrze
>
>
>
> ciekawe czy dalo by sie to recznie np z uzyciem
>
> wlasnie bezifowców jeszcze to skompaktowac do jednego lub zero jumpow
ten kod wlasnie jest dosyc zoptymalizowany
//input ints eax ebx edx
// output eax: min, ebx:- max
cmp edx, eax
jg L1
swap edx, eax //here three movs for swap (*)
L1:
cmp ebx, edx
jg L2
cmp eax, ebx
cmovg eax, ebx
mov ebx, edx
L2:
sprawdzilem i sie zgadza, jest to dosyc
pouczajace jako przyklad jak mozna optymalizowac
takie coc
co do wersji z samych cmovow to ktos podal
przyklad
void compute_min_max(int &min, int &max, int x, int y, int z) {
min = x < y ? x : y;
max = x > y ? x : y;
min = min < z ? min : z;
max = max > z ? max : z;
}
It produces this assembly code (clang-500.2.76 with -O3):
.globl __Z15compute_min_maxRiS_iii
.align 4, 0x90
__Z15compute_min_maxRiS_iii: ## @_Z15compute_min_maxRiS_iii
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp2:
.cfi_def_cfa_offset 16
Ltmp3:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp4:
.cfi_def_cfa_register %rbp
cmpl %ecx, %edx
movl %ecx, %eax
cmovlel %edx, %eax
movl %eax, (%rdi)
cmovgel %edx, %ecx
movl %ecx, (%rsi)
movl (%rdi), %eax
cmpl %r8d, %eax
cmovgl %r8d, %eax
movl %eax, (%rdi)
movl (%rsi), %eax
cmpl %r8d, %eax
cmovgel %eax, %r8d
movl %r8d, (%rsi)
popq %rbp
ret
.cfi_endproc
ciezko powiedziec bez testu ktora wersja szybsza
- na razie nie moge przetestowac moze kiedys posniej
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-07-19 Co z Fideltronikiem?
- 2024-07-18 Zamiana aku żelowych w UPS na LiFePo4
- 2024-07-19 Warszawa => Head of International Freight Forwarding Department <=
- 2024-07-19 Kraków => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-07-19 Gdańsk => Technical Lead ( (Java Background)) <=
- 2024-07-19 Warszawa => Senior Rust Software Engineer <=
- 2024-07-19 Poznań => UX/UI Designer <=
- 2024-07-19 Łódź => Senior PHP Developer <=
- 2024-07-19 Ryga => Junior NOC Engineer <=
- 2024-07-19 Ulm => Technischer Rollouter (d/m/w) <=
- 2024-07-19 Warszawa => International freight forwarder <=
- 2024-07-19 Warszawa => Senior .Net Developer <=
- 2024-07-19 Warszawa => Senior PHP Laravel Developer (e-commerce) <=
- 2024-07-18 Olsztyn => Sales Specialist <=
- 2024-07-18 Warszawa => IT Project Manager (experience with C#) <=