Displaying 11 results from an estimated 11 matches for "ucomisd".
Did you mean:
ucomiss
2007 Oct 19
2
[LLVMdev] llvm_fcmp_ord and llvm_fcmp_uno and assembly code generation
...macros, both on gcc and llvm-gcc.
This raises 2 issues:
* can llvm_fcmp_ord/uno be implemented in ANSI/ISO C differently,
which doesn't generate a warning, *and* generates optimal code
* can llvm-gcc be improved to recognize functions like
llvm_fcmp_ord/uno, and generate the optimal code (one ucomisd, rather
than two).
Not that llvm_fcmp_ord/uno would be on a critical path in a program,
but any optimization
is good, and worth mentioning IMHO ;)
Look:
#include <math.h>
static inline int llvm_fcmp_ord(double X, double Y) { return X == X && Y == Y; }
static inline int llvm_fcmp_uno...
2007 Oct 22
0
[LLVMdev] llvm_fcmp_ord and llvm_fcmp_uno and assembly code generation
...-gcc.
>
> This raises 2 issues:
> * can llvm_fcmp_ord/uno be implemented in ANSI/ISO C differently,
> which doesn't generate a warning, *and* generates optimal code
> * can llvm-gcc be improved to recognize functions like
> llvm_fcmp_ord/uno, and generate the optimal code (one ucomisd, rather
> than two).
>
> Not that llvm_fcmp_ord/uno would be on a critical path in a program,
> but any optimization
> is good, and worth mentioning IMHO ;)
>
> Look:
> #include <math.h>
> static inline int llvm_fcmp_ord(double X, double Y) { return X == X
> &a...
2017 Mar 01
2
[Codegen bug in LLVM 3.8?] br following `fcmp une` is present in ll, absent in asm
...# xmm1 = mem[0],zero
addsd %xmm0, %xmm1
movsd %xmm1, 672(%rax)
movq 176(%rsp), %rax
movsd 5648(%rax), %xmm0 # xmm0 = mem[0],zero
movq 184(%rsp), %rax
mulsd 648(%rax), %xmm0
movsd %xmm0, 704(%rax)
movsd 192(%rsp), %xmm0 # xmm0 = mem[0],zero
movq 184(%rsp), %rax
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movq 672(%rax), %rcx
movq %rcx, 200(%rsp)
movd %rcx, %xmm0
addsd 120(%rax), %xmm0
movq 176(%rsp), %rcx
mulsd 5680(%rcx), %xmm0
movsd %xmm0, 768(%rax)
movq 176(%rsp), %rax
movsd 5608(%rax), %xmm0 # xmm0 = mem[0],zero
We know that this is the right instruction to be looking at, be...
2010 Mar 28
2
[LLVMdev] Which floating-point comparison?
I notice llvm provides both ordered and unordered variants of
floating-point comparison. Which of these is the right one to use by
default? I suppose the two criteria would be, in order of importance:
1. Which is more efficient (more directly maps to typical hardware)?
2. Which is more familiar (more like the way C and Fortran do it)?
2010 Mar 28
0
[LLVMdev] Which floating-point comparison?
...uble %x, %y ; <i1> [#uses=1]
ret i1 %0
}
$ Debug/bin/llc <test.ll
.section __TEXT,__text,regular,pure_instructions
.globl _less
.align 4, 0x90
_less: ## @less
## BB#0: ## %entry
movsd 4(%esp), %xmm0
ucomisd 12(%esp), %xmm0
sbbb %al, %al
andb $1, %al
ret
> 2. Which is more familiar (more like the way C and Fortran do it)?
You can use http://llvm.org/demo/ to figure that out.
2013 May 20
2
[LLVMdev] VCOMISS instruction in X86
...nstructions in X86.
The instruction VCOMISS is scalar. May I remove SSEPackedSingle/SSEPackedDouble domain from it?
defm VUCOMISS : sse12_ord_cmp<0x2E, FR32, X86cmp, f32, f32mem, loadf32,
"ucomiss", SSEPackedSingle>, TB, VEX, VEX_LIG;
defm VUCOMISD : sse12_ord_cmp<0x2E, FR64, X86cmp, f64, f64mem, loadf64,
"ucomisd", SSEPackedDouble>, TB, OpSize, VEX,
VEX_LIG;
let Pattern = []<dag> in {
defm VCOMISS : sse12_ord_cmp<0x2F, VR128, undef, v4f32, f12...
2013 Jul 19
0
[LLVMdev] llvm.x86.sse2.sqrt.pd not using sqrtpd, calling a function that modifies ECX
...0,xmm3
002E0539 unpckhpd xmm0,xmm0
002E053D movapd xmm2,xmm3
002E0541 movapd xmm6,xmm3
002E0545 addsd xmm2,xmm0
002E0549 movapd xmm3,xmmword ptr [esp+0B0h]
002E0552 addsd xmm2,xmm3
002E0556 movapd xmm7,xmm3
002E055A xorpd xmm3,xmm3
002E055E ucomisd xmm2,xmm3
002E0562 setnp al
002E0565 sete cl
002E0568 test al,cl
002E056A jne 002E059A
002E0570 movapd xmm5,xmmword ptr [esp+0C0h]
002E0579 movapd xmm2,xmm5
002E057D addpd xmm2,xmm1
002E0581 mulpd xmm1,xmm1
002E0585 mulpd...
2013 Jul 19
4
[LLVMdev] SIMD instructions and memory alignment on X86
Hmm, I'm not able to get those .ll files to compile if I disable SSE and I
end up with SSE instructions(including sqrtpd) if I don't disable it.
On Thu, Jul 18, 2013 at 10:53 PM, Peter Newman <peter at uformia.com> wrote:
> Is there something specifically required to enable SSE? If it's not
> detected as available (based from the target triple?) then I don't think
2017 Sep 29
2
Trouble when suppressing a portion of fast-math-transformations
...o register operands in a comparison, and changing
the sense of the associated branch) when comparing '-O2' with
'-O2 -ffast-math -fno-reciprocal-math':
$ # New Clang behavior:
$ # nearly identical, but there should be many diffs
$ diff O2.s O2fm.no_arcp.s
188,189c188,189
< ucomisd %xmm5, %xmm6
< ja .LBB0_7
---
> ucomisd %xmm6, %xmm5
> jb .LBB0_7
$
In full disclosure, for this "mandelbrot.c" test-case, I don't know if any of
the changes in code-gen done by us or by GCC when '-ffast-math' is enabled are
helpful (from...
2017 Sep 29
0
Trouble when suppressing a portion of fast-math-transformations
...sense of the associated branch) when comparing '-O2' with
>
> '-O2 -ffast-math -fno-reciprocal-math':
>
> $ # New Clang behavior:
>
> $ # nearly identical, but there should be many diffs
>
> $ diff O2.s O2fm.no_arcp.s
>
> 188,189c188,189
>
> < ucomisd %xmm5, %xmm6
>
> < ja .LBB0_7
>
> ---
>
> >ucomisd %xmm6, %xmm5
>
> >jb .LBB0_7
>
> $
>
> In full disclosure, for this "mandelbrot.c" test-case, I don't know if
> any of
>
> the changes in code-gen done by us or by GCC w...
2013 Jun 24
1
[LLVMdev] DebugInfo: Missing non-trivially-copyable parameters in SelectionDAG
...-march=x86 -mcpu=yonah | grep movsd | /usr/local/google/home/blaikie/dev/llvm/build/clang/debug/bin/./count 1
/usr/local/google/home/blaikie/dev/llvm/build/clang/debug/bin/./llc < /usr/local/google/home/blaikie/dev/llvm/src/test/CodeGen/X86/compare_folding.ll -march=x86 -mcpu=yonah | grep ucomisd
--
Exit Code: 1
Command Output (stderr):
--
Expected 1 lines, got 2.
--
********************
FAIL: LLVM :: CodeGen/X86/commute-two-addr.ll (20 of 51)
******************** TEST 'LLVM :: CodeGen/X86/commute-two-addr.ll' FAILED ********************
Script:
--
/usr/local/google/home/blaikie/de...