1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +xop -emit-llvm -o - -Wall -Werror | FileCheck %s
2 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +xop -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s
3 
4 
5 #include <x86intrin.h>
6 
7 // _MM_PCOMCTRL_LT
8 
test_mm_comlt_epu8(__m128i a,__m128i b)9 __m128i test_mm_comlt_epu8(__m128i a, __m128i b) {
10   // CHECK-LABEL: test_mm_comlt_epu8
11   // CHECK: icmp ult <16 x i8> %{{.*}}, %{{.*}}
12   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
13   return _mm_comlt_epu8(a, b);
14 }
15 
test_mm_comlt_epu16(__m128i a,__m128i b)16 __m128i test_mm_comlt_epu16(__m128i a, __m128i b) {
17   // CHECK-LABEL: test_mm_comlt_epu16
18   // CHECK: icmp ult <8 x i16> %{{.*}}, %{{.*}}
19   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
20   return _mm_comlt_epu16(a, b);
21 }
22 
test_mm_comlt_epu32(__m128i a,__m128i b)23 __m128i test_mm_comlt_epu32(__m128i a, __m128i b) {
24   // CHECK-LABEL: test_mm_comlt_epu32
25   // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
26   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
27   return _mm_comlt_epu32(a, b);
28 }
29 
test_mm_comlt_epu64(__m128i a,__m128i b)30 __m128i test_mm_comlt_epu64(__m128i a, __m128i b) {
31   // CHECK-LABEL: test_mm_comlt_epu64
32   // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
33   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
34   return _mm_comlt_epu64(a, b);
35 }
36 
test_mm_comlt_epi8(__m128i a,__m128i b)37 __m128i test_mm_comlt_epi8(__m128i a, __m128i b) {
38   // CHECK-LABEL: test_mm_comlt_epi8
39   // CHECK: icmp slt <16 x i8> %{{.*}}, %{{.*}}
40   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
41   return _mm_comlt_epi8(a, b);
42 }
43 
test_mm_comlt_epi16(__m128i a,__m128i b)44 __m128i test_mm_comlt_epi16(__m128i a, __m128i b) {
45   // CHECK-LABEL: test_mm_comlt_epi16
46   // CHECK: icmp slt <8 x i16> %{{.*}}, %{{.*}}
47   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
48   return _mm_comlt_epi16(a, b);
49 }
50 
test_mm_comlt_epi32(__m128i a,__m128i b)51 __m128i test_mm_comlt_epi32(__m128i a, __m128i b) {
52   // CHECK-LABEL: test_mm_comlt_epi32
53   // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
54   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
55   return _mm_comlt_epi32(a, b);
56 }
57 
test_mm_comlt_epi64(__m128i a,__m128i b)58 __m128i test_mm_comlt_epi64(__m128i a, __m128i b) {
59   // CHECK-LABEL: test_mm_comlt_epi64
60   // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
61   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
62   return _mm_comlt_epi64(a, b);
63 }
64 
65 // _MM_PCOMCTRL_LE
66 
test_mm_comle_epu8(__m128i a,__m128i b)67 __m128i test_mm_comle_epu8(__m128i a, __m128i b) {
68   // CHECK-LABEL: test_mm_comle_epu8
69   // CHECK: icmp ule <16 x i8> %{{.*}}, %{{.*}}
70   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
71   return _mm_comle_epu8(a, b);
72 }
73 
test_mm_comle_epu16(__m128i a,__m128i b)74 __m128i test_mm_comle_epu16(__m128i a, __m128i b) {
75   // CHECK-LABEL: test_mm_comle_epu16
76   // CHECK: icmp ule <8 x i16> %{{.*}}, %{{.*}}
77   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
78   return _mm_comle_epu16(a, b);
79 }
80 
test_mm_comle_epu32(__m128i a,__m128i b)81 __m128i test_mm_comle_epu32(__m128i a, __m128i b) {
82   // CHECK-LABEL: test_mm_comle_epu32
83   // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
84   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
85   return _mm_comle_epu32(a, b);
86 }
87 
test_mm_comle_epu64(__m128i a,__m128i b)88 __m128i test_mm_comle_epu64(__m128i a, __m128i b) {
89   // CHECK-LABEL: test_mm_comle_epu64
90   // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
91   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
92   return _mm_comle_epu64(a, b);
93 }
94 
test_mm_comle_epi8(__m128i a,__m128i b)95 __m128i test_mm_comle_epi8(__m128i a, __m128i b) {
96   // CHECK-LABEL: test_mm_comle_epi8
97   // CHECK: icmp sle <16 x i8> %{{.*}}, %{{.*}}
98   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
99   return _mm_comle_epi8(a, b);
100 }
101 
test_mm_comle_epi16(__m128i a,__m128i b)102 __m128i test_mm_comle_epi16(__m128i a, __m128i b) {
103   // CHECK-LABEL: test_mm_comle_epi16
104   // CHECK: icmp sle <8 x i16> %{{.*}}, %{{.*}}
105   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
106   return _mm_comle_epi16(a, b);
107 }
108 
test_mm_comle_epi32(__m128i a,__m128i b)109 __m128i test_mm_comle_epi32(__m128i a, __m128i b) {
110   // CHECK-LABEL: test_mm_comle_epi32
111   // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
112   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
113   return _mm_comle_epi32(a, b);
114 }
115 
test_mm_comle_epi64(__m128i a,__m128i b)116 __m128i test_mm_comle_epi64(__m128i a, __m128i b) {
117   // CHECK-LABEL: test_mm_comle_epi64
118   // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
119   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
120   return _mm_comle_epi64(a, b);
121 }
122 
123 // _MM_PCOMCTRL_GT
124 
test_mm_comgt_epu8(__m128i a,__m128i b)125 __m128i test_mm_comgt_epu8(__m128i a, __m128i b) {
126   // CHECK-LABEL: test_mm_comgt_epu8
127   // CHECK: icmp ugt <16 x i8> %{{.*}}, %{{.*}}
128   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
129   return _mm_comgt_epu8(a, b);
130 }
131 
test_mm_comgt_epu16(__m128i a,__m128i b)132 __m128i test_mm_comgt_epu16(__m128i a, __m128i b) {
133   // CHECK-LABEL: test_mm_comgt_epu16
134   // CHECK: icmp ugt <8 x i16> %{{.*}}, %{{.*}}
135   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
136   return _mm_comgt_epu16(a, b);
137 }
138 
test_mm_comgt_epu32(__m128i a,__m128i b)139 __m128i test_mm_comgt_epu32(__m128i a, __m128i b) {
140   // CHECK-LABEL: test_mm_comgt_epu32
141   // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
142   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
143   return _mm_comgt_epu32(a, b);
144 }
145 
test_mm_comgt_epu64(__m128i a,__m128i b)146 __m128i test_mm_comgt_epu64(__m128i a, __m128i b) {
147   // CHECK-LABEL: test_mm_comgt_epu64
148   // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
149   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
150   return _mm_comgt_epu64(a, b);
151 }
152 
test_mm_comgt_epi8(__m128i a,__m128i b)153 __m128i test_mm_comgt_epi8(__m128i a, __m128i b) {
154   // CHECK-LABEL: test_mm_comgt_epi8
155   // CHECK: icmp sgt <16 x i8> %{{.*}}, %{{.*}}
156   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
157   return _mm_comgt_epi8(a, b);
158 }
159 
test_mm_comgt_epi16(__m128i a,__m128i b)160 __m128i test_mm_comgt_epi16(__m128i a, __m128i b) {
161   // CHECK-LABEL: test_mm_comgt_epi16
162   // CHECK: icmp sgt <8 x i16> %{{.*}}, %{{.*}}
163   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
164   return _mm_comgt_epi16(a, b);
165 }
166 
test_mm_comgt_epi32(__m128i a,__m128i b)167 __m128i test_mm_comgt_epi32(__m128i a, __m128i b) {
168   // CHECK-LABEL: test_mm_comgt_epi32
169   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
170   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
171   return _mm_comgt_epi32(a, b);
172 }
173 
test_mm_comgt_epi64(__m128i a,__m128i b)174 __m128i test_mm_comgt_epi64(__m128i a, __m128i b) {
175   // CHECK-LABEL: test_mm_comgt_epi64
176   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
177   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
178   return _mm_comgt_epi64(a, b);
179 }
180 
181 // _MM_PCOMCTRL_GE
182 
test_mm_comge_epu8(__m128i a,__m128i b)183 __m128i test_mm_comge_epu8(__m128i a, __m128i b) {
184   // CHECK-LABEL: test_mm_comge_epu8
185   // CHECK: icmp uge <16 x i8> %{{.*}}, %{{.*}}
186   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
187   return _mm_comge_epu8(a, b);
188 }
189 
test_mm_comge_epu16(__m128i a,__m128i b)190 __m128i test_mm_comge_epu16(__m128i a, __m128i b) {
191   // CHECK-LABEL: test_mm_comge_epu16
192   // CHECK: icmp uge <8 x i16> %{{.*}}, %{{.*}}
193   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
194   return _mm_comge_epu16(a, b);
195 }
196 
test_mm_comge_epu32(__m128i a,__m128i b)197 __m128i test_mm_comge_epu32(__m128i a, __m128i b) {
198   // CHECK-LABEL: test_mm_comge_epu32
199   // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
200   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
201   return _mm_comge_epu32(a, b);
202 }
203 
test_mm_comge_epu64(__m128i a,__m128i b)204 __m128i test_mm_comge_epu64(__m128i a, __m128i b) {
205   // CHECK-LABEL: test_mm_comge_epu64
206   // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
207   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
208   return _mm_comge_epu64(a, b);
209 }
210 
test_mm_comge_epi8(__m128i a,__m128i b)211 __m128i test_mm_comge_epi8(__m128i a, __m128i b) {
212   // CHECK-LABEL: test_mm_comge_epi8
213   // CHECK: icmp sge <16 x i8> %{{.*}}, %{{.*}}
214   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
215   return _mm_comge_epi8(a, b);
216 }
217 
test_mm_comge_epi16(__m128i a,__m128i b)218 __m128i test_mm_comge_epi16(__m128i a, __m128i b) {
219   // CHECK-LABEL: test_mm_comge_epi16
220   // CHECK: icmp sge <8 x i16> %{{.*}}, %{{.*}}
221   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
222   return _mm_comge_epi16(a, b);
223 }
224 
test_mm_comge_epi32(__m128i a,__m128i b)225 __m128i test_mm_comge_epi32(__m128i a, __m128i b) {
226   // CHECK-LABEL: test_mm_comge_epi32
227   // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
228   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
229   return _mm_comge_epi32(a, b);
230 }
231 
test_mm_comge_epi64(__m128i a,__m128i b)232 __m128i test_mm_comge_epi64(__m128i a, __m128i b) {
233   // CHECK-LABEL: test_mm_comge_epi64
234   // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
235   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
236   return _mm_comge_epi64(a, b);
237 }
238 
239 // _MM_PCOMCTRL_EQ
240 
test_mm_comeq_epu8(__m128i a,__m128i b)241 __m128i test_mm_comeq_epu8(__m128i a, __m128i b) {
242   // CHECK-LABEL: test_mm_comeq_epu8
243   // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
244   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
245   return _mm_comeq_epu8(a, b);
246 }
247 
test_mm_comeq_epu16(__m128i a,__m128i b)248 __m128i test_mm_comeq_epu16(__m128i a, __m128i b) {
249   // CHECK-LABEL: test_mm_comeq_epu16
250   // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
251   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
252   return _mm_comeq_epu16(a, b);
253 }
254 
test_mm_comeq_epu32(__m128i a,__m128i b)255 __m128i test_mm_comeq_epu32(__m128i a, __m128i b) {
256   // CHECK-LABEL: test_mm_comeq_epu32
257   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
258   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
259   return _mm_comeq_epu32(a, b);
260 }
261 
test_mm_comeq_epu64(__m128i a,__m128i b)262 __m128i test_mm_comeq_epu64(__m128i a, __m128i b) {
263   // CHECK-LABEL: test_mm_comeq_epu64
264   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
265   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
266   return _mm_comeq_epu64(a, b);
267 }
268 
test_mm_comeq_epi8(__m128i a,__m128i b)269 __m128i test_mm_comeq_epi8(__m128i a, __m128i b) {
270   // CHECK-LABEL: test_mm_comeq_epi8
271   // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
272   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
273   return _mm_comeq_epi8(a, b);
274 }
275 
test_mm_comeq_epi16(__m128i a,__m128i b)276 __m128i test_mm_comeq_epi16(__m128i a, __m128i b) {
277   // CHECK-LABEL: test_mm_comeq_epi16
278   // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
279   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
280   return _mm_comeq_epi16(a, b);
281 }
282 
test_mm_comeq_epi32(__m128i a,__m128i b)283 __m128i test_mm_comeq_epi32(__m128i a, __m128i b) {
284   // CHECK-LABEL: test_mm_comeq_epi32
285   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
286   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
287   return _mm_comeq_epi32(a, b);
288 }
289 
test_mm_comeq_epi64(__m128i a,__m128i b)290 __m128i test_mm_comeq_epi64(__m128i a, __m128i b) {
291   // CHECK-LABEL: test_mm_comeq_epi64
292   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
293   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
294   return _mm_comeq_epi64(a, b);
295 }
296 
297 // _MM_PCOMCTRL_NEQ
298 
test_mm_comneq_epu8(__m128i a,__m128i b)299 __m128i test_mm_comneq_epu8(__m128i a, __m128i b) {
300   // CHECK-LABEL: test_mm_comneq_epu8
301   // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
302   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
303   return _mm_comneq_epu8(a, b);
304 }
305 
test_mm_comneq_epu16(__m128i a,__m128i b)306 __m128i test_mm_comneq_epu16(__m128i a, __m128i b) {
307   // CHECK-LABEL: test_mm_comneq_epu16
308   // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
309   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
310   return _mm_comneq_epu16(a, b);
311 }
312 
test_mm_comneq_epu32(__m128i a,__m128i b)313 __m128i test_mm_comneq_epu32(__m128i a, __m128i b) {
314   // CHECK-LABEL: test_mm_comneq_epu32
315   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
316   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
317   return _mm_comneq_epu32(a, b);
318 }
319 
test_mm_comneq_epu64(__m128i a,__m128i b)320 __m128i test_mm_comneq_epu64(__m128i a, __m128i b) {
321   // CHECK-LABEL: test_mm_comneq_epu64
322   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
323   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
324   return _mm_comneq_epu64(a, b);
325 }
326 
test_mm_comneq_epi8(__m128i a,__m128i b)327 __m128i test_mm_comneq_epi8(__m128i a, __m128i b) {
328   // CHECK-LABEL: test_mm_comneq_epi8
329   // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
330   // CHECK: sext <16 x i1> %{{.*}} to <16 x i8>
331   return _mm_comneq_epi8(a, b);
332 }
333 
test_mm_comneq_epi16(__m128i a,__m128i b)334 __m128i test_mm_comneq_epi16(__m128i a, __m128i b) {
335   // CHECK-LABEL: test_mm_comneq_epi16
336   // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
337   // CHECK: sext <8 x i1> %{{.*}} to <8 x i16>
338   return _mm_comneq_epi16(a, b);
339 }
340 
test_mm_comneq_epi32(__m128i a,__m128i b)341 __m128i test_mm_comneq_epi32(__m128i a, __m128i b) {
342   // CHECK-LABEL: test_mm_comneq_epi32
343   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
344   // CHECK: sext <4 x i1> %{{.*}} to <4 x i32>
345   return _mm_comneq_epi32(a, b);
346 }
347 
test_mm_comneq_epi64(__m128i a,__m128i b)348 __m128i test_mm_comneq_epi64(__m128i a, __m128i b) {
349   // CHECK-LABEL: test_mm_comneq_epi64
350   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
351   // CHECK: sext <2 x i1> %{{.*}} to <2 x i64>
352   return _mm_comneq_epi64(a, b);
353 }
354 
355 // _MM_PCOMCTRL_FALSE
356 
test_mm_comfalse_epu8(__m128i a,__m128i b)357 __m128i test_mm_comfalse_epu8(__m128i a, __m128i b) {
358   // CHECK-LABEL: test_mm_comfalse_epu8
359   // CHECK: ret <2 x i64> zeroinitializer
360   return _mm_comfalse_epu8(a, b);
361 }
362 
test_mm_comfalse_epu16(__m128i a,__m128i b)363 __m128i test_mm_comfalse_epu16(__m128i a, __m128i b) {
364   // CHECK-LABEL: test_mm_comfalse_epu16
365   // CHECK: ret <2 x i64> zeroinitializer
366   return _mm_comfalse_epu16(a, b);
367 }
368 
test_mm_comfalse_epu32(__m128i a,__m128i b)369 __m128i test_mm_comfalse_epu32(__m128i a, __m128i b) {
370   // CHECK-LABEL: test_mm_comfalse_epu32
371   // CHECK: ret <2 x i64> zeroinitializer
372   return _mm_comfalse_epu32(a, b);
373 }
374 
test_mm_comfalse_epu64(__m128i a,__m128i b)375 __m128i test_mm_comfalse_epu64(__m128i a, __m128i b) {
376   // CHECK-LABEL: test_mm_comfalse_epu64
377   // CHECK: ret <2 x i64> zeroinitializer
378   return _mm_comfalse_epu64(a, b);
379 }
380 
test_mm_comfalse_epi8(__m128i a,__m128i b)381 __m128i test_mm_comfalse_epi8(__m128i a, __m128i b) {
382   // CHECK-LABEL: test_mm_comfalse_epi8
383   // CHECK: ret <2 x i64> zeroinitializer
384   return _mm_comfalse_epi8(a, b);
385 }
386 
test_mm_comfalse_epi16(__m128i a,__m128i b)387 __m128i test_mm_comfalse_epi16(__m128i a, __m128i b) {
388   // CHECK-LABEL: test_mm_comfalse_epi16
389   // CHECK: ret <2 x i64> zeroinitializer
390   return _mm_comfalse_epi16(a, b);
391 }
392 
test_mm_comfalse_epi32(__m128i a,__m128i b)393 __m128i test_mm_comfalse_epi32(__m128i a, __m128i b) {
394   // CHECK-LABEL: test_mm_comfalse_epi32
395   // CHECK: ret <2 x i64> zeroinitializer
396   return _mm_comfalse_epi32(a, b);
397 }
398 
test_mm_comfalse_epi64(__m128i a,__m128i b)399 __m128i test_mm_comfalse_epi64(__m128i a, __m128i b) {
400   // CHECK-LABEL: test_mm_comfalse_epi64
401   // CHECK: ret <2 x i64> zeroinitializer
402   return _mm_comfalse_epi64(a, b);
403 }
404 
405 // _MM_PCOMCTRL_TRUE
406 
test_mm_comtrue_epu8(__m128i a,__m128i b)407 __m128i test_mm_comtrue_epu8(__m128i a, __m128i b) {
408   // CHECK-LABEL: test_mm_comtrue_epu8
409   // CHECK: ret <2 x i64> <i64 -1, i64 -1>
410   return _mm_comtrue_epu8(a, b);
411 }
412 
test_mm_comtrue_epu16(__m128i a,__m128i b)413 __m128i test_mm_comtrue_epu16(__m128i a, __m128i b) {
414   // CHECK-LABEL: test_mm_comtrue_epu16
415   // CHECK: ret <2 x i64> <i64 -1, i64 -1>
416   return _mm_comtrue_epu16(a, b);
417 }
418 
test_mm_comtrue_epu32(__m128i a,__m128i b)419 __m128i test_mm_comtrue_epu32(__m128i a, __m128i b) {
420   // CHECK-LABEL: test_mm_comtrue_epu32
421   // CHECK: ret <2 x i64> <i64 -1, i64 -1>
422   return _mm_comtrue_epu32(a, b);
423 }
424 
test_mm_comtrue_epu64(__m128i a,__m128i b)425 __m128i test_mm_comtrue_epu64(__m128i a, __m128i b) {
426   // CHECK-LABEL: test_mm_comtrue_epu64
427   // CHECK: ret <2 x i64> <i64 -1, i64 -1>
428   return _mm_comtrue_epu64(a, b);
429 }
430 
test_mm_comtrue_epi8(__m128i a,__m128i b)431 __m128i test_mm_comtrue_epi8(__m128i a, __m128i b) {
432   // CHECK-LABEL: test_mm_comtrue_epi8
433   // CHECK: ret <2 x i64> <i64 -1, i64 -1>
434   return _mm_comtrue_epi8(a, b);
435 }
436 
test_mm_comtrue_epi16(__m128i a,__m128i b)437 __m128i test_mm_comtrue_epi16(__m128i a, __m128i b) {
438   // CHECK-LABEL: test_mm_comtrue_epi16
439   // CHECK: ret <2 x i64> <i64 -1, i64 -1>
440   return _mm_comtrue_epi16(a, b);
441 }
442 
test_mm_comtrue_epi32(__m128i a,__m128i b)443 __m128i test_mm_comtrue_epi32(__m128i a, __m128i b) {
444   // CHECK-LABEL: test_mm_comtrue_epi32
445   // CHECK: ret <2 x i64> <i64 -1, i64 -1>
446   return _mm_comtrue_epi32(a, b);
447 }
448 
test_mm_comtrue_epi64(__m128i a,__m128i b)449 __m128i test_mm_comtrue_epi64(__m128i a, __m128i b) {
450   // CHECK-LABEL: test_mm_comtrue_epi64
451   // CHECK: ret <2 x i64> <i64 -1, i64 -1>
452   return _mm_comtrue_epi64(a, b);
453 }
454