search for: ucomisd

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...