search for: cmova

Displaying 7 results from an estimated 7 matches for "cmova".

Did you mean: cmov
2008 May 27
3
[LLVMdev] Float compare-for-equality and select optimization opportunity
...ov edx,edi cmove edx,ecx cmove ecx,esi cmove esi,edi Compared to the original C syntax code this looks pretty straightforward. Curiously, when I replace the compare-for-equality with something like a less-than, it does generate such compact code (using comiss and cmova). And the not-equal case looks like this: movss xmm0,dword ptr [ecx+4] ucomiss xmm0,dword ptr [ecx+8] mov esi,ecx cmove esi,edx cmovne ecx,eax cmove edx,eax So this generates compact code but with an unordered compare. Anyway, it looks like t...
2008 May 27
1
[LLVMdev] Float compare-for-equality and select optimizationopportunity
...ov edx,edi cmove edx,ecx cmove ecx,esi cmove esi,edi Compared to the original C syntax code this looks pretty straightforward. Curiously, when I replace the compare-for-equality with something like a less-than, it does generate such compact code (using comiss and cmova). And the not-equal case looks like this: movss xmm0,dword ptr [ecx+4] ucomiss xmm0,dword ptr [ecx+8] mov esi,ecx cmove esi,edx cmovne ecx,eax cmove edx,eax So this generates compact code but with an unordered compare. Anyway, it looks like t...
2008 May 27
0
[LLVMdev] Float compare-for-equality and select optimizationopportunity
...ov edx,edi cmove edx,ecx cmove ecx,esi cmove esi,edi Compared to the original C syntax code this looks pretty straightforward. Curiously, when I replace the compare-for-equality with something like a less-than, it does generate such compact code (using comiss and cmova). And the not-equal case looks like this: movss xmm0,dword ptr [ecx+4] ucomiss xmm0,dword ptr [ecx+8] mov esi,ecx cmove esi,edx cmovne ecx,eax cmove edx,eax So this generates compact code but with an unordered compare. Anyway, it looks like t...
2008 May 27
1
[LLVMdev] Float compare-for-equality andselect optimizationopportunity
...ov edx,edi cmove edx,ecx cmove ecx,esi cmove esi,edi Compared to the original C syntax code this looks pretty straightforward. Curiously, when I replace the compare-for-equality with something like a less-than, it does generate such compact code (using comiss and cmova). And the not-equal case looks like this: movss xmm0,dword ptr [ecx+4] ucomiss xmm0,dword ptr [ecx+8] mov esi,ecx cmove esi,edx cmovne ecx,eax cmove edx,eax So this generates compact code but with an unordered compare. Anyway, it looks like t...
2017 Apr 19
3
[cfe-dev] FE_INEXACT being set for an exact conversion from float to unsigned long long
...ero >> movaps xmm2, xmm0 >> subss xmm2, xmm1 >> cvttss2si rax, xmm2 >> movabs rcx, -9223372036854775808 >> xor rcx, rax >> cvttss2si rax, xmm0 >> ucomiss xmm0, xmm1 >> cmovae rax, rcx >> ret >> >> GCC lowering (sets flags correctly): >> >> fcvt_lu(float): >> ucomiss xmm0, DWORD PTR .LC0[rip] >> jnb .L4 >> cvttss2si rax, xmm0 >> ret >> .L4: >> s...
2017 Apr 20
4
[cfe-dev] FE_INEXACT being set for an exact conversion from float to unsigned long long
...movss xmm1, dword ptr [rip + .LCPI1_0] # xmm1 = mem[0],zero,zero,zero movaps xmm2, xmm0 subss xmm2, xmm1 cvttss2si rax, xmm2 movabs rcx, -9223372036854775808 xor rcx, rax cvttss2si rax, xmm0 ucomiss xmm0, xmm1 cmovae rax, rcx ret GCC lowering (sets flags correctly): fcvt_lu(float): ucomiss xmm0, DWORD PTR .LC0[rip] jnb .L4 cvttss2si rax, xmm0 ret .L4: subss xmm0, DWORD PTR .LC0[rip] movabs rdx, -9223372036854775808 cvttss2si...
2017 Apr 21
2
[cfe-dev] FE_INEXACT being set for an exact conversion from float to unsigned long long
...movss xmm1, dword ptr [rip + .LCPI1_0] # xmm1 = mem[0],zero,zero,zero movaps xmm2, xmm0 subss xmm2, xmm1 cvttss2si rax, xmm2 movabs rcx, -9223372036854775808 xor rcx, rax cvttss2si rax, xmm0 ucomiss xmm0, xmm1 cmovae rax, rcx ret GCC lowering (sets flags correctly): fcvt_lu(float): ucomiss xmm0, DWORD PTR .LC0[rip] jnb .L4 cvttss2si rax, xmm0 ret .L4: subss xmm0, DWORD PTR .LC0[rip] movabs rdx, -9223372036854775808 cvttss2si...