diff options
author | Sanjay Patel <spatel@rotateright.com> | 2015-09-23 18:33:42 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2015-09-23 18:33:42 +0000 |
commit | 1a6534661ba954c1fe54befeae63773c1c695ef1 (patch) | |
tree | 9ffef5b4fb5f16d6bdb03f33d7c3f96a97e1f921 /llvm/test/CodeGen/X86/fp-logic.ll | |
parent | c6dd651518a30c15dcb16d51757183e71052d9b1 (diff) | |
download | bcm5719-llvm-1a6534661ba954c1fe54befeae63773c1c695ef1.tar.gz bcm5719-llvm-1a6534661ba954c1fe54befeae63773c1c695ef1.zip |
[x86] replace integer 'xor' ops with packed SSE FP 'xor' ops when operating on FP scalars
Turn this:
movd %xmm0, %eax
movd %xmm1, %ecx
xorl %eax, %ecx
movd %ecx, %xmm0
into this:
xorps %xmm1, %xmm0
This is related to, but does not solve:
https://llvm.org/bugs/show_bug.cgi?id=22428
This is an extension of:
http://reviews.llvm.org/rL248395
llvm-svn: 248415
Diffstat (limited to 'llvm/test/CodeGen/X86/fp-logic.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/fp-logic.ll | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/llvm/test/CodeGen/X86/fp-logic.ll b/llvm/test/CodeGen/X86/fp-logic.ll index 95f15789789..e45e48dfa98 100644 --- a/llvm/test/CodeGen/X86/fp-logic.ll +++ b/llvm/test/CodeGen/X86/fp-logic.ll @@ -183,10 +183,7 @@ define float @or(float %x, float %y) { define float @xor(float %x, float %y) { ; CHECK-LABEL: xor: ; CHECK: # BB#0: -; CHECK-NEXT: movd %xmm0, %eax -; CHECK-NEXT: movd %xmm1, %ecx -; CHECK-NEXT: xorl %eax, %ecx -; CHECK-NEXT: movd %ecx, %xmm0 +; CHECK-NEXT: xorps %xmm1, %xmm0 ; CHECK-NEXT: retq %bc1 = bitcast float %x to i32 |