blob: f66f3bbbd80c08869cfb34ade4bfe5155c8d75ef [file] [log] [blame]
Evan Chengfca29242007-12-07 08:07:39 +00001; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
2; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep punpck
3; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pextrw | count 7
4; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pinsrw | count 7
5; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshuf | count 2
6
7define void @t1(<8 x i16>* %res, <8 x i16>* %A, <8 x i16>* %B) {
8 %tmp1 = load <8 x i16>* %A
9 %tmp2 = load <8 x i16>* %B
10 %tmp3 = shufflevector <8 x i16> %tmp1, <8 x i16> %tmp2, <8 x i32> < i32 8, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7 >
11 store <8 x i16> %tmp3, <8 x i16>* %res
12 ret void
13}
14
15define void @t2(<8 x i16>* %res, <8 x i16>* %A, <8 x i16>* %B) {
16 %tmp1 = load <8 x i16>* %A
17 %tmp2 = load <8 x i16>* %B
18 %tmp3 = shufflevector <8 x i16> %tmp1, <8 x i16> %tmp2, <8 x i32> < i32 8, i32 1, i32 2, i32 13, i32 4, i32 5, i32 6, i32 7 >
19 store <8 x i16> %tmp3, <8 x i16>* %res
20 ret void
21}
22
23define void @t3(<8 x i16>* %res, <8 x i16>* %A, <8 x i16>* %B) {
24 %tmp1 = load <8 x i16>* %A
25 %tmp2 = load <8 x i16>* %B
26 %tmp3 = shufflevector <8 x i16> %tmp1, <8 x i16> %tmp2, <8 x i32> < i32 8, i32 3, i32 2, i32 13, i32 7, i32 6, i32 5, i32 4 >
27 store <8 x i16> %tmp3, <8 x i16>* %res
28 ret void
29}
30
31define void @t4(<8 x i16>* %res, <8 x i16>* %A, <8 x i16>* %B) {
32 %tmp1 = load <8 x i16>* %A
33 %tmp2 = load <8 x i16>* %B
34 %tmp3 = shufflevector <8 x i16> %tmp1, <8 x i16> %tmp2, <8 x i32> < i32 8, i32 9, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7 >
35 store <8 x i16> %tmp3, <8 x i16>* %res
36 ret void
37}