1 ; RUN: llc < %s -mcpu=yonah -mtriple=i386-apple-darwin | FileCheck %s
4 define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind {
9 %C = icmp sgt <4 x i32> %A, %B
10 %D = sext <4 x i1> %C to <4 x i32>
14 define <4 x i32> @test2(<4 x i32> %A, <4 x i32> %B) nounwind {
20 %C = icmp sge <4 x i32> %A, %B
21 %D = sext <4 x i1> %C to <4 x i32>
25 define <4 x i32> @test3(<4 x i32> %A, <4 x i32> %B) nounwind {
30 %C = icmp slt <4 x i32> %A, %B
31 %D = sext <4 x i1> %C to <4 x i32>
35 define <4 x i32> @test4(<4 x i32> %A, <4 x i32> %B) nounwind {
40 %C = icmp ugt <4 x i32> %A, %B
41 %D = sext <4 x i1> %C to <4 x i32>
45 define <2 x i64> @test5(<2 x i64> %A, <2 x i64> %B) nounwind {
51 %C = icmp eq <2 x i64> %A, %B
52 %D = sext <2 x i1> %C to <2 x i64>
56 define <2 x i64> @test6(<2 x i64> %A, <2 x i64> %B) nounwind {
64 %C = icmp ne <2 x i64> %A, %B
65 %D = sext <2 x i1> %C to <2 x i64>
69 define <2 x i64> @test7(<2 x i64> %A, <2 x i64> %B) nounwind {
70 ; CHECK: [[CONSTSEG:[A-Z0-9_]*]]:
71 ; CHECK: .long 2147483648
73 ; CHECK-NEXT: .long 2147483648
76 ; CHECK: movdqa [[CONSTSEG]], [[CONSTREG:%xmm[0-9]*]]
77 ; CHECK: pxor [[CONSTREG]]
78 ; CHECK: pxor [[CONSTREG]]
79 ; CHECK: pcmpgtd %xmm1
87 %C = icmp sgt <2 x i64> %A, %B
88 %D = sext <2 x i1> %C to <2 x i64>
92 define <2 x i64> @test8(<2 x i64> %A, <2 x i64> %B) nounwind {
96 ; CHECK: pcmpgtd %xmm0
104 %C = icmp slt <2 x i64> %A, %B
105 %D = sext <2 x i1> %C to <2 x i64>
109 define <2 x i64> @test9(<2 x i64> %A, <2 x i64> %B) nounwind {
110 ; CHECK-LABEL: test9:
113 ; CHECK: pcmpgtd %xmm0
123 %C = icmp sge <2 x i64> %A, %B
124 %D = sext <2 x i1> %C to <2 x i64>
128 define <2 x i64> @test10(<2 x i64> %A, <2 x i64> %B) nounwind {
129 ; CHECK-LABEL: test10:
132 ; CHECK: pcmpgtd %xmm1
142 %C = icmp sle <2 x i64> %A, %B
143 %D = sext <2 x i1> %C to <2 x i64>
147 define <2 x i64> @test11(<2 x i64> %A, <2 x i64> %B) nounwind {
148 ; CHECK: [[CONSTSEG:[A-Z0-9_]*]]:
149 ; CHECK: .long 2147483648
150 ; CHECK-NEXT: .long 2147483648
151 ; CHECK-NEXT: .long 2147483648
152 ; CHECK-NEXT: .long 2147483648
153 ; CHECK-LABEL: test11:
154 ; CHECK: movdqa [[CONSTSEG]], [[CONSTREG:%xmm[0-9]*]]
155 ; CHECK: pxor [[CONSTREG]]
156 ; CHECK: pxor [[CONSTREG]]
157 ; CHECK: pcmpgtd %xmm1
165 %C = icmp ugt <2 x i64> %A, %B
166 %D = sext <2 x i1> %C to <2 x i64>
170 define <2 x i64> @test12(<2 x i64> %A, <2 x i64> %B) nounwind {
171 ; CHECK-LABEL: test12:
174 ; CHECK: pcmpgtd %xmm0
182 %C = icmp ult <2 x i64> %A, %B
183 %D = sext <2 x i1> %C to <2 x i64>
187 define <2 x i64> @test13(<2 x i64> %A, <2 x i64> %B) nounwind {
188 ; CHECK-LABEL: test13:
191 ; CHECK: pcmpgtd %xmm0
201 %C = icmp uge <2 x i64> %A, %B
202 %D = sext <2 x i1> %C to <2 x i64>
206 define <2 x i64> @test14(<2 x i64> %A, <2 x i64> %B) nounwind {
207 ; CHECK-LABEL: test14:
210 ; CHECK: pcmpgtd %xmm1
220 %C = icmp ule <2 x i64> %A, %B
221 %D = sext <2 x i1> %C to <2 x i64>