summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/3dnow-intrinsics.ll
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-12-02 05:46:50 +0000
committerCraig Topper <craig.topper@intel.com>2018-12-02 05:46:50 +0000
commit4bb077910aab43e9f4905475e66faa1f2bd75d24 (patch)
tree5d80df98bca9aa5d0748275dca639d36d10f2ab5 /llvm/test/CodeGen/X86/3dnow-intrinsics.ll
parentec096a1dae80ef3ea128095416f62b2caeaefd60 (diff)
downloadbcm5719-llvm-4bb077910aab43e9f4905475e66faa1f2bd75d24.tar.gz
bcm5719-llvm-4bb077910aab43e9f4905475e66faa1f2bd75d24.zip
[X86] Add custom type legalization for v2i32/v4i16/v8i8->mmx bitcasts to avoid a store/load to/from the stack.
Widen the input to a 128 bit vector by padding with undef elements. Then use a movdq2q to convert from xmm register to mmx register. llvm-svn: 348086
Diffstat (limited to 'llvm/test/CodeGen/X86/3dnow-intrinsics.ll')
-rw-r--r--llvm/test/CodeGen/X86/3dnow-intrinsics.ll4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/test/CodeGen/X86/3dnow-intrinsics.ll b/llvm/test/CodeGen/X86/3dnow-intrinsics.ll
index 88dc7bec59c..109b9fc02f4 100644
--- a/llvm/test/CodeGen/X86/3dnow-intrinsics.ll
+++ b/llvm/test/CodeGen/X86/3dnow-intrinsics.ll
@@ -897,8 +897,8 @@ define <2 x i32> @test_pswapdsi(<2 x i32> %a) nounwind readnone {
; X64-LABEL: test_pswapdsi:
; X64: # %bb.0: # %entry
; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
-; X64-NEXT: movq %xmm0, -{{[0-9]+}}(%rsp)
-; X64-NEXT: pswapd -{{[0-9]+}}(%rsp), %mm0 # mm0 = mem[1,0]
+; X64-NEXT: movdq2q %xmm0, %mm0
+; X64-NEXT: pswapd %mm0, %mm0 # mm0 = mm0[1,0]
; X64-NEXT: movq %mm0, -{{[0-9]+}}(%rsp)
; X64-NEXT: movq {{.*#+}} xmm0 = mem[0],zero
; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]
OpenPOWER on IntegriCloud