summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/combine-or.ll
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2014-10-03 21:38:49 +0000
committerChandler Carruth <chandlerc@gmail.com>2014-10-03 21:38:49 +0000
commit0adda1e4d47a836275fb0baabf98c402759f385f (patch)
tree3ecf8726f61e3db0c845edfa0005d0031afbfbb3 /llvm/test/CodeGen/X86/combine-or.ll
parent0aca4b1aa0c4e912e1c01ce07e00f5647d1fc30e (diff)
downloadbcm5719-llvm-0adda1e4d47a836275fb0baabf98c402759f385f.tar.gz
bcm5719-llvm-0adda1e4d47a836275fb0baabf98c402759f385f.zip
[x86] Adjust the patterns for lowering X86vzmovl nodes which don't
perform a load to use blendps rather than movss when it is available. For non-loads, blendps is *much* faster. It can execute on two ports in Sandy Bridge and Ivy Bridge, and *three* ports on Haswell. This fixes one of the "regressions" from aggressively taking the "insertion" path in the new vector shuffle lowering. This does highlight one problem with blendps -- it isn't commuted as heavily as it should be. That's future work though. llvm-svn: 219022
Diffstat (limited to 'llvm/test/CodeGen/X86/combine-or.ll')
-rw-r--r--llvm/test/CodeGen/X86/combine-or.ll4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/test/CodeGen/X86/combine-or.ll b/llvm/test/CodeGen/X86/combine-or.ll
index 42a50b65905..c1f6c79e81a 100644
--- a/llvm/test/CodeGen/X86/combine-or.ll
+++ b/llvm/test/CodeGen/X86/combine-or.ll
@@ -228,9 +228,9 @@ define <4 x i32> @test18(<4 x i32> %a, <4 x i32> %b) {
; CHECK: # BB#0:
; CHECK-NEXT: xorps %xmm2, %xmm2
; CHECK-NEXT: xorps %xmm3, %xmm3
-; CHECK-NEXT: movss %xmm0, %xmm3
+; CHECK-NEXT: blendps $1, %xmm0, %xmm3
; CHECK-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm2[0,0]
-; CHECK-NEXT: movss %xmm1, %xmm2
+; CHECK-NEXT: blendps $1, %xmm1, %xmm2
; CHECK-NEXT: orps %xmm3, %xmm2
; CHECK-NEXT: movaps %xmm2, %xmm0
; CHECK-NEXT: retq
OpenPOWER on IntegriCloud