xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGen/xop-builtins.c (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -O3 -triple=x86_64-apple-darwin -target-feature +xop -emit-llvm -o - | FileCheck %s
2*f4a2713aSLionel Sambuc 
3*f4a2713aSLionel Sambuc // Don't include mm_malloc.h, it's system specific.
4*f4a2713aSLionel Sambuc #define __MM_MALLOC_H
5*f4a2713aSLionel Sambuc 
6*f4a2713aSLionel Sambuc #include <x86intrin.h>
7*f4a2713aSLionel Sambuc 
test_mm_maccs_epi16(__m128i a,__m128i b,__m128i c)8*f4a2713aSLionel Sambuc __m128i test_mm_maccs_epi16(__m128i a, __m128i b, __m128i c) {
9*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmacssww
10*f4a2713aSLionel Sambuc   return _mm_maccs_epi16(a, b, c);
11*f4a2713aSLionel Sambuc }
12*f4a2713aSLionel Sambuc 
test_mm_macc_epi16(__m128i a,__m128i b,__m128i c)13*f4a2713aSLionel Sambuc __m128i test_mm_macc_epi16(__m128i a, __m128i b, __m128i c) {
14*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmacsww
15*f4a2713aSLionel Sambuc   return _mm_macc_epi16(a, b, c);
16*f4a2713aSLionel Sambuc }
17*f4a2713aSLionel Sambuc 
test_mm_maccsd_epi16(__m128i a,__m128i b,__m128i c)18*f4a2713aSLionel Sambuc __m128i test_mm_maccsd_epi16(__m128i a, __m128i b, __m128i c) {
19*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmacsswd
20*f4a2713aSLionel Sambuc   return _mm_maccsd_epi16(a, b, c);
21*f4a2713aSLionel Sambuc }
22*f4a2713aSLionel Sambuc 
test_mm_maccd_epi16(__m128i a,__m128i b,__m128i c)23*f4a2713aSLionel Sambuc __m128i test_mm_maccd_epi16(__m128i a, __m128i b, __m128i c) {
24*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmacswd
25*f4a2713aSLionel Sambuc   return _mm_maccd_epi16(a, b, c);
26*f4a2713aSLionel Sambuc }
27*f4a2713aSLionel Sambuc 
test_mm_maccs_epi32(__m128i a,__m128i b,__m128i c)28*f4a2713aSLionel Sambuc __m128i test_mm_maccs_epi32(__m128i a, __m128i b, __m128i c) {
29*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmacssdd
30*f4a2713aSLionel Sambuc   return _mm_maccs_epi32(a, b, c);
31*f4a2713aSLionel Sambuc }
32*f4a2713aSLionel Sambuc 
test_mm_macc_epi32(__m128i a,__m128i b,__m128i c)33*f4a2713aSLionel Sambuc __m128i test_mm_macc_epi32(__m128i a, __m128i b, __m128i c) {
34*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmacsdd
35*f4a2713aSLionel Sambuc   return _mm_macc_epi32(a, b, c);
36*f4a2713aSLionel Sambuc }
37*f4a2713aSLionel Sambuc 
test_mm_maccslo_epi32(__m128i a,__m128i b,__m128i c)38*f4a2713aSLionel Sambuc __m128i test_mm_maccslo_epi32(__m128i a, __m128i b, __m128i c) {
39*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmacssdql
40*f4a2713aSLionel Sambuc   return _mm_maccslo_epi32(a, b, c);
41*f4a2713aSLionel Sambuc }
42*f4a2713aSLionel Sambuc 
test_mm_macclo_epi32(__m128i a,__m128i b,__m128i c)43*f4a2713aSLionel Sambuc __m128i test_mm_macclo_epi32(__m128i a, __m128i b, __m128i c) {
44*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmacsdql
45*f4a2713aSLionel Sambuc   return _mm_macclo_epi32(a, b, c);
46*f4a2713aSLionel Sambuc }
47*f4a2713aSLionel Sambuc 
test_mm_maccshi_epi32(__m128i a,__m128i b,__m128i c)48*f4a2713aSLionel Sambuc __m128i test_mm_maccshi_epi32(__m128i a, __m128i b, __m128i c) {
49*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmacssdqh
50*f4a2713aSLionel Sambuc   return _mm_maccshi_epi32(a, b, c);
51*f4a2713aSLionel Sambuc }
52*f4a2713aSLionel Sambuc 
test_mm_macchi_epi32(__m128i a,__m128i b,__m128i c)53*f4a2713aSLionel Sambuc __m128i test_mm_macchi_epi32(__m128i a, __m128i b, __m128i c) {
54*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmacsdqh
55*f4a2713aSLionel Sambuc   return _mm_macchi_epi32(a, b, c);
56*f4a2713aSLionel Sambuc }
57*f4a2713aSLionel Sambuc 
test_mm_maddsd_epi16(__m128i a,__m128i b,__m128i c)58*f4a2713aSLionel Sambuc __m128i test_mm_maddsd_epi16(__m128i a, __m128i b, __m128i c) {
59*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmadcsswd
60*f4a2713aSLionel Sambuc   return _mm_maddsd_epi16(a, b, c);
61*f4a2713aSLionel Sambuc }
62*f4a2713aSLionel Sambuc 
test_mm_maddd_epi16(__m128i a,__m128i b,__m128i c)63*f4a2713aSLionel Sambuc __m128i test_mm_maddd_epi16(__m128i a, __m128i b, __m128i c) {
64*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpmadcswd
65*f4a2713aSLionel Sambuc   return _mm_maddd_epi16(a, b, c);
66*f4a2713aSLionel Sambuc }
67*f4a2713aSLionel Sambuc 
test_mm_haddw_epi8(__m128i a)68*f4a2713aSLionel Sambuc __m128i test_mm_haddw_epi8(__m128i a) {
69*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphaddbw
70*f4a2713aSLionel Sambuc   return _mm_haddw_epi8(a);
71*f4a2713aSLionel Sambuc }
72*f4a2713aSLionel Sambuc 
test_mm_haddd_epi8(__m128i a)73*f4a2713aSLionel Sambuc __m128i test_mm_haddd_epi8(__m128i a) {
74*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphaddbd
75*f4a2713aSLionel Sambuc   return _mm_haddd_epi8(a);
76*f4a2713aSLionel Sambuc }
77*f4a2713aSLionel Sambuc 
test_mm_haddq_epi8(__m128i a)78*f4a2713aSLionel Sambuc __m128i test_mm_haddq_epi8(__m128i a) {
79*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphaddbq
80*f4a2713aSLionel Sambuc   return _mm_haddq_epi8(a);
81*f4a2713aSLionel Sambuc }
82*f4a2713aSLionel Sambuc 
test_mm_haddd_epi16(__m128i a)83*f4a2713aSLionel Sambuc __m128i test_mm_haddd_epi16(__m128i a) {
84*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphaddwd
85*f4a2713aSLionel Sambuc   return _mm_haddd_epi16(a);
86*f4a2713aSLionel Sambuc }
87*f4a2713aSLionel Sambuc 
test_mm_haddq_epi16(__m128i a)88*f4a2713aSLionel Sambuc __m128i test_mm_haddq_epi16(__m128i a) {
89*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphaddwq
90*f4a2713aSLionel Sambuc   return _mm_haddq_epi16(a);
91*f4a2713aSLionel Sambuc }
92*f4a2713aSLionel Sambuc 
test_mm_haddq_epi32(__m128i a)93*f4a2713aSLionel Sambuc __m128i test_mm_haddq_epi32(__m128i a) {
94*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphadddq
95*f4a2713aSLionel Sambuc   return _mm_haddq_epi32(a);
96*f4a2713aSLionel Sambuc }
97*f4a2713aSLionel Sambuc 
test_mm_haddw_epu8(__m128i a)98*f4a2713aSLionel Sambuc __m128i test_mm_haddw_epu8(__m128i a) {
99*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphaddubw
100*f4a2713aSLionel Sambuc   return _mm_haddw_epu8(a);
101*f4a2713aSLionel Sambuc }
102*f4a2713aSLionel Sambuc 
test_mm_haddd_epu8(__m128i a)103*f4a2713aSLionel Sambuc __m128i test_mm_haddd_epu8(__m128i a) {
104*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphaddubd
105*f4a2713aSLionel Sambuc   return _mm_haddd_epu8(a);
106*f4a2713aSLionel Sambuc }
107*f4a2713aSLionel Sambuc 
test_mm_haddq_epu8(__m128i a)108*f4a2713aSLionel Sambuc __m128i test_mm_haddq_epu8(__m128i a) {
109*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphaddubq
110*f4a2713aSLionel Sambuc   return _mm_haddq_epu8(a);
111*f4a2713aSLionel Sambuc }
112*f4a2713aSLionel Sambuc 
test_mm_haddd_epu16(__m128i a)113*f4a2713aSLionel Sambuc __m128i test_mm_haddd_epu16(__m128i a) {
114*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphadduwd
115*f4a2713aSLionel Sambuc   return _mm_haddd_epu16(a);
116*f4a2713aSLionel Sambuc }
117*f4a2713aSLionel Sambuc 
test_mm_haddq_epu16(__m128i a)118*f4a2713aSLionel Sambuc __m128i test_mm_haddq_epu16(__m128i a) {
119*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphadduwq
120*f4a2713aSLionel Sambuc   return _mm_haddq_epu16(a);
121*f4a2713aSLionel Sambuc }
122*f4a2713aSLionel Sambuc 
test_mm_haddq_epu32(__m128i a)123*f4a2713aSLionel Sambuc __m128i test_mm_haddq_epu32(__m128i a) {
124*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphaddudq
125*f4a2713aSLionel Sambuc   return _mm_haddq_epu32(a);
126*f4a2713aSLionel Sambuc }
127*f4a2713aSLionel Sambuc 
test_mm_hsubw_epi8(__m128i a)128*f4a2713aSLionel Sambuc __m128i test_mm_hsubw_epi8(__m128i a) {
129*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphsubbw
130*f4a2713aSLionel Sambuc   return _mm_hsubw_epi8(a);
131*f4a2713aSLionel Sambuc }
132*f4a2713aSLionel Sambuc 
test_mm_hsubd_epi16(__m128i a)133*f4a2713aSLionel Sambuc __m128i test_mm_hsubd_epi16(__m128i a) {
134*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphsubwd
135*f4a2713aSLionel Sambuc   return _mm_hsubd_epi16(a);
136*f4a2713aSLionel Sambuc }
137*f4a2713aSLionel Sambuc 
test_mm_hsubq_epi32(__m128i a)138*f4a2713aSLionel Sambuc __m128i test_mm_hsubq_epi32(__m128i a) {
139*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vphsubdq
140*f4a2713aSLionel Sambuc   return _mm_hsubq_epi32(a);
141*f4a2713aSLionel Sambuc }
142*f4a2713aSLionel Sambuc 
test_mm_cmov_si128(__m128i a,__m128i b,__m128i c)143*f4a2713aSLionel Sambuc __m128i test_mm_cmov_si128(__m128i a, __m128i b, __m128i c) {
144*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpcmov
145*f4a2713aSLionel Sambuc   return _mm_cmov_si128(a, b, c);
146*f4a2713aSLionel Sambuc }
147*f4a2713aSLionel Sambuc 
test_mm256_cmov_si256(__m256i a,__m256i b,__m256i c)148*f4a2713aSLionel Sambuc __m256i test_mm256_cmov_si256(__m256i a, __m256i b, __m256i c) {
149*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpcmov.256
150*f4a2713aSLionel Sambuc   return _mm256_cmov_si256(a, b, c);
151*f4a2713aSLionel Sambuc }
152*f4a2713aSLionel Sambuc 
test_mm_perm_epi8(__m128i a,__m128i b,__m128i c)153*f4a2713aSLionel Sambuc __m128i test_mm_perm_epi8(__m128i a, __m128i b, __m128i c) {
154*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpperm
155*f4a2713aSLionel Sambuc   return _mm_perm_epi8(a, b, c);
156*f4a2713aSLionel Sambuc }
157*f4a2713aSLionel Sambuc 
test_mm_rot_epi8(__m128i a,__m128i b)158*f4a2713aSLionel Sambuc __m128i test_mm_rot_epi8(__m128i a, __m128i b) {
159*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vprotb
160*f4a2713aSLionel Sambuc   return _mm_rot_epi8(a, b);
161*f4a2713aSLionel Sambuc }
162*f4a2713aSLionel Sambuc 
test_mm_rot_epi16(__m128i a,__m128i b)163*f4a2713aSLionel Sambuc __m128i test_mm_rot_epi16(__m128i a, __m128i b) {
164*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vprotw
165*f4a2713aSLionel Sambuc   return _mm_rot_epi16(a, b);
166*f4a2713aSLionel Sambuc }
167*f4a2713aSLionel Sambuc 
test_mm_rot_epi32(__m128i a,__m128i b)168*f4a2713aSLionel Sambuc __m128i test_mm_rot_epi32(__m128i a, __m128i b) {
169*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vprotd
170*f4a2713aSLionel Sambuc   return _mm_rot_epi32(a, b);
171*f4a2713aSLionel Sambuc }
172*f4a2713aSLionel Sambuc 
test_mm_rot_epi64(__m128i a,__m128i b)173*f4a2713aSLionel Sambuc __m128i test_mm_rot_epi64(__m128i a, __m128i b) {
174*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vprotq
175*f4a2713aSLionel Sambuc   return _mm_rot_epi64(a, b);
176*f4a2713aSLionel Sambuc }
177*f4a2713aSLionel Sambuc 
test_mm_roti_epi8(__m128i a)178*f4a2713aSLionel Sambuc __m128i test_mm_roti_epi8(__m128i a) {
179*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vprotbi
180*f4a2713aSLionel Sambuc   return _mm_roti_epi8(a, 1);
181*f4a2713aSLionel Sambuc }
182*f4a2713aSLionel Sambuc 
test_mm_roti_epi16(__m128i a)183*f4a2713aSLionel Sambuc __m128i test_mm_roti_epi16(__m128i a) {
184*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vprotwi
185*f4a2713aSLionel Sambuc   return _mm_roti_epi16(a, 50);
186*f4a2713aSLionel Sambuc }
187*f4a2713aSLionel Sambuc 
test_mm_roti_epi32(__m128i a)188*f4a2713aSLionel Sambuc __m128i test_mm_roti_epi32(__m128i a) {
189*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vprotdi
190*f4a2713aSLionel Sambuc   return _mm_roti_epi32(a, -30);
191*f4a2713aSLionel Sambuc }
192*f4a2713aSLionel Sambuc 
test_mm_roti_epi64(__m128i a)193*f4a2713aSLionel Sambuc __m128i test_mm_roti_epi64(__m128i a) {
194*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vprotqi
195*f4a2713aSLionel Sambuc   return _mm_roti_epi64(a, 100);
196*f4a2713aSLionel Sambuc }
197*f4a2713aSLionel Sambuc 
test_mm_shl_epi8(__m128i a,__m128i b)198*f4a2713aSLionel Sambuc __m128i test_mm_shl_epi8(__m128i a, __m128i b) {
199*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpshlb
200*f4a2713aSLionel Sambuc   return _mm_shl_epi8(a, b);
201*f4a2713aSLionel Sambuc }
202*f4a2713aSLionel Sambuc 
test_mm_shl_epi16(__m128i a,__m128i b)203*f4a2713aSLionel Sambuc __m128i test_mm_shl_epi16(__m128i a, __m128i b) {
204*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpshlw
205*f4a2713aSLionel Sambuc   return _mm_shl_epi16(a, b);
206*f4a2713aSLionel Sambuc }
207*f4a2713aSLionel Sambuc 
test_mm_shl_epi32(__m128i a,__m128i b)208*f4a2713aSLionel Sambuc __m128i test_mm_shl_epi32(__m128i a, __m128i b) {
209*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpshld
210*f4a2713aSLionel Sambuc   return _mm_shl_epi32(a, b);
211*f4a2713aSLionel Sambuc }
212*f4a2713aSLionel Sambuc 
test_mm_shl_epi64(__m128i a,__m128i b)213*f4a2713aSLionel Sambuc __m128i test_mm_shl_epi64(__m128i a, __m128i b) {
214*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpshlq
215*f4a2713aSLionel Sambuc   return _mm_shl_epi64(a, b);
216*f4a2713aSLionel Sambuc }
217*f4a2713aSLionel Sambuc 
test_mm_sha_epi8(__m128i a,__m128i b)218*f4a2713aSLionel Sambuc __m128i test_mm_sha_epi8(__m128i a, __m128i b) {
219*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpshab
220*f4a2713aSLionel Sambuc   return _mm_sha_epi8(a, b);
221*f4a2713aSLionel Sambuc }
222*f4a2713aSLionel Sambuc 
test_mm_sha_epi16(__m128i a,__m128i b)223*f4a2713aSLionel Sambuc __m128i test_mm_sha_epi16(__m128i a, __m128i b) {
224*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpshaw
225*f4a2713aSLionel Sambuc   return _mm_sha_epi16(a, b);
226*f4a2713aSLionel Sambuc }
227*f4a2713aSLionel Sambuc 
test_mm_sha_epi32(__m128i a,__m128i b)228*f4a2713aSLionel Sambuc __m128i test_mm_sha_epi32(__m128i a, __m128i b) {
229*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpshad
230*f4a2713aSLionel Sambuc   return _mm_sha_epi32(a, b);
231*f4a2713aSLionel Sambuc }
232*f4a2713aSLionel Sambuc 
test_mm_sha_epi64(__m128i a,__m128i b)233*f4a2713aSLionel Sambuc __m128i test_mm_sha_epi64(__m128i a, __m128i b) {
234*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpshaq
235*f4a2713aSLionel Sambuc   return _mm_sha_epi64(a, b);
236*f4a2713aSLionel Sambuc }
237*f4a2713aSLionel Sambuc 
test_mm_com_epu8(__m128i a,__m128i b)238*f4a2713aSLionel Sambuc __m128i test_mm_com_epu8(__m128i a, __m128i b) {
239*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpcomub
240*f4a2713aSLionel Sambuc   return _mm_com_epu8(a, b, 0);
241*f4a2713aSLionel Sambuc }
242*f4a2713aSLionel Sambuc 
test_mm_com_epu16(__m128i a,__m128i b)243*f4a2713aSLionel Sambuc __m128i test_mm_com_epu16(__m128i a, __m128i b) {
244*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpcomuw
245*f4a2713aSLionel Sambuc   return _mm_com_epu16(a, b, 0);
246*f4a2713aSLionel Sambuc }
247*f4a2713aSLionel Sambuc 
test_mm_com_epu32(__m128i a,__m128i b)248*f4a2713aSLionel Sambuc __m128i test_mm_com_epu32(__m128i a, __m128i b) {
249*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpcomud
250*f4a2713aSLionel Sambuc   return _mm_com_epu32(a, b, 0);
251*f4a2713aSLionel Sambuc }
252*f4a2713aSLionel Sambuc 
test_mm_com_epu64(__m128i a,__m128i b)253*f4a2713aSLionel Sambuc __m128i test_mm_com_epu64(__m128i a, __m128i b) {
254*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpcomuq
255*f4a2713aSLionel Sambuc   return _mm_com_epu64(a, b, 0);
256*f4a2713aSLionel Sambuc }
257*f4a2713aSLionel Sambuc 
test_mm_com_epi8(__m128i a,__m128i b)258*f4a2713aSLionel Sambuc __m128i test_mm_com_epi8(__m128i a, __m128i b) {
259*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpcomb
260*f4a2713aSLionel Sambuc   return _mm_com_epi8(a, b, 0);
261*f4a2713aSLionel Sambuc }
262*f4a2713aSLionel Sambuc 
test_mm_com_epi16(__m128i a,__m128i b)263*f4a2713aSLionel Sambuc __m128i test_mm_com_epi16(__m128i a, __m128i b) {
264*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpcomw
265*f4a2713aSLionel Sambuc   return _mm_com_epi16(a, b, 0);
266*f4a2713aSLionel Sambuc }
267*f4a2713aSLionel Sambuc 
test_mm_com_epi32(__m128i a,__m128i b)268*f4a2713aSLionel Sambuc __m128i test_mm_com_epi32(__m128i a, __m128i b) {
269*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpcomd
270*f4a2713aSLionel Sambuc   return _mm_com_epi32(a, b, 0);
271*f4a2713aSLionel Sambuc }
272*f4a2713aSLionel Sambuc 
test_mm_com_epi64(__m128i a,__m128i b)273*f4a2713aSLionel Sambuc __m128i test_mm_com_epi64(__m128i a, __m128i b) {
274*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpcomq
275*f4a2713aSLionel Sambuc   return _mm_com_epi64(a, b, 0);
276*f4a2713aSLionel Sambuc }
277*f4a2713aSLionel Sambuc 
test_mm_permute2_pd(__m128d a,__m128d b,__m128i c)278*f4a2713aSLionel Sambuc __m128d test_mm_permute2_pd(__m128d a, __m128d b, __m128i c) {
279*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpermil2pd
280*f4a2713aSLionel Sambuc   return _mm_permute2_pd(a, b, c, 0);
281*f4a2713aSLionel Sambuc }
282*f4a2713aSLionel Sambuc 
test_mm256_permute2_pd(__m256d a,__m256d b,__m256i c)283*f4a2713aSLionel Sambuc __m256d test_mm256_permute2_pd(__m256d a, __m256d b, __m256i c) {
284*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpermil2pd.256
285*f4a2713aSLionel Sambuc   return _mm256_permute2_pd(a, b, c, 0);
286*f4a2713aSLionel Sambuc }
287*f4a2713aSLionel Sambuc 
test_mm_permute2_ps(__m128 a,__m128 b,__m128i c)288*f4a2713aSLionel Sambuc __m128 test_mm_permute2_ps(__m128 a, __m128 b, __m128i c) {
289*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpermil2ps
290*f4a2713aSLionel Sambuc   return _mm_permute2_ps(a, b, c, 0);
291*f4a2713aSLionel Sambuc }
292*f4a2713aSLionel Sambuc 
test_mm256_permute2_ps(__m256 a,__m256 b,__m256i c)293*f4a2713aSLionel Sambuc __m256 test_mm256_permute2_ps(__m256 a, __m256 b, __m256i c) {
294*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vpermil2ps.256
295*f4a2713aSLionel Sambuc   return _mm256_permute2_ps(a, b, c, 0);
296*f4a2713aSLionel Sambuc }
297*f4a2713aSLionel Sambuc 
test_mm_frcz_ss(__m128 a)298*f4a2713aSLionel Sambuc __m128 test_mm_frcz_ss(__m128 a) {
299*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vfrcz.ss
300*f4a2713aSLionel Sambuc   return _mm_frcz_ss(a);
301*f4a2713aSLionel Sambuc }
302*f4a2713aSLionel Sambuc 
test_mm_frcz_sd(__m128d a)303*f4a2713aSLionel Sambuc __m128d test_mm_frcz_sd(__m128d a) {
304*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vfrcz.sd
305*f4a2713aSLionel Sambuc   return _mm_frcz_sd(a);
306*f4a2713aSLionel Sambuc }
307*f4a2713aSLionel Sambuc 
test_mm_frcz_ps(__m128 a)308*f4a2713aSLionel Sambuc __m128 test_mm_frcz_ps(__m128 a) {
309*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vfrcz.ps
310*f4a2713aSLionel Sambuc   return _mm_frcz_ps(a);
311*f4a2713aSLionel Sambuc }
312*f4a2713aSLionel Sambuc 
test_mm_frcz_pd(__m128d a)313*f4a2713aSLionel Sambuc __m128d test_mm_frcz_pd(__m128d a) {
314*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vfrcz.pd
315*f4a2713aSLionel Sambuc   return _mm_frcz_pd(a);
316*f4a2713aSLionel Sambuc }
317*f4a2713aSLionel Sambuc 
test_mm256_frcz_ps(__m256 a)318*f4a2713aSLionel Sambuc __m256 test_mm256_frcz_ps(__m256 a) {
319*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vfrcz.ps.256
320*f4a2713aSLionel Sambuc   return _mm256_frcz_ps(a);
321*f4a2713aSLionel Sambuc }
322*f4a2713aSLionel Sambuc 
test_mm256_frcz_pd(__m256d a)323*f4a2713aSLionel Sambuc __m256d test_mm256_frcz_pd(__m256d a) {
324*f4a2713aSLionel Sambuc   // CHECK: @llvm.x86.xop.vfrcz.pd.256
325*f4a2713aSLionel Sambuc   return _mm256_frcz_pd(a);
326*f4a2713aSLionel Sambuc }
327