1 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7 -mattr=sse2 | FileCheck %s 2 3 define <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 11 define <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 19 define <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 27 define <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 34