blob: 50da32c67a3bf463997bd9f135df427acb1b0bf8 [file] [log] [blame]
Andrea Di Biagio2ea61f12014-01-28 18:14:21 +00001; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7 -mattr=sse2 | FileCheck %s
2
3define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) {
4 %select = select <4 x i1><i1 true, i1 true, i1 false, i1 false>, <4 x i32> %A, <4 x i32> %B
5 ret <4 x i32> %select
6}
7; CHECK-LABEL: test1
8; CHECK: movsd
9; CHECK: ret
10
11define <4 x i32> @test2(<4 x i32> %A, <4 x i32> %B) {
12 %select = select <4 x i1><i1 false, i1 false, i1 true, i1 true>, <4 x i32> %A, <4 x i32> %B
13 ret <4 x i32> %select
14}
15; CHECK-LABEL: test2
16; CHECK: movsd
17; CHECK-NEXT: ret
18
19define <4 x float> @test3(<4 x float> %A, <4 x float> %B) {
20 %select = select <4 x i1><i1 true, i1 true, i1 false, i1 false>, <4 x float> %A, <4 x float> %B
21 ret <4 x float> %select
22}
23; CHECK-LABEL: test3
24; CHECK: movsd
25; CHECK: ret
26
27define <4 x float> @test4(<4 x float> %A, <4 x float> %B) {
28 %select = select <4 x i1><i1 false, i1 false, i1 true, i1 true>, <4 x float> %A, <4 x float> %B
29 ret <4 x float> %select
30}
31; CHECK-LABEL: test4
32; CHECK: movsd
33; CHECK-NEXT: ret