[x86] eliminate unnecessary shuffling/moves with unary scalar math ops (PR21507)
[oota-llvm.git] / test / CodeGen / X86 / vec_extract-sse4.ll
index 530911add1212e1f02ce906e0622814ab0a3c168..9f4210f7847ed7f88aac09ad0a17536074eee42e 100644 (file)
@@ -9,7 +9,7 @@ define void @t1(float* %R, <4 x float>* %P1) nounwind {
 ; CHECK-NEXT:    movss %xmm0, (%eax)
 ; CHECK-NEXT:    retl
 
-       %X = load <4 x float>* %P1
+       %X = load <4 x float>, <4 x float>* %P1
        %tmp = extractelement <4 x float> %X, i32 3
        store float %tmp, float* %R
        ret void
@@ -27,7 +27,7 @@ define float @t2(<4 x float>* %P1) nounwind {
 ; CHECK-NEXT:    popl %eax
 ; CHECK-NEXT:    retl
 
-       %X = load <4 x float>* %P1
+       %X = load <4 x float>, <4 x float>* %P1
        %tmp = extractelement <4 x float> %X, i32 2
        ret float %tmp
 }
@@ -41,7 +41,7 @@ define void @t3(i32* %R, <4 x i32>* %P1) nounwind {
 ; CHECK-NEXT:    movl %ecx, (%eax)
 ; CHECK-NEXT:    retl
 
-       %X = load <4 x i32>* %P1
+       %X = load <4 x i32>, <4 x i32>* %P1
        %tmp = extractelement <4 x i32> %X, i32 3
        store i32 %tmp, i32* %R
        ret void
@@ -54,7 +54,7 @@ define i32 @t4(<4 x i32>* %P1) nounwind {
 ; CHECK-NEXT:    movl 12(%eax), %eax
 ; CHECK-NEXT:    retl
 
-       %X = load <4 x i32>* %P1
+       %X = load <4 x i32>, <4 x i32>* %P1
        %tmp = extractelement <4 x i32> %X, i32 3
        ret i32 %tmp
 }