forked from OSchip/llvm-project
[X86][SSE2] Updated _mm_store_pd1/_mm_store1_pd fast-isel tests to match D20617
llvm-svn: 271220
This commit is contained in:
parent
43439bd33d
commit
4ed0e07b23
|
@ -3104,6 +3104,25 @@ define void @test_mm_store_pd(double *%a0, <2 x double> %a1) {
|
|||
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 *%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: 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
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue