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