blob: 470f676d4627e90b962950f1eff6764560cb4c93 [file] [log] [blame]
Dan Gohman0a063102009-09-08 23:54:48 +00001; RUN: llc < %s -march=x86 -mattr=+sse,-sse2 -mtriple=i386-apple-darwin -o %t
Nate Begeman543d2142009-04-27 18:41:29 +00002; RUN: grep shufps %t | count 4
3; RUN: grep movaps %t | count 2
Dan Gohman0a063102009-09-08 23:54:48 +00004; RUN: llc < %s -march=x86 -mattr=+sse2 -mtriple=i386-apple-darwin -o %t
Nate Begeman543d2142009-04-27 18:41:29 +00005; RUN: grep pshufd %t | count 4
6; RUN: not grep shufps %t
7; RUN: not grep mov %t
Evan Chengbf8b2c52008-04-05 00:30:36 +00008
9define <4 x float> @t1(<4 x float> %a, <4 x float> %b) nounwind {
10 %tmp1 = shufflevector <4 x float> %b, <4 x float> undef, <4 x i32> zeroinitializer
11 ret <4 x float> %tmp1
12}
13
14define <4 x float> @t2(<4 x float> %A, <4 x float> %B) nounwind {
15 %tmp = shufflevector <4 x float> %A, <4 x float> %B, <4 x i32> < i32 3, i32 3, i32 3, i32 3 >
16 ret <4 x float> %tmp
17}
18
19define <4 x float> @t3(<4 x float> %A, <4 x float> %B) nounwind {
20 %tmp = shufflevector <4 x float> %A, <4 x float> %B, <4 x i32> < i32 4, i32 4, i32 4, i32 4 >
21 ret <4 x float> %tmp
22}
23
24define <4 x float> @t4(<4 x float> %A, <4 x float> %B) nounwind {
25 %tmp = shufflevector <4 x float> %A, <4 x float> %B, <4 x i32> < i32 1, i32 3, i32 2, i32 0 >
26 ret <4 x float> %tmp
27}