[llvm] r271220 - [X86][SSE2] Updated _mm_store_pd1/_mm_store1_pd fast-isel tests to match D20617

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Mon May 30 11:18:44 PDT 2016


Author: rksimon
Date: Mon May 30 13:18:44 2016
New Revision: 271220

URL: http://llvm.org/viewvc/llvm-project?rev=271220&view=rev
Log:
[X86][SSE2] Updated _mm_store_pd1/_mm_store1_pd fast-isel tests to match D20617

Modified:
    llvm/trunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll

Modified: llvm/trunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll?rev=271220&r1=271219&r2=271220&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll Mon May 30 13:18:44 2016
@@ -3104,6 +3104,25 @@ define void @test_mm_store_pd(double *%a
   ret void
 }
 
+define void @test_mm_store_pd1(double *%a0, <2 x double> %a1) {
+; X32-LABEL: test_mm_store_pd1:
+; X32:       # BB#0:
+; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
+; X32-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0,0]
+; X32-NEXT:    movaps %xmm0, (%eax)
+; X32-NEXT:    retl
+;
+; X64-LABEL: test_mm_store_pd1:
+; X64:       # BB#0:
+; X64-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0,0]
+; X64-NEXT:    movaps %xmm0, (%rdi)
+; X64-NEXT:    retq
+  %arg0 = bitcast double * %a0 to <2 x double>*
+  %shuf = shufflevector <2 x double> %a1, <2 x double> undef, <2 x i32> zeroinitializer
+  store <2 x double> %shuf, <2 x double>* %arg0, align 16
+  ret void
+}
+
 define void @test_mm_store_sd(double *%a0, <2 x double> %a1) {
 ; X32-LABEL: test_mm_store_sd:
 ; X32:       # BB#0:
@@ -3139,20 +3158,18 @@ define void @test_mm_store1_pd(double *%
 ; X32-LABEL: test_mm_store1_pd:
 ; X32:       # BB#0:
 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
-; X32-NEXT:    movsd %xmm0, (%eax)
-; X32-NEXT:    movsd %xmm0, 8(%eax)
+; X32-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0,0]
+; X32-NEXT:    movaps %xmm0, (%eax)
 ; X32-NEXT:    retl
 ;
 ; X64-LABEL: test_mm_store1_pd:
 ; X64:       # BB#0:
-; X64-NEXT:    movsd %xmm0, (%rdi)
-; X64-NEXT:    movsd %xmm0, 8(%rdi)
+; X64-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0,0]
+; X64-NEXT:    movaps %xmm0, (%rdi)
 ; X64-NEXT:    retq
-  %ext = extractelement <2 x double> %a1, i32 0
-  %ptr0 = getelementptr inbounds double, double* %a0, i32 0
-  %ptr1 = getelementptr inbounds double, double* %a0, i32 1
-  store double %ext, double* %ptr0, align 1
-  store double %ext, double* %ptr1, align 1
+  %arg0 = bitcast double * %a0 to <2 x double>*
+  %shuf = shufflevector <2 x double> %a1, <2 x double> undef, <2 x i32> zeroinitializer
+  store <2 x double> %shuf, <2 x double>* %arg0, align 16
   ret void
 }
 




More information about the llvm-commits mailing list