[llvm] r270681 - [X86][SSE2] Use storeu intrinsics for _mm_storeu_pd/_mm_storeu_pd tests

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed May 25 02:42:30 PDT 2016


Author: rksimon
Date: Wed May 25 04:42:29 2016
New Revision: 270681

URL: http://llvm.org/viewvc/llvm-project?rev=270681&view=rev
Log:
[X86][SSE2] Use storeu intrinsics for _mm_storeu_pd/_mm_storeu_pd tests

Also fixed name of _mm_store1_pd test

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=270681&r1=270680&r2=270681&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll Wed May 25 04:42:29 2016
@@ -3135,15 +3135,15 @@ define void @test_mm_store_si128(<2 x i6
   ret void
 }
 
-define void @test_mm_store1_sd(double *%a0, <2 x double> %a1) {
-; X32-LABEL: test_mm_store1_sd:
+define void @test_mm_store1_pd(double *%a0, <2 x double> %a1) {
+; 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:    retl
 ;
-; X64-LABEL: test_mm_store1_sd:
+; X64-LABEL: test_mm_store1_pd:
 ; X64:       # BB#0:
 ; X64-NEXT:    movsd %xmm0, (%rdi)
 ; X64-NEXT:    movsd %xmm0, 8(%rdi)
@@ -3238,10 +3238,11 @@ define void @test_mm_storeu_pd(double *%
 ; X64:       # BB#0:
 ; X64-NEXT:    movups %xmm0, (%rdi)
 ; X64-NEXT:    retq
-  %arg0 = bitcast double* %a0 to <2 x double>*
-  store <2 x double> %a1, <2 x double>* %arg0, align 1
+  %arg0 = bitcast double* %a0 to i8*
+  call void @llvm.x86.sse2.storeu.pd(i8* %arg0, <2 x double> %a1)
   ret void
 }
+declare void @llvm.x86.sse2.storeu.pd(i8*, <2 x double>) nounwind
 
 define void @test_mm_storeu_si128(<2 x i64> *%a0, <2 x i64> %a1) {
 ; X32-LABEL: test_mm_storeu_si128:
@@ -3254,9 +3255,12 @@ define void @test_mm_storeu_si128(<2 x i
 ; X64:       # BB#0:
 ; X64-NEXT:    movups %xmm0, (%rdi)
 ; X64-NEXT:    retq
-  store <2 x i64> %a1, <2 x i64>* %a0, align 1
+  %arg0 = bitcast <2 x i64>* %a0 to i8*
+  %arg1 = bitcast <2 x i64> %a1 to <16 x i8>
+  call void @llvm.x86.sse2.storeu.dq(i8* %arg0, <16 x i8> %arg1)
   ret void
 }
+declare void @llvm.x86.sse2.storeu.dq(i8*, <16 x i8>) nounwind
 
 define void @test_mm_stream_pd(double *%a0, <2 x double> %a1) {
 ; X32-LABEL: test_mm_stream_pd:




More information about the llvm-commits mailing list