blob: 70c6a56d73413c280ac5359ecd7ca4f8e0a9404c [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
Evan Cheng75184a92007-12-11 01:46:18 +00003; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pextrw | count 4
4; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pinsrw | count 6
5; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshuflw | count 3
6; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshufhw | count 2
Evan Chengfca29242007-12-07 08:07:39 +00007
Evan Cheng75184a92007-12-11 01:46:18 +00008define <8 x i16> @t1(<8 x i16>* %A, <8 x i16>* %B) {
Evan Chengfca29242007-12-07 08:07:39 +00009 %tmp1 = load <8 x i16>* %A
10 %tmp2 = load <8 x i16>* %B
11 %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 >
Evan Cheng75184a92007-12-11 01:46:18 +000012 ret <8 x i16> %tmp3
Evan Chengfca29242007-12-07 08:07:39 +000013}
14
Evan Cheng75184a92007-12-11 01:46:18 +000015define <8 x i16> @t2(<8 x i16> %A, <8 x i16> %B) {
16 %tmp = shufflevector <8 x i16> %A, <8 x i16> %B, <8 x i32> < i32 9, i32 1, i32 2, i32 9, i32 4, i32 5, i32 6, i32 7 >
17 ret <8 x i16> %tmp
Evan Chengfca29242007-12-07 08:07:39 +000018}
19
Evan Cheng75184a92007-12-11 01:46:18 +000020define <8 x i16> @t3(<8 x i16> %A, <8 x i16> %B) {
21 %tmp = shufflevector <8 x i16> %A, <8 x i16> %A, <8 x i32> < i32 8, i32 3, i32 2, i32 13, i32 7, i32 6, i32 5, i32 4 >
22 ret <8 x i16> %tmp
Evan Chengfca29242007-12-07 08:07:39 +000023}
24
Evan Cheng75184a92007-12-11 01:46:18 +000025define <8 x i16> @t4(<8 x i16> %A, <8 x i16> %B) {
26 %tmp = shufflevector <8 x i16> %A, <8 x i16> %B, <8 x i32> < i32 0, i32 7, i32 2, i32 3, i32 1, i32 5, i32 6, i32 5 >
27 ret <8 x i16> %tmp
Evan Chengfca29242007-12-07 08:07:39 +000028}