1; RUN: llc < %s -mcpu=corei7 -march=x86 -mattr=+sse41 -o %t 2; RUN: not grep extractps %t 3; RUN: not grep pextrd %t 4; RUN: not grep pshufd %t 5; RUN: grep movss %t | count 2 6 7define void @t1(float* %R, <4 x float>* %P1) nounwind { 8 %X = load <4 x float>* %P1 9 %tmp = extractelement <4 x float> %X, i32 3 10 store float %tmp, float* %R 11 ret void 12} 13 14define float @t2(<4 x float>* %P1) nounwind { 15 %X = load <4 x float>* %P1 16 %tmp = extractelement <4 x float> %X, i32 2 17 ret float %tmp 18} 19 20define void @t3(i32* %R, <4 x i32>* %P1) nounwind { 21 %X = load <4 x i32>* %P1 22 %tmp = extractelement <4 x i32> %X, i32 3 23 store i32 %tmp, i32* %R 24 ret void 25} 26 27define i32 @t4(<4 x i32>* %P1) nounwind { 28 %X = load <4 x i32>* %P1 29 %tmp = extractelement <4 x i32> %X, i32 3 30 ret i32 %tmp 31} 32