blob: 1ef5e8803ef468ec8b42aa3aeff92c7ce7fe0985 [file] [log] [blame]
Evan Cheng6c249332008-03-24 21:52:23 +00001; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse41 -o %t -f
2; RUN: grep extractps %t | count 1
3; RUN: grep pextrd %t | count 2
4; RUN: grep pshufd %t | count 1
5
6define void @t1(float* %R, <4 x float>* %P1) {
7 %X = load <4 x float>* %P1
8 %tmp = extractelement <4 x float> %X, i32 3
9 store float %tmp, float* %R
10 ret void
11}
12
13define float @t2(<4 x float>* %P1) {
14 %X = load <4 x float>* %P1
15 %tmp = extractelement <4 x float> %X, i32 2
16 ret float %tmp
17}
18
19define void @t3(i32* %R, <4 x i32>* %P1) {
20 %X = load <4 x i32>* %P1
21 %tmp = extractelement <4 x i32> %X, i32 3
22 store i32 %tmp, i32* %R
23 ret void
24}
25
26define i32 @t4(<4 x i32>* %P1) {
27 %X = load <4 x i32>* %P1
28 %tmp = extractelement <4 x i32> %X, i32 3
29 ret i32 %tmp
30}