diff options
author | Craig Topper <craig.topper@intel.com> | 2018-12-02 05:46:50 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2018-12-02 05:46:50 +0000 |
commit | 4bb077910aab43e9f4905475e66faa1f2bd75d24 (patch) | |
tree | 5d80df98bca9aa5d0748275dca639d36d10f2ab5 /llvm/test/CodeGen/X86/3dnow-intrinsics.ll | |
parent | ec096a1dae80ef3ea128095416f62b2caeaefd60 (diff) | |
download | bcm5719-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.ll | 4 |
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] |