Displaying 20 results from an estimated 28 matches for "cmovne".
2008 May 27
3
[LLVMdev] Float compare-for-equality and select optimization opportunity
...int t;
t = a;
a = b;
b = c;
c = t;
}
This is the resulting x86 assembly code:
movss xmm0,dword ptr [ecx+4]
ucomiss xmm0,dword ptr [ecx+8]
sete al
setnp dl
test dl,al
mov edx,edi
cmovne edx,ecx
cmovne ecx,esi
cmovne esi,edi
While I'm pleasantly surprised that my branch does get turned into several
select operations as intended (cmov - conditional move - in x86), I'm
confused why it uses the ucomiss instruction (unordered compare and set
flags). I onl...
2008 May 27
1
[LLVMdev] Float compare-for-equality and select optimizationopportunity
...code below is IEEE
correct...you want to generate 'fcmp ueq' instead of 'fcmp oqe'
This is the resulting x86 assembly code:
movss xmm0,dword ptr [ecx+4]
ucomiss xmm0,dword ptr [ecx+8]
sete al
setnp dl
test dl,al
mov edx,edi
cmovne edx,ecx
cmovne ecx,esi
cmovne esi,edi
While I'm pleasantly surprised that my branch does get turned into several
select operations as intended (cmov - conditional move - in x86), I'm
confused why it uses the ucomiss instruction (unordered compare and set
flags). I onl...
2008 May 27
0
[LLVMdev] Float compare-for-equality and select optimizationopportunity
...code below is IEEE
correct...you want to generate 'fcmp ueq' instead of 'fcmp oqe'
This is the resulting x86 assembly code:
movss xmm0,dword ptr [ecx+4]
ucomiss xmm0,dword ptr [ecx+8]
sete al
setnp dl
test dl,al
mov edx,edi
cmovne edx,ecx
cmovne ecx,esi
cmovne esi,edi
While I'm pleasantly surprised that my branch does get turned into several
select operations as intended (cmov - conditional move - in x86), I'm
confused why it uses the ucomiss instruction (unordered compare and set
flags). I onl...
2008 May 27
1
[LLVMdev] Float compare-for-equality andselect optimizationopportunity
...code below is IEEE
correct...you want to generate 'fcmp ueq' instead of 'fcmp oqe'
This is the resulting x86 assembly code:
movss xmm0,dword ptr [ecx+4]
ucomiss xmm0,dword ptr [ecx+8]
sete al
setnp dl
test dl,al
mov edx,edi
cmovne edx,ecx
cmovne ecx,esi
cmovne esi,edi
While I'm pleasantly surprised that my branch does get turned into several
select operations as intended (cmov - conditional move - in x86), I'm
confused why it uses the ucomiss instruction (unordered compare and set
flags). I onl...
2015 Nov 21
2
Recent -Os code size regressions
...me
now
in reverse order.
35d: 81 c9 08 04 00 00 or $0x408,%ecx
363: 89 4c 24 28 mov %ecx,0x28(%esp)
367: 89 df mov %ebx,%edi
369: 83 e7 10
and $0x10,%edi
36c: 89 7c 24 20 mov %edi,0x20(%esp)
370: 0f 45 d1
cmovne %ecx,%edx
373: 89 d7 mov %edx,%edi
375: 81 cf 10 08 00 00 or $0x810,%edi
37b: 89 7c 24 14 mov %edi,0x14(%esp)
37f: 89 d9 mov %ebx,%ecx
381: 83 e1 20
and $0x20,%ecx
384: 89 4c 24 1c mov %ecx,0x1c(%esp)
388: 0...
2018 May 09
3
Ignored branch predictor hints
...efers the first case:
b(int):
mov eax, OFFSET FLAT:.LC0
test edi, edi
jne .L7
ret
But Clang seems to ignore _builtin_expect hints in this case.
b(int): # @b(int)
cmp edi, 1
mov eax, offset .L.str.1
mov ecx, offset .L.str.2
cmove rcx, rax
test edi, edi
mov eax, offset .L.str
cmovne rax, rcx
ret
https://godbolt.org/g/tuAVT7
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180509/2e5eaa99/attachment.html>
2004 Sep 10
2
An assembly optimization and fix
I have optimized FLAC__fixed_compute_best_predictor_asm_ia32_mmx_cmov
function and fixed bug when data_len == 0. Now the function is about
50% faster and flac -5 is about 5% faster on my box. I have tested it
thoroughly, I think it can go to flac 1.0.4.
--
Miroslav Lichvar
-------------- next part --------------
--- src/libFLAC/ia32/fixed_asm.nasm.orig 2002-01-26 19:05:12.000000000 +0100
+++
2007 Mar 19
1
winecfg won't start and causes errors in xubuntu dapper
...(0x0034fde8)
28 0x7bc395d5 in ntdll (+0x295d5) (0x0034fe28)
29 0x7bc3c5ca LdrInitializeThunk+0x372() in ntdll (0x0034ff08)
30 0x7b86d60b in kernel32 (+0x4d60b) (0x0034ffe8)
31 0xb7e9d3b7 wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000)
0x7e8e34ef glXCreateContext+0x1f in libgl.so.1: cmovne %ecx,%ebx
Modules:
Module Address Debug info Name (42 modules)
ELF 7b800000-7b919000 Export kernel32<elf>
\-PE 7b820000-7b919000 \ kernel32
ELF 7bc00000-7bc81000 Export ntdll<elf>
\-PE 7bc10000-7bc810...
2015 Jul 13
5
[LLVMdev] Poor register allocations vs gcc
...downloaded just a few days ago):
gcc : 5.1
clang/llvm: clang+llvm-3.6.1-x86_64-apple-darwin
Host:
osx yosemite.
The assembly (cut to the essential):
LLVM:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movl %edi, %r14d
leal 71(%r14), %eax
xorl %ecx, %ecx
cmpl $56, %eax
movl $92, %ebx
cmovnel %ecx, %ebx
leaq L_.str(%rip), %rdi
callq _puts
leal 71(%rbx,%r14), %eax
popq %rbx
popq %r14
popq %rbp
retq
and the gcc one:
pushq %rbp
movl $0, %eax
movl $92, %ebp
pushq %rbx
leal 71(%rdi), %ebx
leaq LC1(%rip), %rdi
subq $8, %rsp
cmpl $56, %ebx
cmovne %eax, %ebp
call _put...
2018 Feb 28
1
Missed opportunity in the midend, unsigned comparison
...n `ind` equals to zero.
Is this kind of optimization already implemented somewhere in LLVM? If not,
what is the best place to implement it at? Thank you very much in advance.
Best,
Alex
--------------------------
GCC x86 ASM:
testl %edi, %edi
movl $0, %edx
movl $arr, %eax
cmovne %rdx, %rax
ret
LLVM x86 ASM:
xorl %eax, %eax
testl %edi, %edi
movl %edi, %ecx
leaq arr(%rcx), %rcx
cmoveq %rcx, %rax
retq
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180228/0d...
2018 May 09
0
Ignored branch predictor hints
...t;
>> But Clang seems to ignore _builtin_expect hints in this case.
>>
>> b(int): # @b(int)
>> cmp edi, 1
>> mov eax, offset .L.str.1
>> mov ecx, offset .L.str.2
>> cmove rcx, rax
>> test edi, edi
>> mov eax, offset .L.str
>> cmovne rax, rcx
>> ret
>>
>> https://godbolt.org/g/tuAVT7
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
>&...
2018 May 09
2
Ignored branch predictor hints
...t
>>
>> But Clang seems to ignore _builtin_expect hints in this case.
>> b(int): # @b(int)
>> cmp edi, 1
>> mov eax, offset .L.str.1
>> mov ecx, offset .L.str.2
>> cmove rcx, rax
>> test edi, edi
>> mov eax, offset .L.str
>> cmovne rax, rcx
>> ret
>> https://godbolt.org/g/tuAVT7 <https://godbolt.org/g/tuAVT7>_______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>> http://lists.llvm.org/cgi-bi...
2018 Nov 06
4
Rather poor code optimisation of current clang/LLVM targeting Intel x86 (both -64 and -32)
Hi @ll,
while clang/LLVM recognizes common bit-twiddling idioms/expressions
like
unsigned int rotate(unsigned int x, unsigned int n)
{
return (x << n) | (x >> (32 - n));
}
and typically generates "rotate" machine instructions for this
expression, it fails to recognize other also common bit-twiddling
idioms/expressions.
The standard IEEE CRC-32 for "big
2015 Nov 21
3
Recent -Os code size regressions
Maybe adjust this to be different for –Os, -Oz than for –O2?
Kevin Smith
From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of James Molloy via llvm-dev
Sent: Friday, November 20, 2015 4:05 PM
To: Steve King <steve at metrokings.com>; Renato Golin <renato.golin at linaro.org>
Cc: llvm-dev <llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] Recent -Os code
2018 Nov 27
2
Rather poor code optimisation of current clang/LLVM targeting Intel x86 (both -64 and -32)
"Sanjay Patel" <spatel at rotateright.com> wrote:
> IIUC, you want to use x86-specific bit-hacks (sbb masking) in cases like
> this:
> unsigned int foo(unsigned int crc) {
> if (crc & 0x80000000)
> crc <<= 1, crc ^= 0xEDB88320;
> else
> crc <<= 1;
> return crc;
> }
To document this for x86 too: rewrite the function
2018 May 09
0
Ignored branch predictor hints
...e _builtin_expect hints in this case.
>>>
>>> b(int): # @b(int)
>>> cmp edi, 1
>>> mov eax, offset .L.str.1
>>> mov ecx, offset .L.str.2
>>> cmove rcx, rax
>>> test edi, edi
>>> mov eax, offset .L.str
>>> cmovne rax, rcx
>>> ret
>>>
>>> https://godbolt.org/g/tuAVT7
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/...
2003 Feb 04
0
[Bug 42] New: Kernel panic in PSD
...mov (%ecx),%eax
Code; c01fc7cb <ipt_psd_match+cb/400>
7: 46 inc %esi
Code; c01fc7cc <ipt_psd_match+cc/400>
8: 85 c0 test %eax,%eax
Code; c01fc7ce <ipt_psd_match+ce/400>
a: 0f 45 d1 cmovne %ecx,%edx
Code; c01fc7d1 <ipt_psd_match+d1/400>
d: 89 c1 mov %eax,%ecx
Code; c01fc7d3 <ipt_psd_match+d3/400>
f: 85 c9 test %ecx,%ecx
Code; c01fc7d5 <ipt_psd_match+d5/400>
11: 75 e9 jne fffffffc &l...
2015 Feb 25
1
[PATCH 2/2] nouveau: Do not add most bo's to the global bo list.
...ll or barrier:
0000000000400400 <main>:
400400: 8b 05 4a 0c 20 00 mov 0x200c4a(%rip),%eax # 601050 <x>
400406: ba ff ff ff ff mov $0xffffffff,%edx
40040b: 83 f8 01 cmp $0x1,%eax
40040e: 0f 45 c2 cmovne %edx,%eax
400411: c3 retq
~Maarten
2015 Feb 25
2
[PATCH 2/2] nouveau: Do not add most bo's to the global bo list.
Hey,
On 25-02-15 18:05, Ilia Mirkin wrote:
> On Wed, Feb 25, 2015 at 11:59 AM, Patrick Baggett
> <baggett.patrick at gmail.com> wrote:
>>> If code like
>>>
>>> x = *a;
>>> pthread_mutex_lock or unlock or __memory_barrier()
>>> y = *a;
>>>
>>> doesn't cause a to get loaded twice, then the compiler's in serious
2014 Mar 25
3
[LLVMdev] Getting the Debugging JIT-ed Code with GDB example to work
I'm trying to run the example described at:
http://llvm.org/docs/DebuggingJITedCode.html
I followed the sample command line session (below, with versions numbers
for everything), but gdb doesn't stop at the breakpoints as described. Any
idea what is wrong?
Thanks,
Zach
zdevito at derp:~/terra/tests$
> ~/clang+llvm-3.4-x86_64-unknown-ubuntu12.04/bin/clang -cc1 -O0 -g
>