From 5c780f78b440e52a5ff43468c81ceadb137a0979 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Wed, 25 May 2016 09:42:29 +0000 Subject: [PATCH] [X86][SSE2] Use storeu intrinsics for _mm_storeu_pd/_mm_storeu_pd tests Also fixed name of _mm_store1_pd test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270681 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/sse2-intrinsics-fast-isel.ll | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll b/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll index cc9c2991e56..b1e6e6c73b4 100644 --- a/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll +++ b/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll @@ -3135,15 +3135,15 @@ define void @test_mm_store_si128(<2 x i64> *%a0, <2 x i64> %a1) { 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 *%a0, <2 x double> %a1) { ; 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 i64> *%a0, <2 x i64> %a1) { ; 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: