xref: /aosp_15_r20/external/clang/test/CodeGen/avx512f-builtins.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512f -emit-llvm -o - -Werror | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li // Don't include mm_malloc.h, it's system specific.
4*67e74705SXin Li #define __MM_MALLOC_H
5*67e74705SXin Li 
6*67e74705SXin Li #include <immintrin.h>
7*67e74705SXin Li 
test_mm512_sqrt_pd(__m512d a)8*67e74705SXin Li __m512d test_mm512_sqrt_pd(__m512d a)
9*67e74705SXin Li {
10*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sqrt_pd
11*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
12*67e74705SXin Li   return _mm512_sqrt_pd(a);
13*67e74705SXin Li }
14*67e74705SXin Li 
test_mm512_mask_sqrt_pd(__m512d __W,__mmask8 __U,__m512d __A)15*67e74705SXin Li __m512d test_mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)
16*67e74705SXin Li {
17*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sqrt_pd
18*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
19*67e74705SXin Li   return _mm512_mask_sqrt_pd (__W,__U,__A);
20*67e74705SXin Li }
21*67e74705SXin Li 
test_mm512_maskz_sqrt_pd(__mmask8 __U,__m512d __A)22*67e74705SXin Li __m512d test_mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
23*67e74705SXin Li {
24*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sqrt_pd
25*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
26*67e74705SXin Li   return _mm512_maskz_sqrt_pd (__U,__A);
27*67e74705SXin Li }
28*67e74705SXin Li 
test_mm512_mask_sqrt_round_pd(__m512d __W,__mmask8 __U,__m512d __A)29*67e74705SXin Li __m512d test_mm512_mask_sqrt_round_pd(__m512d __W,__mmask8 __U,__m512d __A)
30*67e74705SXin Li {
31*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sqrt_round_pd
32*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
33*67e74705SXin Li   return _mm512_mask_sqrt_round_pd(__W,__U,__A,_MM_FROUND_CUR_DIRECTION);
34*67e74705SXin Li }
35*67e74705SXin Li 
test_mm512_maskz_sqrt_round_pd(__mmask8 __U,__m512d __A)36*67e74705SXin Li __m512d test_mm512_maskz_sqrt_round_pd(__mmask8 __U,__m512d __A)
37*67e74705SXin Li {
38*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sqrt_round_pd
39*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
40*67e74705SXin Li   return _mm512_maskz_sqrt_round_pd(__U,__A,_MM_FROUND_CUR_DIRECTION);
41*67e74705SXin Li }
42*67e74705SXin Li 
test_mm512_sqrt_round_pd(__m512d __A)43*67e74705SXin Li __m512d test_mm512_sqrt_round_pd(__m512d __A)
44*67e74705SXin Li {
45*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sqrt_round_pd
46*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
47*67e74705SXin Li   return _mm512_sqrt_round_pd(__A,_MM_FROUND_CUR_DIRECTION);
48*67e74705SXin Li }
49*67e74705SXin Li 
test_mm512_sqrt_ps(__m512 a)50*67e74705SXin Li __m512 test_mm512_sqrt_ps(__m512 a)
51*67e74705SXin Li {
52*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sqrt_ps
53*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
54*67e74705SXin Li   return _mm512_sqrt_ps(a);
55*67e74705SXin Li }
56*67e74705SXin Li 
test_mm512_mask_sqrt_ps(__m512 __W,__mmask16 __U,__m512 __A)57*67e74705SXin Li __m512 test_mm512_mask_sqrt_ps(__m512 __W, __mmask16 __U, __m512 __A)
58*67e74705SXin Li {
59*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sqrt_ps
60*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
61*67e74705SXin Li   return _mm512_mask_sqrt_ps( __W, __U, __A);
62*67e74705SXin Li }
63*67e74705SXin Li 
test_mm512_maskz_sqrt_ps(__mmask16 __U,__m512 __A)64*67e74705SXin Li __m512 test_mm512_maskz_sqrt_ps( __mmask16 __U, __m512 __A)
65*67e74705SXin Li {
66*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sqrt_ps
67*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
68*67e74705SXin Li   return _mm512_maskz_sqrt_ps(__U ,__A);
69*67e74705SXin Li }
70*67e74705SXin Li 
test_mm512_mask_sqrt_round_ps(__m512 __W,__mmask16 __U,__m512 __A)71*67e74705SXin Li __m512 test_mm512_mask_sqrt_round_ps(__m512 __W,__mmask16 __U,__m512 __A)
72*67e74705SXin Li {
73*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sqrt_round_ps
74*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
75*67e74705SXin Li   return _mm512_mask_sqrt_round_ps(__W,__U,__A,_MM_FROUND_CUR_DIRECTION);
76*67e74705SXin Li }
77*67e74705SXin Li 
test_mm512_maskz_sqrt_round_ps(__mmask16 __U,__m512 __A)78*67e74705SXin Li __m512 test_mm512_maskz_sqrt_round_ps(__mmask16 __U,__m512 __A)
79*67e74705SXin Li {
80*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sqrt_round_ps
81*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
82*67e74705SXin Li   return _mm512_maskz_sqrt_round_ps(__U,__A,_MM_FROUND_CUR_DIRECTION);
83*67e74705SXin Li }
84*67e74705SXin Li 
test_mm512_sqrt_round_ps(__m512 __A)85*67e74705SXin Li __m512 test_mm512_sqrt_round_ps(__m512 __A)
86*67e74705SXin Li {
87*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sqrt_round_ps
88*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
89*67e74705SXin Li   return _mm512_sqrt_round_ps(__A,_MM_FROUND_CUR_DIRECTION);
90*67e74705SXin Li }
91*67e74705SXin Li 
test_mm512_rsqrt14_pd(__m512d a)92*67e74705SXin Li __m512d test_mm512_rsqrt14_pd(__m512d a)
93*67e74705SXin Li {
94*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rsqrt14_pd
95*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
96*67e74705SXin Li   return _mm512_rsqrt14_pd(a);
97*67e74705SXin Li }
98*67e74705SXin Li 
test_mm512_mask_rsqrt14_pd(__m512d __W,__mmask8 __U,__m512d __A)99*67e74705SXin Li __m512d test_mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A)
100*67e74705SXin Li {
101*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rsqrt14_pd
102*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
103*67e74705SXin Li   return _mm512_mask_rsqrt14_pd (__W,__U,__A);
104*67e74705SXin Li }
105*67e74705SXin Li 
test_mm512_maskz_rsqrt14_pd(__mmask8 __U,__m512d __A)106*67e74705SXin Li __m512d test_mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A)
107*67e74705SXin Li {
108*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rsqrt14_pd
109*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
110*67e74705SXin Li   return _mm512_maskz_rsqrt14_pd (__U,__A);
111*67e74705SXin Li }
112*67e74705SXin Li 
test_mm512_rsqrt14_ps(__m512 a)113*67e74705SXin Li __m512 test_mm512_rsqrt14_ps(__m512 a)
114*67e74705SXin Li {
115*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rsqrt14_ps
116*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
117*67e74705SXin Li   return _mm512_rsqrt14_ps(a);
118*67e74705SXin Li }
119*67e74705SXin Li 
test_mm512_mask_rsqrt14_ps(__m512 __W,__mmask16 __U,__m512 __A)120*67e74705SXin Li __m512 test_mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A)
121*67e74705SXin Li {
122*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rsqrt14_ps
123*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
124*67e74705SXin Li   return _mm512_mask_rsqrt14_ps (__W,__U,__A);
125*67e74705SXin Li }
126*67e74705SXin Li 
test_mm512_maskz_rsqrt14_ps(__mmask16 __U,__m512 __A)127*67e74705SXin Li __m512 test_mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A)
128*67e74705SXin Li {
129*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rsqrt14_ps
130*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
131*67e74705SXin Li   return _mm512_maskz_rsqrt14_ps (__U,__A);
132*67e74705SXin Li }
133*67e74705SXin Li 
test_mm512_add_ps(__m512 a,__m512 b)134*67e74705SXin Li __m512 test_mm512_add_ps(__m512 a, __m512 b)
135*67e74705SXin Li {
136*67e74705SXin Li   // CHECK-LABEL: @test_mm512_add_ps
137*67e74705SXin Li   // CHECK: fadd <16 x float>
138*67e74705SXin Li   return _mm512_add_ps(a, b);
139*67e74705SXin Li }
140*67e74705SXin Li 
test_mm512_add_pd(__m512d a,__m512d b)141*67e74705SXin Li __m512d test_mm512_add_pd(__m512d a, __m512d b)
142*67e74705SXin Li {
143*67e74705SXin Li   // CHECK-LABEL: @test_mm512_add_pd
144*67e74705SXin Li   // CHECK: fadd <8 x double>
145*67e74705SXin Li   return _mm512_add_pd(a, b);
146*67e74705SXin Li }
147*67e74705SXin Li 
test_mm512_mul_ps(__m512 a,__m512 b)148*67e74705SXin Li __m512 test_mm512_mul_ps(__m512 a, __m512 b)
149*67e74705SXin Li {
150*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mul_ps
151*67e74705SXin Li   // CHECK: fmul <16 x float>
152*67e74705SXin Li   return _mm512_mul_ps(a, b);
153*67e74705SXin Li }
154*67e74705SXin Li 
test_mm512_mul_pd(__m512d a,__m512d b)155*67e74705SXin Li __m512d test_mm512_mul_pd(__m512d a, __m512d b)
156*67e74705SXin Li {
157*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mul_pd
158*67e74705SXin Li   // CHECK: fmul <8 x double>
159*67e74705SXin Li   return _mm512_mul_pd(a, b);
160*67e74705SXin Li }
161*67e74705SXin Li 
test_mm512_storeu_si512(void * __P,__m512i __A)162*67e74705SXin Li void test_mm512_storeu_si512 (void *__P, __m512i __A)
163*67e74705SXin Li {
164*67e74705SXin Li   // CHECK-LABEL: @test_mm512_storeu_si512
165*67e74705SXin Li   // CHECK: store <16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, align 1{{$}}
166*67e74705SXin Li   // CHECK-NEXT: ret void
167*67e74705SXin Li   _mm512_storeu_si512 ( __P,__A);
168*67e74705SXin Li }
169*67e74705SXin Li 
test_mm512_storeu_ps(void * p,__m512 a)170*67e74705SXin Li void test_mm512_storeu_ps(void *p, __m512 a)
171*67e74705SXin Li {
172*67e74705SXin Li   // CHECK-LABEL: @test_mm512_storeu_ps
173*67e74705SXin Li   // CHECK: store <16 x float> %{{.*}}, <16 x float>* %{{.*}}, align 1{{$}}
174*67e74705SXin Li   // CHECK-NEXT: ret void
175*67e74705SXin Li   _mm512_storeu_ps(p, a);
176*67e74705SXin Li }
177*67e74705SXin Li 
test_mm512_storeu_pd(void * p,__m512d a)178*67e74705SXin Li void test_mm512_storeu_pd(void *p, __m512d a)
179*67e74705SXin Li {
180*67e74705SXin Li   // CHECK-LABEL: @test_mm512_storeu_pd
181*67e74705SXin Li   // CHECK: store <8 x double> %{{.*}}, <8 x double>* %{{.*}}, align 1{{$}}
182*67e74705SXin Li   // CHECK-NEXT: ret void
183*67e74705SXin Li   _mm512_storeu_pd(p, a);
184*67e74705SXin Li }
185*67e74705SXin Li 
test_mm512_mask_store_ps(void * p,__m512 a,__mmask16 m)186*67e74705SXin Li void test_mm512_mask_store_ps(void *p, __m512 a, __mmask16 m)
187*67e74705SXin Li {
188*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_store_ps
189*67e74705SXin Li   // CHECK: @llvm.masked.store.v16f32.p0v16f32(<16 x float> %{{.*}}, <16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}})
190*67e74705SXin Li   _mm512_mask_store_ps(p, m, a);
191*67e74705SXin Li }
192*67e74705SXin Li 
test_mm512_store_si512(void * __P,__m512i __A)193*67e74705SXin Li void test_mm512_store_si512 (void *__P, __m512i __A)
194*67e74705SXin Li {
195*67e74705SXin Li   // CHECK-LABEL: @test_mm512_store_si512
196*67e74705SXin Li   // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
197*67e74705SXin Li   // CHECK: [[SI512_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
198*67e74705SXin Li   // CHECK: bitcast i8* [[SI512_3]] to <8 x i64>*
199*67e74705SXin Li   // CHECK: store <8 x i64>
200*67e74705SXin Li   _mm512_store_si512 ( __P,__A);
201*67e74705SXin Li }
202*67e74705SXin Li 
test_mm512_store_epi32(void * __P,__m512i __A)203*67e74705SXin Li void test_mm512_store_epi32 (void *__P, __m512i __A)
204*67e74705SXin Li {
205*67e74705SXin Li   // CHECK-LABEL: @test_mm512_store_epi32
206*67e74705SXin Li   // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
207*67e74705SXin Li   // CHECK: [[Si32_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
208*67e74705SXin Li   // CHECK: bitcast i8* [[Si32_3]] to <8 x i64>*
209*67e74705SXin Li   // CHECK: store <8 x i64>
210*67e74705SXin Li   _mm512_store_epi32 ( __P,__A);
211*67e74705SXin Li }
212*67e74705SXin Li 
test_mm512_store_epi64(void * __P,__m512i __A)213*67e74705SXin Li void test_mm512_store_epi64 (void *__P, __m512i __A)
214*67e74705SXin Li {
215*67e74705SXin Li   // CHECK-LABEL: @test_mm512_store_epi64
216*67e74705SXin Li   // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
217*67e74705SXin Li   // CHECK: [[SI64_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
218*67e74705SXin Li   // CHECK: bitcast i8* [[SI64_3]] to <8 x i64>*
219*67e74705SXin Li   // CHECK: store <8 x i64>
220*67e74705SXin Li   _mm512_store_epi64 ( __P,__A);
221*67e74705SXin Li }
222*67e74705SXin Li 
test_mm512_store_ps(void * p,__m512 a)223*67e74705SXin Li void test_mm512_store_ps(void *p, __m512 a)
224*67e74705SXin Li {
225*67e74705SXin Li   // CHECK-LABEL: @test_mm512_store_ps
226*67e74705SXin Li   // CHECK: store <16 x float>
227*67e74705SXin Li   _mm512_store_ps(p, a);
228*67e74705SXin Li }
229*67e74705SXin Li 
test_mm512_store_pd(void * p,__m512d a)230*67e74705SXin Li void test_mm512_store_pd(void *p, __m512d a)
231*67e74705SXin Li {
232*67e74705SXin Li   // CHECK-LABEL: @test_mm512_store_pd
233*67e74705SXin Li   // CHECK: store <8 x double>
234*67e74705SXin Li   _mm512_store_pd(p, a);
235*67e74705SXin Li }
236*67e74705SXin Li 
test_mm512_mask_store_pd(void * p,__m512d a,__mmask8 m)237*67e74705SXin Li void test_mm512_mask_store_pd(void *p, __m512d a, __mmask8 m)
238*67e74705SXin Li {
239*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_store_pd
240*67e74705SXin Li   // CHECK: @llvm.masked.store.v8f64.p0v8f64(<8 x double> %{{.*}}, <8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}})
241*67e74705SXin Li   _mm512_mask_store_pd(p, m, a);
242*67e74705SXin Li }
243*67e74705SXin Li 
test_mm512_mask_storeu_epi32(void * __P,__mmask16 __U,__m512i __A)244*67e74705SXin Li void test_mm512_mask_storeu_epi32(void *__P, __mmask16 __U, __m512i __A) {
245*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_storeu_epi32
246*67e74705SXin Li   // CHECK: @llvm.masked.store.v16i32.p0v16i32(<16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, i32 1, <16 x i1> %{{.*}})
247*67e74705SXin Li   return _mm512_mask_storeu_epi32(__P, __U, __A);
248*67e74705SXin Li }
249*67e74705SXin Li 
test_mm512_mask_storeu_epi64(void * __P,__mmask8 __U,__m512i __A)250*67e74705SXin Li void test_mm512_mask_storeu_epi64(void *__P, __mmask8 __U, __m512i __A) {
251*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_storeu_epi64
252*67e74705SXin Li   // CHECK: @llvm.masked.store.v8i64.p0v8i64(<8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
253*67e74705SXin Li   return _mm512_mask_storeu_epi64(__P, __U, __A);
254*67e74705SXin Li }
255*67e74705SXin Li 
test_mm512_loadu_si512(void * __P)256*67e74705SXin Li __m512i test_mm512_loadu_si512 (void *__P)
257*67e74705SXin Li {
258*67e74705SXin Li   // CHECK-LABEL: @test_mm512_loadu_si512
259*67e74705SXin Li   // CHECK: load <16 x i32>, <16 x i32>* %{{.*}}, align 1{{$}}
260*67e74705SXin Li   return _mm512_loadu_si512 ( __P);
261*67e74705SXin Li }
262*67e74705SXin Li 
test_mm512_mask_loadu_epi32(__m512i __W,__mmask16 __U,void * __P)263*67e74705SXin Li __m512i test_mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void *__P)
264*67e74705SXin Li {
265*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_loadu_epi32
266*67e74705SXin Li   // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
267*67e74705SXin Li   return _mm512_mask_loadu_epi32 (__W,__U, __P);
268*67e74705SXin Li }
269*67e74705SXin Li 
test_mm512_mask_loadu_epi64(__m512i __W,__mmask8 __U,void * __P)270*67e74705SXin Li __m512i test_mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void *__P)
271*67e74705SXin Li {
272*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_loadu_epi64
273*67e74705SXin Li   // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
274*67e74705SXin Li   return _mm512_mask_loadu_epi64 (__W,__U, __P);
275*67e74705SXin Li }
276*67e74705SXin Li 
test_mm512_loadu_ps(void * p)277*67e74705SXin Li __m512 test_mm512_loadu_ps(void *p)
278*67e74705SXin Li {
279*67e74705SXin Li   // CHECK-LABEL: @test_mm512_loadu_ps
280*67e74705SXin Li   // CHECK: load <16 x float>, <16 x float>* {{.*}}, align 1{{$}}
281*67e74705SXin Li   return _mm512_loadu_ps(p);
282*67e74705SXin Li }
283*67e74705SXin Li 
test_mm512_mask_loadu_ps(__m512 __W,__mmask16 __U,void * __P)284*67e74705SXin Li __m512 test_mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void *__P)
285*67e74705SXin Li {
286*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_loadu_ps
287*67e74705SXin Li   // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
288*67e74705SXin Li   return _mm512_mask_loadu_ps (__W,__U, __P);
289*67e74705SXin Li }
290*67e74705SXin Li 
test_mm512_loadu_pd(void * p)291*67e74705SXin Li __m512d test_mm512_loadu_pd(void *p)
292*67e74705SXin Li {
293*67e74705SXin Li   // CHECK-LABEL: @test_mm512_loadu_pd
294*67e74705SXin Li   // CHECK: load <8 x double>, <8 x double>* {{.*}}, align 1{{$}}
295*67e74705SXin Li   return _mm512_loadu_pd(p);
296*67e74705SXin Li }
297*67e74705SXin Li 
test_mm512_mask_loadu_pd(__m512d __W,__mmask8 __U,void * __P)298*67e74705SXin Li __m512d test_mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void *__P)
299*67e74705SXin Li {
300*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_loadu_pd
301*67e74705SXin Li   // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
302*67e74705SXin Li   return _mm512_mask_loadu_pd (__W,__U, __P);
303*67e74705SXin Li }
304*67e74705SXin Li 
test_mm512_load_si512(void * __P)305*67e74705SXin Li __m512i test_mm512_load_si512 (void *__P)
306*67e74705SXin Li {
307*67e74705SXin Li   // CHECK-LABEL: @test_mm512_load_si512
308*67e74705SXin Li   // CHECK: [[LI512_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
309*67e74705SXin Li   // CHECK: [[LI512_2:%.+]] = bitcast i8* [[LI512_1]] to <8 x i64>*
310*67e74705SXin Li   // CHECK: load <8 x i64>, <8 x i64>* [[LI512_2]], align 64
311*67e74705SXin Li   return _mm512_load_si512 ( __P);
312*67e74705SXin Li }
313*67e74705SXin Li 
test_mm512_load_epi32(void * __P)314*67e74705SXin Li __m512i test_mm512_load_epi32 (void *__P)
315*67e74705SXin Li {
316*67e74705SXin Li   // CHECK-LABEL: @test_mm512_load_epi32
317*67e74705SXin Li   // CHECK: [[LI32_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
318*67e74705SXin Li   // CHECK: [[LI32_2:%.+]] = bitcast i8* [[LI32_1]] to <8 x i64>*
319*67e74705SXin Li   // CHECK: load <8 x i64>, <8 x i64>* [[LI32_2]], align 64
320*67e74705SXin Li   return _mm512_load_epi32 ( __P);
321*67e74705SXin Li }
322*67e74705SXin Li 
test_mm512_load_epi64(void * __P)323*67e74705SXin Li __m512i test_mm512_load_epi64 (void *__P)
324*67e74705SXin Li {
325*67e74705SXin Li   // CHECK-LABEL: @test_mm512_load_epi64
326*67e74705SXin Li   // CHECK: [[LI64_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
327*67e74705SXin Li   // CHECK: [[LI64_2:%.+]] = bitcast i8* [[LI64_1]] to <8 x i64>*
328*67e74705SXin Li   // CHECK: load <8 x i64>, <8 x i64>* [[LI64_2]], align 64
329*67e74705SXin Li   return _mm512_load_epi64 ( __P);
330*67e74705SXin Li }
331*67e74705SXin Li 
test_mm512_load_ps(void * p)332*67e74705SXin Li __m512 test_mm512_load_ps(void *p)
333*67e74705SXin Li {
334*67e74705SXin Li   // CHECK-LABEL: @test_mm512_load_ps
335*67e74705SXin Li   // CHECK: load <16 x float>, <16 x float>* %{{.*}}, align 64
336*67e74705SXin Li   return _mm512_load_ps(p);
337*67e74705SXin Li }
338*67e74705SXin Li 
test_mm512_mask_load_ps(__m512 __W,__mmask16 __U,void * __P)339*67e74705SXin Li __m512 test_mm512_mask_load_ps (__m512 __W, __mmask16 __U, void *__P)
340*67e74705SXin Li {
341*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_load_ps
342*67e74705SXin Li   // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
343*67e74705SXin Li   return _mm512_mask_load_ps (__W,__U, __P);
344*67e74705SXin Li }
345*67e74705SXin Li 
test_mm512_maskz_load_ps(__mmask16 __U,void * __P)346*67e74705SXin Li __m512 test_mm512_maskz_load_ps(__mmask16 __U, void *__P)
347*67e74705SXin Li {
348*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_load_ps
349*67e74705SXin Li   // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
350*67e74705SXin Li   return _mm512_maskz_load_ps(__U, __P);
351*67e74705SXin Li }
352*67e74705SXin Li 
test_mm512_load_pd(void * p)353*67e74705SXin Li __m512d test_mm512_load_pd(void *p)
354*67e74705SXin Li {
355*67e74705SXin Li   // CHECK-LABEL: @test_mm512_load_pd
356*67e74705SXin Li   // CHECK: load <8 x double>, <8 x double>* %{{.*}}, align 64
357*67e74705SXin Li   return _mm512_load_pd(p);
358*67e74705SXin Li }
359*67e74705SXin Li 
test_mm512_mask_load_pd(__m512d __W,__mmask8 __U,void * __P)360*67e74705SXin Li __m512d test_mm512_mask_load_pd (__m512d __W, __mmask8 __U, void *__P)
361*67e74705SXin Li {
362*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_load_pd
363*67e74705SXin Li   // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
364*67e74705SXin Li   return _mm512_mask_load_pd (__W,__U, __P);
365*67e74705SXin Li }
366*67e74705SXin Li 
test_mm512_maskz_load_pd(__mmask8 __U,void * __P)367*67e74705SXin Li __m512d test_mm512_maskz_load_pd(__mmask8 __U, void *__P)
368*67e74705SXin Li {
369*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_load_pd
370*67e74705SXin Li   // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
371*67e74705SXin Li   return _mm512_maskz_load_pd(__U, __P);
372*67e74705SXin Li }
373*67e74705SXin Li 
test_mm512_set1_pd(double d)374*67e74705SXin Li __m512d test_mm512_set1_pd(double d)
375*67e74705SXin Li {
376*67e74705SXin Li   // CHECK-LABEL: @test_mm512_set1_pd
377*67e74705SXin Li   // CHECK: insertelement <8 x double> {{.*}}, i32 0
378*67e74705SXin Li   // CHECK: insertelement <8 x double> {{.*}}, i32 1
379*67e74705SXin Li   // CHECK: insertelement <8 x double> {{.*}}, i32 2
380*67e74705SXin Li   // CHECK: insertelement <8 x double> {{.*}}, i32 3
381*67e74705SXin Li   // CHECK: insertelement <8 x double> {{.*}}, i32 4
382*67e74705SXin Li   // CHECK: insertelement <8 x double> {{.*}}, i32 5
383*67e74705SXin Li   // CHECK: insertelement <8 x double> {{.*}}, i32 6
384*67e74705SXin Li   // CHECK: insertelement <8 x double> {{.*}}, i32 7
385*67e74705SXin Li   return _mm512_set1_pd(d);
386*67e74705SXin Li }
387*67e74705SXin Li 
test_mm512_knot(__mmask16 a)388*67e74705SXin Li __mmask16 test_mm512_knot(__mmask16 a)
389*67e74705SXin Li {
390*67e74705SXin Li   // CHECK-LABEL: @test_mm512_knot
391*67e74705SXin Li   // CHECK: @llvm.x86.avx512.knot.w
392*67e74705SXin Li   return _mm512_knot(a);
393*67e74705SXin Li }
394*67e74705SXin Li 
test_mm512_alignr_epi32(__m512i a,__m512i b)395*67e74705SXin Li __m512i test_mm512_alignr_epi32(__m512i a, __m512i b)
396*67e74705SXin Li {
397*67e74705SXin Li   // CHECK-LABEL: @test_mm512_alignr_epi32
398*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.valign.d.512
399*67e74705SXin Li   return _mm512_alignr_epi32(a, b, 2);
400*67e74705SXin Li }
401*67e74705SXin Li 
test_mm512_mask_alignr_epi32(__m512i w,__mmask16 u,__m512i a,__m512i b)402*67e74705SXin Li __m512i test_mm512_mask_alignr_epi32(__m512i w, __mmask16 u, __m512i a, __m512i b)
403*67e74705SXin Li {
404*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_alignr_epi32
405*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.valign.d.512
406*67e74705SXin Li   return _mm512_mask_alignr_epi32(w, u, a, b, 2);
407*67e74705SXin Li }
408*67e74705SXin Li 
test_mm512_maskz_alignr_epi32(__mmask16 u,__m512i a,__m512i b)409*67e74705SXin Li __m512i test_mm512_maskz_alignr_epi32( __mmask16 u, __m512i a, __m512i b)
410*67e74705SXin Li {
411*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_alignr_epi32
412*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.valign.d.512
413*67e74705SXin Li   return _mm512_maskz_alignr_epi32(u, a, b, 2);
414*67e74705SXin Li }
415*67e74705SXin Li 
test_mm512_alignr_epi64(__m512i a,__m512i b)416*67e74705SXin Li __m512i test_mm512_alignr_epi64(__m512i a, __m512i b)
417*67e74705SXin Li {
418*67e74705SXin Li   // CHECK-LABEL: @test_mm512_alignr_epi64
419*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.valign.q.512
420*67e74705SXin Li   return _mm512_alignr_epi64(a, b, 2);
421*67e74705SXin Li }
422*67e74705SXin Li 
test_mm512_mask_alignr_epi64(__m512i w,__mmask8 u,__m512i a,__m512i b)423*67e74705SXin Li __m512i test_mm512_mask_alignr_epi64(__m512i w, __mmask8 u, __m512i a, __m512i b)
424*67e74705SXin Li {
425*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_alignr_epi64
426*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.valign.q.512
427*67e74705SXin Li   return _mm512_mask_alignr_epi64(w, u, a, b, 2);
428*67e74705SXin Li }
429*67e74705SXin Li 
test_mm512_maskz_alignr_epi64(__mmask8 u,__m512i a,__m512i b)430*67e74705SXin Li __m512i test_mm512_maskz_alignr_epi64( __mmask8 u, __m512i a, __m512i b)
431*67e74705SXin Li {
432*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_alignr_epi64
433*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.valign.q.512
434*67e74705SXin Li   return _mm512_maskz_alignr_epi64(u, a, b, 2);
435*67e74705SXin Li }
436*67e74705SXin Li 
test_mm512_fmadd_round_pd(__m512d __A,__m512d __B,__m512d __C)437*67e74705SXin Li __m512d test_mm512_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
438*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmadd_round_pd
439*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
440*67e74705SXin Li   return _mm512_fmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
441*67e74705SXin Li }
442*67e74705SXin Li 
test_mm512_mask_fmadd_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)443*67e74705SXin Li __m512d test_mm512_mask_fmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
444*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmadd_round_pd
445*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
446*67e74705SXin Li   return _mm512_mask_fmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
447*67e74705SXin Li }
test_mm512_mask3_fmadd_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)448*67e74705SXin Li __m512d test_mm512_mask3_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
449*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmadd_round_pd
450*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
451*67e74705SXin Li   return _mm512_mask3_fmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
452*67e74705SXin Li }
test_mm512_maskz_fmadd_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)453*67e74705SXin Li __m512d test_mm512_maskz_fmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
454*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmadd_round_pd
455*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
456*67e74705SXin Li   return _mm512_maskz_fmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
457*67e74705SXin Li }
test_mm512_fmsub_round_pd(__m512d __A,__m512d __B,__m512d __C)458*67e74705SXin Li __m512d test_mm512_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
459*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmsub_round_pd
460*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
461*67e74705SXin Li   return _mm512_fmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
462*67e74705SXin Li }
test_mm512_mask_fmsub_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)463*67e74705SXin Li __m512d test_mm512_mask_fmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
464*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmsub_round_pd
465*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
466*67e74705SXin Li   return _mm512_mask_fmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
467*67e74705SXin Li }
test_mm512_maskz_fmsub_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)468*67e74705SXin Li __m512d test_mm512_maskz_fmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
469*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmsub_round_pd
470*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
471*67e74705SXin Li   return _mm512_maskz_fmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
472*67e74705SXin Li }
test_mm512_fnmadd_round_pd(__m512d __A,__m512d __B,__m512d __C)473*67e74705SXin Li __m512d test_mm512_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
474*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fnmadd_round_pd
475*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
476*67e74705SXin Li   return _mm512_fnmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
477*67e74705SXin Li }
test_mm512_mask3_fnmadd_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)478*67e74705SXin Li __m512d test_mm512_mask3_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
479*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_pd
480*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
481*67e74705SXin Li   return _mm512_mask3_fnmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
482*67e74705SXin Li }
test_mm512_maskz_fnmadd_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)483*67e74705SXin Li __m512d test_mm512_maskz_fnmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
484*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_pd
485*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
486*67e74705SXin Li   return _mm512_maskz_fnmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
487*67e74705SXin Li }
test_mm512_fnmsub_round_pd(__m512d __A,__m512d __B,__m512d __C)488*67e74705SXin Li __m512d test_mm512_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
489*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fnmsub_round_pd
490*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
491*67e74705SXin Li   return _mm512_fnmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
492*67e74705SXin Li }
test_mm512_maskz_fnmsub_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)493*67e74705SXin Li __m512d test_mm512_maskz_fnmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
494*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_pd
495*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
496*67e74705SXin Li   return _mm512_maskz_fnmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
497*67e74705SXin Li }
test_mm512_fmadd_pd(__m512d __A,__m512d __B,__m512d __C)498*67e74705SXin Li __m512d test_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
499*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmadd_pd
500*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
501*67e74705SXin Li   return _mm512_fmadd_pd(__A, __B, __C);
502*67e74705SXin Li }
test_mm512_mask_fmadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)503*67e74705SXin Li __m512d test_mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
504*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmadd_pd
505*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
506*67e74705SXin Li   return _mm512_mask_fmadd_pd(__A, __U, __B, __C);
507*67e74705SXin Li }
test_mm512_mask3_fmadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)508*67e74705SXin Li __m512d test_mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
509*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmadd_pd
510*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
511*67e74705SXin Li   return _mm512_mask3_fmadd_pd(__A, __B, __C, __U);
512*67e74705SXin Li }
test_mm512_maskz_fmadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)513*67e74705SXin Li __m512d test_mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
514*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmadd_pd
515*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
516*67e74705SXin Li   return _mm512_maskz_fmadd_pd(__U, __A, __B, __C);
517*67e74705SXin Li }
test_mm512_fmsub_pd(__m512d __A,__m512d __B,__m512d __C)518*67e74705SXin Li __m512d test_mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
519*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmsub_pd
520*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
521*67e74705SXin Li   return _mm512_fmsub_pd(__A, __B, __C);
522*67e74705SXin Li }
test_mm512_mask_fmsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)523*67e74705SXin Li __m512d test_mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
524*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmsub_pd
525*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
526*67e74705SXin Li   return _mm512_mask_fmsub_pd(__A, __U, __B, __C);
527*67e74705SXin Li }
test_mm512_maskz_fmsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)528*67e74705SXin Li __m512d test_mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
529*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmsub_pd
530*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
531*67e74705SXin Li   return _mm512_maskz_fmsub_pd(__U, __A, __B, __C);
532*67e74705SXin Li }
test_mm512_fnmadd_pd(__m512d __A,__m512d __B,__m512d __C)533*67e74705SXin Li __m512d test_mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
534*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fnmadd_pd
535*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
536*67e74705SXin Li   return _mm512_fnmadd_pd(__A, __B, __C);
537*67e74705SXin Li }
test_mm512_mask3_fnmadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)538*67e74705SXin Li __m512d test_mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
539*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fnmadd_pd
540*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
541*67e74705SXin Li   return _mm512_mask3_fnmadd_pd(__A, __B, __C, __U);
542*67e74705SXin Li }
test_mm512_maskz_fnmadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)543*67e74705SXin Li __m512d test_mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
544*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fnmadd_pd
545*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
546*67e74705SXin Li   return _mm512_maskz_fnmadd_pd(__U, __A, __B, __C);
547*67e74705SXin Li }
test_mm512_fnmsub_pd(__m512d __A,__m512d __B,__m512d __C)548*67e74705SXin Li __m512d test_mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
549*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fnmsub_pd
550*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
551*67e74705SXin Li   return _mm512_fnmsub_pd(__A, __B, __C);
552*67e74705SXin Li }
test_mm512_maskz_fnmsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)553*67e74705SXin Li __m512d test_mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
554*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fnmsub_pd
555*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
556*67e74705SXin Li   return _mm512_maskz_fnmsub_pd(__U, __A, __B, __C);
557*67e74705SXin Li }
test_mm512_fmadd_round_ps(__m512 __A,__m512 __B,__m512 __C)558*67e74705SXin Li __m512 test_mm512_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
559*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmadd_round_ps
560*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
561*67e74705SXin Li   return _mm512_fmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
562*67e74705SXin Li }
test_mm512_mask_fmadd_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)563*67e74705SXin Li __m512 test_mm512_mask_fmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
564*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmadd_round_ps
565*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
566*67e74705SXin Li   return _mm512_mask_fmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
567*67e74705SXin Li }
test_mm512_mask3_fmadd_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)568*67e74705SXin Li __m512 test_mm512_mask3_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
569*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmadd_round_ps
570*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
571*67e74705SXin Li   return _mm512_mask3_fmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
572*67e74705SXin Li }
test_mm512_maskz_fmadd_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)573*67e74705SXin Li __m512 test_mm512_maskz_fmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
574*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmadd_round_ps
575*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
576*67e74705SXin Li   return _mm512_maskz_fmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
577*67e74705SXin Li }
test_mm512_fmsub_round_ps(__m512 __A,__m512 __B,__m512 __C)578*67e74705SXin Li __m512 test_mm512_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
579*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmsub_round_ps
580*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
581*67e74705SXin Li   return _mm512_fmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
582*67e74705SXin Li }
test_mm512_mask_fmsub_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)583*67e74705SXin Li __m512 test_mm512_mask_fmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
584*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmsub_round_ps
585*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
586*67e74705SXin Li   return _mm512_mask_fmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
587*67e74705SXin Li }
test_mm512_maskz_fmsub_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)588*67e74705SXin Li __m512 test_mm512_maskz_fmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
589*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmsub_round_ps
590*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
591*67e74705SXin Li   return _mm512_maskz_fmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
592*67e74705SXin Li }
test_mm512_fnmadd_round_ps(__m512 __A,__m512 __B,__m512 __C)593*67e74705SXin Li __m512 test_mm512_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
594*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fnmadd_round_ps
595*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
596*67e74705SXin Li   return _mm512_fnmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
597*67e74705SXin Li }
test_mm512_mask3_fnmadd_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)598*67e74705SXin Li __m512 test_mm512_mask3_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
599*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_ps
600*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
601*67e74705SXin Li   return _mm512_mask3_fnmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
602*67e74705SXin Li }
test_mm512_maskz_fnmadd_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)603*67e74705SXin Li __m512 test_mm512_maskz_fnmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
604*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_ps
605*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
606*67e74705SXin Li   return _mm512_maskz_fnmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
607*67e74705SXin Li }
test_mm512_fnmsub_round_ps(__m512 __A,__m512 __B,__m512 __C)608*67e74705SXin Li __m512 test_mm512_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
609*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fnmsub_round_ps
610*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
611*67e74705SXin Li   return _mm512_fnmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
612*67e74705SXin Li }
test_mm512_maskz_fnmsub_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)613*67e74705SXin Li __m512 test_mm512_maskz_fnmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
614*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_ps
615*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
616*67e74705SXin Li   return _mm512_maskz_fnmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
617*67e74705SXin Li }
test_mm512_fmadd_ps(__m512 __A,__m512 __B,__m512 __C)618*67e74705SXin Li __m512 test_mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
619*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmadd_ps
620*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
621*67e74705SXin Li   return _mm512_fmadd_ps(__A, __B, __C);
622*67e74705SXin Li }
test_mm512_mask_fmadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)623*67e74705SXin Li __m512 test_mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
624*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmadd_ps
625*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
626*67e74705SXin Li   return _mm512_mask_fmadd_ps(__A, __U, __B, __C);
627*67e74705SXin Li }
test_mm512_mask3_fmadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)628*67e74705SXin Li __m512 test_mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
629*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmadd_ps
630*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
631*67e74705SXin Li   return _mm512_mask3_fmadd_ps(__A, __B, __C, __U);
632*67e74705SXin Li }
test_mm512_maskz_fmadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)633*67e74705SXin Li __m512 test_mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
634*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmadd_ps
635*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
636*67e74705SXin Li   return _mm512_maskz_fmadd_ps(__U, __A, __B, __C);
637*67e74705SXin Li }
test_mm512_fmsub_ps(__m512 __A,__m512 __B,__m512 __C)638*67e74705SXin Li __m512 test_mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
639*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmsub_ps
640*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
641*67e74705SXin Li   return _mm512_fmsub_ps(__A, __B, __C);
642*67e74705SXin Li }
test_mm512_mask_fmsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)643*67e74705SXin Li __m512 test_mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
644*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmsub_ps
645*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
646*67e74705SXin Li   return _mm512_mask_fmsub_ps(__A, __U, __B, __C);
647*67e74705SXin Li }
test_mm512_maskz_fmsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)648*67e74705SXin Li __m512 test_mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
649*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmsub_ps
650*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
651*67e74705SXin Li   return _mm512_maskz_fmsub_ps(__U, __A, __B, __C);
652*67e74705SXin Li }
test_mm512_fnmadd_ps(__m512 __A,__m512 __B,__m512 __C)653*67e74705SXin Li __m512 test_mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
654*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fnmadd_ps
655*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
656*67e74705SXin Li   return _mm512_fnmadd_ps(__A, __B, __C);
657*67e74705SXin Li }
test_mm512_mask3_fnmadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)658*67e74705SXin Li __m512 test_mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
659*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fnmadd_ps
660*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
661*67e74705SXin Li   return _mm512_mask3_fnmadd_ps(__A, __B, __C, __U);
662*67e74705SXin Li }
test_mm512_maskz_fnmadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)663*67e74705SXin Li __m512 test_mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
664*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fnmadd_ps
665*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
666*67e74705SXin Li   return _mm512_maskz_fnmadd_ps(__U, __A, __B, __C);
667*67e74705SXin Li }
test_mm512_fnmsub_ps(__m512 __A,__m512 __B,__m512 __C)668*67e74705SXin Li __m512 test_mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
669*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fnmsub_ps
670*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
671*67e74705SXin Li   return _mm512_fnmsub_ps(__A, __B, __C);
672*67e74705SXin Li }
test_mm512_maskz_fnmsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)673*67e74705SXin Li __m512 test_mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
674*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fnmsub_ps
675*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
676*67e74705SXin Li   return _mm512_maskz_fnmsub_ps(__U, __A, __B, __C);
677*67e74705SXin Li }
test_mm512_fmaddsub_round_pd(__m512d __A,__m512d __B,__m512d __C)678*67e74705SXin Li __m512d test_mm512_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
679*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmaddsub_round_pd
680*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
681*67e74705SXin Li   return _mm512_fmaddsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
682*67e74705SXin Li }
test_mm512_mask_fmaddsub_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)683*67e74705SXin Li __m512d test_mm512_mask_fmaddsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
684*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_pd
685*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
686*67e74705SXin Li   return _mm512_mask_fmaddsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
687*67e74705SXin Li }
test_mm512_mask3_fmaddsub_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)688*67e74705SXin Li __m512d test_mm512_mask3_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
689*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_pd
690*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
691*67e74705SXin Li   return _mm512_mask3_fmaddsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
692*67e74705SXin Li }
test_mm512_maskz_fmaddsub_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)693*67e74705SXin Li __m512d test_mm512_maskz_fmaddsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
694*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_pd
695*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
696*67e74705SXin Li   return _mm512_maskz_fmaddsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
697*67e74705SXin Li }
test_mm512_fmsubadd_round_pd(__m512d __A,__m512d __B,__m512d __C)698*67e74705SXin Li __m512d test_mm512_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
699*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmsubadd_round_pd
700*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
701*67e74705SXin Li   return _mm512_fmsubadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
702*67e74705SXin Li }
test_mm512_mask_fmsubadd_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)703*67e74705SXin Li __m512d test_mm512_mask_fmsubadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
704*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_pd
705*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
706*67e74705SXin Li   return _mm512_mask_fmsubadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
707*67e74705SXin Li }
test_mm512_maskz_fmsubadd_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)708*67e74705SXin Li __m512d test_mm512_maskz_fmsubadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
709*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_pd
710*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
711*67e74705SXin Li   return _mm512_maskz_fmsubadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
712*67e74705SXin Li }
test_mm512_fmaddsub_pd(__m512d __A,__m512d __B,__m512d __C)713*67e74705SXin Li __m512d test_mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C) {
714*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmaddsub_pd
715*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
716*67e74705SXin Li   return _mm512_fmaddsub_pd(__A, __B, __C);
717*67e74705SXin Li }
test_mm512_mask_fmaddsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)718*67e74705SXin Li __m512d test_mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
719*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmaddsub_pd
720*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
721*67e74705SXin Li   return _mm512_mask_fmaddsub_pd(__A, __U, __B, __C);
722*67e74705SXin Li }
test_mm512_mask3_fmaddsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)723*67e74705SXin Li __m512d test_mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
724*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_pd
725*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
726*67e74705SXin Li   return _mm512_mask3_fmaddsub_pd(__A, __B, __C, __U);
727*67e74705SXin Li }
test_mm512_maskz_fmaddsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)728*67e74705SXin Li __m512d test_mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
729*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_pd
730*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
731*67e74705SXin Li   return _mm512_maskz_fmaddsub_pd(__U, __A, __B, __C);
732*67e74705SXin Li }
test_mm512_fmsubadd_pd(__m512d __A,__m512d __B,__m512d __C)733*67e74705SXin Li __m512d test_mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C) {
734*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmsubadd_pd
735*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
736*67e74705SXin Li   return _mm512_fmsubadd_pd(__A, __B, __C);
737*67e74705SXin Li }
test_mm512_mask_fmsubadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)738*67e74705SXin Li __m512d test_mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
739*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmsubadd_pd
740*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
741*67e74705SXin Li   return _mm512_mask_fmsubadd_pd(__A, __U, __B, __C);
742*67e74705SXin Li }
test_mm512_maskz_fmsubadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)743*67e74705SXin Li __m512d test_mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
744*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_pd
745*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
746*67e74705SXin Li   return _mm512_maskz_fmsubadd_pd(__U, __A, __B, __C);
747*67e74705SXin Li }
test_mm512_fmaddsub_round_ps(__m512 __A,__m512 __B,__m512 __C)748*67e74705SXin Li __m512 test_mm512_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
749*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmaddsub_round_ps
750*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
751*67e74705SXin Li   return _mm512_fmaddsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
752*67e74705SXin Li }
test_mm512_mask_fmaddsub_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)753*67e74705SXin Li __m512 test_mm512_mask_fmaddsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
754*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_ps
755*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
756*67e74705SXin Li   return _mm512_mask_fmaddsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
757*67e74705SXin Li }
test_mm512_mask3_fmaddsub_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)758*67e74705SXin Li __m512 test_mm512_mask3_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
759*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_ps
760*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
761*67e74705SXin Li   return _mm512_mask3_fmaddsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
762*67e74705SXin Li }
test_mm512_maskz_fmaddsub_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)763*67e74705SXin Li __m512 test_mm512_maskz_fmaddsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
764*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_ps
765*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
766*67e74705SXin Li   return _mm512_maskz_fmaddsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
767*67e74705SXin Li }
test_mm512_fmsubadd_round_ps(__m512 __A,__m512 __B,__m512 __C)768*67e74705SXin Li __m512 test_mm512_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
769*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmsubadd_round_ps
770*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
771*67e74705SXin Li   return _mm512_fmsubadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
772*67e74705SXin Li }
test_mm512_mask_fmsubadd_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)773*67e74705SXin Li __m512 test_mm512_mask_fmsubadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
774*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_ps
775*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
776*67e74705SXin Li   return _mm512_mask_fmsubadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
777*67e74705SXin Li }
test_mm512_maskz_fmsubadd_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)778*67e74705SXin Li __m512 test_mm512_maskz_fmsubadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
779*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_ps
780*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
781*67e74705SXin Li   return _mm512_maskz_fmsubadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
782*67e74705SXin Li }
test_mm512_fmaddsub_ps(__m512 __A,__m512 __B,__m512 __C)783*67e74705SXin Li __m512 test_mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C) {
784*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmaddsub_ps
785*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
786*67e74705SXin Li   return _mm512_fmaddsub_ps(__A, __B, __C);
787*67e74705SXin Li }
test_mm512_mask_fmaddsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)788*67e74705SXin Li __m512 test_mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
789*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmaddsub_ps
790*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
791*67e74705SXin Li   return _mm512_mask_fmaddsub_ps(__A, __U, __B, __C);
792*67e74705SXin Li }
test_mm512_mask3_fmaddsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)793*67e74705SXin Li __m512 test_mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
794*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_ps
795*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
796*67e74705SXin Li   return _mm512_mask3_fmaddsub_ps(__A, __B, __C, __U);
797*67e74705SXin Li }
test_mm512_maskz_fmaddsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)798*67e74705SXin Li __m512 test_mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
799*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_ps
800*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
801*67e74705SXin Li   return _mm512_maskz_fmaddsub_ps(__U, __A, __B, __C);
802*67e74705SXin Li }
test_mm512_fmsubadd_ps(__m512 __A,__m512 __B,__m512 __C)803*67e74705SXin Li __m512 test_mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C) {
804*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fmsubadd_ps
805*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
806*67e74705SXin Li   return _mm512_fmsubadd_ps(__A, __B, __C);
807*67e74705SXin Li }
test_mm512_mask_fmsubadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)808*67e74705SXin Li __m512 test_mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
809*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fmsubadd_ps
810*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
811*67e74705SXin Li   return _mm512_mask_fmsubadd_ps(__A, __U, __B, __C);
812*67e74705SXin Li }
test_mm512_maskz_fmsubadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)813*67e74705SXin Li __m512 test_mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
814*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_ps
815*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
816*67e74705SXin Li   return _mm512_maskz_fmsubadd_ps(__U, __A, __B, __C);
817*67e74705SXin Li }
test_mm512_mask3_fmsub_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)818*67e74705SXin Li __m512d test_mm512_mask3_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
819*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmsub_round_pd
820*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
821*67e74705SXin Li   return _mm512_mask3_fmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
822*67e74705SXin Li }
test_mm512_mask3_fmsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)823*67e74705SXin Li __m512d test_mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
824*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmsub_pd
825*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
826*67e74705SXin Li   return _mm512_mask3_fmsub_pd(__A, __B, __C, __U);
827*67e74705SXin Li }
test_mm512_mask3_fmsub_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)828*67e74705SXin Li __m512 test_mm512_mask3_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
829*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmsub_round_ps
830*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
831*67e74705SXin Li   return _mm512_mask3_fmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
832*67e74705SXin Li }
test_mm512_mask3_fmsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)833*67e74705SXin Li __m512 test_mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
834*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmsub_ps
835*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
836*67e74705SXin Li   return _mm512_mask3_fmsub_ps(__A, __B, __C, __U);
837*67e74705SXin Li }
test_mm512_mask3_fmsubadd_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)838*67e74705SXin Li __m512d test_mm512_mask3_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
839*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_pd
840*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
841*67e74705SXin Li   return _mm512_mask3_fmsubadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
842*67e74705SXin Li }
test_mm512_mask3_fmsubadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)843*67e74705SXin Li __m512d test_mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
844*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_pd
845*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
846*67e74705SXin Li   return _mm512_mask3_fmsubadd_pd(__A, __B, __C, __U);
847*67e74705SXin Li }
test_mm512_mask3_fmsubadd_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)848*67e74705SXin Li __m512 test_mm512_mask3_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
849*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_ps
850*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
851*67e74705SXin Li   return _mm512_mask3_fmsubadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
852*67e74705SXin Li }
test_mm512_mask3_fmsubadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)853*67e74705SXin Li __m512 test_mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
854*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_ps
855*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
856*67e74705SXin Li   return _mm512_mask3_fmsubadd_ps(__A, __B, __C, __U);
857*67e74705SXin Li }
test_mm512_mask_fnmadd_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)858*67e74705SXin Li __m512d test_mm512_mask_fnmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
859*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fnmadd_round_pd
860*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
861*67e74705SXin Li   return _mm512_mask_fnmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
862*67e74705SXin Li }
test_mm512_mask_fnmadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)863*67e74705SXin Li __m512d test_mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
864*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fnmadd_pd
865*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
866*67e74705SXin Li   return _mm512_mask_fnmadd_pd(__A, __U, __B, __C);
867*67e74705SXin Li }
test_mm512_mask_fnmadd_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)868*67e74705SXin Li __m512 test_mm512_mask_fnmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
869*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fnmadd_round_ps
870*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
871*67e74705SXin Li   return _mm512_mask_fnmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
872*67e74705SXin Li }
test_mm512_mask_fnmadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)873*67e74705SXin Li __m512 test_mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
874*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fnmadd_ps
875*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
876*67e74705SXin Li   return _mm512_mask_fnmadd_ps(__A, __U, __B, __C);
877*67e74705SXin Li }
test_mm512_mask_fnmsub_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)878*67e74705SXin Li __m512d test_mm512_mask_fnmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
879*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fnmsub_round_pd
880*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
881*67e74705SXin Li   return _mm512_mask_fnmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
882*67e74705SXin Li }
test_mm512_mask3_fnmsub_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)883*67e74705SXin Li __m512d test_mm512_mask3_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
884*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_pd
885*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
886*67e74705SXin Li   return _mm512_mask3_fnmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
887*67e74705SXin Li }
test_mm512_mask_fnmsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)888*67e74705SXin Li __m512d test_mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
889*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fnmsub_pd
890*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
891*67e74705SXin Li   return _mm512_mask_fnmsub_pd(__A, __U, __B, __C);
892*67e74705SXin Li }
test_mm512_mask3_fnmsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)893*67e74705SXin Li __m512d test_mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
894*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fnmsub_pd
895*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
896*67e74705SXin Li   return _mm512_mask3_fnmsub_pd(__A, __B, __C, __U);
897*67e74705SXin Li }
test_mm512_mask_fnmsub_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)898*67e74705SXin Li __m512 test_mm512_mask_fnmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
899*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fnmsub_round_ps
900*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
901*67e74705SXin Li   return _mm512_mask_fnmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
902*67e74705SXin Li }
test_mm512_mask3_fnmsub_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)903*67e74705SXin Li __m512 test_mm512_mask3_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
904*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_ps
905*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
906*67e74705SXin Li   return _mm512_mask3_fnmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
907*67e74705SXin Li }
test_mm512_mask_fnmsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)908*67e74705SXin Li __m512 test_mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
909*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fnmsub_ps
910*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
911*67e74705SXin Li   return _mm512_mask_fnmsub_ps(__A, __U, __B, __C);
912*67e74705SXin Li }
test_mm512_mask3_fnmsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)913*67e74705SXin Li __m512 test_mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
914*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask3_fnmsub_ps
915*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
916*67e74705SXin Li   return _mm512_mask3_fnmsub_ps(__A, __B, __C, __U);
917*67e74705SXin Li }
918*67e74705SXin Li 
test_mm512_cmpeq_epi32_mask(__m512i __a,__m512i __b)919*67e74705SXin Li __mmask16 test_mm512_cmpeq_epi32_mask(__m512i __a, __m512i __b) {
920*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpeq_epi32_mask
921*67e74705SXin Li   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
922*67e74705SXin Li   return (__mmask16)_mm512_cmpeq_epi32_mask(__a, __b);
923*67e74705SXin Li }
924*67e74705SXin Li 
test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)925*67e74705SXin Li __mmask16 test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
926*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpeq_epi32_mask
927*67e74705SXin Li   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
928*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
929*67e74705SXin Li   return (__mmask16)_mm512_mask_cmpeq_epi32_mask(__u, __a, __b);
930*67e74705SXin Li }
931*67e74705SXin Li 
test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)932*67e74705SXin Li __mmask8 test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
933*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpeq_epi64_mask
934*67e74705SXin Li   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
935*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
936*67e74705SXin Li   return (__mmask8)_mm512_mask_cmpeq_epi64_mask(__u, __a, __b);
937*67e74705SXin Li }
938*67e74705SXin Li 
test_mm512_cmpeq_epi64_mask(__m512i __a,__m512i __b)939*67e74705SXin Li __mmask8 test_mm512_cmpeq_epi64_mask(__m512i __a, __m512i __b) {
940*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpeq_epi64_mask
941*67e74705SXin Li   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
942*67e74705SXin Li   return (__mmask8)_mm512_cmpeq_epi64_mask(__a, __b);
943*67e74705SXin Li }
944*67e74705SXin Li 
test_mm512_cmpgt_epi32_mask(__m512i __a,__m512i __b)945*67e74705SXin Li __mmask16 test_mm512_cmpgt_epi32_mask(__m512i __a, __m512i __b) {
946*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpgt_epi32_mask
947*67e74705SXin Li   // CHECK: icmp sgt <16 x i32> %{{.*}}, %{{.*}}
948*67e74705SXin Li   return (__mmask16)_mm512_cmpgt_epi32_mask(__a, __b);
949*67e74705SXin Li }
950*67e74705SXin Li 
test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)951*67e74705SXin Li __mmask16 test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
952*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpgt_epi32_mask
953*67e74705SXin Li   // CHECK: icmp sgt <16 x i32> %{{.*}}, %{{.*}}
954*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
955*67e74705SXin Li   return (__mmask16)_mm512_mask_cmpgt_epi32_mask(__u, __a, __b);
956*67e74705SXin Li }
957*67e74705SXin Li 
test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)958*67e74705SXin Li __mmask8 test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
959*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpgt_epi64_mask
960*67e74705SXin Li   // CHECK: icmp sgt <8 x i64> %{{.*}}, %{{.*}}
961*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
962*67e74705SXin Li   return (__mmask8)_mm512_mask_cmpgt_epi64_mask(__u, __a, __b);
963*67e74705SXin Li }
964*67e74705SXin Li 
test_mm512_cmpgt_epi64_mask(__m512i __a,__m512i __b)965*67e74705SXin Li __mmask8 test_mm512_cmpgt_epi64_mask(__m512i __a, __m512i __b) {
966*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpgt_epi64_mask
967*67e74705SXin Li   // CHECK: icmp sgt <8 x i64> %{{.*}}, %{{.*}}
968*67e74705SXin Li   return (__mmask8)_mm512_cmpgt_epi64_mask(__a, __b);
969*67e74705SXin Li }
970*67e74705SXin Li 
test_mm512_unpackhi_pd(__m512d a,__m512d b)971*67e74705SXin Li __m512d test_mm512_unpackhi_pd(__m512d a, __m512d b)
972*67e74705SXin Li {
973*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpackhi_pd
974*67e74705SXin Li   // CHECK: shufflevector <8 x double> {{.*}} <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
975*67e74705SXin Li   return _mm512_unpackhi_pd(a, b);
976*67e74705SXin Li }
977*67e74705SXin Li 
test_mm512_unpacklo_pd(__m512d a,__m512d b)978*67e74705SXin Li __m512d test_mm512_unpacklo_pd(__m512d a, __m512d b)
979*67e74705SXin Li {
980*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpacklo_pd
981*67e74705SXin Li   // CHECK: shufflevector <8 x double> {{.*}} <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
982*67e74705SXin Li   return _mm512_unpacklo_pd(a, b);
983*67e74705SXin Li }
984*67e74705SXin Li 
test_mm512_unpackhi_ps(__m512 a,__m512 b)985*67e74705SXin Li __m512 test_mm512_unpackhi_ps(__m512 a, __m512 b)
986*67e74705SXin Li {
987*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpackhi_ps
988*67e74705SXin Li   // CHECK: shufflevector <16 x float> {{.*}} <i32 2, i32 18, i32 3, i32 19, i32 6, i32 22, i32 7, i32 23, i32 10, i32 26, i32 11, i32 27, i32 14, i32 30, i32 15, i32 31>
989*67e74705SXin Li   return _mm512_unpackhi_ps(a, b);
990*67e74705SXin Li }
991*67e74705SXin Li 
test_mm512_unpacklo_ps(__m512 a,__m512 b)992*67e74705SXin Li __m512 test_mm512_unpacklo_ps(__m512 a, __m512 b)
993*67e74705SXin Li {
994*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpacklo_ps
995*67e74705SXin Li   // CHECK: shufflevector <16 x float> {{.*}} <i32 0, i32 16, i32 1, i32 17, i32 4, i32 20, i32 5, i32 21, i32 8, i32 24, i32 9, i32 25, i32 12, i32 28, i32 13, i32 29>
996*67e74705SXin Li   return _mm512_unpacklo_ps(a, b);
997*67e74705SXin Li }
998*67e74705SXin Li 
test_mm512_cmp_round_ps_mask(__m512 a,__m512 b)999*67e74705SXin Li __mmask16 test_mm512_cmp_round_ps_mask(__m512 a, __m512 b) {
1000*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_round_ps_mask
1001*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1002*67e74705SXin Li   return _mm512_cmp_round_ps_mask(a, b, 0, _MM_FROUND_CUR_DIRECTION);
1003*67e74705SXin Li }
1004*67e74705SXin Li 
test_mm512_mask_cmp_round_ps_mask(__mmask16 m,__m512 a,__m512 b)1005*67e74705SXin Li __mmask16 test_mm512_mask_cmp_round_ps_mask(__mmask16 m, __m512 a, __m512 b) {
1006*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_round_ps_mask
1007*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1008*67e74705SXin Li   return _mm512_mask_cmp_round_ps_mask(m, a, b, 0, _MM_FROUND_CUR_DIRECTION);
1009*67e74705SXin Li }
1010*67e74705SXin Li 
test_mm512_cmp_ps_mask(__m512 a,__m512 b)1011*67e74705SXin Li __mmask16 test_mm512_cmp_ps_mask(__m512 a, __m512 b) {
1012*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_ps_mask
1013*67e74705SXin Li   // CHECKn: @llvm.x86.avx512.mask.cmp.ps.512
1014*67e74705SXin Li   return _mm512_cmp_ps_mask(a, b, 0);
1015*67e74705SXin Li }
1016*67e74705SXin Li 
test_mm512_mask_cmp_ps_mask(__mmask16 m,__m512 a,__m512 b)1017*67e74705SXin Li __mmask16 test_mm512_mask_cmp_ps_mask(__mmask16 m, __m512 a, __m512 b) {
1018*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_ps_mask
1019*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1020*67e74705SXin Li   return _mm512_mask_cmp_ps_mask(m, a, b, 0);
1021*67e74705SXin Li }
1022*67e74705SXin Li 
test_mm512_cmp_round_pd_mask(__m512d a,__m512d b)1023*67e74705SXin Li __mmask8 test_mm512_cmp_round_pd_mask(__m512d a, __m512d b) {
1024*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_round_pd_mask
1025*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1026*67e74705SXin Li   return _mm512_cmp_round_pd_mask(a, b, 0, _MM_FROUND_CUR_DIRECTION);
1027*67e74705SXin Li }
1028*67e74705SXin Li 
test_mm512_mask_cmp_round_pd_mask(__mmask8 m,__m512d a,__m512d b)1029*67e74705SXin Li __mmask8 test_mm512_mask_cmp_round_pd_mask(__mmask8 m, __m512d a, __m512d b) {
1030*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_round_pd_mask
1031*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1032*67e74705SXin Li   return _mm512_mask_cmp_round_pd_mask(m, a, b, 0, _MM_FROUND_CUR_DIRECTION);
1033*67e74705SXin Li }
1034*67e74705SXin Li 
test_mm512_cmp_pd_mask(__m512d a,__m512d b)1035*67e74705SXin Li __mmask8 test_mm512_cmp_pd_mask(__m512d a, __m512d b) {
1036*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_pd_mask
1037*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1038*67e74705SXin Li   return _mm512_cmp_pd_mask(a, b, 0);
1039*67e74705SXin Li }
1040*67e74705SXin Li 
test_mm512_mask_cmp_pd_mask(__mmask8 m,__m512d a,__m512d b)1041*67e74705SXin Li __mmask8 test_mm512_mask_cmp_pd_mask(__mmask8 m, __m512d a, __m512d b) {
1042*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_pd_mask
1043*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1044*67e74705SXin Li   return _mm512_mask_cmp_pd_mask(m, a, b, 0);
1045*67e74705SXin Li }
1046*67e74705SXin Li 
test_mm512_extractf64x4_pd(__m512d a)1047*67e74705SXin Li __m256d test_mm512_extractf64x4_pd(__m512d a)
1048*67e74705SXin Li {
1049*67e74705SXin Li   // CHECK-LABEL: @test_mm512_extractf64x4_pd
1050*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vextractf64x4.512
1051*67e74705SXin Li   return _mm512_extractf64x4_pd(a, 1);
1052*67e74705SXin Li }
1053*67e74705SXin Li 
test_mm512_mask_extractf64x4_pd(__m256d __W,__mmask8 __U,__m512d __A)1054*67e74705SXin Li __m256d test_mm512_mask_extractf64x4_pd(__m256d  __W,__mmask8  __U,__m512d __A){
1055*67e74705SXin Li  //CHECK-LABEL:@test_mm512_mask_extractf64x4_pd
1056*67e74705SXin Li  //CHECL:@llvm.x86.avx512.mask.vextractf64x4.512
1057*67e74705SXin Li  return _mm512_mask_extractf64x4_pd( __W, __U, __A, 1);
1058*67e74705SXin Li }
1059*67e74705SXin Li 
test_mm512_maskz_extractf64x4_pd(__mmask8 __U,__m512d __A)1060*67e74705SXin Li __m256d test_mm512_maskz_extractf64x4_pd(__mmask8  __U,__m512d __A){
1061*67e74705SXin Li  //CHECK-LABEL:@test_mm512_maskz_extractf64x4_pd
1062*67e74705SXin Li  //CHECL:@llvm.x86.avx512.mask.vextractf64x4.512
1063*67e74705SXin Li  return _mm512_maskz_extractf64x4_pd( __U, __A, 1);
1064*67e74705SXin Li }
1065*67e74705SXin Li 
test_mm512_extractf32x4_ps(__m512 a)1066*67e74705SXin Li __m128 test_mm512_extractf32x4_ps(__m512 a)
1067*67e74705SXin Li {
1068*67e74705SXin Li   // CHECK-LABEL: @test_mm512_extractf32x4_ps
1069*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vextractf32x4.512
1070*67e74705SXin Li   return _mm512_extractf32x4_ps(a, 1);
1071*67e74705SXin Li }
1072*67e74705SXin Li 
test_mm512_mask_extractf32x4_ps(__m128 __W,__mmask8 __U,__m512d __A)1073*67e74705SXin Li __m128 test_mm512_mask_extractf32x4_ps(__m128 __W, __mmask8  __U,__m512d __A){
1074*67e74705SXin Li  //CHECK-LABEL:@test_mm512_mask_extractf32x4_ps
1075*67e74705SXin Li  //CHECL: @llvm.x86.avx512.mask.vextractf32x4.512
1076*67e74705SXin Li  return _mm512_mask_extractf32x4_ps( __W, __U, __A, 1);
1077*67e74705SXin Li }
1078*67e74705SXin Li 
test_mm512_maskz_extractf32x4_ps(__mmask8 __U,__m512d __A)1079*67e74705SXin Li __m128 test_mm512_maskz_extractf32x4_ps( __mmask8  __U,__m512d __A){
1080*67e74705SXin Li  //CHECK-LABEL:@test_mm512_maskz_extractf32x4_ps
1081*67e74705SXin Li  //CHECL: @llvm.x86.avx512.mask.vextractf32x4.512
1082*67e74705SXin Li  return _mm512_maskz_extractf32x4_ps(  __U, __A, 1);
1083*67e74705SXin Li }
1084*67e74705SXin Li 
test_mm512_cmpeq_epu32_mask(__m512i __a,__m512i __b)1085*67e74705SXin Li __mmask16 test_mm512_cmpeq_epu32_mask(__m512i __a, __m512i __b) {
1086*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpeq_epu32_mask
1087*67e74705SXin Li   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1088*67e74705SXin Li   return (__mmask16)_mm512_cmpeq_epu32_mask(__a, __b);
1089*67e74705SXin Li }
1090*67e74705SXin Li 
test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1091*67e74705SXin Li __mmask16 test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1092*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpeq_epu32_mask
1093*67e74705SXin Li   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1094*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1095*67e74705SXin Li   return (__mmask16)_mm512_mask_cmpeq_epu32_mask(__u, __a, __b);
1096*67e74705SXin Li }
1097*67e74705SXin Li 
test_mm512_cmpeq_epu64_mask(__m512i __a,__m512i __b)1098*67e74705SXin Li __mmask8 test_mm512_cmpeq_epu64_mask(__m512i __a, __m512i __b) {
1099*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpeq_epu64_mask
1100*67e74705SXin Li   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1101*67e74705SXin Li   return (__mmask8)_mm512_cmpeq_epu64_mask(__a, __b);
1102*67e74705SXin Li }
1103*67e74705SXin Li 
test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1104*67e74705SXin Li __mmask8 test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1105*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpeq_epu64_mask
1106*67e74705SXin Li   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1107*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1108*67e74705SXin Li   return (__mmask8)_mm512_mask_cmpeq_epu64_mask(__u, __a, __b);
1109*67e74705SXin Li }
1110*67e74705SXin Li 
test_mm512_cmpge_epi32_mask(__m512i __a,__m512i __b)1111*67e74705SXin Li __mmask16 test_mm512_cmpge_epi32_mask(__m512i __a, __m512i __b) {
1112*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpge_epi32_mask
1113*67e74705SXin Li   // CHECK: icmp sge <16 x i32> %{{.*}}, %{{.*}}
1114*67e74705SXin Li   return (__mmask16)_mm512_cmpge_epi32_mask(__a, __b);
1115*67e74705SXin Li }
1116*67e74705SXin Li 
test_mm512_mask_cmpge_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)1117*67e74705SXin Li __mmask16 test_mm512_mask_cmpge_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1118*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpge_epi32_mask
1119*67e74705SXin Li   // CHECK: icmp sge <16 x i32> %{{.*}}, %{{.*}}
1120*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1121*67e74705SXin Li   return (__mmask16)_mm512_mask_cmpge_epi32_mask(__u, __a, __b);
1122*67e74705SXin Li }
1123*67e74705SXin Li 
test_mm512_cmpge_epi64_mask(__m512i __a,__m512i __b)1124*67e74705SXin Li __mmask8 test_mm512_cmpge_epi64_mask(__m512i __a, __m512i __b) {
1125*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpge_epi64_mask
1126*67e74705SXin Li   // CHECK: icmp sge <8 x i64> %{{.*}}, %{{.*}}
1127*67e74705SXin Li   return (__mmask8)_mm512_cmpge_epi64_mask(__a, __b);
1128*67e74705SXin Li }
1129*67e74705SXin Li 
test_mm512_mask_cmpge_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)1130*67e74705SXin Li __mmask8 test_mm512_mask_cmpge_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1131*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpge_epi64_mask
1132*67e74705SXin Li   // CHECK: icmp sge <8 x i64> %{{.*}}, %{{.*}}
1133*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1134*67e74705SXin Li   return (__mmask8)_mm512_mask_cmpge_epi64_mask(__u, __a, __b);
1135*67e74705SXin Li }
1136*67e74705SXin Li 
test_mm512_cmpge_epu32_mask(__m512i __a,__m512i __b)1137*67e74705SXin Li __mmask16 test_mm512_cmpge_epu32_mask(__m512i __a, __m512i __b) {
1138*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpge_epu32_mask
1139*67e74705SXin Li   // CHECK: icmp uge <16 x i32> %{{.*}}, %{{.*}}
1140*67e74705SXin Li   return (__mmask16)_mm512_cmpge_epu32_mask(__a, __b);
1141*67e74705SXin Li }
1142*67e74705SXin Li 
test_mm512_mask_cmpge_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1143*67e74705SXin Li __mmask16 test_mm512_mask_cmpge_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1144*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpge_epu32_mask
1145*67e74705SXin Li   // CHECK: icmp uge <16 x i32> %{{.*}}, %{{.*}}
1146*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1147*67e74705SXin Li   return (__mmask16)_mm512_mask_cmpge_epu32_mask(__u, __a, __b);
1148*67e74705SXin Li }
1149*67e74705SXin Li 
test_mm512_cmpge_epu64_mask(__m512i __a,__m512i __b)1150*67e74705SXin Li __mmask8 test_mm512_cmpge_epu64_mask(__m512i __a, __m512i __b) {
1151*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpge_epu64_mask
1152*67e74705SXin Li   // CHECK: icmp uge <8 x i64> %{{.*}}, %{{.*}}
1153*67e74705SXin Li   return (__mmask8)_mm512_cmpge_epu64_mask(__a, __b);
1154*67e74705SXin Li }
1155*67e74705SXin Li 
test_mm512_mask_cmpge_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1156*67e74705SXin Li __mmask8 test_mm512_mask_cmpge_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1157*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpge_epu64_mask
1158*67e74705SXin Li   // CHECK: icmp uge <8 x i64> %{{.*}}, %{{.*}}
1159*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1160*67e74705SXin Li   return (__mmask8)_mm512_mask_cmpge_epu64_mask(__u, __a, __b);
1161*67e74705SXin Li }
1162*67e74705SXin Li 
test_mm512_cmpgt_epu32_mask(__m512i __a,__m512i __b)1163*67e74705SXin Li __mmask16 test_mm512_cmpgt_epu32_mask(__m512i __a, __m512i __b) {
1164*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpgt_epu32_mask
1165*67e74705SXin Li   // CHECK: icmp ugt <16 x i32> %{{.*}}, %{{.*}}
1166*67e74705SXin Li   return (__mmask16)_mm512_cmpgt_epu32_mask(__a, __b);
1167*67e74705SXin Li }
1168*67e74705SXin Li 
test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1169*67e74705SXin Li __mmask16 test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1170*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpgt_epu32_mask
1171*67e74705SXin Li   // CHECK: icmp ugt <16 x i32> %{{.*}}, %{{.*}}
1172*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1173*67e74705SXin Li   return (__mmask16)_mm512_mask_cmpgt_epu32_mask(__u, __a, __b);
1174*67e74705SXin Li }
1175*67e74705SXin Li 
test_mm512_cmpgt_epu64_mask(__m512i __a,__m512i __b)1176*67e74705SXin Li __mmask8 test_mm512_cmpgt_epu64_mask(__m512i __a, __m512i __b) {
1177*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpgt_epu64_mask
1178*67e74705SXin Li   // CHECK: icmp ugt <8 x i64> %{{.*}}, %{{.*}}
1179*67e74705SXin Li   return (__mmask8)_mm512_cmpgt_epu64_mask(__a, __b);
1180*67e74705SXin Li }
1181*67e74705SXin Li 
test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1182*67e74705SXin Li __mmask8 test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1183*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpgt_epu64_mask
1184*67e74705SXin Li   // CHECK: icmp ugt <8 x i64> %{{.*}}, %{{.*}}
1185*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1186*67e74705SXin Li   return (__mmask8)_mm512_mask_cmpgt_epu64_mask(__u, __a, __b);
1187*67e74705SXin Li }
1188*67e74705SXin Li 
test_mm512_cmple_epi32_mask(__m512i __a,__m512i __b)1189*67e74705SXin Li __mmask16 test_mm512_cmple_epi32_mask(__m512i __a, __m512i __b) {
1190*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmple_epi32_mask
1191*67e74705SXin Li   // CHECK: icmp sle <16 x i32> %{{.*}}, %{{.*}}
1192*67e74705SXin Li   return (__mmask16)_mm512_cmple_epi32_mask(__a, __b);
1193*67e74705SXin Li }
1194*67e74705SXin Li 
test_mm512_mask_cmple_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)1195*67e74705SXin Li __mmask16 test_mm512_mask_cmple_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1196*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmple_epi32_mask
1197*67e74705SXin Li   // CHECK: icmp sle <16 x i32> %{{.*}}, %{{.*}}
1198*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1199*67e74705SXin Li   return (__mmask16)_mm512_mask_cmple_epi32_mask(__u, __a, __b);
1200*67e74705SXin Li }
1201*67e74705SXin Li 
test_mm512_cmple_epi64_mask(__m512i __a,__m512i __b)1202*67e74705SXin Li __mmask8 test_mm512_cmple_epi64_mask(__m512i __a, __m512i __b) {
1203*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmple_epi64_mask
1204*67e74705SXin Li   // CHECK: icmp sle <8 x i64> %{{.*}}, %{{.*}}
1205*67e74705SXin Li   return (__mmask8)_mm512_cmple_epi64_mask(__a, __b);
1206*67e74705SXin Li }
1207*67e74705SXin Li 
test_mm512_mask_cmple_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)1208*67e74705SXin Li __mmask8 test_mm512_mask_cmple_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1209*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmple_epi64_mask
1210*67e74705SXin Li   // CHECK: icmp sle <8 x i64> %{{.*}}, %{{.*}}
1211*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1212*67e74705SXin Li   return (__mmask8)_mm512_mask_cmple_epi64_mask(__u, __a, __b);
1213*67e74705SXin Li }
1214*67e74705SXin Li 
test_mm512_cmple_epu32_mask(__m512i __a,__m512i __b)1215*67e74705SXin Li __mmask16 test_mm512_cmple_epu32_mask(__m512i __a, __m512i __b) {
1216*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmple_epu32_mask
1217*67e74705SXin Li   // CHECK: icmp ule <16 x i32> %{{.*}}, %{{.*}}
1218*67e74705SXin Li   return (__mmask16)_mm512_cmple_epu32_mask(__a, __b);
1219*67e74705SXin Li }
1220*67e74705SXin Li 
test_mm512_mask_cmple_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1221*67e74705SXin Li __mmask16 test_mm512_mask_cmple_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1222*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmple_epu32_mask
1223*67e74705SXin Li   // CHECK: icmp ule <16 x i32> %{{.*}}, %{{.*}}
1224*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1225*67e74705SXin Li   return (__mmask16)_mm512_mask_cmple_epu32_mask(__u, __a, __b);
1226*67e74705SXin Li }
1227*67e74705SXin Li 
test_mm512_cmple_epu64_mask(__m512i __a,__m512i __b)1228*67e74705SXin Li __mmask8 test_mm512_cmple_epu64_mask(__m512i __a, __m512i __b) {
1229*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmple_epu64_mask
1230*67e74705SXin Li   // CHECK: icmp ule <8 x i64> %{{.*}}, %{{.*}}
1231*67e74705SXin Li   return (__mmask8)_mm512_cmple_epu64_mask(__a, __b);
1232*67e74705SXin Li }
1233*67e74705SXin Li 
test_mm512_mask_cmple_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1234*67e74705SXin Li __mmask8 test_mm512_mask_cmple_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1235*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmple_epu64_mask
1236*67e74705SXin Li   // CHECK: icmp ule <8 x i64> %{{.*}}, %{{.*}}
1237*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1238*67e74705SXin Li   return (__mmask8)_mm512_mask_cmple_epu64_mask(__u, __a, __b);
1239*67e74705SXin Li }
1240*67e74705SXin Li 
test_mm512_cmplt_epi32_mask(__m512i __a,__m512i __b)1241*67e74705SXin Li __mmask16 test_mm512_cmplt_epi32_mask(__m512i __a, __m512i __b) {
1242*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmplt_epi32_mask
1243*67e74705SXin Li   // CHECK: icmp slt <16 x i32> %{{.*}}, %{{.*}}
1244*67e74705SXin Li   return (__mmask16)_mm512_cmplt_epi32_mask(__a, __b);
1245*67e74705SXin Li }
1246*67e74705SXin Li 
test_mm512_mask_cmplt_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)1247*67e74705SXin Li __mmask16 test_mm512_mask_cmplt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1248*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmplt_epi32_mask
1249*67e74705SXin Li   // CHECK: icmp slt <16 x i32> %{{.*}}, %{{.*}}
1250*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1251*67e74705SXin Li   return (__mmask16)_mm512_mask_cmplt_epi32_mask(__u, __a, __b);
1252*67e74705SXin Li }
1253*67e74705SXin Li 
test_mm512_cmplt_epi64_mask(__m512i __a,__m512i __b)1254*67e74705SXin Li __mmask8 test_mm512_cmplt_epi64_mask(__m512i __a, __m512i __b) {
1255*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmplt_epi64_mask
1256*67e74705SXin Li   // CHECK: icmp slt <8 x i64> %{{.*}}, %{{.*}}
1257*67e74705SXin Li   return (__mmask8)_mm512_cmplt_epi64_mask(__a, __b);
1258*67e74705SXin Li }
1259*67e74705SXin Li 
test_mm512_mask_cmplt_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)1260*67e74705SXin Li __mmask8 test_mm512_mask_cmplt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1261*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmplt_epi64_mask
1262*67e74705SXin Li   // CHECK: icmp slt <8 x i64> %{{.*}}, %{{.*}}
1263*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1264*67e74705SXin Li   return (__mmask8)_mm512_mask_cmplt_epi64_mask(__u, __a, __b);
1265*67e74705SXin Li }
1266*67e74705SXin Li 
test_mm512_cmplt_epu32_mask(__m512i __a,__m512i __b)1267*67e74705SXin Li __mmask16 test_mm512_cmplt_epu32_mask(__m512i __a, __m512i __b) {
1268*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmplt_epu32_mask
1269*67e74705SXin Li   // CHECK: icmp ult <16 x i32> %{{.*}}, %{{.*}}
1270*67e74705SXin Li   return (__mmask16)_mm512_cmplt_epu32_mask(__a, __b);
1271*67e74705SXin Li }
1272*67e74705SXin Li 
test_mm512_mask_cmplt_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1273*67e74705SXin Li __mmask16 test_mm512_mask_cmplt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1274*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmplt_epu32_mask
1275*67e74705SXin Li   // CHECK: icmp ult <16 x i32> %{{.*}}, %{{.*}}
1276*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1277*67e74705SXin Li   return (__mmask16)_mm512_mask_cmplt_epu32_mask(__u, __a, __b);
1278*67e74705SXin Li }
1279*67e74705SXin Li 
test_mm512_cmplt_epu64_mask(__m512i __a,__m512i __b)1280*67e74705SXin Li __mmask8 test_mm512_cmplt_epu64_mask(__m512i __a, __m512i __b) {
1281*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmplt_epu64_mask
1282*67e74705SXin Li   // CHECK: icmp ult <8 x i64> %{{.*}}, %{{.*}}
1283*67e74705SXin Li   return (__mmask8)_mm512_cmplt_epu64_mask(__a, __b);
1284*67e74705SXin Li }
1285*67e74705SXin Li 
test_mm512_mask_cmplt_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1286*67e74705SXin Li __mmask8 test_mm512_mask_cmplt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1287*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmplt_epu64_mask
1288*67e74705SXin Li   // CHECK: icmp ult <8 x i64> %{{.*}}, %{{.*}}
1289*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1290*67e74705SXin Li   return (__mmask8)_mm512_mask_cmplt_epu64_mask(__u, __a, __b);
1291*67e74705SXin Li }
1292*67e74705SXin Li 
test_mm512_cmpneq_epi32_mask(__m512i __a,__m512i __b)1293*67e74705SXin Li __mmask16 test_mm512_cmpneq_epi32_mask(__m512i __a, __m512i __b) {
1294*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpneq_epi32_mask
1295*67e74705SXin Li   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1296*67e74705SXin Li   return (__mmask16)_mm512_cmpneq_epi32_mask(__a, __b);
1297*67e74705SXin Li }
1298*67e74705SXin Li 
test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)1299*67e74705SXin Li __mmask16 test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1300*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpneq_epi32_mask
1301*67e74705SXin Li   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1302*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1303*67e74705SXin Li   return (__mmask16)_mm512_mask_cmpneq_epi32_mask(__u, __a, __b);
1304*67e74705SXin Li }
1305*67e74705SXin Li 
test_mm512_cmpneq_epi64_mask(__m512i __a,__m512i __b)1306*67e74705SXin Li __mmask8 test_mm512_cmpneq_epi64_mask(__m512i __a, __m512i __b) {
1307*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpneq_epi64_mask
1308*67e74705SXin Li   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1309*67e74705SXin Li   return (__mmask8)_mm512_cmpneq_epi64_mask(__a, __b);
1310*67e74705SXin Li }
1311*67e74705SXin Li 
test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)1312*67e74705SXin Li __mmask8 test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1313*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpneq_epi64_mask
1314*67e74705SXin Li   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1315*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1316*67e74705SXin Li   return (__mmask8)_mm512_mask_cmpneq_epi64_mask(__u, __a, __b);
1317*67e74705SXin Li }
1318*67e74705SXin Li 
test_mm512_cmpneq_epu32_mask(__m512i __a,__m512i __b)1319*67e74705SXin Li __mmask16 test_mm512_cmpneq_epu32_mask(__m512i __a, __m512i __b) {
1320*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpneq_epu32_mask
1321*67e74705SXin Li   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1322*67e74705SXin Li   return (__mmask16)_mm512_cmpneq_epu32_mask(__a, __b);
1323*67e74705SXin Li }
1324*67e74705SXin Li 
test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1325*67e74705SXin Li __mmask16 test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1326*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpneq_epu32_mask
1327*67e74705SXin Li   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1328*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1329*67e74705SXin Li   return (__mmask16)_mm512_mask_cmpneq_epu32_mask(__u, __a, __b);
1330*67e74705SXin Li }
1331*67e74705SXin Li 
test_mm512_cmpneq_epu64_mask(__m512i __a,__m512i __b)1332*67e74705SXin Li __mmask8 test_mm512_cmpneq_epu64_mask(__m512i __a, __m512i __b) {
1333*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpneq_epu64_mask
1334*67e74705SXin Li   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1335*67e74705SXin Li   return (__mmask8)_mm512_cmpneq_epu64_mask(__a, __b);
1336*67e74705SXin Li }
1337*67e74705SXin Li 
test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1338*67e74705SXin Li __mmask8 test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1339*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpneq_epu64_mask
1340*67e74705SXin Li   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1341*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1342*67e74705SXin Li   return (__mmask8)_mm512_mask_cmpneq_epu64_mask(__u, __a, __b);
1343*67e74705SXin Li }
1344*67e74705SXin Li 
test_mm512_cmp_epi32_mask(__m512i __a,__m512i __b)1345*67e74705SXin Li __mmask16 test_mm512_cmp_epi32_mask(__m512i __a, __m512i __b) {
1346*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_epi32_mask
1347*67e74705SXin Li   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1348*67e74705SXin Li   return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, 0);
1349*67e74705SXin Li }
1350*67e74705SXin Li 
test_mm512_mask_cmp_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)1351*67e74705SXin Li __mmask16 test_mm512_mask_cmp_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1352*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_epi32_mask
1353*67e74705SXin Li   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1354*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1355*67e74705SXin Li   return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, 0);
1356*67e74705SXin Li }
1357*67e74705SXin Li 
test_mm512_cmp_epi64_mask(__m512i __a,__m512i __b)1358*67e74705SXin Li __mmask8 test_mm512_cmp_epi64_mask(__m512i __a, __m512i __b) {
1359*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_epi64_mask
1360*67e74705SXin Li   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1361*67e74705SXin Li   return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, 0);
1362*67e74705SXin Li }
1363*67e74705SXin Li 
test_mm512_mask_cmp_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)1364*67e74705SXin Li __mmask8 test_mm512_mask_cmp_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1365*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_epi64_mask
1366*67e74705SXin Li   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1367*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1368*67e74705SXin Li   return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, 0);
1369*67e74705SXin Li }
1370*67e74705SXin Li 
test_mm512_cmp_epu32_mask(__m512i __a,__m512i __b)1371*67e74705SXin Li __mmask16 test_mm512_cmp_epu32_mask(__m512i __a, __m512i __b) {
1372*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_epu32_mask
1373*67e74705SXin Li   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1374*67e74705SXin Li   return (__mmask16)_mm512_cmp_epu32_mask(__a, __b, 0);
1375*67e74705SXin Li }
1376*67e74705SXin Li 
test_mm512_mask_cmp_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1377*67e74705SXin Li __mmask16 test_mm512_mask_cmp_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1378*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_epu32_mask
1379*67e74705SXin Li   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1380*67e74705SXin Li   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1381*67e74705SXin Li   return (__mmask16)_mm512_mask_cmp_epu32_mask(__u, __a, __b, 0);
1382*67e74705SXin Li }
1383*67e74705SXin Li 
test_mm512_cmp_epu64_mask(__m512i __a,__m512i __b)1384*67e74705SXin Li __mmask8 test_mm512_cmp_epu64_mask(__m512i __a, __m512i __b) {
1385*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_epu64_mask
1386*67e74705SXin Li   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1387*67e74705SXin Li   return (__mmask8)_mm512_cmp_epu64_mask(__a, __b, 0);
1388*67e74705SXin Li }
1389*67e74705SXin Li 
test_mm512_mask_cmp_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1390*67e74705SXin Li __mmask8 test_mm512_mask_cmp_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1391*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_epu64_mask
1392*67e74705SXin Li   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1393*67e74705SXin Li   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1394*67e74705SXin Li   return (__mmask8)_mm512_mask_cmp_epu64_mask(__u, __a, __b, 0);
1395*67e74705SXin Li }
1396*67e74705SXin Li 
test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1397*67e74705SXin Li __m512i test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1398*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_and_epi32
1399*67e74705SXin Li   // CHECK: and <16 x i32>
1400*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1401*67e74705SXin Li   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1402*67e74705SXin Li   return _mm512_mask_and_epi32(__src, __k,__a, __b);
1403*67e74705SXin Li }
1404*67e74705SXin Li 
test_mm512_maskz_and_epi32(__mmask16 __k,__m512i __a,__m512i __b)1405*67e74705SXin Li __m512i test_mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1406*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_and_epi32
1407*67e74705SXin Li   // CHECK: and <16 x i32>
1408*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1409*67e74705SXin Li   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1410*67e74705SXin Li   return _mm512_maskz_and_epi32(__k,__a, __b);
1411*67e74705SXin Li }
1412*67e74705SXin Li 
test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1413*67e74705SXin Li __m512i test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1414*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_and_epi64
1415*67e74705SXin Li   // CHECK: %[[AND_RES:.*]] = and <8 x i64>
1416*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1417*67e74705SXin Li   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
1418*67e74705SXin Li   return _mm512_mask_and_epi64(__src, __k,__a, __b);
1419*67e74705SXin Li }
1420*67e74705SXin Li 
test_mm512_maskz_and_epi64(__mmask8 __k,__m512i __a,__m512i __b)1421*67e74705SXin Li __m512i test_mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1422*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_and_epi64
1423*67e74705SXin Li   // CHECK: %[[AND_RES:.*]] = and <8 x i64>
1424*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1425*67e74705SXin Li   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
1426*67e74705SXin Li   return _mm512_maskz_and_epi64(__k,__a, __b);
1427*67e74705SXin Li }
1428*67e74705SXin Li 
test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1429*67e74705SXin Li __m512i test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1430*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_or_epi32
1431*67e74705SXin Li   // CHECK: or <16 x i32>
1432*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1433*67e74705SXin Li   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1434*67e74705SXin Li   return _mm512_mask_or_epi32(__src, __k,__a, __b);
1435*67e74705SXin Li }
1436*67e74705SXin Li 
test_mm512_maskz_or_epi32(__mmask16 __k,__m512i __a,__m512i __b)1437*67e74705SXin Li __m512i test_mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1438*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_or_epi32
1439*67e74705SXin Li   // CHECK: or <16 x i32>
1440*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1441*67e74705SXin Li   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1442*67e74705SXin Li   return _mm512_maskz_or_epi32(__k,__a, __b);
1443*67e74705SXin Li }
1444*67e74705SXin Li 
test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1445*67e74705SXin Li __m512i test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1446*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_or_epi64
1447*67e74705SXin Li   // CHECK: %[[OR_RES:.*]] = or <8 x i64>
1448*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1449*67e74705SXin Li   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[OR_RES]], <8 x i64> %{{.*}}
1450*67e74705SXin Li   return _mm512_mask_or_epi64(__src, __k,__a, __b);
1451*67e74705SXin Li }
1452*67e74705SXin Li 
test_mm512_maskz_or_epi64(__mmask8 __k,__m512i __a,__m512i __b)1453*67e74705SXin Li __m512i test_mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1454*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_or_epi64
1455*67e74705SXin Li   // CHECK: %[[OR_RES:.*]] = or <8 x i64>
1456*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1457*67e74705SXin Li   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[OR_RES]], <8 x i64> %{{.*}}
1458*67e74705SXin Li   return _mm512_maskz_or_epi64(__k,__a, __b);
1459*67e74705SXin Li }
1460*67e74705SXin Li 
test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1461*67e74705SXin Li __m512i test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1462*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_xor_epi32
1463*67e74705SXin Li   // CHECK: xor <16 x i32>
1464*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1465*67e74705SXin Li   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1466*67e74705SXin Li   return _mm512_mask_xor_epi32(__src, __k,__a, __b);
1467*67e74705SXin Li }
1468*67e74705SXin Li 
test_mm512_maskz_xor_epi32(__mmask16 __k,__m512i __a,__m512i __b)1469*67e74705SXin Li __m512i test_mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1470*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_xor_epi32
1471*67e74705SXin Li   // CHECK: xor <16 x i32>
1472*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1473*67e74705SXin Li   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1474*67e74705SXin Li   return _mm512_maskz_xor_epi32(__k,__a, __b);
1475*67e74705SXin Li }
1476*67e74705SXin Li 
test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1477*67e74705SXin Li __m512i test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1478*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_xor_epi64
1479*67e74705SXin Li   // CHECK: %[[XOR_RES:.*]] = xor <8 x i64>
1480*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1481*67e74705SXin Li   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[XOR_RES]], <8 x i64> %{{.*}}
1482*67e74705SXin Li   return _mm512_mask_xor_epi64(__src, __k,__a, __b);
1483*67e74705SXin Li }
1484*67e74705SXin Li 
test_mm512_maskz_xor_epi64(__mmask8 __k,__m512i __a,__m512i __b)1485*67e74705SXin Li __m512i test_mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1486*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_xor_epi64
1487*67e74705SXin Li   // CHECK: %[[XOR_RES:.*]] = xor <8 x i64>
1488*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1489*67e74705SXin Li   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[XOR_RES]], <8 x i64> %{{.*}}
1490*67e74705SXin Li   return _mm512_maskz_xor_epi64(__k,__a, __b);
1491*67e74705SXin Li }
1492*67e74705SXin Li 
test_mm512_and_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1493*67e74705SXin Li __m512i test_mm512_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1494*67e74705SXin Li   // CHECK-LABEL: @test_mm512_and_epi32
1495*67e74705SXin Li   // CHECK: and <16 x i32>
1496*67e74705SXin Li   return _mm512_and_epi32(__a, __b);
1497*67e74705SXin Li }
1498*67e74705SXin Li 
test_mm512_and_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1499*67e74705SXin Li __m512i test_mm512_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1500*67e74705SXin Li   // CHECK-LABEL: @test_mm512_and_epi64
1501*67e74705SXin Li   // CHECK: and <8 x i64>
1502*67e74705SXin Li   return _mm512_and_epi64(__a, __b);
1503*67e74705SXin Li }
1504*67e74705SXin Li 
test_mm512_or_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1505*67e74705SXin Li __m512i test_mm512_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1506*67e74705SXin Li   // CHECK-LABEL: @test_mm512_or_epi32
1507*67e74705SXin Li   // CHECK: or <16 x i32>
1508*67e74705SXin Li   return _mm512_or_epi32(__a, __b);
1509*67e74705SXin Li }
1510*67e74705SXin Li 
test_mm512_or_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1511*67e74705SXin Li __m512i test_mm512_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1512*67e74705SXin Li   // CHECK-LABEL: @test_mm512_or_epi64
1513*67e74705SXin Li   // CHECK: or <8 x i64>
1514*67e74705SXin Li   return _mm512_or_epi64(__a, __b);
1515*67e74705SXin Li }
1516*67e74705SXin Li 
test_mm512_xor_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1517*67e74705SXin Li __m512i test_mm512_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1518*67e74705SXin Li   // CHECK-LABEL: @test_mm512_xor_epi32
1519*67e74705SXin Li   // CHECK: xor <16 x i32>
1520*67e74705SXin Li   return _mm512_xor_epi32(__a, __b);
1521*67e74705SXin Li }
1522*67e74705SXin Li 
test_mm512_xor_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1523*67e74705SXin Li __m512i test_mm512_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1524*67e74705SXin Li   // CHECK-LABEL: @test_mm512_xor_epi64
1525*67e74705SXin Li   // CHECK: xor <8 x i64>
1526*67e74705SXin Li   return _mm512_xor_epi64(__a, __b);
1527*67e74705SXin Li }
1528*67e74705SXin Li 
test_mm512_maskz_andnot_epi32(__mmask16 __k,__m512i __A,__m512i __B)1529*67e74705SXin Li __m512i test_mm512_maskz_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B){
1530*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_andnot_epi32
1531*67e74705SXin Li   // CHECK: xor <16 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
1532*67e74705SXin Li   // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
1533*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1534*67e74705SXin Li   return _mm512_maskz_andnot_epi32(__k,__A,__B);
1535*67e74705SXin Li }
1536*67e74705SXin Li 
test_mm512_mask_andnot_epi32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1537*67e74705SXin Li __m512i test_mm512_mask_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1538*67e74705SXin Li                                       __m512i __src) {
1539*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_andnot_epi32
1540*67e74705SXin Li   // CHECK: xor <16 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
1541*67e74705SXin Li   // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
1542*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1543*67e74705SXin Li   return _mm512_mask_andnot_epi32(__src,__k,__A,__B);
1544*67e74705SXin Li }
1545*67e74705SXin Li 
test_mm512_andnot_si512(__m512i __A,__m512i __B)1546*67e74705SXin Li __m512i test_mm512_andnot_si512(__m512i __A, __m512i __B)
1547*67e74705SXin Li {
1548*67e74705SXin Li   //CHECK-LABEL: @test_mm512_andnot_si512
1549*67e74705SXin Li   //CHECK: load {{.*}}%__A.addr.i, align 64
1550*67e74705SXin Li   //CHECK: %neg.i = xor{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1551*67e74705SXin Li   //CHECK: load {{.*}}%__B.addr.i, align 64
1552*67e74705SXin Li   //CHECK: and <8 x i64> %neg.i,{{.*}}
1553*67e74705SXin Li 
1554*67e74705SXin Li   return _mm512_andnot_si512(__A, __B);
1555*67e74705SXin Li }
1556*67e74705SXin Li 
test_mm512_andnot_epi32(__m512i __A,__m512i __B)1557*67e74705SXin Li __m512i test_mm512_andnot_epi32(__m512i __A, __m512i __B) {
1558*67e74705SXin Li   // CHECK-LABEL: @test_mm512_andnot_epi32
1559*67e74705SXin Li   // CHECK: xor <16 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
1560*67e74705SXin Li   // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
1561*67e74705SXin Li   return _mm512_andnot_epi32(__A,__B);
1562*67e74705SXin Li }
1563*67e74705SXin Li 
test_mm512_maskz_andnot_epi64(__mmask8 __k,__m512i __A,__m512i __B)1564*67e74705SXin Li __m512i test_mm512_maskz_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1565*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_andnot_epi64
1566*67e74705SXin Li   // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1567*67e74705SXin Li   // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
1568*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1569*67e74705SXin Li   return _mm512_maskz_andnot_epi64(__k,__A,__B);
1570*67e74705SXin Li }
1571*67e74705SXin Li 
test_mm512_mask_andnot_epi64(__mmask8 __k,__m512i __A,__m512i __B,__m512i __src)1572*67e74705SXin Li __m512i test_mm512_mask_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1573*67e74705SXin Li                                       __m512i __src) {
1574*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_andnot_epi64
1575*67e74705SXin Li   // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1576*67e74705SXin Li   // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
1577*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1578*67e74705SXin Li   return _mm512_mask_andnot_epi64(__src,__k,__A,__B);
1579*67e74705SXin Li }
1580*67e74705SXin Li 
test_mm512_andnot_epi64(__m512i __A,__m512i __B)1581*67e74705SXin Li __m512i test_mm512_andnot_epi64(__m512i __A, __m512i __B) {
1582*67e74705SXin Li   //CHECK-LABEL: @test_mm512_andnot_epi64
1583*67e74705SXin Li   // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1584*67e74705SXin Li   // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
1585*67e74705SXin Li   return _mm512_andnot_epi64(__A,__B);
1586*67e74705SXin Li }
1587*67e74705SXin Li 
test_mm512_maskz_sub_epi32(__mmask16 __k,__m512i __A,__m512i __B)1588*67e74705SXin Li __m512i test_mm512_maskz_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1589*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_sub_epi32
1590*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.psub.d.512
1591*67e74705SXin Li   return _mm512_maskz_sub_epi32(__k,__A,__B);
1592*67e74705SXin Li }
1593*67e74705SXin Li 
test_mm512_mask_sub_epi32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1594*67e74705SXin Li __m512i test_mm512_mask_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1595*67e74705SXin Li                                    __m512i __src) {
1596*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_sub_epi32
1597*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.psub.d.512
1598*67e74705SXin Li   return _mm512_mask_sub_epi32(__src,__k,__A,__B);
1599*67e74705SXin Li }
1600*67e74705SXin Li 
test_mm512_sub_epi32(__m512i __A,__m512i __B)1601*67e74705SXin Li __m512i test_mm512_sub_epi32(__m512i __A, __m512i __B) {
1602*67e74705SXin Li   //CHECK-LABEL: @test_mm512_sub_epi32
1603*67e74705SXin Li   //CHECK: sub <16 x i32>
1604*67e74705SXin Li   return _mm512_sub_epi32(__A,__B);
1605*67e74705SXin Li }
1606*67e74705SXin Li 
test_mm512_maskz_sub_epi64(__mmask8 __k,__m512i __A,__m512i __B)1607*67e74705SXin Li __m512i test_mm512_maskz_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1608*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_sub_epi64
1609*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.psub.q.512
1610*67e74705SXin Li   return _mm512_maskz_sub_epi64(__k,__A,__B);
1611*67e74705SXin Li }
1612*67e74705SXin Li 
test_mm512_mask_sub_epi64(__mmask8 __k,__m512i __A,__m512i __B,__m512i __src)1613*67e74705SXin Li __m512i test_mm512_mask_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1614*67e74705SXin Li                                    __m512i __src) {
1615*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_sub_epi64
1616*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.psub.q.512
1617*67e74705SXin Li   return _mm512_mask_sub_epi64(__src,__k,__A,__B);
1618*67e74705SXin Li }
1619*67e74705SXin Li 
test_mm512_sub_epi64(__m512i __A,__m512i __B)1620*67e74705SXin Li __m512i test_mm512_sub_epi64(__m512i __A, __m512i __B) {
1621*67e74705SXin Li   //CHECK-LABEL: @test_mm512_sub_epi64
1622*67e74705SXin Li   //CHECK: sub <8 x i64>
1623*67e74705SXin Li   return _mm512_sub_epi64(__A,__B);
1624*67e74705SXin Li }
1625*67e74705SXin Li 
test_mm512_maskz_add_epi32(__mmask16 __k,__m512i __A,__m512i __B)1626*67e74705SXin Li __m512i test_mm512_maskz_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1627*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_add_epi32
1628*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.padd.d.512
1629*67e74705SXin Li   return _mm512_maskz_add_epi32(__k,__A,__B);
1630*67e74705SXin Li }
1631*67e74705SXin Li 
test_mm512_mask_add_epi32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1632*67e74705SXin Li __m512i test_mm512_mask_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1633*67e74705SXin Li                                    __m512i __src) {
1634*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_add_epi32
1635*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.padd.d.512
1636*67e74705SXin Li   return _mm512_mask_add_epi32(__src,__k,__A,__B);
1637*67e74705SXin Li }
1638*67e74705SXin Li 
test_mm512_add_epi32(__m512i __A,__m512i __B)1639*67e74705SXin Li __m512i test_mm512_add_epi32(__m512i __A, __m512i __B) {
1640*67e74705SXin Li   //CHECK-LABEL: @test_mm512_add_epi32
1641*67e74705SXin Li   //CHECK: add <16 x i32>
1642*67e74705SXin Li   return _mm512_add_epi32(__A,__B);
1643*67e74705SXin Li }
1644*67e74705SXin Li 
test_mm512_maskz_add_epi64(__mmask8 __k,__m512i __A,__m512i __B)1645*67e74705SXin Li __m512i test_mm512_maskz_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1646*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_add_epi64
1647*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.padd.q.512
1648*67e74705SXin Li   return _mm512_maskz_add_epi64(__k,__A,__B);
1649*67e74705SXin Li }
1650*67e74705SXin Li 
test_mm512_mask_add_epi64(__mmask8 __k,__m512i __A,__m512i __B,__m512i __src)1651*67e74705SXin Li __m512i test_mm512_mask_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1652*67e74705SXin Li                                    __m512i __src) {
1653*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_add_epi64
1654*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.padd.q.512
1655*67e74705SXin Li   return _mm512_mask_add_epi64(__src,__k,__A,__B);
1656*67e74705SXin Li }
1657*67e74705SXin Li 
test_mm512_add_epi64(__m512i __A,__m512i __B)1658*67e74705SXin Li __m512i test_mm512_add_epi64(__m512i __A, __m512i __B) {
1659*67e74705SXin Li   //CHECK-LABEL: @test_mm512_add_epi64
1660*67e74705SXin Li   //CHECK: add <8 x i64>
1661*67e74705SXin Li   return _mm512_add_epi64(__A,__B);
1662*67e74705SXin Li }
1663*67e74705SXin Li 
test_mm512_maskz_mul_epi32(__mmask16 __k,__m512i __A,__m512i __B)1664*67e74705SXin Li __m512i test_mm512_maskz_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1665*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_mul_epi32
1666*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.pmul.dq.512
1667*67e74705SXin Li   return _mm512_maskz_mul_epi32(__k,__A,__B);
1668*67e74705SXin Li }
1669*67e74705SXin Li 
test_mm512_mask_mul_epi32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1670*67e74705SXin Li __m512i test_mm512_mask_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1671*67e74705SXin Li                                    __m512i __src) {
1672*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_mul_epi32
1673*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.pmul.dq.512
1674*67e74705SXin Li   return _mm512_mask_mul_epi32(__src,__k,__A,__B);
1675*67e74705SXin Li }
1676*67e74705SXin Li 
test_mm512_maskz_mul_epu32(__mmask16 __k,__m512i __A,__m512i __B)1677*67e74705SXin Li __m512i test_mm512_maskz_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B) {
1678*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_mul_epu32
1679*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512
1680*67e74705SXin Li   return _mm512_maskz_mul_epu32(__k,__A,__B);
1681*67e74705SXin Li }
1682*67e74705SXin Li 
test_mm512_mask_mul_epu32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1683*67e74705SXin Li __m512i test_mm512_mask_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B,
1684*67e74705SXin Li                                    __m512i __src) {
1685*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_mul_epu32
1686*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512
1687*67e74705SXin Li   return _mm512_mask_mul_epu32(__src,__k,__A,__B);
1688*67e74705SXin Li }
1689*67e74705SXin Li 
test_mm512_maskz_mullo_epi32(__mmask16 __k,__m512i __A,__m512i __B)1690*67e74705SXin Li __m512i test_mm512_maskz_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1691*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_mullo_epi32
1692*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.pmull.d.512
1693*67e74705SXin Li   return _mm512_maskz_mullo_epi32(__k,__A,__B);
1694*67e74705SXin Li }
1695*67e74705SXin Li 
test_mm512_mask_mullo_epi32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1696*67e74705SXin Li __m512i test_mm512_mask_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B, __m512i __src) {
1697*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_mullo_epi32
1698*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.pmull.d.512
1699*67e74705SXin Li   return _mm512_mask_mullo_epi32(__src,__k,__A,__B);
1700*67e74705SXin Li }
1701*67e74705SXin Li 
test_mm512_mullo_epi32(__m512i __A,__m512i __B)1702*67e74705SXin Li __m512i test_mm512_mullo_epi32(__m512i __A, __m512i __B) {
1703*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mullo_epi32
1704*67e74705SXin Li   //CHECK: mul <16 x i32>
1705*67e74705SXin Li   return _mm512_mullo_epi32(__A,__B);
1706*67e74705SXin Li }
1707*67e74705SXin Li 
test_mm512_add_round_pd(__m512d __A,__m512d __B)1708*67e74705SXin Li __m512d test_mm512_add_round_pd(__m512d __A, __m512d __B) {
1709*67e74705SXin Li   // CHECK-LABEL: @test_mm512_add_round_pd
1710*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.pd.512
1711*67e74705SXin Li   return _mm512_add_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1712*67e74705SXin Li }
test_mm512_mask_add_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1713*67e74705SXin Li __m512d test_mm512_mask_add_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1714*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_add_round_pd
1715*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.pd.512
1716*67e74705SXin Li   return _mm512_mask_add_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1717*67e74705SXin Li }
test_mm512_maskz_add_round_pd(__mmask8 __U,__m512d __A,__m512d __B)1718*67e74705SXin Li __m512d test_mm512_maskz_add_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1719*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_add_round_pd
1720*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.pd.512
1721*67e74705SXin Li   return _mm512_maskz_add_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1722*67e74705SXin Li }
test_mm512_mask_add_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1723*67e74705SXin Li __m512d test_mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1724*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_add_pd
1725*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.pd.512
1726*67e74705SXin Li   return _mm512_mask_add_pd(__W,__U,__A,__B);
1727*67e74705SXin Li }
test_mm512_maskz_add_pd(__mmask8 __U,__m512d __A,__m512d __B)1728*67e74705SXin Li __m512d test_mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1729*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_add_pd
1730*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.pd.512
1731*67e74705SXin Li   return _mm512_maskz_add_pd(__U,__A,__B);
1732*67e74705SXin Li }
test_mm512_add_round_ps(__m512 __A,__m512 __B)1733*67e74705SXin Li __m512 test_mm512_add_round_ps(__m512 __A, __m512 __B) {
1734*67e74705SXin Li   // CHECK-LABEL: @test_mm512_add_round_ps
1735*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.ps.512
1736*67e74705SXin Li   return _mm512_add_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1737*67e74705SXin Li }
test_mm512_mask_add_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1738*67e74705SXin Li __m512 test_mm512_mask_add_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1739*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_add_round_ps
1740*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.ps.512
1741*67e74705SXin Li   return _mm512_mask_add_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1742*67e74705SXin Li }
test_mm512_maskz_add_round_ps(__mmask16 __U,__m512 __A,__m512 __B)1743*67e74705SXin Li __m512 test_mm512_maskz_add_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1744*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_add_round_ps
1745*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.ps.512
1746*67e74705SXin Li   return _mm512_maskz_add_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1747*67e74705SXin Li }
test_mm512_mask_add_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1748*67e74705SXin Li __m512 test_mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1749*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_add_ps
1750*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.ps.512
1751*67e74705SXin Li   return _mm512_mask_add_ps(__W,__U,__A,__B);
1752*67e74705SXin Li }
test_mm512_maskz_add_ps(__mmask16 __U,__m512 __A,__m512 __B)1753*67e74705SXin Li __m512 test_mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1754*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_add_ps
1755*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.ps.512
1756*67e74705SXin Li   return _mm512_maskz_add_ps(__U,__A,__B);
1757*67e74705SXin Li }
test_mm_add_round_ss(__m128 __A,__m128 __B)1758*67e74705SXin Li __m128 test_mm_add_round_ss(__m128 __A, __m128 __B) {
1759*67e74705SXin Li   // CHECK-LABEL: @test_mm_add_round_ss
1760*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.ss.round
1761*67e74705SXin Li   return _mm_add_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1762*67e74705SXin Li }
test_mm_mask_add_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1763*67e74705SXin Li __m128 test_mm_mask_add_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1764*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_add_round_ss
1765*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.ss.round
1766*67e74705SXin Li   return _mm_mask_add_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1767*67e74705SXin Li }
test_mm_maskz_add_round_ss(__mmask8 __U,__m128 __A,__m128 __B)1768*67e74705SXin Li __m128 test_mm_maskz_add_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1769*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_add_round_ss
1770*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.ss.round
1771*67e74705SXin Li   return _mm_maskz_add_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1772*67e74705SXin Li }
test_mm_mask_add_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1773*67e74705SXin Li __m128 test_mm_mask_add_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1774*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_add_ss
1775*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.ss.round
1776*67e74705SXin Li   return _mm_mask_add_ss(__W,__U,__A,__B);
1777*67e74705SXin Li }
test_mm_maskz_add_ss(__mmask8 __U,__m128 __A,__m128 __B)1778*67e74705SXin Li __m128 test_mm_maskz_add_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1779*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_add_ss
1780*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.ss.round
1781*67e74705SXin Li   return _mm_maskz_add_ss(__U,__A,__B);
1782*67e74705SXin Li }
test_mm_add_round_sd(__m128d __A,__m128d __B)1783*67e74705SXin Li __m128d test_mm_add_round_sd(__m128d __A, __m128d __B) {
1784*67e74705SXin Li   // CHECK-LABEL: @test_mm_add_round_sd
1785*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.sd.round
1786*67e74705SXin Li   return _mm_add_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1787*67e74705SXin Li }
test_mm_mask_add_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1788*67e74705SXin Li __m128d test_mm_mask_add_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1789*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_add_round_sd
1790*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.sd.round
1791*67e74705SXin Li   return _mm_mask_add_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1792*67e74705SXin Li }
test_mm_maskz_add_round_sd(__mmask8 __U,__m128d __A,__m128d __B)1793*67e74705SXin Li __m128d test_mm_maskz_add_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1794*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_add_round_sd
1795*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.sd.round
1796*67e74705SXin Li   return _mm_maskz_add_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1797*67e74705SXin Li }
test_mm_mask_add_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1798*67e74705SXin Li __m128d test_mm_mask_add_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1799*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_add_sd
1800*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.sd.round
1801*67e74705SXin Li   return _mm_mask_add_sd(__W,__U,__A,__B);
1802*67e74705SXin Li }
test_mm_maskz_add_sd(__mmask8 __U,__m128d __A,__m128d __B)1803*67e74705SXin Li __m128d test_mm_maskz_add_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1804*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_add_sd
1805*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.add.sd.round
1806*67e74705SXin Li   return _mm_maskz_add_sd(__U,__A,__B);
1807*67e74705SXin Li }
test_mm512_sub_round_pd(__m512d __A,__m512d __B)1808*67e74705SXin Li __m512d test_mm512_sub_round_pd(__m512d __A, __m512d __B) {
1809*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sub_round_pd
1810*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1811*67e74705SXin Li   return _mm512_sub_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1812*67e74705SXin Li }
test_mm512_mask_sub_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1813*67e74705SXin Li __m512d test_mm512_mask_sub_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1814*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sub_round_pd
1815*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1816*67e74705SXin Li   return _mm512_mask_sub_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1817*67e74705SXin Li }
test_mm512_maskz_sub_round_pd(__mmask8 __U,__m512d __A,__m512d __B)1818*67e74705SXin Li __m512d test_mm512_maskz_sub_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1819*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sub_round_pd
1820*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1821*67e74705SXin Li   return _mm512_maskz_sub_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1822*67e74705SXin Li }
test_mm512_mask_sub_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1823*67e74705SXin Li __m512d test_mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1824*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sub_pd
1825*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1826*67e74705SXin Li   return _mm512_mask_sub_pd(__W,__U,__A,__B);
1827*67e74705SXin Li }
test_mm512_maskz_sub_pd(__mmask8 __U,__m512d __A,__m512d __B)1828*67e74705SXin Li __m512d test_mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1829*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sub_pd
1830*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1831*67e74705SXin Li   return _mm512_maskz_sub_pd(__U,__A,__B);
1832*67e74705SXin Li }
test_mm512_sub_round_ps(__m512 __A,__m512 __B)1833*67e74705SXin Li __m512 test_mm512_sub_round_ps(__m512 __A, __m512 __B) {
1834*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sub_round_ps
1835*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1836*67e74705SXin Li   return _mm512_sub_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1837*67e74705SXin Li }
test_mm512_mask_sub_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1838*67e74705SXin Li __m512 test_mm512_mask_sub_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1839*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sub_round_ps
1840*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1841*67e74705SXin Li   return _mm512_mask_sub_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1842*67e74705SXin Li }
test_mm512_maskz_sub_round_ps(__mmask16 __U,__m512 __A,__m512 __B)1843*67e74705SXin Li __m512 test_mm512_maskz_sub_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1844*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sub_round_ps
1845*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1846*67e74705SXin Li   return _mm512_maskz_sub_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1847*67e74705SXin Li }
test_mm512_mask_sub_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1848*67e74705SXin Li __m512 test_mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1849*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sub_ps
1850*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1851*67e74705SXin Li   return _mm512_mask_sub_ps(__W,__U,__A,__B);
1852*67e74705SXin Li }
test_mm512_maskz_sub_ps(__mmask16 __U,__m512 __A,__m512 __B)1853*67e74705SXin Li __m512 test_mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1854*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sub_ps
1855*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1856*67e74705SXin Li   return _mm512_maskz_sub_ps(__U,__A,__B);
1857*67e74705SXin Li }
test_mm_sub_round_ss(__m128 __A,__m128 __B)1858*67e74705SXin Li __m128 test_mm_sub_round_ss(__m128 __A, __m128 __B) {
1859*67e74705SXin Li   // CHECK-LABEL: @test_mm_sub_round_ss
1860*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1861*67e74705SXin Li   return _mm_sub_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1862*67e74705SXin Li }
test_mm_mask_sub_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1863*67e74705SXin Li __m128 test_mm_mask_sub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1864*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_sub_round_ss
1865*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1866*67e74705SXin Li   return _mm_mask_sub_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1867*67e74705SXin Li }
test_mm_maskz_sub_round_ss(__mmask8 __U,__m128 __A,__m128 __B)1868*67e74705SXin Li __m128 test_mm_maskz_sub_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1869*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_sub_round_ss
1870*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1871*67e74705SXin Li   return _mm_maskz_sub_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1872*67e74705SXin Li }
test_mm_mask_sub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1873*67e74705SXin Li __m128 test_mm_mask_sub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1874*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_sub_ss
1875*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1876*67e74705SXin Li   return _mm_mask_sub_ss(__W,__U,__A,__B);
1877*67e74705SXin Li }
test_mm_maskz_sub_ss(__mmask8 __U,__m128 __A,__m128 __B)1878*67e74705SXin Li __m128 test_mm_maskz_sub_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1879*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_sub_ss
1880*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1881*67e74705SXin Li   return _mm_maskz_sub_ss(__U,__A,__B);
1882*67e74705SXin Li }
test_mm_sub_round_sd(__m128d __A,__m128d __B)1883*67e74705SXin Li __m128d test_mm_sub_round_sd(__m128d __A, __m128d __B) {
1884*67e74705SXin Li   // CHECK-LABEL: @test_mm_sub_round_sd
1885*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1886*67e74705SXin Li   return _mm_sub_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1887*67e74705SXin Li }
test_mm_mask_sub_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1888*67e74705SXin Li __m128d test_mm_mask_sub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1889*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_sub_round_sd
1890*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1891*67e74705SXin Li   return _mm_mask_sub_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1892*67e74705SXin Li }
test_mm_maskz_sub_round_sd(__mmask8 __U,__m128d __A,__m128d __B)1893*67e74705SXin Li __m128d test_mm_maskz_sub_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1894*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_sub_round_sd
1895*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1896*67e74705SXin Li   return _mm_maskz_sub_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1897*67e74705SXin Li }
test_mm_mask_sub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1898*67e74705SXin Li __m128d test_mm_mask_sub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1899*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_sub_sd
1900*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1901*67e74705SXin Li   return _mm_mask_sub_sd(__W,__U,__A,__B);
1902*67e74705SXin Li }
test_mm_maskz_sub_sd(__mmask8 __U,__m128d __A,__m128d __B)1903*67e74705SXin Li __m128d test_mm_maskz_sub_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1904*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_sub_sd
1905*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1906*67e74705SXin Li   return _mm_maskz_sub_sd(__U,__A,__B);
1907*67e74705SXin Li }
test_mm512_mul_round_pd(__m512d __A,__m512d __B)1908*67e74705SXin Li __m512d test_mm512_mul_round_pd(__m512d __A, __m512d __B) {
1909*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mul_round_pd
1910*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1911*67e74705SXin Li   return _mm512_mul_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1912*67e74705SXin Li }
test_mm512_mask_mul_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1913*67e74705SXin Li __m512d test_mm512_mask_mul_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1914*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mul_round_pd
1915*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1916*67e74705SXin Li   return _mm512_mask_mul_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1917*67e74705SXin Li }
test_mm512_maskz_mul_round_pd(__mmask8 __U,__m512d __A,__m512d __B)1918*67e74705SXin Li __m512d test_mm512_maskz_mul_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1919*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mul_round_pd
1920*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1921*67e74705SXin Li   return _mm512_maskz_mul_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1922*67e74705SXin Li }
test_mm512_mask_mul_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1923*67e74705SXin Li __m512d test_mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1924*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mul_pd
1925*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1926*67e74705SXin Li   return _mm512_mask_mul_pd(__W,__U,__A,__B);
1927*67e74705SXin Li }
test_mm512_maskz_mul_pd(__mmask8 __U,__m512d __A,__m512d __B)1928*67e74705SXin Li __m512d test_mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1929*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mul_pd
1930*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1931*67e74705SXin Li   return _mm512_maskz_mul_pd(__U,__A,__B);
1932*67e74705SXin Li }
test_mm512_mul_round_ps(__m512 __A,__m512 __B)1933*67e74705SXin Li __m512 test_mm512_mul_round_ps(__m512 __A, __m512 __B) {
1934*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mul_round_ps
1935*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1936*67e74705SXin Li   return _mm512_mul_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1937*67e74705SXin Li }
test_mm512_mask_mul_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1938*67e74705SXin Li __m512 test_mm512_mask_mul_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1939*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mul_round_ps
1940*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1941*67e74705SXin Li   return _mm512_mask_mul_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1942*67e74705SXin Li }
test_mm512_maskz_mul_round_ps(__mmask16 __U,__m512 __A,__m512 __B)1943*67e74705SXin Li __m512 test_mm512_maskz_mul_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1944*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mul_round_ps
1945*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1946*67e74705SXin Li   return _mm512_maskz_mul_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1947*67e74705SXin Li }
test_mm512_mask_mul_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1948*67e74705SXin Li __m512 test_mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1949*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mul_ps
1950*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1951*67e74705SXin Li   return _mm512_mask_mul_ps(__W,__U,__A,__B);
1952*67e74705SXin Li }
test_mm512_maskz_mul_ps(__mmask16 __U,__m512 __A,__m512 __B)1953*67e74705SXin Li __m512 test_mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1954*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mul_ps
1955*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1956*67e74705SXin Li   return _mm512_maskz_mul_ps(__U,__A,__B);
1957*67e74705SXin Li }
test_mm_mul_round_ss(__m128 __A,__m128 __B)1958*67e74705SXin Li __m128 test_mm_mul_round_ss(__m128 __A, __m128 __B) {
1959*67e74705SXin Li   // CHECK-LABEL: @test_mm_mul_round_ss
1960*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1961*67e74705SXin Li   return _mm_mul_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1962*67e74705SXin Li }
test_mm_mask_mul_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1963*67e74705SXin Li __m128 test_mm_mask_mul_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1964*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_mul_round_ss
1965*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1966*67e74705SXin Li   return _mm_mask_mul_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1967*67e74705SXin Li }
test_mm_maskz_mul_round_ss(__mmask8 __U,__m128 __A,__m128 __B)1968*67e74705SXin Li __m128 test_mm_maskz_mul_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1969*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_mul_round_ss
1970*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1971*67e74705SXin Li   return _mm_maskz_mul_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1972*67e74705SXin Li }
test_mm_mask_mul_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1973*67e74705SXin Li __m128 test_mm_mask_mul_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1974*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_mul_ss
1975*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1976*67e74705SXin Li   return _mm_mask_mul_ss(__W,__U,__A,__B);
1977*67e74705SXin Li }
test_mm_maskz_mul_ss(__mmask8 __U,__m128 __A,__m128 __B)1978*67e74705SXin Li __m128 test_mm_maskz_mul_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1979*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_mul_ss
1980*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1981*67e74705SXin Li   return _mm_maskz_mul_ss(__U,__A,__B);
1982*67e74705SXin Li }
test_mm_mul_round_sd(__m128d __A,__m128d __B)1983*67e74705SXin Li __m128d test_mm_mul_round_sd(__m128d __A, __m128d __B) {
1984*67e74705SXin Li   // CHECK-LABEL: @test_mm_mul_round_sd
1985*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1986*67e74705SXin Li   return _mm_mul_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1987*67e74705SXin Li }
test_mm_mask_mul_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1988*67e74705SXin Li __m128d test_mm_mask_mul_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1989*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_mul_round_sd
1990*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1991*67e74705SXin Li   return _mm_mask_mul_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1992*67e74705SXin Li }
test_mm_maskz_mul_round_sd(__mmask8 __U,__m128d __A,__m128d __B)1993*67e74705SXin Li __m128d test_mm_maskz_mul_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1994*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_mul_round_sd
1995*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1996*67e74705SXin Li   return _mm_maskz_mul_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1997*67e74705SXin Li }
test_mm_mask_mul_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1998*67e74705SXin Li __m128d test_mm_mask_mul_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1999*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_mul_sd
2000*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
2001*67e74705SXin Li   return _mm_mask_mul_sd(__W,__U,__A,__B);
2002*67e74705SXin Li }
test_mm_maskz_mul_sd(__mmask8 __U,__m128d __A,__m128d __B)2003*67e74705SXin Li __m128d test_mm_maskz_mul_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2004*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_mul_sd
2005*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
2006*67e74705SXin Li   return _mm_maskz_mul_sd(__U,__A,__B);
2007*67e74705SXin Li }
test_mm512_div_round_pd(__m512d __A,__m512d __B)2008*67e74705SXin Li __m512d test_mm512_div_round_pd(__m512d __A, __m512d __B) {
2009*67e74705SXin Li   // CHECK-LABEL: @test_mm512_div_round_pd
2010*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.pd.512
2011*67e74705SXin Li   return _mm512_div_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
2012*67e74705SXin Li }
test_mm512_mask_div_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)2013*67e74705SXin Li __m512d test_mm512_mask_div_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2014*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_div_round_pd
2015*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.pd.512
2016*67e74705SXin Li   return _mm512_mask_div_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2017*67e74705SXin Li }
test_mm512_maskz_div_round_pd(__mmask8 __U,__m512d __A,__m512d __B)2018*67e74705SXin Li __m512d test_mm512_maskz_div_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2019*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_div_round_pd
2020*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.pd.512
2021*67e74705SXin Li   return _mm512_maskz_div_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2022*67e74705SXin Li }
test_mm512_div_pd(__m512d __a,__m512d __b)2023*67e74705SXin Li __m512d test_mm512_div_pd(__m512d __a, __m512d __b) {
2024*67e74705SXin Li   // CHECK-LABLE: @test_mm512_div_pd
2025*67e74705SXin Li   // CHECK: fdiv <8 x double>
2026*67e74705SXin Li   return _mm512_div_pd(__a,__b);
2027*67e74705SXin Li }
test_mm512_mask_div_pd(__m512d __w,__mmask8 __u,__m512d __a,__m512d __b)2028*67e74705SXin Li __m512d test_mm512_mask_div_pd(__m512d __w, __mmask8 __u, __m512d __a, __m512d __b) {
2029*67e74705SXin Li   // CHECK-LABLE: @test_mm512_mask_div_pd
2030*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.pd.512
2031*67e74705SXin Li   return _mm512_mask_div_pd(__w,__u,__a,__b);
2032*67e74705SXin Li }
test_mm512_maskz_div_pd(__mmask8 __U,__m512d __A,__m512d __B)2033*67e74705SXin Li __m512d test_mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2034*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_div_pd
2035*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.pd.512
2036*67e74705SXin Li   return _mm512_maskz_div_pd(__U,__A,__B);
2037*67e74705SXin Li }
test_mm512_div_round_ps(__m512 __A,__m512 __B)2038*67e74705SXin Li __m512 test_mm512_div_round_ps(__m512 __A, __m512 __B) {
2039*67e74705SXin Li   // CHECK-LABEL: @test_mm512_div_round_ps
2040*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.ps.512
2041*67e74705SXin Li   return _mm512_div_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
2042*67e74705SXin Li }
test_mm512_mask_div_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)2043*67e74705SXin Li __m512 test_mm512_mask_div_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2044*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_div_round_ps
2045*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.ps.512
2046*67e74705SXin Li   return _mm512_mask_div_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2047*67e74705SXin Li }
test_mm512_maskz_div_round_ps(__mmask16 __U,__m512 __A,__m512 __B)2048*67e74705SXin Li __m512 test_mm512_maskz_div_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2049*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_div_round_ps
2050*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.ps.512
2051*67e74705SXin Li   return _mm512_maskz_div_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2052*67e74705SXin Li }
test_mm512_div_ps(__m512 __A,__m512 __B)2053*67e74705SXin Li __m512 test_mm512_div_ps(__m512 __A, __m512 __B) {
2054*67e74705SXin Li   // CHECK-LABEL: @test_mm512_div_ps
2055*67e74705SXin Li   // CHECK: fdiv <16 x float>
2056*67e74705SXin Li   return _mm512_div_ps(__A,__B);
2057*67e74705SXin Li }
test_mm512_mask_div_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)2058*67e74705SXin Li __m512 test_mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2059*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_div_ps
2060*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.ps.512
2061*67e74705SXin Li   return _mm512_mask_div_ps(__W,__U,__A,__B);
2062*67e74705SXin Li }
test_mm512_maskz_div_ps(__mmask16 __U,__m512 __A,__m512 __B)2063*67e74705SXin Li __m512 test_mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2064*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_div_ps
2065*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.ps.512
2066*67e74705SXin Li   return _mm512_maskz_div_ps(__U,__A,__B);
2067*67e74705SXin Li }
test_mm_div_round_ss(__m128 __A,__m128 __B)2068*67e74705SXin Li __m128 test_mm_div_round_ss(__m128 __A, __m128 __B) {
2069*67e74705SXin Li   // CHECK-LABEL: @test_mm_div_round_ss
2070*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.ss.round
2071*67e74705SXin Li   return _mm_div_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
2072*67e74705SXin Li }
test_mm_mask_div_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2073*67e74705SXin Li __m128 test_mm_mask_div_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2074*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_div_round_ss
2075*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.ss.round
2076*67e74705SXin Li   return _mm_mask_div_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2077*67e74705SXin Li }
test_mm_maskz_div_round_ss(__mmask8 __U,__m128 __A,__m128 __B)2078*67e74705SXin Li __m128 test_mm_maskz_div_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2079*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_div_round_ss
2080*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.ss.round
2081*67e74705SXin Li   return _mm_maskz_div_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2082*67e74705SXin Li }
test_mm_mask_div_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2083*67e74705SXin Li __m128 test_mm_mask_div_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2084*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_div_ss
2085*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.ss.round
2086*67e74705SXin Li   return _mm_mask_div_ss(__W,__U,__A,__B);
2087*67e74705SXin Li }
test_mm_maskz_div_ss(__mmask8 __U,__m128 __A,__m128 __B)2088*67e74705SXin Li __m128 test_mm_maskz_div_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2089*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_div_ss
2090*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.ss.round
2091*67e74705SXin Li   return _mm_maskz_div_ss(__U,__A,__B);
2092*67e74705SXin Li }
test_mm_div_round_sd(__m128d __A,__m128d __B)2093*67e74705SXin Li __m128d test_mm_div_round_sd(__m128d __A, __m128d __B) {
2094*67e74705SXin Li   // CHECK-LABEL: @test_mm_div_round_sd
2095*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.sd.round
2096*67e74705SXin Li   return _mm_div_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
2097*67e74705SXin Li }
test_mm_mask_div_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2098*67e74705SXin Li __m128d test_mm_mask_div_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2099*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_div_round_sd
2100*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.sd.round
2101*67e74705SXin Li   return _mm_mask_div_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2102*67e74705SXin Li }
test_mm_maskz_div_round_sd(__mmask8 __U,__m128d __A,__m128d __B)2103*67e74705SXin Li __m128d test_mm_maskz_div_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2104*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_div_round_sd
2105*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.sd.round
2106*67e74705SXin Li   return _mm_maskz_div_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2107*67e74705SXin Li }
test_mm_mask_div_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2108*67e74705SXin Li __m128d test_mm_mask_div_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2109*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_div_sd
2110*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.sd.round
2111*67e74705SXin Li   return _mm_mask_div_sd(__W,__U,__A,__B);
2112*67e74705SXin Li }
test_mm_maskz_div_sd(__mmask8 __U,__m128d __A,__m128d __B)2113*67e74705SXin Li __m128d test_mm_maskz_div_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2114*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_div_sd
2115*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.div.sd.round
2116*67e74705SXin Li   return _mm_maskz_div_sd(__U,__A,__B);
2117*67e74705SXin Li }
test_mm_max_round_ss(__m128 __A,__m128 __B)2118*67e74705SXin Li __m128 test_mm_max_round_ss(__m128 __A, __m128 __B) {
2119*67e74705SXin Li   // CHECK-LABEL: @test_mm_max_round_ss
2120*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.ss.round
2121*67e74705SXin Li   return _mm_max_round_ss(__A,__B,0x08);
2122*67e74705SXin Li }
test_mm_mask_max_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2123*67e74705SXin Li __m128 test_mm_mask_max_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2124*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_max_round_ss
2125*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.ss.round
2126*67e74705SXin Li   return _mm_mask_max_round_ss(__W,__U,__A,__B,0x08);
2127*67e74705SXin Li }
test_mm_maskz_max_round_ss(__mmask8 __U,__m128 __A,__m128 __B)2128*67e74705SXin Li __m128 test_mm_maskz_max_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2129*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_max_round_ss
2130*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.ss.round
2131*67e74705SXin Li   return _mm_maskz_max_round_ss(__U,__A,__B,0x08);
2132*67e74705SXin Li }
test_mm_mask_max_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2133*67e74705SXin Li __m128 test_mm_mask_max_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2134*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_max_ss
2135*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.ss.round
2136*67e74705SXin Li   return _mm_mask_max_ss(__W,__U,__A,__B);
2137*67e74705SXin Li }
test_mm_maskz_max_ss(__mmask8 __U,__m128 __A,__m128 __B)2138*67e74705SXin Li __m128 test_mm_maskz_max_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2139*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_max_ss
2140*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.ss.round
2141*67e74705SXin Li   return _mm_maskz_max_ss(__U,__A,__B);
2142*67e74705SXin Li }
test_mm_max_round_sd(__m128d __A,__m128d __B)2143*67e74705SXin Li __m128d test_mm_max_round_sd(__m128d __A, __m128d __B) {
2144*67e74705SXin Li   // CHECK-LABEL: @test_mm_max_round_sd
2145*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.sd.round
2146*67e74705SXin Li   return _mm_max_round_sd(__A,__B,0x08);
2147*67e74705SXin Li }
test_mm_mask_max_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2148*67e74705SXin Li __m128d test_mm_mask_max_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2149*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_max_round_sd
2150*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.sd.round
2151*67e74705SXin Li   return _mm_mask_max_round_sd(__W,__U,__A,__B,0x08);
2152*67e74705SXin Li }
test_mm_maskz_max_round_sd(__mmask8 __U,__m128d __A,__m128d __B)2153*67e74705SXin Li __m128d test_mm_maskz_max_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2154*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_max_round_sd
2155*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.sd.round
2156*67e74705SXin Li   return _mm_maskz_max_round_sd(__U,__A,__B,0x08);
2157*67e74705SXin Li }
test_mm_mask_max_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2158*67e74705SXin Li __m128d test_mm_mask_max_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2159*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_max_sd
2160*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.sd.round
2161*67e74705SXin Li   return _mm_mask_max_sd(__W,__U,__A,__B);
2162*67e74705SXin Li }
test_mm_maskz_max_sd(__mmask8 __U,__m128d __A,__m128d __B)2163*67e74705SXin Li __m128d test_mm_maskz_max_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2164*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_max_sd
2165*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.sd.round
2166*67e74705SXin Li   return _mm_maskz_max_sd(__U,__A,__B);
2167*67e74705SXin Li }
test_mm_min_round_ss(__m128 __A,__m128 __B)2168*67e74705SXin Li __m128 test_mm_min_round_ss(__m128 __A, __m128 __B) {
2169*67e74705SXin Li   // CHECK-LABEL: @test_mm_min_round_ss
2170*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.ss.round
2171*67e74705SXin Li   return _mm_min_round_ss(__A,__B,0x08);
2172*67e74705SXin Li }
test_mm_mask_min_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2173*67e74705SXin Li __m128 test_mm_mask_min_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2174*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_min_round_ss
2175*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.ss.round
2176*67e74705SXin Li   return _mm_mask_min_round_ss(__W,__U,__A,__B,0x08);
2177*67e74705SXin Li }
test_mm_maskz_min_round_ss(__mmask8 __U,__m128 __A,__m128 __B)2178*67e74705SXin Li __m128 test_mm_maskz_min_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2179*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_min_round_ss
2180*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.ss.round
2181*67e74705SXin Li   return _mm_maskz_min_round_ss(__U,__A,__B,0x08);
2182*67e74705SXin Li }
test_mm_mask_min_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2183*67e74705SXin Li __m128 test_mm_mask_min_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2184*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_min_ss
2185*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.ss.round
2186*67e74705SXin Li   return _mm_mask_min_ss(__W,__U,__A,__B);
2187*67e74705SXin Li }
test_mm_maskz_min_ss(__mmask8 __U,__m128 __A,__m128 __B)2188*67e74705SXin Li __m128 test_mm_maskz_min_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2189*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_min_ss
2190*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.ss.round
2191*67e74705SXin Li   return _mm_maskz_min_ss(__U,__A,__B);
2192*67e74705SXin Li }
test_mm_min_round_sd(__m128d __A,__m128d __B)2193*67e74705SXin Li __m128d test_mm_min_round_sd(__m128d __A, __m128d __B) {
2194*67e74705SXin Li   // CHECK-LABEL: @test_mm_min_round_sd
2195*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.sd.round
2196*67e74705SXin Li   return _mm_min_round_sd(__A,__B,0x08);
2197*67e74705SXin Li }
test_mm_mask_min_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2198*67e74705SXin Li __m128d test_mm_mask_min_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2199*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_min_round_sd
2200*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.sd.round
2201*67e74705SXin Li   return _mm_mask_min_round_sd(__W,__U,__A,__B,0x08);
2202*67e74705SXin Li }
test_mm_maskz_min_round_sd(__mmask8 __U,__m128d __A,__m128d __B)2203*67e74705SXin Li __m128d test_mm_maskz_min_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2204*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_min_round_sd
2205*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.sd.round
2206*67e74705SXin Li   return _mm_maskz_min_round_sd(__U,__A,__B,0x08);
2207*67e74705SXin Li }
test_mm_mask_min_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2208*67e74705SXin Li __m128d test_mm_mask_min_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2209*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_min_sd
2210*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.sd.round
2211*67e74705SXin Li   return _mm_mask_min_sd(__W,__U,__A,__B);
2212*67e74705SXin Li }
test_mm_maskz_min_sd(__mmask8 __U,__m128d __A,__m128d __B)2213*67e74705SXin Li __m128d test_mm_maskz_min_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2214*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_min_sd
2215*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.sd.round
2216*67e74705SXin Li   return _mm_maskz_min_sd(__U,__A,__B);
2217*67e74705SXin Li }
2218*67e74705SXin Li 
test_mm512_undefined()2219*67e74705SXin Li __m512 test_mm512_undefined() {
2220*67e74705SXin Li   // CHECK-LABEL: @test_mm512_undefined
2221*67e74705SXin Li   // CHECK: ret <16 x float> undef
2222*67e74705SXin Li   return _mm512_undefined();
2223*67e74705SXin Li }
2224*67e74705SXin Li 
test_mm512_undefined_ps()2225*67e74705SXin Li __m512 test_mm512_undefined_ps() {
2226*67e74705SXin Li   // CHECK-LABEL: @test_mm512_undefined_ps
2227*67e74705SXin Li   // CHECK: ret <16 x float> undef
2228*67e74705SXin Li   return _mm512_undefined_ps();
2229*67e74705SXin Li }
2230*67e74705SXin Li 
test_mm512_undefined_pd()2231*67e74705SXin Li __m512d test_mm512_undefined_pd() {
2232*67e74705SXin Li   // CHECK-LABEL: @test_mm512_undefined_pd
2233*67e74705SXin Li   // CHECK: ret <8 x double> undef
2234*67e74705SXin Li   return _mm512_undefined_pd();
2235*67e74705SXin Li }
2236*67e74705SXin Li 
test_mm512_undefined_epi32()2237*67e74705SXin Li __m512i test_mm512_undefined_epi32() {
2238*67e74705SXin Li   // CHECK-LABEL: @test_mm512_undefined_epi32
2239*67e74705SXin Li   // CHECK: ret <8 x i64> undef
2240*67e74705SXin Li   return _mm512_undefined_epi32();
2241*67e74705SXin Li }
2242*67e74705SXin Li 
test_mm512_cvtepi8_epi32(__m128i __A)2243*67e74705SXin Li __m512i test_mm512_cvtepi8_epi32(__m128i __A) {
2244*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi8_epi32
2245*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
2246*67e74705SXin Li   return _mm512_cvtepi8_epi32(__A);
2247*67e74705SXin Li }
2248*67e74705SXin Li 
test_mm512_mask_cvtepi8_epi32(__m512i __W,__mmask16 __U,__m128i __A)2249*67e74705SXin Li __m512i test_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
2250*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi32
2251*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
2252*67e74705SXin Li   return _mm512_mask_cvtepi8_epi32(__W, __U, __A);
2253*67e74705SXin Li }
2254*67e74705SXin Li 
test_mm512_maskz_cvtepi8_epi32(__mmask16 __U,__m128i __A)2255*67e74705SXin Li __m512i test_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) {
2256*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi32
2257*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
2258*67e74705SXin Li   return _mm512_maskz_cvtepi8_epi32(__U, __A);
2259*67e74705SXin Li }
2260*67e74705SXin Li 
test_mm512_cvtepi8_epi64(__m128i __A)2261*67e74705SXin Li __m512i test_mm512_cvtepi8_epi64(__m128i __A) {
2262*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi8_epi64
2263*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
2264*67e74705SXin Li   return _mm512_cvtepi8_epi64(__A);
2265*67e74705SXin Li }
2266*67e74705SXin Li 
test_mm512_mask_cvtepi8_epi64(__m512i __W,__mmask8 __U,__m128i __A)2267*67e74705SXin Li __m512i test_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2268*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi64
2269*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
2270*67e74705SXin Li   return _mm512_mask_cvtepi8_epi64(__W, __U, __A);
2271*67e74705SXin Li }
2272*67e74705SXin Li 
test_mm512_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)2273*67e74705SXin Li __m512i test_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
2274*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi64
2275*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
2276*67e74705SXin Li   return _mm512_maskz_cvtepi8_epi64(__U, __A);
2277*67e74705SXin Li }
2278*67e74705SXin Li 
test_mm512_cvtepi32_epi64(__m256i __X)2279*67e74705SXin Li __m512i test_mm512_cvtepi32_epi64(__m256i __X) {
2280*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi32_epi64
2281*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
2282*67e74705SXin Li   return _mm512_cvtepi32_epi64(__X);
2283*67e74705SXin Li }
2284*67e74705SXin Li 
test_mm512_mask_cvtepi32_epi64(__m512i __W,__mmask8 __U,__m256i __X)2285*67e74705SXin Li __m512i test_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
2286*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi64
2287*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
2288*67e74705SXin Li   return _mm512_mask_cvtepi32_epi64(__W, __U, __X);
2289*67e74705SXin Li }
2290*67e74705SXin Li 
test_mm512_maskz_cvtepi32_epi64(__mmask8 __U,__m256i __X)2291*67e74705SXin Li __m512i test_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) {
2292*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi64
2293*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
2294*67e74705SXin Li   return _mm512_maskz_cvtepi32_epi64(__U, __X);
2295*67e74705SXin Li }
2296*67e74705SXin Li 
test_mm512_cvtepi16_epi32(__m256i __A)2297*67e74705SXin Li __m512i test_mm512_cvtepi16_epi32(__m256i __A) {
2298*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi16_epi32
2299*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
2300*67e74705SXin Li   return _mm512_cvtepi16_epi32(__A);
2301*67e74705SXin Li }
2302*67e74705SXin Li 
test_mm512_mask_cvtepi16_epi32(__m512i __W,__mmask16 __U,__m256i __A)2303*67e74705SXin Li __m512i test_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
2304*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi32
2305*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
2306*67e74705SXin Li   return _mm512_mask_cvtepi16_epi32(__W, __U, __A);
2307*67e74705SXin Li }
2308*67e74705SXin Li 
test_mm512_maskz_cvtepi16_epi32(__mmask16 __U,__m256i __A)2309*67e74705SXin Li __m512i test_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) {
2310*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi32
2311*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
2312*67e74705SXin Li   return _mm512_maskz_cvtepi16_epi32(__U, __A);
2313*67e74705SXin Li }
2314*67e74705SXin Li 
test_mm512_cvtepi16_epi64(__m128i __A)2315*67e74705SXin Li __m512i test_mm512_cvtepi16_epi64(__m128i __A) {
2316*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi16_epi64
2317*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
2318*67e74705SXin Li   return _mm512_cvtepi16_epi64(__A);
2319*67e74705SXin Li }
2320*67e74705SXin Li 
test_mm512_mask_cvtepi16_epi64(__m512i __W,__mmask8 __U,__m128i __A)2321*67e74705SXin Li __m512i test_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2322*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi64
2323*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
2324*67e74705SXin Li   return _mm512_mask_cvtepi16_epi64(__W, __U, __A);
2325*67e74705SXin Li }
2326*67e74705SXin Li 
test_mm512_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)2327*67e74705SXin Li __m512i test_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
2328*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi64
2329*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
2330*67e74705SXin Li   return _mm512_maskz_cvtepi16_epi64(__U, __A);
2331*67e74705SXin Li }
2332*67e74705SXin Li 
test_mm512_cvtepu8_epi32(__m128i __A)2333*67e74705SXin Li __m512i test_mm512_cvtepu8_epi32(__m128i __A) {
2334*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepu8_epi32
2335*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
2336*67e74705SXin Li   return _mm512_cvtepu8_epi32(__A);
2337*67e74705SXin Li }
2338*67e74705SXin Li 
test_mm512_mask_cvtepu8_epi32(__m512i __W,__mmask16 __U,__m128i __A)2339*67e74705SXin Li __m512i test_mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
2340*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepu8_epi32
2341*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
2342*67e74705SXin Li   return _mm512_mask_cvtepu8_epi32(__W, __U, __A);
2343*67e74705SXin Li }
2344*67e74705SXin Li 
test_mm512_maskz_cvtepu8_epi32(__mmask16 __U,__m128i __A)2345*67e74705SXin Li __m512i test_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A) {
2346*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi32
2347*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
2348*67e74705SXin Li   return _mm512_maskz_cvtepu8_epi32(__U, __A);
2349*67e74705SXin Li }
2350*67e74705SXin Li 
test_mm512_cvtepu8_epi64(__m128i __A)2351*67e74705SXin Li __m512i test_mm512_cvtepu8_epi64(__m128i __A) {
2352*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepu8_epi64
2353*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
2354*67e74705SXin Li   return _mm512_cvtepu8_epi64(__A);
2355*67e74705SXin Li }
2356*67e74705SXin Li 
test_mm512_mask_cvtepu8_epi64(__m512i __W,__mmask8 __U,__m128i __A)2357*67e74705SXin Li __m512i test_mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2358*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepu8_epi64
2359*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
2360*67e74705SXin Li   return _mm512_mask_cvtepu8_epi64(__W, __U, __A);
2361*67e74705SXin Li }
2362*67e74705SXin Li 
test_mm512_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)2363*67e74705SXin Li __m512i test_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
2364*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi64
2365*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
2366*67e74705SXin Li   return _mm512_maskz_cvtepu8_epi64(__U, __A);
2367*67e74705SXin Li }
2368*67e74705SXin Li 
test_mm512_cvtepu32_epi64(__m256i __X)2369*67e74705SXin Li __m512i test_mm512_cvtepu32_epi64(__m256i __X) {
2370*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepu32_epi64
2371*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
2372*67e74705SXin Li   return _mm512_cvtepu32_epi64(__X);
2373*67e74705SXin Li }
2374*67e74705SXin Li 
test_mm512_mask_cvtepu32_epi64(__m512i __W,__mmask8 __U,__m256i __X)2375*67e74705SXin Li __m512i test_mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
2376*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepu32_epi64
2377*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
2378*67e74705SXin Li   return _mm512_mask_cvtepu32_epi64(__W, __U, __X);
2379*67e74705SXin Li }
2380*67e74705SXin Li 
test_mm512_maskz_cvtepu32_epi64(__mmask8 __U,__m256i __X)2381*67e74705SXin Li __m512i test_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X) {
2382*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepu32_epi64
2383*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
2384*67e74705SXin Li   return _mm512_maskz_cvtepu32_epi64(__U, __X);
2385*67e74705SXin Li }
2386*67e74705SXin Li 
test_mm512_cvtepu16_epi32(__m256i __A)2387*67e74705SXin Li __m512i test_mm512_cvtepu16_epi32(__m256i __A) {
2388*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepu16_epi32
2389*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
2390*67e74705SXin Li   return _mm512_cvtepu16_epi32(__A);
2391*67e74705SXin Li }
2392*67e74705SXin Li 
test_mm512_mask_cvtepu16_epi32(__m512i __W,__mmask16 __U,__m256i __A)2393*67e74705SXin Li __m512i test_mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
2394*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepu16_epi32
2395*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
2396*67e74705SXin Li   return _mm512_mask_cvtepu16_epi32(__W, __U, __A);
2397*67e74705SXin Li }
2398*67e74705SXin Li 
test_mm512_maskz_cvtepu16_epi32(__mmask16 __U,__m256i __A)2399*67e74705SXin Li __m512i test_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A) {
2400*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepu16_epi32
2401*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
2402*67e74705SXin Li   return _mm512_maskz_cvtepu16_epi32(__U, __A);
2403*67e74705SXin Li }
2404*67e74705SXin Li 
test_mm512_cvtepu16_epi64(__m128i __A)2405*67e74705SXin Li __m512i test_mm512_cvtepu16_epi64(__m128i __A) {
2406*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepu16_epi64
2407*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
2408*67e74705SXin Li   return _mm512_cvtepu16_epi64(__A);
2409*67e74705SXin Li }
2410*67e74705SXin Li 
test_mm512_mask_cvtepu16_epi64(__m512i __W,__mmask8 __U,__m128i __A)2411*67e74705SXin Li __m512i test_mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2412*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepu16_epi64
2413*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
2414*67e74705SXin Li   return _mm512_mask_cvtepu16_epi64(__W, __U, __A);
2415*67e74705SXin Li }
2416*67e74705SXin Li 
test_mm512_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)2417*67e74705SXin Li __m512i test_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
2418*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepu16_epi64
2419*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
2420*67e74705SXin Li   return _mm512_maskz_cvtepu16_epi64(__U, __A);
2421*67e74705SXin Li }
2422*67e74705SXin Li 
2423*67e74705SXin Li 
test_mm512_rol_epi32(__m512i __A)2424*67e74705SXin Li __m512i test_mm512_rol_epi32(__m512i __A) {
2425*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rol_epi32
2426*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prol.d.512
2427*67e74705SXin Li   return _mm512_rol_epi32(__A, 5);
2428*67e74705SXin Li }
2429*67e74705SXin Li 
test_mm512_mask_rol_epi32(__m512i __W,__mmask16 __U,__m512i __A)2430*67e74705SXin Li __m512i test_mm512_mask_rol_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2431*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rol_epi32
2432*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prol.d.512
2433*67e74705SXin Li   return _mm512_mask_rol_epi32(__W, __U, __A, 5);
2434*67e74705SXin Li }
2435*67e74705SXin Li 
test_mm512_maskz_rol_epi32(__mmask16 __U,__m512i __A)2436*67e74705SXin Li __m512i test_mm512_maskz_rol_epi32(__mmask16 __U, __m512i __A) {
2437*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rol_epi32
2438*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prol.d.512
2439*67e74705SXin Li   return _mm512_maskz_rol_epi32(__U, __A, 5);
2440*67e74705SXin Li }
2441*67e74705SXin Li 
test_mm512_rol_epi64(__m512i __A)2442*67e74705SXin Li __m512i test_mm512_rol_epi64(__m512i __A) {
2443*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rol_epi64
2444*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prol.q.512
2445*67e74705SXin Li   return _mm512_rol_epi64(__A, 5);
2446*67e74705SXin Li }
2447*67e74705SXin Li 
test_mm512_mask_rol_epi64(__m512i __W,__mmask8 __U,__m512i __A)2448*67e74705SXin Li __m512i test_mm512_mask_rol_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2449*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rol_epi64
2450*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prol.q.512
2451*67e74705SXin Li   return _mm512_mask_rol_epi64(__W, __U, __A, 5);
2452*67e74705SXin Li }
2453*67e74705SXin Li 
test_mm512_maskz_rol_epi64(__mmask8 __U,__m512i __A)2454*67e74705SXin Li __m512i test_mm512_maskz_rol_epi64(__mmask8 __U, __m512i __A) {
2455*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rol_epi64
2456*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prol.q.512
2457*67e74705SXin Li   return _mm512_maskz_rol_epi64(__U, __A, 5);
2458*67e74705SXin Li }
2459*67e74705SXin Li 
test_mm512_rolv_epi32(__m512i __A,__m512i __B)2460*67e74705SXin Li __m512i test_mm512_rolv_epi32(__m512i __A, __m512i __B) {
2461*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rolv_epi32
2462*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prolv.d.512
2463*67e74705SXin Li   return _mm512_rolv_epi32(__A, __B);
2464*67e74705SXin Li }
2465*67e74705SXin Li 
test_mm512_mask_rolv_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)2466*67e74705SXin Li __m512i test_mm512_mask_rolv_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
2467*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rolv_epi32
2468*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prolv.d.512
2469*67e74705SXin Li   return _mm512_mask_rolv_epi32(__W, __U, __A, __B);
2470*67e74705SXin Li }
2471*67e74705SXin Li 
test_mm512_maskz_rolv_epi32(__mmask16 __U,__m512i __A,__m512i __B)2472*67e74705SXin Li __m512i test_mm512_maskz_rolv_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
2473*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rolv_epi32
2474*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prolv.d.512
2475*67e74705SXin Li   return _mm512_maskz_rolv_epi32(__U, __A, __B);
2476*67e74705SXin Li }
2477*67e74705SXin Li 
test_mm512_rolv_epi64(__m512i __A,__m512i __B)2478*67e74705SXin Li __m512i test_mm512_rolv_epi64(__m512i __A, __m512i __B) {
2479*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rolv_epi64
2480*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prolv.q.512
2481*67e74705SXin Li   return _mm512_rolv_epi64(__A, __B);
2482*67e74705SXin Li }
2483*67e74705SXin Li 
test_mm512_mask_rolv_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)2484*67e74705SXin Li __m512i test_mm512_mask_rolv_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
2485*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rolv_epi64
2486*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prolv.q.512
2487*67e74705SXin Li   return _mm512_mask_rolv_epi64(__W, __U, __A, __B);
2488*67e74705SXin Li }
2489*67e74705SXin Li 
test_mm512_maskz_rolv_epi64(__mmask8 __U,__m512i __A,__m512i __B)2490*67e74705SXin Li __m512i test_mm512_maskz_rolv_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
2491*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rolv_epi64
2492*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prolv.q.512
2493*67e74705SXin Li   return _mm512_maskz_rolv_epi64(__U, __A, __B);
2494*67e74705SXin Li }
2495*67e74705SXin Li 
test_mm512_ror_epi32(__m512i __A)2496*67e74705SXin Li __m512i test_mm512_ror_epi32(__m512i __A) {
2497*67e74705SXin Li   // CHECK-LABEL: @test_mm512_ror_epi32
2498*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pror.d.512
2499*67e74705SXin Li   return _mm512_ror_epi32(__A, 5);
2500*67e74705SXin Li }
2501*67e74705SXin Li 
test_mm512_mask_ror_epi32(__m512i __W,__mmask16 __U,__m512i __A)2502*67e74705SXin Li __m512i test_mm512_mask_ror_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2503*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_ror_epi32
2504*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pror.d.512
2505*67e74705SXin Li   return _mm512_mask_ror_epi32(__W, __U, __A, 5);
2506*67e74705SXin Li }
2507*67e74705SXin Li 
test_mm512_maskz_ror_epi32(__mmask16 __U,__m512i __A)2508*67e74705SXin Li __m512i test_mm512_maskz_ror_epi32(__mmask16 __U, __m512i __A) {
2509*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_ror_epi32
2510*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pror.d.512
2511*67e74705SXin Li   return _mm512_maskz_ror_epi32(__U, __A, 5);
2512*67e74705SXin Li }
2513*67e74705SXin Li 
test_mm512_ror_epi64(__m512i __A)2514*67e74705SXin Li __m512i test_mm512_ror_epi64(__m512i __A) {
2515*67e74705SXin Li   // CHECK-LABEL: @test_mm512_ror_epi64
2516*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pror.q.512
2517*67e74705SXin Li   return _mm512_ror_epi64(__A, 5);
2518*67e74705SXin Li }
2519*67e74705SXin Li 
test_mm512_mask_ror_epi64(__m512i __W,__mmask8 __U,__m512i __A)2520*67e74705SXin Li __m512i test_mm512_mask_ror_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2521*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_ror_epi64
2522*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pror.q.512
2523*67e74705SXin Li   return _mm512_mask_ror_epi64(__W, __U, __A, 5);
2524*67e74705SXin Li }
2525*67e74705SXin Li 
test_mm512_maskz_ror_epi64(__mmask8 __U,__m512i __A)2526*67e74705SXin Li __m512i test_mm512_maskz_ror_epi64(__mmask8 __U, __m512i __A) {
2527*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_ror_epi64
2528*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pror.q.512
2529*67e74705SXin Li   return _mm512_maskz_ror_epi64(__U, __A, 5);
2530*67e74705SXin Li }
2531*67e74705SXin Li 
2532*67e74705SXin Li 
test_mm512_rorv_epi32(__m512i __A,__m512i __B)2533*67e74705SXin Li __m512i test_mm512_rorv_epi32(__m512i __A, __m512i __B) {
2534*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rorv_epi32
2535*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prorv.d.512
2536*67e74705SXin Li   return _mm512_rorv_epi32(__A, __B);
2537*67e74705SXin Li }
2538*67e74705SXin Li 
test_mm512_mask_rorv_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)2539*67e74705SXin Li __m512i test_mm512_mask_rorv_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
2540*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rorv_epi32
2541*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prorv.d.512
2542*67e74705SXin Li   return _mm512_mask_rorv_epi32(__W, __U, __A, __B);
2543*67e74705SXin Li }
2544*67e74705SXin Li 
test_mm512_maskz_rorv_epi32(__mmask16 __U,__m512i __A,__m512i __B)2545*67e74705SXin Li __m512i test_mm512_maskz_rorv_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
2546*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rorv_epi32
2547*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prorv.d.512
2548*67e74705SXin Li   return _mm512_maskz_rorv_epi32(__U, __A, __B);
2549*67e74705SXin Li }
2550*67e74705SXin Li 
test_mm512_rorv_epi64(__m512i __A,__m512i __B)2551*67e74705SXin Li __m512i test_mm512_rorv_epi64(__m512i __A, __m512i __B) {
2552*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rorv_epi64
2553*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prorv.q.512
2554*67e74705SXin Li   return _mm512_rorv_epi64(__A, __B);
2555*67e74705SXin Li }
2556*67e74705SXin Li 
test_mm512_mask_rorv_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)2557*67e74705SXin Li __m512i test_mm512_mask_rorv_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
2558*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rorv_epi64
2559*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prorv.q.512
2560*67e74705SXin Li   return _mm512_mask_rorv_epi64(__W, __U, __A, __B);
2561*67e74705SXin Li }
2562*67e74705SXin Li 
test_mm512_maskz_rorv_epi64(__mmask8 __U,__m512i __A,__m512i __B)2563*67e74705SXin Li __m512i test_mm512_maskz_rorv_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
2564*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rorv_epi64
2565*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.prorv.q.512
2566*67e74705SXin Li   return _mm512_maskz_rorv_epi64(__U, __A, __B);
2567*67e74705SXin Li }
2568*67e74705SXin Li 
test_mm512_slli_epi32(__m512i __A)2569*67e74705SXin Li __m512i test_mm512_slli_epi32(__m512i __A) {
2570*67e74705SXin Li   // CHECK-LABEL: @test_mm512_slli_epi32
2571*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.di.512
2572*67e74705SXin Li   return _mm512_slli_epi32(__A, 5);
2573*67e74705SXin Li }
2574*67e74705SXin Li 
test_mm512_mask_slli_epi32(__m512i __W,__mmask16 __U,__m512i __A)2575*67e74705SXin Li __m512i test_mm512_mask_slli_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2576*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_slli_epi32
2577*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.di.512
2578*67e74705SXin Li   return _mm512_mask_slli_epi32(__W, __U, __A, 5);
2579*67e74705SXin Li }
2580*67e74705SXin Li 
test_mm512_maskz_slli_epi32(__mmask16 __U,__m512i __A)2581*67e74705SXin Li __m512i test_mm512_maskz_slli_epi32(__mmask16 __U, __m512i __A) {
2582*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_slli_epi32
2583*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.di.512
2584*67e74705SXin Li   return _mm512_maskz_slli_epi32(__U, __A, 5);
2585*67e74705SXin Li }
2586*67e74705SXin Li 
test_mm512_slli_epi64(__m512i __A)2587*67e74705SXin Li __m512i test_mm512_slli_epi64(__m512i __A) {
2588*67e74705SXin Li   // CHECK-LABEL: @test_mm512_slli_epi64
2589*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.qi.512
2590*67e74705SXin Li   return _mm512_slli_epi64(__A, 5);
2591*67e74705SXin Li }
2592*67e74705SXin Li 
test_mm512_mask_slli_epi64(__m512i __W,__mmask8 __U,__m512i __A)2593*67e74705SXin Li __m512i test_mm512_mask_slli_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2594*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_slli_epi64
2595*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.qi.512
2596*67e74705SXin Li   return _mm512_mask_slli_epi64(__W, __U, __A, 5);
2597*67e74705SXin Li }
2598*67e74705SXin Li 
test_mm512_maskz_slli_epi64(__mmask8 __U,__m512i __A)2599*67e74705SXin Li __m512i test_mm512_maskz_slli_epi64(__mmask8 __U, __m512i __A) {
2600*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_slli_epi64
2601*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.qi.512
2602*67e74705SXin Li   return _mm512_maskz_slli_epi64(__U, __A, 5);
2603*67e74705SXin Li }
2604*67e74705SXin Li 
test_mm512_srli_epi32(__m512i __A)2605*67e74705SXin Li __m512i test_mm512_srli_epi32(__m512i __A) {
2606*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srli_epi32
2607*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.di.512
2608*67e74705SXin Li   return _mm512_srli_epi32(__A, 5);
2609*67e74705SXin Li }
2610*67e74705SXin Li 
test_mm512_mask_srli_epi32(__m512i __W,__mmask16 __U,__m512i __A)2611*67e74705SXin Li __m512i test_mm512_mask_srli_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2612*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srli_epi32
2613*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.di.512
2614*67e74705SXin Li   return _mm512_mask_srli_epi32(__W, __U, __A, 5);
2615*67e74705SXin Li }
2616*67e74705SXin Li 
test_mm512_maskz_srli_epi32(__mmask16 __U,__m512i __A)2617*67e74705SXin Li __m512i test_mm512_maskz_srli_epi32(__mmask16 __U, __m512i __A) {
2618*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srli_epi32
2619*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.di.512
2620*67e74705SXin Li   return _mm512_maskz_srli_epi32(__U, __A, 5);
2621*67e74705SXin Li }
2622*67e74705SXin Li 
test_mm512_srli_epi64(__m512i __A)2623*67e74705SXin Li __m512i test_mm512_srli_epi64(__m512i __A) {
2624*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srli_epi64
2625*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.qi.512
2626*67e74705SXin Li   return _mm512_srli_epi64(__A, 5);
2627*67e74705SXin Li }
2628*67e74705SXin Li 
test_mm512_mask_srli_epi64(__m512i __W,__mmask8 __U,__m512i __A)2629*67e74705SXin Li __m512i test_mm512_mask_srli_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2630*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srli_epi64
2631*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.qi.512
2632*67e74705SXin Li   return _mm512_mask_srli_epi64(__W, __U, __A, 5);
2633*67e74705SXin Li }
2634*67e74705SXin Li 
test_mm512_maskz_srli_epi64(__mmask8 __U,__m512i __A)2635*67e74705SXin Li __m512i test_mm512_maskz_srli_epi64(__mmask8 __U, __m512i __A) {
2636*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srli_epi64
2637*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.qi.512
2638*67e74705SXin Li   return _mm512_maskz_srli_epi64(__U, __A, 5);
2639*67e74705SXin Li }
2640*67e74705SXin Li 
test_mm512_mask_load_epi32(__m512i __W,__mmask16 __U,void const * __P)2641*67e74705SXin Li __m512i test_mm512_mask_load_epi32(__m512i __W, __mmask16 __U, void const *__P) {
2642*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_load_epi32
2643*67e74705SXin Li   // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
2644*67e74705SXin Li   return _mm512_mask_load_epi32(__W, __U, __P);
2645*67e74705SXin Li }
2646*67e74705SXin Li 
test_mm512_maskz_load_epi32(__mmask16 __U,void const * __P)2647*67e74705SXin Li __m512i test_mm512_maskz_load_epi32(__mmask16 __U, void const *__P) {
2648*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_load_epi32
2649*67e74705SXin Li   // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
2650*67e74705SXin Li   return _mm512_maskz_load_epi32(__U, __P);
2651*67e74705SXin Li }
2652*67e74705SXin Li 
test_mm512_mask_mov_epi32(__m512i __W,__mmask16 __U,__m512i __A)2653*67e74705SXin Li __m512i test_mm512_mask_mov_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2654*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mov_epi32
2655*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2656*67e74705SXin Li   return _mm512_mask_mov_epi32(__W, __U, __A);
2657*67e74705SXin Li }
2658*67e74705SXin Li 
test_mm512_maskz_mov_epi32(__mmask16 __U,__m512i __A)2659*67e74705SXin Li __m512i test_mm512_maskz_mov_epi32(__mmask16 __U, __m512i __A) {
2660*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mov_epi32
2661*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2662*67e74705SXin Li   return _mm512_maskz_mov_epi32(__U, __A);
2663*67e74705SXin Li }
2664*67e74705SXin Li 
test_mm512_mask_mov_epi64(__m512i __W,__mmask8 __U,__m512i __A)2665*67e74705SXin Li __m512i test_mm512_mask_mov_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2666*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mov_epi64
2667*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2668*67e74705SXin Li   return _mm512_mask_mov_epi64(__W, __U, __A);
2669*67e74705SXin Li }
2670*67e74705SXin Li 
test_mm512_maskz_mov_epi64(__mmask8 __U,__m512i __A)2671*67e74705SXin Li __m512i test_mm512_maskz_mov_epi64(__mmask8 __U, __m512i __A) {
2672*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mov_epi64
2673*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2674*67e74705SXin Li   return _mm512_maskz_mov_epi64(__U, __A);
2675*67e74705SXin Li }
2676*67e74705SXin Li 
test_mm512_mask_load_epi64(__m512i __W,__mmask8 __U,void const * __P)2677*67e74705SXin Li __m512i test_mm512_mask_load_epi64(__m512i __W, __mmask8 __U, void const *__P) {
2678*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_load_epi64
2679*67e74705SXin Li   // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
2680*67e74705SXin Li   return _mm512_mask_load_epi64(__W, __U, __P);
2681*67e74705SXin Li }
2682*67e74705SXin Li 
test_mm512_maskz_load_epi64(__mmask8 __U,void const * __P)2683*67e74705SXin Li __m512i test_mm512_maskz_load_epi64(__mmask8 __U, void const *__P) {
2684*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_load_epi64
2685*67e74705SXin Li   // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
2686*67e74705SXin Li   return _mm512_maskz_load_epi64(__U, __P);
2687*67e74705SXin Li }
2688*67e74705SXin Li 
test_mm512_mask_store_epi32(void * __P,__mmask16 __U,__m512i __A)2689*67e74705SXin Li void test_mm512_mask_store_epi32(void *__P, __mmask16 __U, __m512i __A) {
2690*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_store_epi32
2691*67e74705SXin Li   // CHECK: @llvm.masked.store.v16i32.p0v16i32(<16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}})
2692*67e74705SXin Li   return _mm512_mask_store_epi32(__P, __U, __A);
2693*67e74705SXin Li }
2694*67e74705SXin Li 
test_mm512_mask_store_epi64(void * __P,__mmask8 __U,__m512i __A)2695*67e74705SXin Li void test_mm512_mask_store_epi64(void *__P, __mmask8 __U, __m512i __A) {
2696*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_store_epi64
2697*67e74705SXin Li   // CHECK: @llvm.masked.store.v8i64.p0v8i64(<8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}})
2698*67e74705SXin Li   return _mm512_mask_store_epi64(__P, __U, __A);
2699*67e74705SXin Li }
2700*67e74705SXin Li 
test_mm512_movedup_pd(__m512d __A)2701*67e74705SXin Li __m512d test_mm512_movedup_pd(__m512d __A) {
2702*67e74705SXin Li   // CHECK-LABEL: @test_mm512_movedup_pd
2703*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
2704*67e74705SXin Li   return _mm512_movedup_pd(__A);
2705*67e74705SXin Li }
2706*67e74705SXin Li 
test_mm512_mask_movedup_pd(__m512d __W,__mmask8 __U,__m512d __A)2707*67e74705SXin Li __m512d test_mm512_mask_movedup_pd(__m512d __W, __mmask8 __U, __m512d __A) {
2708*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_movedup_pd
2709*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
2710*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2711*67e74705SXin Li   return _mm512_mask_movedup_pd(__W, __U, __A);
2712*67e74705SXin Li }
2713*67e74705SXin Li 
test_mm512_maskz_movedup_pd(__mmask8 __U,__m512d __A)2714*67e74705SXin Li __m512d test_mm512_maskz_movedup_pd(__mmask8 __U, __m512d __A) {
2715*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_movedup_pd
2716*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
2717*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2718*67e74705SXin Li   return _mm512_maskz_movedup_pd(__U, __A);
2719*67e74705SXin Li }
2720*67e74705SXin Li 
test_mm_comi_round_sd(__m128d __A,__m128d __B)2721*67e74705SXin Li int test_mm_comi_round_sd(__m128d __A, __m128d __B) {
2722*67e74705SXin Li   // CHECK-LABEL: @test_mm_comi_round_sd
2723*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcomi.sd
2724*67e74705SXin Li   return _mm_comi_round_sd(__A, __B, 5, 3);
2725*67e74705SXin Li }
2726*67e74705SXin Li 
test_mm_comi_round_ss(__m128 __A,__m128 __B)2727*67e74705SXin Li int test_mm_comi_round_ss(__m128 __A, __m128 __B) {
2728*67e74705SXin Li   // CHECK-LABEL: @test_mm_comi_round_ss
2729*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcomi.ss
2730*67e74705SXin Li   return _mm_comi_round_ss(__A, __B, 5, 3);
2731*67e74705SXin Li }
2732*67e74705SXin Li 
test_mm512_fixupimm_round_pd(__m512d __A,__m512d __B,__m512i __C)2733*67e74705SXin Li __m512d test_mm512_fixupimm_round_pd(__m512d __A, __m512d __B, __m512i __C) {
2734*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fixupimm_round_pd
2735*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
2736*67e74705SXin Li   return _mm512_fixupimm_round_pd(__A, __B, __C, 5, 8);
2737*67e74705SXin Li }
2738*67e74705SXin Li 
test_mm512_mask_fixupimm_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512i __C)2739*67e74705SXin Li __m512d test_mm512_mask_fixupimm_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512i __C) {
2740*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fixupimm_round_pd
2741*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
2742*67e74705SXin Li   return _mm512_mask_fixupimm_round_pd(__A, __U, __B, __C, 5, 8);
2743*67e74705SXin Li }
2744*67e74705SXin Li 
test_mm512_fixupimm_pd(__m512d __A,__m512d __B,__m512i __C)2745*67e74705SXin Li __m512d test_mm512_fixupimm_pd(__m512d __A, __m512d __B, __m512i __C) {
2746*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fixupimm_pd
2747*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
2748*67e74705SXin Li   return _mm512_fixupimm_pd(__A, __B, __C, 5);
2749*67e74705SXin Li }
2750*67e74705SXin Li 
test_mm512_mask_fixupimm_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512i __C)2751*67e74705SXin Li __m512d test_mm512_mask_fixupimm_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512i __C) {
2752*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fixupimm_pd
2753*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
2754*67e74705SXin Li   return _mm512_mask_fixupimm_pd(__A, __U, __B, __C, 5);
2755*67e74705SXin Li }
2756*67e74705SXin Li 
test_mm512_maskz_fixupimm_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512i __C)2757*67e74705SXin Li __m512d test_mm512_maskz_fixupimm_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512i __C) {
2758*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fixupimm_round_pd
2759*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.512
2760*67e74705SXin Li   return _mm512_maskz_fixupimm_round_pd(__U, __A, __B, __C, 5, 8);
2761*67e74705SXin Li }
2762*67e74705SXin Li 
test_mm512_maskz_fixupimm_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512i __C)2763*67e74705SXin Li __m512d test_mm512_maskz_fixupimm_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512i __C) {
2764*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fixupimm_pd
2765*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.512
2766*67e74705SXin Li   return _mm512_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
2767*67e74705SXin Li }
2768*67e74705SXin Li 
test_mm512_fixupimm_round_ps(__m512 __A,__m512 __B,__m512i __C)2769*67e74705SXin Li __m512 test_mm512_fixupimm_round_ps(__m512 __A, __m512 __B, __m512i __C) {
2770*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fixupimm_round_ps
2771*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
2772*67e74705SXin Li   return _mm512_fixupimm_round_ps(__A, __B, __C, 5, 8);
2773*67e74705SXin Li }
2774*67e74705SXin Li 
test_mm512_mask_fixupimm_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512i __C)2775*67e74705SXin Li __m512 test_mm512_mask_fixupimm_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512i __C) {
2776*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fixupimm_round_ps
2777*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
2778*67e74705SXin Li   return _mm512_mask_fixupimm_round_ps(__A, __U, __B, __C, 5, 8);
2779*67e74705SXin Li }
2780*67e74705SXin Li 
test_mm512_fixupimm_ps(__m512 __A,__m512 __B,__m512i __C)2781*67e74705SXin Li __m512 test_mm512_fixupimm_ps(__m512 __A, __m512 __B, __m512i __C) {
2782*67e74705SXin Li   // CHECK-LABEL: @test_mm512_fixupimm_ps
2783*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
2784*67e74705SXin Li   return _mm512_fixupimm_ps(__A, __B, __C, 5);
2785*67e74705SXin Li }
2786*67e74705SXin Li 
test_mm512_mask_fixupimm_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512i __C)2787*67e74705SXin Li __m512 test_mm512_mask_fixupimm_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512i __C) {
2788*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_fixupimm_ps
2789*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
2790*67e74705SXin Li   return _mm512_mask_fixupimm_ps(__A, __U, __B, __C, 5);
2791*67e74705SXin Li }
2792*67e74705SXin Li 
test_mm512_maskz_fixupimm_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512i __C)2793*67e74705SXin Li __m512 test_mm512_maskz_fixupimm_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512i __C) {
2794*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fixupimm_round_ps
2795*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.512
2796*67e74705SXin Li   return _mm512_maskz_fixupimm_round_ps(__U, __A, __B, __C, 5, 8);
2797*67e74705SXin Li }
2798*67e74705SXin Li 
test_mm512_maskz_fixupimm_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512i __C)2799*67e74705SXin Li __m512 test_mm512_maskz_fixupimm_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512i __C) {
2800*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_fixupimm_ps
2801*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.512
2802*67e74705SXin Li   return _mm512_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
2803*67e74705SXin Li }
2804*67e74705SXin Li 
test_mm_fixupimm_round_sd(__m128d __A,__m128d __B,__m128i __C)2805*67e74705SXin Li __m128d test_mm_fixupimm_round_sd(__m128d __A, __m128d __B, __m128i __C) {
2806*67e74705SXin Li   // CHECK-LABEL: @test_mm_fixupimm_round_sd
2807*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm
2808*67e74705SXin Li   return _mm_fixupimm_round_sd(__A, __B, __C, 5, 8);
2809*67e74705SXin Li }
2810*67e74705SXin Li 
test_mm_mask_fixupimm_round_sd(__m128d __A,__mmask8 __U,__m128d __B,__m128i __C)2811*67e74705SXin Li __m128d test_mm_mask_fixupimm_round_sd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
2812*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fixupimm_round_sd
2813*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm
2814*67e74705SXin Li   return _mm_mask_fixupimm_round_sd(__A, __U, __B, __C, 5, 8);
2815*67e74705SXin Li }
2816*67e74705SXin Li 
test_mm_fixupimm_sd(__m128d __A,__m128d __B,__m128i __C)2817*67e74705SXin Li __m128d test_mm_fixupimm_sd(__m128d __A, __m128d __B, __m128i __C) {
2818*67e74705SXin Li   // CHECK-LABEL: @test_mm_fixupimm_sd
2819*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm
2820*67e74705SXin Li   return _mm_fixupimm_sd(__A, __B, __C, 5);
2821*67e74705SXin Li }
2822*67e74705SXin Li 
test_mm_mask_fixupimm_sd(__m128d __A,__mmask8 __U,__m128d __B,__m128i __C)2823*67e74705SXin Li __m128d test_mm_mask_fixupimm_sd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
2824*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fixupimm_sd
2825*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm
2826*67e74705SXin Li   return _mm_mask_fixupimm_sd(__A, __U, __B, __C, 5);
2827*67e74705SXin Li }
2828*67e74705SXin Li 
test_mm_maskz_fixupimm_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128i __C)2829*67e74705SXin Li __m128d test_mm_maskz_fixupimm_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
2830*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fixupimm_round_sd
2831*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.fixupimm
2832*67e74705SXin Li   return _mm_maskz_fixupimm_round_sd(__U, __A, __B, __C, 5, 8);
2833*67e74705SXin Li }
2834*67e74705SXin Li 
test_mm_maskz_fixupimm_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128i __C)2835*67e74705SXin Li __m128d test_mm_maskz_fixupimm_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
2836*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fixupimm_sd
2837*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.fixupimm
2838*67e74705SXin Li   return _mm_maskz_fixupimm_sd(__U, __A, __B, __C, 5);
2839*67e74705SXin Li }
2840*67e74705SXin Li 
test_mm_fixupimm_round_ss(__m128 __A,__m128 __B,__m128i __C)2841*67e74705SXin Li __m128 test_mm_fixupimm_round_ss(__m128 __A, __m128 __B, __m128i __C) {
2842*67e74705SXin Li   // CHECK-LABEL: @test_mm_fixupimm_round_ss
2843*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm
2844*67e74705SXin Li   return _mm_fixupimm_round_ss(__A, __B, __C, 5, 8);
2845*67e74705SXin Li }
2846*67e74705SXin Li 
test_mm_mask_fixupimm_round_ss(__m128 __A,__mmask8 __U,__m128 __B,__m128i __C)2847*67e74705SXin Li __m128 test_mm_mask_fixupimm_round_ss(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
2848*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fixupimm_round_ss
2849*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm
2850*67e74705SXin Li   return _mm_mask_fixupimm_round_ss(__A, __U, __B, __C, 5, 8);
2851*67e74705SXin Li }
2852*67e74705SXin Li 
test_mm_fixupimm_ss(__m128 __A,__m128 __B,__m128i __C)2853*67e74705SXin Li __m128 test_mm_fixupimm_ss(__m128 __A, __m128 __B, __m128i __C) {
2854*67e74705SXin Li   // CHECK-LABEL: @test_mm_fixupimm_ss
2855*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm
2856*67e74705SXin Li   return _mm_fixupimm_ss(__A, __B, __C, 5);
2857*67e74705SXin Li }
2858*67e74705SXin Li 
test_mm_mask_fixupimm_ss(__m128 __A,__mmask8 __U,__m128 __B,__m128i __C)2859*67e74705SXin Li __m128 test_mm_mask_fixupimm_ss(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
2860*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fixupimm_ss
2861*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.fixupimm
2862*67e74705SXin Li   return _mm_mask_fixupimm_ss(__A, __U, __B, __C, 5);
2863*67e74705SXin Li }
2864*67e74705SXin Li 
test_mm_maskz_fixupimm_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128i __C)2865*67e74705SXin Li __m128 test_mm_maskz_fixupimm_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
2866*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fixupimm_round_ss
2867*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.fixupimm
2868*67e74705SXin Li   return _mm_maskz_fixupimm_round_ss(__U, __A, __B, __C, 5, 8);
2869*67e74705SXin Li }
2870*67e74705SXin Li 
test_mm_maskz_fixupimm_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128i __C)2871*67e74705SXin Li __m128 test_mm_maskz_fixupimm_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
2872*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fixupimm_ss
2873*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.fixupimm
2874*67e74705SXin Li   return _mm_maskz_fixupimm_ss(__U, __A, __B, __C, 5);
2875*67e74705SXin Li }
2876*67e74705SXin Li 
test_mm_getexp_round_sd(__m128d __A,__m128d __B)2877*67e74705SXin Li __m128d test_mm_getexp_round_sd(__m128d __A, __m128d __B) {
2878*67e74705SXin Li   // CHECK-LABEL: @test_mm_getexp_round_sd
2879*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.sd
2880*67e74705SXin Li   return _mm_getexp_round_sd(__A, __B, 8);
2881*67e74705SXin Li }
2882*67e74705SXin Li 
test_mm_getexp_sd(__m128d __A,__m128d __B)2883*67e74705SXin Li __m128d test_mm_getexp_sd(__m128d __A, __m128d __B) {
2884*67e74705SXin Li   // CHECK-LABEL: @test_mm_getexp_sd
2885*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.sd
2886*67e74705SXin Li   return _mm_getexp_sd(__A, __B);
2887*67e74705SXin Li }
2888*67e74705SXin Li 
test_mm_getexp_round_ss(__m128 __A,__m128 __B)2889*67e74705SXin Li __m128 test_mm_getexp_round_ss(__m128 __A, __m128 __B) {
2890*67e74705SXin Li   // CHECK-LABEL: @test_mm_getexp_round_ss
2891*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ss
2892*67e74705SXin Li   return _mm_getexp_round_ss(__A, __B, 8);
2893*67e74705SXin Li }
2894*67e74705SXin Li 
test_mm_getexp_ss(__m128 __A,__m128 __B)2895*67e74705SXin Li __m128 test_mm_getexp_ss(__m128 __A, __m128 __B) {
2896*67e74705SXin Li   // CHECK-LABEL: @test_mm_getexp_ss
2897*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ss
2898*67e74705SXin Li   return _mm_getexp_ss(__A, __B);
2899*67e74705SXin Li }
2900*67e74705SXin Li 
test_mm_getmant_round_sd(__m128d __A,__m128d __B)2901*67e74705SXin Li __m128d test_mm_getmant_round_sd(__m128d __A, __m128d __B) {
2902*67e74705SXin Li   // CHECK-LABEL: @test_mm_getmant_round_sd
2903*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.sd
2904*67e74705SXin Li   return _mm_getmant_round_sd(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src, 8);
2905*67e74705SXin Li }
2906*67e74705SXin Li 
test_mm_getmant_sd(__m128d __A,__m128d __B)2907*67e74705SXin Li __m128d test_mm_getmant_sd(__m128d __A, __m128d __B) {
2908*67e74705SXin Li   // CHECK-LABEL: @test_mm_getmant_sd
2909*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.sd
2910*67e74705SXin Li   return _mm_getmant_sd(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src);
2911*67e74705SXin Li }
2912*67e74705SXin Li 
test_mm_getmant_round_ss(__m128 __A,__m128 __B)2913*67e74705SXin Li __m128 test_mm_getmant_round_ss(__m128 __A, __m128 __B) {
2914*67e74705SXin Li   // CHECK-LABEL: @test_mm_getmant_round_ss
2915*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ss
2916*67e74705SXin Li   return _mm_getmant_round_ss(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src, 8);
2917*67e74705SXin Li }
2918*67e74705SXin Li 
test_mm_getmant_ss(__m128 __A,__m128 __B)2919*67e74705SXin Li __m128 test_mm_getmant_ss(__m128 __A, __m128 __B) {
2920*67e74705SXin Li   // CHECK-LABEL: @test_mm_getmant_ss
2921*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ss
2922*67e74705SXin Li   return _mm_getmant_ss(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src);
2923*67e74705SXin Li }
2924*67e74705SXin Li 
test_mm512_kmov(__mmask16 __A)2925*67e74705SXin Li __mmask16 test_mm512_kmov(__mmask16 __A) {
2926*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kmov
2927*67e74705SXin Li   // CHECK: load i16, i16* %__A.addr.i, align 2
2928*67e74705SXin Li   return _mm512_kmov(__A);
2929*67e74705SXin Li }
2930*67e74705SXin Li 
test_mm512_mask_unpackhi_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)2931*67e74705SXin Li __m512d test_mm512_mask_unpackhi_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2932*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpackhi_pd
2933*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
2934*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2935*67e74705SXin Li   return _mm512_mask_unpackhi_pd(__W, __U, __A, __B);
2936*67e74705SXin Li }
test_mm_cvt_roundsd_si64(__m128d __A)2937*67e74705SXin Li unsigned long long test_mm_cvt_roundsd_si64(__m128d __A) {
2938*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundsd_si64
2939*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtsd2si64
2940*67e74705SXin Li   return _mm_cvt_roundsd_si64(__A, _MM_FROUND_CUR_DIRECTION);
2941*67e74705SXin Li }
test_mm512_mask2_permutex2var_epi32(__m512i __A,__m512i __I,__mmask16 __U,__m512i __B)2942*67e74705SXin Li __m512i test_mm512_mask2_permutex2var_epi32(__m512i __A, __m512i __I, __mmask16 __U, __m512i __B) {
2943*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi32
2944*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermi2var.d.512
2945*67e74705SXin Li   return _mm512_mask2_permutex2var_epi32(__A, __I, __U, __B);
2946*67e74705SXin Li }
test_mm512_unpackhi_epi32(__m512i __A,__m512i __B)2947*67e74705SXin Li __m512i test_mm512_unpackhi_epi32(__m512i __A, __m512i __B) {
2948*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpackhi_epi32
2949*67e74705SXin Li   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 2, i32 18, i32 3, i32 19, i32 6, i32 22, i32 7, i32 23, i32 10, i32 26, i32 11, i32 27, i32 14, i32 30, i32 15, i32 31>
2950*67e74705SXin Li   return _mm512_unpackhi_epi32(__A, __B);
2951*67e74705SXin Li }
2952*67e74705SXin Li 
test_mm512_maskz_unpackhi_pd(__mmask8 __U,__m512d __A,__m512d __B)2953*67e74705SXin Li __m512d test_mm512_maskz_unpackhi_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2954*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpackhi_pd
2955*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
2956*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2957*67e74705SXin Li   return _mm512_maskz_unpackhi_pd(__U, __A, __B);
2958*67e74705SXin Li }
test_mm_cvt_roundsd_i64(__m128d __A)2959*67e74705SXin Li long long test_mm_cvt_roundsd_i64(__m128d __A) {
2960*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundsd_i64
2961*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtsd2si64
2962*67e74705SXin Li   return _mm_cvt_roundsd_i64(__A, _MM_FROUND_CUR_DIRECTION);
2963*67e74705SXin Li }
test_mm512_mask2_permutex2var_pd(__m512d __A,__m512i __I,__mmask8 __U,__m512d __B)2964*67e74705SXin Li __m512d test_mm512_mask2_permutex2var_pd(__m512d __A, __m512i __I, __mmask8 __U, __m512d __B) {
2965*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask2_permutex2var_pd
2966*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermi2var.pd.512
2967*67e74705SXin Li   return _mm512_mask2_permutex2var_pd(__A, __I, __U, __B);
2968*67e74705SXin Li }
test_mm512_mask_unpackhi_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)2969*67e74705SXin Li __m512i test_mm512_mask_unpackhi_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
2970*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpackhi_epi32
2971*67e74705SXin Li   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 2, i32 18, i32 3, i32 19, i32 6, i32 22, i32 7, i32 23, i32 10, i32 26, i32 11, i32 27, i32 14, i32 30, i32 15, i32 31>
2972*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2973*67e74705SXin Li   return _mm512_mask_unpackhi_epi32(__W, __U, __A, __B);
2974*67e74705SXin Li }
2975*67e74705SXin Li 
test_mm512_mask_unpackhi_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)2976*67e74705SXin Li __m512 test_mm512_mask_unpackhi_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2977*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpackhi_ps
2978*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 2, i32 18, i32 3, i32 19, i32 6, i32 22, i32 7, i32 23, i32 10, i32 26, i32 11, i32 27, i32 14, i32 30, i32 15, i32 31>
2979*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
2980*67e74705SXin Li   return _mm512_mask_unpackhi_ps(__W, __U, __A, __B);
2981*67e74705SXin Li }
2982*67e74705SXin Li 
test_mm512_maskz_unpackhi_ps(__mmask16 __U,__m512 __A,__m512 __B)2983*67e74705SXin Li __m512 test_mm512_maskz_unpackhi_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2984*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpackhi_ps
2985*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 2, i32 18, i32 3, i32 19, i32 6, i32 22, i32 7, i32 23, i32 10, i32 26, i32 11, i32 27, i32 14, i32 30, i32 15, i32 31>
2986*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
2987*67e74705SXin Li   return _mm512_maskz_unpackhi_ps(__U, __A, __B);
2988*67e74705SXin Li }
2989*67e74705SXin Li 
test_mm512_mask_unpacklo_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)2990*67e74705SXin Li __m512d test_mm512_mask_unpacklo_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2991*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpacklo_pd
2992*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
2993*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2994*67e74705SXin Li   return _mm512_mask_unpacklo_pd(__W, __U, __A, __B);
2995*67e74705SXin Li }
2996*67e74705SXin Li 
test_mm512_maskz_unpacklo_pd(__mmask8 __U,__m512d __A,__m512d __B)2997*67e74705SXin Li __m512d test_mm512_maskz_unpacklo_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2998*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpacklo_pd
2999*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
3000*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3001*67e74705SXin Li   return _mm512_maskz_unpacklo_pd(__U, __A, __B);
3002*67e74705SXin Li }
3003*67e74705SXin Li 
test_mm512_mask_unpacklo_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)3004*67e74705SXin Li __m512 test_mm512_mask_unpacklo_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
3005*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpacklo_ps
3006*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 4, i32 20, i32 5, i32 21, i32 8, i32 24, i32 9, i32 25, i32 12, i32 28, i32 13, i32 29>
3007*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3008*67e74705SXin Li   return _mm512_mask_unpacklo_ps(__W, __U, __A, __B);
3009*67e74705SXin Li }
3010*67e74705SXin Li 
test_mm512_maskz_unpacklo_ps(__mmask16 __U,__m512 __A,__m512 __B)3011*67e74705SXin Li __m512 test_mm512_maskz_unpacklo_ps(__mmask16 __U, __m512 __A, __m512 __B) {
3012*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpacklo_ps
3013*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 4, i32 20, i32 5, i32 21, i32 8, i32 24, i32 9, i32 25, i32 12, i32 28, i32 13, i32 29>
3014*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3015*67e74705SXin Li   return _mm512_maskz_unpacklo_ps(__U, __A, __B);
3016*67e74705SXin Li }
test_mm_cvt_roundsd_si32(__m128d __A)3017*67e74705SXin Li int test_mm_cvt_roundsd_si32(__m128d __A) {
3018*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundsd_si32
3019*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtsd2si32
3020*67e74705SXin Li   return _mm_cvt_roundsd_si32(__A, _MM_FROUND_CUR_DIRECTION);
3021*67e74705SXin Li }
3022*67e74705SXin Li 
test_mm_cvt_roundsd_i32(__m128d __A)3023*67e74705SXin Li int test_mm_cvt_roundsd_i32(__m128d __A) {
3024*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundsd_i32
3025*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtsd2si32
3026*67e74705SXin Li   return _mm_cvt_roundsd_i32(__A, _MM_FROUND_CUR_DIRECTION);
3027*67e74705SXin Li }
3028*67e74705SXin Li 
test_mm_cvt_roundsd_u32(__m128d __A)3029*67e74705SXin Li unsigned test_mm_cvt_roundsd_u32(__m128d __A) {
3030*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundsd_u32
3031*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtsd2usi32
3032*67e74705SXin Li   return _mm_cvt_roundsd_u32(__A, _MM_FROUND_CUR_DIRECTION);
3033*67e74705SXin Li }
3034*67e74705SXin Li 
test_mm_cvtsd_u32(__m128d __A)3035*67e74705SXin Li unsigned test_mm_cvtsd_u32(__m128d __A) {
3036*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtsd_u32
3037*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtsd2usi32
3038*67e74705SXin Li   return _mm_cvtsd_u32(__A);
3039*67e74705SXin Li }
3040*67e74705SXin Li 
test_mm_cvt_roundsd_u64(__m128d __A)3041*67e74705SXin Li unsigned long long test_mm_cvt_roundsd_u64(__m128d __A) {
3042*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundsd_u64
3043*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtsd2usi64
3044*67e74705SXin Li   return _mm_cvt_roundsd_u64(__A, _MM_FROUND_CUR_DIRECTION);
3045*67e74705SXin Li }
3046*67e74705SXin Li 
test_mm_cvtsd_u64(__m128d __A)3047*67e74705SXin Li unsigned long long test_mm_cvtsd_u64(__m128d __A) {
3048*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtsd_u64
3049*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtsd2usi64
3050*67e74705SXin Li   return _mm_cvtsd_u64(__A);
3051*67e74705SXin Li }
3052*67e74705SXin Li 
test_mm_cvt_roundss_si32(__m128 __A)3053*67e74705SXin Li int test_mm_cvt_roundss_si32(__m128 __A) {
3054*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundss_si32
3055*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtss2si32
3056*67e74705SXin Li   return _mm_cvt_roundss_si32(__A, _MM_FROUND_CUR_DIRECTION);
3057*67e74705SXin Li }
3058*67e74705SXin Li 
test_mm_cvt_roundss_i32(__m128 __A)3059*67e74705SXin Li int test_mm_cvt_roundss_i32(__m128 __A) {
3060*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundss_i32
3061*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtss2si32
3062*67e74705SXin Li   return _mm_cvt_roundss_i32(__A, _MM_FROUND_CUR_DIRECTION);
3063*67e74705SXin Li }
3064*67e74705SXin Li 
test_mm_cvt_roundss_si64(__m128 __A)3065*67e74705SXin Li int test_mm_cvt_roundss_si64(__m128 __A) {
3066*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundss_si64
3067*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtss2si64
3068*67e74705SXin Li   return _mm_cvt_roundss_si64(__A, _MM_FROUND_CUR_DIRECTION);
3069*67e74705SXin Li }
3070*67e74705SXin Li 
test_mm_cvt_roundss_i64(__m128 __A)3071*67e74705SXin Li long long test_mm_cvt_roundss_i64(__m128 __A) {
3072*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundss_i64
3073*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtss2si64
3074*67e74705SXin Li   return _mm_cvt_roundss_i64(__A, _MM_FROUND_CUR_DIRECTION);
3075*67e74705SXin Li }
3076*67e74705SXin Li 
test_mm_cvt_roundss_u32(__m128 __A)3077*67e74705SXin Li unsigned test_mm_cvt_roundss_u32(__m128 __A) {
3078*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundss_u32
3079*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtss2usi32
3080*67e74705SXin Li   return _mm_cvt_roundss_u32(__A, _MM_FROUND_CUR_DIRECTION);
3081*67e74705SXin Li }
3082*67e74705SXin Li 
test_mm_cvtss_u32(__m128 __A)3083*67e74705SXin Li unsigned test_mm_cvtss_u32(__m128 __A) {
3084*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtss_u32
3085*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtss2usi32
3086*67e74705SXin Li   return _mm_cvtss_u32(__A);
3087*67e74705SXin Li }
3088*67e74705SXin Li 
test_mm_cvt_roundss_u64(__m128 __A)3089*67e74705SXin Li unsigned long long test_mm_cvt_roundss_u64(__m128 __A) {
3090*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundss_u64
3091*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtss2usi64
3092*67e74705SXin Li   return _mm_cvt_roundss_u64(__A, _MM_FROUND_CUR_DIRECTION);
3093*67e74705SXin Li }
3094*67e74705SXin Li 
test_mm_cvtss_u64(__m128 __A)3095*67e74705SXin Li unsigned long long test_mm_cvtss_u64(__m128 __A) {
3096*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtss_u64
3097*67e74705SXin Li   // CHECK: @llvm.x86.avx512.vcvtss2usi64
3098*67e74705SXin Li   return _mm_cvtss_u64(__A);
3099*67e74705SXin Li }
3100*67e74705SXin Li 
test_mm_cvtt_roundsd_i32(__m128d __A)3101*67e74705SXin Li int test_mm_cvtt_roundsd_i32(__m128d __A) {
3102*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundsd_i32
3103*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttsd2si
3104*67e74705SXin Li   return _mm_cvtt_roundsd_i32(__A, _MM_FROUND_CUR_DIRECTION);
3105*67e74705SXin Li }
3106*67e74705SXin Li 
test_mm_cvtt_roundsd_si32(__m128d __A)3107*67e74705SXin Li int test_mm_cvtt_roundsd_si32(__m128d __A) {
3108*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundsd_si32
3109*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttsd2si
3110*67e74705SXin Li   return _mm_cvtt_roundsd_si32(__A, _MM_FROUND_CUR_DIRECTION);
3111*67e74705SXin Li }
3112*67e74705SXin Li 
test_mm_cvttsd_i32(__m128d __A)3113*67e74705SXin Li int test_mm_cvttsd_i32(__m128d __A) {
3114*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvttsd_i32
3115*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttsd2si
3116*67e74705SXin Li   return _mm_cvttsd_i32(__A);
3117*67e74705SXin Li }
3118*67e74705SXin Li 
test_mm_cvtt_roundsd_si64(__m128d __A)3119*67e74705SXin Li unsigned long long test_mm_cvtt_roundsd_si64(__m128d __A) {
3120*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundsd_si64
3121*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttsd2si64
3122*67e74705SXin Li   return _mm_cvtt_roundsd_si64(__A, _MM_FROUND_CUR_DIRECTION);
3123*67e74705SXin Li }
3124*67e74705SXin Li 
test_mm_cvtt_roundsd_i64(__m128d __A)3125*67e74705SXin Li long long test_mm_cvtt_roundsd_i64(__m128d __A) {
3126*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundsd_i64
3127*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttsd2si64
3128*67e74705SXin Li   return _mm_cvtt_roundsd_i64(__A, _MM_FROUND_CUR_DIRECTION);
3129*67e74705SXin Li }
3130*67e74705SXin Li 
test_mm_cvttsd_i64(__m128d __A)3131*67e74705SXin Li long long test_mm_cvttsd_i64(__m128d __A) {
3132*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvttsd_i64
3133*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttsd2si64
3134*67e74705SXin Li   return _mm_cvttsd_i64(__A);
3135*67e74705SXin Li }
3136*67e74705SXin Li 
test_mm_cvtt_roundsd_u32(__m128d __A)3137*67e74705SXin Li unsigned test_mm_cvtt_roundsd_u32(__m128d __A) {
3138*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundsd_u32
3139*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttsd2usi
3140*67e74705SXin Li   return _mm_cvtt_roundsd_u32(__A, _MM_FROUND_CUR_DIRECTION);
3141*67e74705SXin Li }
3142*67e74705SXin Li 
test_mm_cvttsd_u32(__m128d __A)3143*67e74705SXin Li unsigned test_mm_cvttsd_u32(__m128d __A) {
3144*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvttsd_u32
3145*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttsd2usi
3146*67e74705SXin Li   return _mm_cvttsd_u32(__A);
3147*67e74705SXin Li }
3148*67e74705SXin Li 
test_mm_cvtt_roundsd_u64(__m128d __A)3149*67e74705SXin Li unsigned long long test_mm_cvtt_roundsd_u64(__m128d __A) {
3150*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundsd_u64
3151*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttsd2usi64
3152*67e74705SXin Li   return _mm_cvtt_roundsd_u64(__A, _MM_FROUND_CUR_DIRECTION);
3153*67e74705SXin Li }
3154*67e74705SXin Li 
test_mm_cvttsd_u64(__m128d __A)3155*67e74705SXin Li unsigned long long test_mm_cvttsd_u64(__m128d __A) {
3156*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvttsd_u64
3157*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttsd2usi64
3158*67e74705SXin Li   return _mm_cvttsd_u64(__A);
3159*67e74705SXin Li }
3160*67e74705SXin Li 
test_mm_cvtt_roundss_i32(__m128 __A)3161*67e74705SXin Li int test_mm_cvtt_roundss_i32(__m128 __A) {
3162*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundss_i32
3163*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttss2si
3164*67e74705SXin Li   return _mm_cvtt_roundss_i32(__A, _MM_FROUND_CUR_DIRECTION);
3165*67e74705SXin Li }
3166*67e74705SXin Li 
test_mm_cvtt_roundss_si32(__m128 __A)3167*67e74705SXin Li int test_mm_cvtt_roundss_si32(__m128 __A) {
3168*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundss_si32
3169*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttss2si
3170*67e74705SXin Li   return _mm_cvtt_roundss_si32(__A, _MM_FROUND_CUR_DIRECTION);
3171*67e74705SXin Li }
3172*67e74705SXin Li 
test_mm_cvttss_i32(__m128 __A)3173*67e74705SXin Li int test_mm_cvttss_i32(__m128 __A) {
3174*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvttss_i32
3175*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttss2si
3176*67e74705SXin Li   return _mm_cvttss_i32(__A);
3177*67e74705SXin Li }
3178*67e74705SXin Li 
test_mm_cvtt_roundss_i64(__m128 __A)3179*67e74705SXin Li float test_mm_cvtt_roundss_i64(__m128 __A) {
3180*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundss_i64
3181*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttss2si64
3182*67e74705SXin Li   return _mm_cvtt_roundss_i64(__A, _MM_FROUND_CUR_DIRECTION);
3183*67e74705SXin Li }
3184*67e74705SXin Li 
test_mm_cvtt_roundss_si64(__m128 __A)3185*67e74705SXin Li long long test_mm_cvtt_roundss_si64(__m128 __A) {
3186*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundss_si64
3187*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttss2si64
3188*67e74705SXin Li   return _mm_cvtt_roundss_si64(__A, _MM_FROUND_CUR_DIRECTION);
3189*67e74705SXin Li }
3190*67e74705SXin Li 
test_mm_cvttss_i64(__m128 __A)3191*67e74705SXin Li long long test_mm_cvttss_i64(__m128 __A) {
3192*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvttss_i64
3193*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttss2si64
3194*67e74705SXin Li   return _mm_cvttss_i64(__A);
3195*67e74705SXin Li }
3196*67e74705SXin Li 
test_mm_cvtt_roundss_u32(__m128 __A)3197*67e74705SXin Li unsigned test_mm_cvtt_roundss_u32(__m128 __A) {
3198*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundss_u32
3199*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttss2usi
3200*67e74705SXin Li   return _mm_cvtt_roundss_u32(__A, _MM_FROUND_CUR_DIRECTION);
3201*67e74705SXin Li }
3202*67e74705SXin Li 
test_mm_cvttss_u32(__m128 __A)3203*67e74705SXin Li unsigned test_mm_cvttss_u32(__m128 __A) {
3204*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvttss_u32
3205*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttss2usi
3206*67e74705SXin Li   return _mm_cvttss_u32(__A);
3207*67e74705SXin Li }
3208*67e74705SXin Li 
test_mm_cvtt_roundss_u64(__m128 __A)3209*67e74705SXin Li unsigned long long test_mm_cvtt_roundss_u64(__m128 __A) {
3210*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtt_roundss_u64
3211*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttss2usi64
3212*67e74705SXin Li   return _mm_cvtt_roundss_u64(__A, _MM_FROUND_CUR_DIRECTION);
3213*67e74705SXin Li }
3214*67e74705SXin Li 
test_mm_cvttss_u64(__m128 __A)3215*67e74705SXin Li unsigned long long test_mm_cvttss_u64(__m128 __A) {
3216*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvttss_u64
3217*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvttss2usi64
3218*67e74705SXin Li   return _mm_cvttss_u64(__A);
3219*67e74705SXin Li }
3220*67e74705SXin Li 
test_mm512_cvtt_roundps_epu32(__m512 __A)3221*67e74705SXin Li __m512i test_mm512_cvtt_roundps_epu32(__m512 __A)
3222*67e74705SXin Li {
3223*67e74705SXin Li     // CHECK-LABEL: @test_mm512_cvtt_roundps_epu32
3224*67e74705SXin Li     // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
3225*67e74705SXin Li     return _mm512_cvtt_roundps_epu32(__A, _MM_FROUND_CUR_DIRECTION);
3226*67e74705SXin Li }
3227*67e74705SXin Li 
test_mm512_mask_cvtt_roundps_epu32(__m512i __W,__mmask16 __U,__m512 __A)3228*67e74705SXin Li __m512i test_mm512_mask_cvtt_roundps_epu32(__m512i __W, __mmask16 __U, __m512 __A)
3229*67e74705SXin Li {
3230*67e74705SXin Li     // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epu32
3231*67e74705SXin Li     // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
3232*67e74705SXin Li     return _mm512_mask_cvtt_roundps_epu32(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
3233*67e74705SXin Li }
3234*67e74705SXin Li 
test_mm512_maskz_cvtt_roundps_epu32(__mmask16 __U,__m512 __A)3235*67e74705SXin Li __m512i test_mm512_maskz_cvtt_roundps_epu32( __mmask16 __U, __m512 __A)
3236*67e74705SXin Li {
3237*67e74705SXin Li     // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epu32
3238*67e74705SXin Li     // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
3239*67e74705SXin Li 
3240*67e74705SXin Li     return _mm512_maskz_cvtt_roundps_epu32(__U, __A, _MM_FROUND_CUR_DIRECTION);
3241*67e74705SXin Li }
3242*67e74705SXin Li 
test_mm512_cvt_roundps_ph(__m512 __A)3243*67e74705SXin Li __m256i test_mm512_cvt_roundps_ph(__m512  __A)
3244*67e74705SXin Li {
3245*67e74705SXin Li     // CHECK-LABEL: @test_mm512_cvt_roundps_ph
3246*67e74705SXin Li     // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
3247*67e74705SXin Li     return _mm512_cvt_roundps_ph(__A, _MM_FROUND_CUR_DIRECTION);
3248*67e74705SXin Li }
3249*67e74705SXin Li 
test_mm512_mask_cvt_roundps_ph(__m256i __W,__mmask16 __U,__m512 __A)3250*67e74705SXin Li __m256i test_mm512_mask_cvt_roundps_ph(__m256i __W , __mmask16 __U, __m512  __A)
3251*67e74705SXin Li {
3252*67e74705SXin Li     // CHECK-LABEL: @test_mm512_mask_cvt_roundps_ph
3253*67e74705SXin Li     // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
3254*67e74705SXin Li     return _mm512_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
3255*67e74705SXin Li }
3256*67e74705SXin Li 
test_mm512_maskz_cvt_roundps_ph(__mmask16 __U,__m512 __A)3257*67e74705SXin Li __m256i test_mm512_maskz_cvt_roundps_ph(__mmask16 __U, __m512  __A)
3258*67e74705SXin Li {
3259*67e74705SXin Li     // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_ph
3260*67e74705SXin Li     // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
3261*67e74705SXin Li     return _mm512_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_CUR_DIRECTION);
3262*67e74705SXin Li }
3263*67e74705SXin Li 
test_mm512_cvt_roundph_ps(__m256i __A)3264*67e74705SXin Li __m512 test_mm512_cvt_roundph_ps(__m256i __A)
3265*67e74705SXin Li {
3266*67e74705SXin Li     // CHECK-LABEL: @test_mm512_cvt_roundph_ps
3267*67e74705SXin Li     // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
3268*67e74705SXin Li     return _mm512_cvt_roundph_ps(__A, _MM_FROUND_CUR_DIRECTION);
3269*67e74705SXin Li }
3270*67e74705SXin Li 
test_mm512_mask_cvt_roundph_ps(__m512 __W,__mmask16 __U,__m256i __A)3271*67e74705SXin Li __m512 test_mm512_mask_cvt_roundph_ps(__m512 __W, __mmask16 __U, __m256i __A)
3272*67e74705SXin Li {
3273*67e74705SXin Li     // CHECK-LABEL: @test_mm512_mask_cvt_roundph_ps
3274*67e74705SXin Li     // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
3275*67e74705SXin Li     return _mm512_mask_cvt_roundph_ps(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
3276*67e74705SXin Li }
3277*67e74705SXin Li 
test_mm512_maskz_cvt_roundph_ps(__mmask16 __U,__m256i __A)3278*67e74705SXin Li __m512 test_mm512_maskz_cvt_roundph_ps(__mmask16 __U, __m256i __A)
3279*67e74705SXin Li {
3280*67e74705SXin Li     // CHECK-LABEL: @test_mm512_maskz_cvt_roundph_ps
3281*67e74705SXin Li     // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
3282*67e74705SXin Li     return _mm512_maskz_cvt_roundph_ps(__U, __A, _MM_FROUND_CUR_DIRECTION);
3283*67e74705SXin Li }
3284*67e74705SXin Li 
test_mm512_mask_cvt_roundepi32_ps(__m512 __W,__mmask16 __U,__m512i __A)3285*67e74705SXin Li __m512 test_mm512_mask_cvt_roundepi32_ps(__m512 __W, __mmask16 __U, __m512i __A)
3286*67e74705SXin Li {
3287*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvt_roundepi32_ps
3288*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
3289*67e74705SXin Li   return _mm512_mask_cvt_roundepi32_ps(__W,__U,__A,4);
3290*67e74705SXin Li }
3291*67e74705SXin Li 
test_mm512_maskz_cvt_roundepi32_ps(__mmask16 __U,__m512i __A)3292*67e74705SXin Li __m512 test_mm512_maskz_cvt_roundepi32_ps(__mmask16 __U, __m512i __A)
3293*67e74705SXin Li {
3294*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvt_roundepi32_ps
3295*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
3296*67e74705SXin Li   return _mm512_maskz_cvt_roundepi32_ps(__U,__A,4);
3297*67e74705SXin Li }
3298*67e74705SXin Li 
test_mm512_mask_cvt_roundepu32_ps(__m512 __W,__mmask16 __U,__m512i __A)3299*67e74705SXin Li __m512 test_mm512_mask_cvt_roundepu32_ps(__m512 __W, __mmask16 __U,__m512i __A)
3300*67e74705SXin Li {
3301*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvt_roundepu32_ps
3302*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
3303*67e74705SXin Li   return _mm512_mask_cvt_roundepu32_ps(__W,__U,__A,4);
3304*67e74705SXin Li }
3305*67e74705SXin Li 
test_mm512_maskz_cvt_roundepu32_ps(__mmask16 __U,__m512i __A)3306*67e74705SXin Li __m512 test_mm512_maskz_cvt_roundepu32_ps(__mmask16 __U,__m512i __A)
3307*67e74705SXin Li {
3308*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvt_roundepu32_ps
3309*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
3310*67e74705SXin Li   return _mm512_maskz_cvt_roundepu32_ps(__U,__A,4);
3311*67e74705SXin Li }
3312*67e74705SXin Li 
test_mm512_mask_cvt_roundpd_ps(__m256 W,__mmask8 U,__m512d A)3313*67e74705SXin Li __m256 test_mm512_mask_cvt_roundpd_ps(__m256 W, __mmask8 U,__m512d A)
3314*67e74705SXin Li {
3315*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_ps
3316*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
3317*67e74705SXin Li   return _mm512_mask_cvt_roundpd_ps(W,U,A,4);
3318*67e74705SXin Li }
3319*67e74705SXin Li 
test_mm512_maskz_cvt_roundpd_ps(__mmask8 U,__m512d A)3320*67e74705SXin Li __m256 test_mm512_maskz_cvt_roundpd_ps(__mmask8 U, __m512d A)
3321*67e74705SXin Li {
3322*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_ps
3323*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
3324*67e74705SXin Li   return _mm512_maskz_cvt_roundpd_ps(U,A,4);
3325*67e74705SXin Li }
3326*67e74705SXin Li 
test_mm512_cvtt_roundpd_epi32(__m512d A)3327*67e74705SXin Li __m256i test_mm512_cvtt_roundpd_epi32(__m512d A)
3328*67e74705SXin Li {
3329*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtt_roundpd_epi32
3330*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
3331*67e74705SXin Li   return _mm512_cvtt_roundpd_epi32(A,4);
3332*67e74705SXin Li }
3333*67e74705SXin Li 
test_mm512_mask_cvtt_roundpd_epi32(__m256i W,__mmask8 U,__m512d A)3334*67e74705SXin Li __m256i test_mm512_mask_cvtt_roundpd_epi32(__m256i W, __mmask8 U, __m512d A)
3335*67e74705SXin Li {
3336*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epi32
3337*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
3338*67e74705SXin Li   return _mm512_mask_cvtt_roundpd_epi32(W,U,A,4);
3339*67e74705SXin Li }
3340*67e74705SXin Li 
test_mm512_maskz_cvtt_roundpd_epi32(__mmask8 U,__m512d A)3341*67e74705SXin Li __m256i test_mm512_maskz_cvtt_roundpd_epi32(__mmask8 U, __m512d A)
3342*67e74705SXin Li {
3343*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epi32
3344*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
3345*67e74705SXin Li   return _mm512_maskz_cvtt_roundpd_epi32(U,A,4);
3346*67e74705SXin Li }
3347*67e74705SXin Li 
test_mm512_mask_cvtt_roundps_epi32(__m512i W,__mmask16 U,__m512 A)3348*67e74705SXin Li __m512i test_mm512_mask_cvtt_roundps_epi32(__m512i W,__mmask16 U, __m512 A)
3349*67e74705SXin Li {
3350*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epi32
3351*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
3352*67e74705SXin Li   return _mm512_mask_cvtt_roundps_epi32(W,U,A,4);
3353*67e74705SXin Li }
3354*67e74705SXin Li 
test_mm512_maskz_cvtt_roundps_epi32(__mmask16 U,__m512 A)3355*67e74705SXin Li __m512i test_mm512_maskz_cvtt_roundps_epi32(__mmask16 U, __m512 A)
3356*67e74705SXin Li {
3357*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epi32
3358*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
3359*67e74705SXin Li   return _mm512_maskz_cvtt_roundps_epi32(U,A,4);
3360*67e74705SXin Li }
3361*67e74705SXin Li 
test_mm512_mask_cvt_roundps_epi32(__m512i __W,__mmask16 __U,__m512 __A)3362*67e74705SXin Li __m512i test_mm512_mask_cvt_roundps_epi32(__m512i __W,__mmask16 __U,__m512 __A)
3363*67e74705SXin Li {
3364*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epi32
3365*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
3366*67e74705SXin Li   return _mm512_mask_cvt_roundps_epi32(__W,__U,__A,4);
3367*67e74705SXin Li }
3368*67e74705SXin Li 
test_mm512_maskz_cvt_roundps_epi32(__mmask16 __U,__m512 __A)3369*67e74705SXin Li __m512i test_mm512_maskz_cvt_roundps_epi32(__mmask16 __U, __m512 __A)
3370*67e74705SXin Li {
3371*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epi32
3372*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
3373*67e74705SXin Li   return _mm512_maskz_cvt_roundps_epi32(__U,__A,4);
3374*67e74705SXin Li }
3375*67e74705SXin Li 
test_mm512_mask_cvt_roundpd_epi32(__m256i W,__mmask8 U,__m512d A)3376*67e74705SXin Li __m256i test_mm512_mask_cvt_roundpd_epi32(__m256i W,__mmask8 U,__m512d A)
3377*67e74705SXin Li {
3378*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epi32
3379*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
3380*67e74705SXin Li   return _mm512_mask_cvt_roundpd_epi32(W,U,A,4);
3381*67e74705SXin Li }
3382*67e74705SXin Li 
test_mm512_maskz_cvt_roundpd_epi32(__mmask8 U,__m512d A)3383*67e74705SXin Li __m256i test_mm512_maskz_cvt_roundpd_epi32(__mmask8 U, __m512d A)
3384*67e74705SXin Li {
3385*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epi32
3386*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
3387*67e74705SXin Li   return _mm512_maskz_cvt_roundpd_epi32(U,A,4);
3388*67e74705SXin Li }
3389*67e74705SXin Li 
test_mm512_mask_cvt_roundps_epu32(__m512i __W,__mmask16 __U,__m512 __A)3390*67e74705SXin Li __m512i test_mm512_mask_cvt_roundps_epu32(__m512i __W,__mmask16 __U,__m512 __A)
3391*67e74705SXin Li {
3392*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epu32
3393*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
3394*67e74705SXin Li   return _mm512_mask_cvt_roundps_epu32(__W,__U,__A,4);
3395*67e74705SXin Li }
3396*67e74705SXin Li 
test_mm512_maskz_cvt_roundps_epu32(__mmask16 __U,__m512 __A)3397*67e74705SXin Li __m512i test_mm512_maskz_cvt_roundps_epu32(__mmask16 __U,__m512 __A)
3398*67e74705SXin Li {
3399*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epu32
3400*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
3401*67e74705SXin Li   return _mm512_maskz_cvt_roundps_epu32(__U,__A, 4);
3402*67e74705SXin Li }
3403*67e74705SXin Li 
test_mm512_mask_cvt_roundpd_epu32(__m256i W,__mmask8 U,__m512d A)3404*67e74705SXin Li __m256i test_mm512_mask_cvt_roundpd_epu32(__m256i W, __mmask8 U, __m512d A)
3405*67e74705SXin Li {
3406*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epu32
3407*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
3408*67e74705SXin Li   return _mm512_mask_cvt_roundpd_epu32(W,U,A,4);
3409*67e74705SXin Li }
3410*67e74705SXin Li 
test_mm512_maskz_cvt_roundpd_epu32(__mmask8 U,__m512d A)3411*67e74705SXin Li __m256i test_mm512_maskz_cvt_roundpd_epu32(__mmask8 U, __m512d A)
3412*67e74705SXin Li {
3413*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epu32
3414*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
3415*67e74705SXin Li   return _mm512_maskz_cvt_roundpd_epu32(U, A, 4);
3416*67e74705SXin Li }
3417*67e74705SXin Li 
test_mm512_mask2_permutex2var_ps(__m512 __A,__m512i __I,__mmask16 __U,__m512 __B)3418*67e74705SXin Li __m512 test_mm512_mask2_permutex2var_ps(__m512 __A, __m512i __I, __mmask16 __U, __m512 __B) {
3419*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask2_permutex2var_ps
3420*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermi2var.ps.512
3421*67e74705SXin Li   return _mm512_mask2_permutex2var_ps(__A, __I, __U, __B);
3422*67e74705SXin Li }
3423*67e74705SXin Li 
test_mm512_mask2_permutex2var_epi64(__m512i __A,__m512i __I,__mmask8 __U,__m512i __B)3424*67e74705SXin Li __m512i test_mm512_mask2_permutex2var_epi64(__m512i __A, __m512i __I, __mmask8 __U, __m512i __B) {
3425*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi64
3426*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermi2var.q.512
3427*67e74705SXin Li   return _mm512_mask2_permutex2var_epi64(__A, __I, __U, __B);
3428*67e74705SXin Li }
3429*67e74705SXin Li 
test_mm512_permute_pd(__m512d __X)3430*67e74705SXin Li __m512d test_mm512_permute_pd(__m512d __X) {
3431*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permute_pd
3432*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
3433*67e74705SXin Li   return _mm512_permute_pd(__X, 2);
3434*67e74705SXin Li }
3435*67e74705SXin Li 
test_mm512_mask_permute_pd(__m512d __W,__mmask8 __U,__m512d __X)3436*67e74705SXin Li __m512d test_mm512_mask_permute_pd(__m512d __W, __mmask8 __U, __m512d __X) {
3437*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permute_pd
3438*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
3439*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3440*67e74705SXin Li   return _mm512_mask_permute_pd(__W, __U, __X, 2);
3441*67e74705SXin Li }
3442*67e74705SXin Li 
test_mm512_maskz_permute_pd(__mmask8 __U,__m512d __X)3443*67e74705SXin Li __m512d test_mm512_maskz_permute_pd(__mmask8 __U, __m512d __X) {
3444*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permute_pd
3445*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
3446*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3447*67e74705SXin Li   return _mm512_maskz_permute_pd(__U, __X, 2);
3448*67e74705SXin Li }
3449*67e74705SXin Li 
test_mm512_permute_ps(__m512 __X)3450*67e74705SXin Li __m512 test_mm512_permute_ps(__m512 __X) {
3451*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permute_ps
3452*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> undef, <16 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4, i32 10, i32 8, i32 8, i32 8, i32 14, i32 12, i32 12, i32 12>
3453*67e74705SXin Li   return _mm512_permute_ps(__X, 2);
3454*67e74705SXin Li }
3455*67e74705SXin Li 
test_mm512_mask_permute_ps(__m512 __W,__mmask16 __U,__m512 __X)3456*67e74705SXin Li __m512 test_mm512_mask_permute_ps(__m512 __W, __mmask16 __U, __m512 __X) {
3457*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permute_ps
3458*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> undef, <16 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4, i32 10, i32 8, i32 8, i32 8, i32 14, i32 12, i32 12, i32 12>
3459*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3460*67e74705SXin Li   return _mm512_mask_permute_ps(__W, __U, __X, 2);
3461*67e74705SXin Li }
3462*67e74705SXin Li 
test_mm512_maskz_permute_ps(__mmask16 __U,__m512 __X)3463*67e74705SXin Li __m512 test_mm512_maskz_permute_ps(__mmask16 __U, __m512 __X) {
3464*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permute_ps
3465*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> undef, <16 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4, i32 10, i32 8, i32 8, i32 8, i32 14, i32 12, i32 12, i32 12>
3466*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3467*67e74705SXin Li   return _mm512_maskz_permute_ps(__U, __X, 2);
3468*67e74705SXin Li }
3469*67e74705SXin Li 
test_mm512_permutevar_pd(__m512d __A,__m512i __C)3470*67e74705SXin Li __m512d test_mm512_permutevar_pd(__m512d __A, __m512i __C) {
3471*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutevar_pd
3472*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.512
3473*67e74705SXin Li   return _mm512_permutevar_pd(__A, __C);
3474*67e74705SXin Li }
3475*67e74705SXin Li 
test_mm512_mask_permutevar_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512i __C)3476*67e74705SXin Li __m512d test_mm512_mask_permutevar_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512i __C) {
3477*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutevar_pd
3478*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.512
3479*67e74705SXin Li   return _mm512_mask_permutevar_pd(__W, __U, __A, __C);
3480*67e74705SXin Li }
3481*67e74705SXin Li 
test_mm512_maskz_permutevar_pd(__mmask8 __U,__m512d __A,__m512i __C)3482*67e74705SXin Li __m512d test_mm512_maskz_permutevar_pd(__mmask8 __U, __m512d __A, __m512i __C) {
3483*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutevar_pd
3484*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.512
3485*67e74705SXin Li   return _mm512_maskz_permutevar_pd(__U, __A, __C);
3486*67e74705SXin Li }
3487*67e74705SXin Li 
test_mm512_permutevar_ps(__m512 __A,__m512i __C)3488*67e74705SXin Li __m512 test_mm512_permutevar_ps(__m512 __A, __m512i __C) {
3489*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutevar_ps
3490*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.512
3491*67e74705SXin Li   return _mm512_permutevar_ps(__A, __C);
3492*67e74705SXin Li }
3493*67e74705SXin Li 
test_mm512_mask_permutevar_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512i __C)3494*67e74705SXin Li __m512 test_mm512_mask_permutevar_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512i __C) {
3495*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutevar_ps
3496*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.512
3497*67e74705SXin Li   return _mm512_mask_permutevar_ps(__W, __U, __A, __C);
3498*67e74705SXin Li }
3499*67e74705SXin Li 
test_mm512_maskz_permutevar_ps(__mmask16 __U,__m512 __A,__m512i __C)3500*67e74705SXin Li __m512 test_mm512_maskz_permutevar_ps(__mmask16 __U, __m512 __A, __m512i __C) {
3501*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutevar_ps
3502*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.512
3503*67e74705SXin Li   return _mm512_maskz_permutevar_ps(__U, __A, __C);
3504*67e74705SXin Li }
3505*67e74705SXin Li 
test_mm512_maskz_permutex2var_epi32(__mmask16 __U,__m512i __A,__m512i __I,__m512i __B)3506*67e74705SXin Li __m512i test_mm512_maskz_permutex2var_epi32(__mmask16 __U, __m512i __A, __m512i __I, __m512i __B) {
3507*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi32
3508*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.d.512
3509*67e74705SXin Li   return _mm512_maskz_permutex2var_epi32(__U, __A, __I, __B);
3510*67e74705SXin Li }
3511*67e74705SXin Li 
test_mm512_mask_permutex2var_epi32(__m512i __A,__mmask16 __U,__m512i __I,__m512i __B)3512*67e74705SXin Li __m512i test_mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U, __m512i __I, __m512i __B)
3513*67e74705SXin Li {
3514*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutex2var_epi32
3515*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.512
3516*67e74705SXin Li   return _mm512_mask_permutex2var_epi32 (__A,__U,__I,__B);
3517*67e74705SXin Li }
3518*67e74705SXin Li 
test_mm512_permutex2var_pd(__m512d __A,__m512i __I,__m512d __B)3519*67e74705SXin Li __m512d test_mm512_permutex2var_pd (__m512d __A, __m512i __I, __m512d __B)
3520*67e74705SXin Li {
3521*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutex2var_pd
3522*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.512
3523*67e74705SXin Li   return _mm512_permutex2var_pd (__A, __I,__B);
3524*67e74705SXin Li }
3525*67e74705SXin Li 
test_mm512_mask_permutex2var_pd(__m512d __A,__mmask8 __U,__m512i __I,__m512d __B)3526*67e74705SXin Li __m512d test_mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I, __m512d __B)
3527*67e74705SXin Li {
3528*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutex2var_pd
3529*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.512
3530*67e74705SXin Li   return _mm512_mask_permutex2var_pd (__A,__U,__I,__B);
3531*67e74705SXin Li }
3532*67e74705SXin Li 
test_mm512_maskz_permutex2var_pd(__mmask8 __U,__m512d __A,__m512i __I,__m512d __B)3533*67e74705SXin Li __m512d test_mm512_maskz_permutex2var_pd(__mmask8 __U, __m512d __A, __m512i __I, __m512d __B) {
3534*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutex2var_pd
3535*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.pd.512
3536*67e74705SXin Li   return _mm512_maskz_permutex2var_pd(__U, __A, __I, __B);
3537*67e74705SXin Li }
3538*67e74705SXin Li 
test_mm512_permutex2var_ps(__m512 __A,__m512i __I,__m512 __B)3539*67e74705SXin Li __m512 test_mm512_permutex2var_ps (__m512 __A, __m512i __I, __m512 __B)
3540*67e74705SXin Li {
3541*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutex2var_ps
3542*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.512
3543*67e74705SXin Li   return _mm512_permutex2var_ps (__A, __I, __B);
3544*67e74705SXin Li }
3545*67e74705SXin Li 
test_mm512_mask_permutex2var_ps(__m512 __A,__mmask16 __U,__m512i __I,__m512 __B)3546*67e74705SXin Li __m512 test_mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B)
3547*67e74705SXin Li {
3548*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutex2var_ps
3549*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.512
3550*67e74705SXin Li   return _mm512_mask_permutex2var_ps (__A,__U,__I,__B);
3551*67e74705SXin Li }
3552*67e74705SXin Li 
test_mm512_maskz_permutex2var_ps(__mmask16 __U,__m512 __A,__m512i __I,__m512 __B)3553*67e74705SXin Li __m512 test_mm512_maskz_permutex2var_ps(__mmask16 __U, __m512 __A, __m512i __I, __m512 __B) {
3554*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutex2var_ps
3555*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.ps.512
3556*67e74705SXin Li   return _mm512_maskz_permutex2var_ps(__U, __A, __I, __B);
3557*67e74705SXin Li }
3558*67e74705SXin Li 
test_mm512_mask_permutex2var_epi64(__m512i __A,__mmask8 __U,__m512i __I,__m512i __B)3559*67e74705SXin Li __m512i test_mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I, __m512i __B){
3560*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutex2var_epi64
3561*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.512
3562*67e74705SXin Li   return _mm512_mask_permutex2var_epi64(__A, __U, __I, __B);
3563*67e74705SXin Li }
3564*67e74705SXin Li 
test_mm512_maskz_permutex2var_epi64(__mmask8 __U,__m512i __A,__m512i __I,__m512i __B)3565*67e74705SXin Li __m512i test_mm512_maskz_permutex2var_epi64(__mmask8 __U, __m512i __A, __m512i __I, __m512i __B) {
3566*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi64
3567*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.q.512
3568*67e74705SXin Li   return _mm512_maskz_permutex2var_epi64(__U, __A, __I, __B);
3569*67e74705SXin Li }
test_mm512_testn_epi32_mask(__m512i __A,__m512i __B)3570*67e74705SXin Li __mmask16 test_mm512_testn_epi32_mask(__m512i __A, __m512i __B) {
3571*67e74705SXin Li   // CHECK-LABEL: @test_mm512_testn_epi32_mask
3572*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestnm.d.512
3573*67e74705SXin Li   return _mm512_testn_epi32_mask(__A, __B);
3574*67e74705SXin Li }
3575*67e74705SXin Li 
test_mm512_mask_testn_epi32_mask(__mmask16 __U,__m512i __A,__m512i __B)3576*67e74705SXin Li __mmask16 test_mm512_mask_testn_epi32_mask(__mmask16 __U, __m512i __A, __m512i __B) {
3577*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_testn_epi32_mask
3578*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestnm.d.512
3579*67e74705SXin Li   return _mm512_mask_testn_epi32_mask(__U, __A, __B);
3580*67e74705SXin Li }
3581*67e74705SXin Li 
test_mm512_testn_epi64_mask(__m512i __A,__m512i __B)3582*67e74705SXin Li __mmask8 test_mm512_testn_epi64_mask(__m512i __A, __m512i __B) {
3583*67e74705SXin Li   // CHECK-LABEL: @test_mm512_testn_epi64_mask
3584*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestnm.q.512
3585*67e74705SXin Li   return _mm512_testn_epi64_mask(__A, __B);
3586*67e74705SXin Li }
3587*67e74705SXin Li 
test_mm512_mask_testn_epi64_mask(__mmask8 __U,__m512i __A,__m512i __B)3588*67e74705SXin Li __mmask8 test_mm512_mask_testn_epi64_mask(__mmask8 __U, __m512i __A, __m512i __B) {
3589*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_testn_epi64_mask
3590*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestnm.q.512
3591*67e74705SXin Li   return _mm512_mask_testn_epi64_mask(__U, __A, __B);
3592*67e74705SXin Li }
3593*67e74705SXin Li 
test_mm512_mask_test_epi32_mask(__mmask16 __U,__m512i __A,__m512i __B)3594*67e74705SXin Li __mmask16 test_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
3595*67e74705SXin Li {
3596*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_test_epi32_mask
3597*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestm.d.512
3598*67e74705SXin Li   return _mm512_mask_test_epi32_mask (__U,__A,__B);
3599*67e74705SXin Li }
3600*67e74705SXin Li 
test_mm512_mask_test_epi64_mask(__mmask8 __U,__m512i __A,__m512i __B)3601*67e74705SXin Li __mmask8 test_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
3602*67e74705SXin Li {
3603*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_test_epi64_mask
3604*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestm.q.512
3605*67e74705SXin Li   return _mm512_mask_test_epi64_mask (__U,__A,__B);
3606*67e74705SXin Li }
3607*67e74705SXin Li 
test_mm512_maskz_unpackhi_epi32(__mmask16 __U,__m512i __A,__m512i __B)3608*67e74705SXin Li __m512i test_mm512_maskz_unpackhi_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
3609*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi32
3610*67e74705SXin Li   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 2, i32 18, i32 3, i32 19, i32 6, i32 22, i32 7, i32 23, i32 10, i32 26, i32 11, i32 27, i32 14, i32 30, i32 15, i32 31>
3611*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3612*67e74705SXin Li   return _mm512_maskz_unpackhi_epi32(__U, __A, __B);
3613*67e74705SXin Li }
3614*67e74705SXin Li 
test_mm512_unpackhi_epi64(__m512i __A,__m512i __B)3615*67e74705SXin Li __m512i test_mm512_unpackhi_epi64(__m512i __A, __m512i __B) {
3616*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpackhi_epi64
3617*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
3618*67e74705SXin Li   return _mm512_unpackhi_epi64(__A, __B);
3619*67e74705SXin Li }
3620*67e74705SXin Li 
test_mm512_mask_unpackhi_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)3621*67e74705SXin Li __m512i test_mm512_mask_unpackhi_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
3622*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpackhi_epi64
3623*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
3624*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3625*67e74705SXin Li   return _mm512_mask_unpackhi_epi64(__W, __U, __A, __B);
3626*67e74705SXin Li }
3627*67e74705SXin Li 
test_mm512_maskz_unpackhi_epi64(__mmask8 __U,__m512i __A,__m512i __B)3628*67e74705SXin Li __m512i test_mm512_maskz_unpackhi_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
3629*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi64
3630*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
3631*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3632*67e74705SXin Li   return _mm512_maskz_unpackhi_epi64(__U, __A, __B);
3633*67e74705SXin Li }
3634*67e74705SXin Li 
test_mm512_unpacklo_epi32(__m512i __A,__m512i __B)3635*67e74705SXin Li __m512i test_mm512_unpacklo_epi32(__m512i __A, __m512i __B) {
3636*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpacklo_epi32
3637*67e74705SXin Li   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 4, i32 20, i32 5, i32 21, i32 8, i32 24, i32 9, i32 25, i32 12, i32 28, i32 13, i32 29>
3638*67e74705SXin Li   return _mm512_unpacklo_epi32(__A, __B);
3639*67e74705SXin Li }
3640*67e74705SXin Li 
test_mm512_mask_unpacklo_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)3641*67e74705SXin Li __m512i test_mm512_mask_unpacklo_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
3642*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpacklo_epi32
3643*67e74705SXin Li   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 4, i32 20, i32 5, i32 21, i32 8, i32 24, i32 9, i32 25, i32 12, i32 28, i32 13, i32 29>
3644*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3645*67e74705SXin Li   return _mm512_mask_unpacklo_epi32(__W, __U, __A, __B);
3646*67e74705SXin Li }
3647*67e74705SXin Li 
test_mm512_maskz_unpacklo_epi32(__mmask16 __U,__m512i __A,__m512i __B)3648*67e74705SXin Li __m512i test_mm512_maskz_unpacklo_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
3649*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi32
3650*67e74705SXin Li   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 4, i32 20, i32 5, i32 21, i32 8, i32 24, i32 9, i32 25, i32 12, i32 28, i32 13, i32 29>
3651*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3652*67e74705SXin Li   return _mm512_maskz_unpacklo_epi32(__U, __A, __B);
3653*67e74705SXin Li }
3654*67e74705SXin Li 
test_mm512_unpacklo_epi64(__m512i __A,__m512i __B)3655*67e74705SXin Li __m512i test_mm512_unpacklo_epi64(__m512i __A, __m512i __B) {
3656*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpacklo_epi64
3657*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
3658*67e74705SXin Li   return _mm512_unpacklo_epi64(__A, __B);
3659*67e74705SXin Li }
3660*67e74705SXin Li 
test_mm512_mask_unpacklo_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)3661*67e74705SXin Li __m512i test_mm512_mask_unpacklo_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
3662*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpacklo_epi64
3663*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
3664*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3665*67e74705SXin Li   return _mm512_mask_unpacklo_epi64(__W, __U, __A, __B);
3666*67e74705SXin Li }
3667*67e74705SXin Li 
test_mm512_maskz_unpacklo_epi64(__mmask8 __U,__m512i __A,__m512i __B)3668*67e74705SXin Li __m512i test_mm512_maskz_unpacklo_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
3669*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi64
3670*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
3671*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3672*67e74705SXin Li   return _mm512_maskz_unpacklo_epi64(__U, __A, __B);
3673*67e74705SXin Li }
3674*67e74705SXin Li 
test_mm_roundscale_round_sd(__m128d __A,__m128d __B)3675*67e74705SXin Li __m128d test_mm_roundscale_round_sd(__m128d __A, __m128d __B) {
3676*67e74705SXin Li   // CHECK-LABEL: @test_mm_roundscale_round_sd
3677*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3678*67e74705SXin Li   return _mm_roundscale_round_sd(__A, __B, 3, _MM_FROUND_CUR_DIRECTION);
3679*67e74705SXin Li }
3680*67e74705SXin Li 
test_mm_roundscale_sd(__m128d __A,__m128d __B)3681*67e74705SXin Li __m128d test_mm_roundscale_sd(__m128d __A, __m128d __B) {
3682*67e74705SXin Li   // CHECK-LABEL: @test_mm_roundscale_sd
3683*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3684*67e74705SXin Li   return _mm_roundscale_sd(__A, __B, 3);
3685*67e74705SXin Li }
3686*67e74705SXin Li 
test_mm_mask_roundscale_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3687*67e74705SXin Li __m128d test_mm_mask_roundscale_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3688*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3689*67e74705SXin Li     return _mm_mask_roundscale_sd(__W,__U,__A,__B,3);
3690*67e74705SXin Li }
3691*67e74705SXin Li 
test_mm_mask_roundscale_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3692*67e74705SXin Li __m128d test_mm_mask_roundscale_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3693*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3694*67e74705SXin Li     return _mm_mask_roundscale_round_sd(__W,__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION);
3695*67e74705SXin Li }
3696*67e74705SXin Li 
test_mm_maskz_roundscale_sd(__mmask8 __U,__m128d __A,__m128d __B)3697*67e74705SXin Li __m128d test_mm_maskz_roundscale_sd(__mmask8 __U, __m128d __A, __m128d __B){
3698*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3699*67e74705SXin Li     return _mm_maskz_roundscale_sd(__U,__A,__B,3);
3700*67e74705SXin Li }
3701*67e74705SXin Li 
test_mm_maskz_roundscale_round_sd(__mmask8 __U,__m128d __A,__m128d __B)3702*67e74705SXin Li __m128d test_mm_maskz_roundscale_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
3703*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3704*67e74705SXin Li     return _mm_maskz_roundscale_round_sd(__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION );
3705*67e74705SXin Li }
3706*67e74705SXin Li 
test_mm_roundscale_round_ss(__m128 __A,__m128 __B)3707*67e74705SXin Li __m128 test_mm_roundscale_round_ss(__m128 __A, __m128 __B) {
3708*67e74705SXin Li   // CHECK-LABEL: @test_mm_roundscale_round_ss
3709*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
3710*67e74705SXin Li   return _mm_roundscale_round_ss(__A, __B, 3, _MM_FROUND_CUR_DIRECTION);
3711*67e74705SXin Li }
3712*67e74705SXin Li 
test_mm_roundscale_ss(__m128 __A,__m128 __B)3713*67e74705SXin Li __m128 test_mm_roundscale_ss(__m128 __A, __m128 __B) {
3714*67e74705SXin Li   // CHECK-LABEL: @test_mm_roundscale_ss
3715*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
3716*67e74705SXin Li   return _mm_roundscale_ss(__A, __B, 3);
3717*67e74705SXin Li }
3718*67e74705SXin Li 
test_mm_mask_roundscale_ss(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3719*67e74705SXin Li __m128 test_mm_mask_roundscale_ss(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3720*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_roundscale_ss
3721*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
3722*67e74705SXin Li     return _mm_mask_roundscale_ss(__W,__U,__A,__B,3);
3723*67e74705SXin Li }
3724*67e74705SXin Li 
test_mm_maskz_roundscale_round_ss(__mmask8 __U,__m128d __A,__m128d __B)3725*67e74705SXin Li __m128 test_mm_maskz_roundscale_round_ss( __mmask8 __U, __m128d __A, __m128d __B){
3726*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_roundscale_round_ss
3727*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
3728*67e74705SXin Li     return _mm_maskz_roundscale_round_ss(__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION);
3729*67e74705SXin Li }
3730*67e74705SXin Li 
test_mm_maskz_roundscale_ss(__mmask8 __U,__m128d __A,__m128d __B)3731*67e74705SXin Li __m128 test_mm_maskz_roundscale_ss(__mmask8 __U, __m128d __A, __m128d __B){
3732*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_roundscale_ss
3733*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
3734*67e74705SXin Li     return _mm_maskz_roundscale_ss(__U,__A,__B,3);
3735*67e74705SXin Li }
3736*67e74705SXin Li 
test_mm512_scalef_round_pd(__m512d __A,__m512d __B)3737*67e74705SXin Li __m512d test_mm512_scalef_round_pd(__m512d __A, __m512d __B) {
3738*67e74705SXin Li   // CHECK-LABEL: @test_mm512_scalef_round_pd
3739*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3740*67e74705SXin Li   return _mm512_scalef_round_pd(__A, __B, _MM_FROUND_CUR_DIRECTION);
3741*67e74705SXin Li }
3742*67e74705SXin Li 
test_mm512_mask_scalef_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)3743*67e74705SXin Li __m512d test_mm512_mask_scalef_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
3744*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_scalef_round_pd
3745*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3746*67e74705SXin Li   return _mm512_mask_scalef_round_pd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3747*67e74705SXin Li }
3748*67e74705SXin Li 
test_mm512_maskz_scalef_round_pd(__mmask8 __U,__m512d __A,__m512d __B)3749*67e74705SXin Li __m512d test_mm512_maskz_scalef_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
3750*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_scalef_round_pd
3751*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3752*67e74705SXin Li   return _mm512_maskz_scalef_round_pd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3753*67e74705SXin Li }
3754*67e74705SXin Li 
test_mm512_scalef_pd(__m512d __A,__m512d __B)3755*67e74705SXin Li __m512d test_mm512_scalef_pd(__m512d __A, __m512d __B) {
3756*67e74705SXin Li   // CHECK-LABEL: @test_mm512_scalef_pd
3757*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3758*67e74705SXin Li   return _mm512_scalef_pd(__A, __B);
3759*67e74705SXin Li }
3760*67e74705SXin Li 
test_mm512_mask_scalef_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)3761*67e74705SXin Li __m512d test_mm512_mask_scalef_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
3762*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_scalef_pd
3763*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3764*67e74705SXin Li   return _mm512_mask_scalef_pd(__W, __U, __A, __B);
3765*67e74705SXin Li }
3766*67e74705SXin Li 
test_mm512_maskz_scalef_pd(__mmask8 __U,__m512d __A,__m512d __B)3767*67e74705SXin Li __m512d test_mm512_maskz_scalef_pd(__mmask8 __U, __m512d __A, __m512d __B) {
3768*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_scalef_pd
3769*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3770*67e74705SXin Li   return _mm512_maskz_scalef_pd(__U, __A, __B);
3771*67e74705SXin Li }
3772*67e74705SXin Li 
test_mm512_scalef_round_ps(__m512 __A,__m512 __B)3773*67e74705SXin Li __m512 test_mm512_scalef_round_ps(__m512 __A, __m512 __B) {
3774*67e74705SXin Li   // CHECK-LABEL: @test_mm512_scalef_round_ps
3775*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3776*67e74705SXin Li   return _mm512_scalef_round_ps(__A, __B, _MM_FROUND_CUR_DIRECTION);
3777*67e74705SXin Li }
3778*67e74705SXin Li 
test_mm512_mask_scalef_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)3779*67e74705SXin Li __m512 test_mm512_mask_scalef_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
3780*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_scalef_round_ps
3781*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3782*67e74705SXin Li   return _mm512_mask_scalef_round_ps(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3783*67e74705SXin Li }
3784*67e74705SXin Li 
test_mm512_maskz_scalef_round_ps(__mmask16 __U,__m512 __A,__m512 __B)3785*67e74705SXin Li __m512 test_mm512_maskz_scalef_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
3786*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_scalef_round_ps
3787*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3788*67e74705SXin Li   return _mm512_maskz_scalef_round_ps(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3789*67e74705SXin Li }
3790*67e74705SXin Li 
test_mm512_scalef_ps(__m512 __A,__m512 __B)3791*67e74705SXin Li __m512 test_mm512_scalef_ps(__m512 __A, __m512 __B) {
3792*67e74705SXin Li   // CHECK-LABEL: @test_mm512_scalef_ps
3793*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3794*67e74705SXin Li   return _mm512_scalef_ps(__A, __B);
3795*67e74705SXin Li }
3796*67e74705SXin Li 
test_mm512_mask_scalef_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)3797*67e74705SXin Li __m512 test_mm512_mask_scalef_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
3798*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_scalef_ps
3799*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3800*67e74705SXin Li   return _mm512_mask_scalef_ps(__W, __U, __A, __B);
3801*67e74705SXin Li }
3802*67e74705SXin Li 
test_mm512_maskz_scalef_ps(__mmask16 __U,__m512 __A,__m512 __B)3803*67e74705SXin Li __m512 test_mm512_maskz_scalef_ps(__mmask16 __U, __m512 __A, __m512 __B) {
3804*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_scalef_ps
3805*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3806*67e74705SXin Li   return _mm512_maskz_scalef_ps(__U, __A, __B);
3807*67e74705SXin Li }
3808*67e74705SXin Li 
test_mm_scalef_round_sd(__m128d __A,__m128d __B)3809*67e74705SXin Li __m128d test_mm_scalef_round_sd(__m128d __A, __m128d __B) {
3810*67e74705SXin Li   // CHECK-LABEL: @test_mm_scalef_round_sd
3811*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef
3812*67e74705SXin Li   return _mm_scalef_round_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
3813*67e74705SXin Li }
3814*67e74705SXin Li 
test_mm_scalef_sd(__m128d __A,__m128d __B)3815*67e74705SXin Li __m128d test_mm_scalef_sd(__m128d __A, __m128d __B) {
3816*67e74705SXin Li   // CHECK-LABEL: @test_mm_scalef_sd
3817*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef
3818*67e74705SXin Li   return _mm_scalef_sd(__A, __B);
3819*67e74705SXin Li }
3820*67e74705SXin Li 
test_mm_mask_scalef_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3821*67e74705SXin Li __m128d test_mm_mask_scalef_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3822*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_scalef_sd
3823*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.sd
3824*67e74705SXin Li   return _mm_mask_scalef_sd(__W, __U, __A, __B);
3825*67e74705SXin Li }
3826*67e74705SXin Li 
test_mm_mask_scalef_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3827*67e74705SXin Li __m128d test_mm_mask_scalef_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3828*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_scalef_round_sd
3829*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.sd
3830*67e74705SXin Li     return _mm_mask_scalef_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3831*67e74705SXin Li }
3832*67e74705SXin Li 
test_mm_maskz_scalef_sd(__mmask8 __U,__m128d __A,__m128d __B)3833*67e74705SXin Li __m128d test_mm_maskz_scalef_sd(__mmask8 __U, __m128d __A, __m128d __B){
3834*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_scalef_sd
3835*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.sd
3836*67e74705SXin Li     return _mm_maskz_scalef_sd(__U, __A, __B);
3837*67e74705SXin Li }
3838*67e74705SXin Li 
test_mm_maskz_scalef_round_sd(__mmask8 __U,__m128d __A,__m128d __B)3839*67e74705SXin Li __m128d test_mm_maskz_scalef_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
3840*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_scalef_round_sd
3841*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.sd
3842*67e74705SXin Li     return _mm_maskz_scalef_round_sd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3843*67e74705SXin Li }
3844*67e74705SXin Li 
test_mm_scalef_round_ss(__m128 __A,__m128 __B)3845*67e74705SXin Li __m128 test_mm_scalef_round_ss(__m128 __A, __m128 __B) {
3846*67e74705SXin Li   // CHECK-LABEL: @test_mm_scalef_round_ss
3847*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3848*67e74705SXin Li   return _mm_scalef_round_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
3849*67e74705SXin Li }
3850*67e74705SXin Li 
test_mm_scalef_ss(__m128 __A,__m128 __B)3851*67e74705SXin Li __m128 test_mm_scalef_ss(__m128 __A, __m128 __B) {
3852*67e74705SXin Li   // CHECK-LABEL: @test_mm_scalef_ss
3853*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3854*67e74705SXin Li   return _mm_scalef_ss(__A, __B);
3855*67e74705SXin Li }
3856*67e74705SXin Li 
test_mm_mask_scalef_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)3857*67e74705SXin Li __m128 test_mm_mask_scalef_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
3858*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_scalef_ss
3859*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3860*67e74705SXin Li     return _mm_mask_scalef_ss(__W, __U, __A, __B);
3861*67e74705SXin Li }
3862*67e74705SXin Li 
test_mm_mask_scalef_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)3863*67e74705SXin Li __m128 test_mm_mask_scalef_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
3864*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_scalef_round_ss
3865*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3866*67e74705SXin Li     return _mm_mask_scalef_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3867*67e74705SXin Li }
3868*67e74705SXin Li 
test_mm_maskz_scalef_ss(__mmask8 __U,__m128 __A,__m128 __B)3869*67e74705SXin Li __m128 test_mm_maskz_scalef_ss(__mmask8 __U, __m128 __A, __m128 __B){
3870*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_scalef_ss
3871*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3872*67e74705SXin Li     return _mm_maskz_scalef_ss(__U, __A, __B);
3873*67e74705SXin Li }
3874*67e74705SXin Li 
test_mm_maskz_scalef_round_ss(__mmask8 __U,__m128 __A,__m128 __B)3875*67e74705SXin Li __m128 test_mm_maskz_scalef_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
3876*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_scalef_round_ss
3877*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3878*67e74705SXin Li     return _mm_maskz_scalef_round_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3879*67e74705SXin Li }
3880*67e74705SXin Li 
test_mm512_srai_epi32(__m512i __A)3881*67e74705SXin Li __m512i test_mm512_srai_epi32(__m512i __A) {
3882*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srai_epi32
3883*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.di.512
3884*67e74705SXin Li   return _mm512_srai_epi32(__A, 5);
3885*67e74705SXin Li }
3886*67e74705SXin Li 
test_mm512_mask_srai_epi32(__m512i __W,__mmask16 __U,__m512i __A)3887*67e74705SXin Li __m512i test_mm512_mask_srai_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
3888*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srai_epi32
3889*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.di.512
3890*67e74705SXin Li   return _mm512_mask_srai_epi32(__W, __U, __A, 5);
3891*67e74705SXin Li }
3892*67e74705SXin Li 
test_mm512_maskz_srai_epi32(__mmask16 __U,__m512i __A)3893*67e74705SXin Li __m512i test_mm512_maskz_srai_epi32(__mmask16 __U, __m512i __A) {
3894*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srai_epi32
3895*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.di.512
3896*67e74705SXin Li   return _mm512_maskz_srai_epi32(__U, __A, 5);
3897*67e74705SXin Li }
3898*67e74705SXin Li 
test_mm512_srai_epi64(__m512i __A)3899*67e74705SXin Li __m512i test_mm512_srai_epi64(__m512i __A) {
3900*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srai_epi64
3901*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.qi.512
3902*67e74705SXin Li   return _mm512_srai_epi64(__A, 5);
3903*67e74705SXin Li }
3904*67e74705SXin Li 
test_mm512_mask_srai_epi64(__m512i __W,__mmask8 __U,__m512i __A)3905*67e74705SXin Li __m512i test_mm512_mask_srai_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
3906*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srai_epi64
3907*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.qi.512
3908*67e74705SXin Li   return _mm512_mask_srai_epi64(__W, __U, __A, 5);
3909*67e74705SXin Li }
3910*67e74705SXin Li 
test_mm512_maskz_srai_epi64(__mmask8 __U,__m512i __A)3911*67e74705SXin Li __m512i test_mm512_maskz_srai_epi64(__mmask8 __U, __m512i __A) {
3912*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srai_epi64
3913*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.qi.512
3914*67e74705SXin Li   return _mm512_maskz_srai_epi64(__U, __A, 5);
3915*67e74705SXin Li }
3916*67e74705SXin Li 
test_mm512_sll_epi32(__m512i __A,__m128i __B)3917*67e74705SXin Li __m512i test_mm512_sll_epi32(__m512i __A, __m128i __B) {
3918*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sll_epi32
3919*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.d
3920*67e74705SXin Li   return _mm512_sll_epi32(__A, __B);
3921*67e74705SXin Li }
3922*67e74705SXin Li 
test_mm512_mask_sll_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)3923*67e74705SXin Li __m512i test_mm512_mask_sll_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
3924*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sll_epi32
3925*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.d
3926*67e74705SXin Li   return _mm512_mask_sll_epi32(__W, __U, __A, __B);
3927*67e74705SXin Li }
3928*67e74705SXin Li 
test_mm512_maskz_sll_epi32(__mmask16 __U,__m512i __A,__m128i __B)3929*67e74705SXin Li __m512i test_mm512_maskz_sll_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
3930*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sll_epi32
3931*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.d
3932*67e74705SXin Li   return _mm512_maskz_sll_epi32(__U, __A, __B);
3933*67e74705SXin Li }
3934*67e74705SXin Li 
test_mm512_sll_epi64(__m512i __A,__m128i __B)3935*67e74705SXin Li __m512i test_mm512_sll_epi64(__m512i __A, __m128i __B) {
3936*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sll_epi64
3937*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.q
3938*67e74705SXin Li   return _mm512_sll_epi64(__A, __B);
3939*67e74705SXin Li }
3940*67e74705SXin Li 
test_mm512_mask_sll_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)3941*67e74705SXin Li __m512i test_mm512_mask_sll_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
3942*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sll_epi64
3943*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.q
3944*67e74705SXin Li   return _mm512_mask_sll_epi64(__W, __U, __A, __B);
3945*67e74705SXin Li }
3946*67e74705SXin Li 
test_mm512_maskz_sll_epi64(__mmask8 __U,__m512i __A,__m128i __B)3947*67e74705SXin Li __m512i test_mm512_maskz_sll_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
3948*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sll_epi64
3949*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.q
3950*67e74705SXin Li   return _mm512_maskz_sll_epi64(__U, __A, __B);
3951*67e74705SXin Li }
3952*67e74705SXin Li 
test_mm512_sllv_epi32(__m512i __X,__m512i __Y)3953*67e74705SXin Li __m512i test_mm512_sllv_epi32(__m512i __X, __m512i __Y) {
3954*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sllv_epi32
3955*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psllv.d
3956*67e74705SXin Li   return _mm512_sllv_epi32(__X, __Y);
3957*67e74705SXin Li }
3958*67e74705SXin Li 
test_mm512_mask_sllv_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)3959*67e74705SXin Li __m512i test_mm512_mask_sllv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
3960*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sllv_epi32
3961*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psllv.d
3962*67e74705SXin Li   return _mm512_mask_sllv_epi32(__W, __U, __X, __Y);
3963*67e74705SXin Li }
3964*67e74705SXin Li 
test_mm512_maskz_sllv_epi32(__mmask16 __U,__m512i __X,__m512i __Y)3965*67e74705SXin Li __m512i test_mm512_maskz_sllv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
3966*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sllv_epi32
3967*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psllv.d
3968*67e74705SXin Li   return _mm512_maskz_sllv_epi32(__U, __X, __Y);
3969*67e74705SXin Li }
3970*67e74705SXin Li 
test_mm512_sllv_epi64(__m512i __X,__m512i __Y)3971*67e74705SXin Li __m512i test_mm512_sllv_epi64(__m512i __X, __m512i __Y) {
3972*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sllv_epi64
3973*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psllv.q
3974*67e74705SXin Li   return _mm512_sllv_epi64(__X, __Y);
3975*67e74705SXin Li }
3976*67e74705SXin Li 
test_mm512_mask_sllv_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)3977*67e74705SXin Li __m512i test_mm512_mask_sllv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
3978*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sllv_epi64
3979*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psllv.q
3980*67e74705SXin Li   return _mm512_mask_sllv_epi64(__W, __U, __X, __Y);
3981*67e74705SXin Li }
3982*67e74705SXin Li 
test_mm512_maskz_sllv_epi64(__mmask8 __U,__m512i __X,__m512i __Y)3983*67e74705SXin Li __m512i test_mm512_maskz_sllv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
3984*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sllv_epi64
3985*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psllv.q
3986*67e74705SXin Li   return _mm512_maskz_sllv_epi64(__U, __X, __Y);
3987*67e74705SXin Li }
3988*67e74705SXin Li 
test_mm512_sra_epi32(__m512i __A,__m128i __B)3989*67e74705SXin Li __m512i test_mm512_sra_epi32(__m512i __A, __m128i __B) {
3990*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sra_epi32
3991*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.d
3992*67e74705SXin Li   return _mm512_sra_epi32(__A, __B);
3993*67e74705SXin Li }
3994*67e74705SXin Li 
test_mm512_mask_sra_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)3995*67e74705SXin Li __m512i test_mm512_mask_sra_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
3996*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sra_epi32
3997*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.d
3998*67e74705SXin Li   return _mm512_mask_sra_epi32(__W, __U, __A, __B);
3999*67e74705SXin Li }
4000*67e74705SXin Li 
test_mm512_maskz_sra_epi32(__mmask16 __U,__m512i __A,__m128i __B)4001*67e74705SXin Li __m512i test_mm512_maskz_sra_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
4002*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sra_epi32
4003*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.d
4004*67e74705SXin Li   return _mm512_maskz_sra_epi32(__U, __A, __B);
4005*67e74705SXin Li }
4006*67e74705SXin Li 
test_mm512_sra_epi64(__m512i __A,__m128i __B)4007*67e74705SXin Li __m512i test_mm512_sra_epi64(__m512i __A, __m128i __B) {
4008*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sra_epi64
4009*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.q
4010*67e74705SXin Li   return _mm512_sra_epi64(__A, __B);
4011*67e74705SXin Li }
4012*67e74705SXin Li 
test_mm512_mask_sra_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)4013*67e74705SXin Li __m512i test_mm512_mask_sra_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
4014*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sra_epi64
4015*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.q
4016*67e74705SXin Li   return _mm512_mask_sra_epi64(__W, __U, __A, __B);
4017*67e74705SXin Li }
4018*67e74705SXin Li 
test_mm512_maskz_sra_epi64(__mmask8 __U,__m512i __A,__m128i __B)4019*67e74705SXin Li __m512i test_mm512_maskz_sra_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
4020*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sra_epi64
4021*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.q
4022*67e74705SXin Li   return _mm512_maskz_sra_epi64(__U, __A, __B);
4023*67e74705SXin Li }
4024*67e74705SXin Li 
test_mm512_srav_epi32(__m512i __X,__m512i __Y)4025*67e74705SXin Li __m512i test_mm512_srav_epi32(__m512i __X, __m512i __Y) {
4026*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srav_epi32
4027*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrav.d
4028*67e74705SXin Li   return _mm512_srav_epi32(__X, __Y);
4029*67e74705SXin Li }
4030*67e74705SXin Li 
test_mm512_mask_srav_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)4031*67e74705SXin Li __m512i test_mm512_mask_srav_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
4032*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srav_epi32
4033*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrav.d
4034*67e74705SXin Li   return _mm512_mask_srav_epi32(__W, __U, __X, __Y);
4035*67e74705SXin Li }
4036*67e74705SXin Li 
test_mm512_maskz_srav_epi32(__mmask16 __U,__m512i __X,__m512i __Y)4037*67e74705SXin Li __m512i test_mm512_maskz_srav_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
4038*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srav_epi32
4039*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrav.d
4040*67e74705SXin Li   return _mm512_maskz_srav_epi32(__U, __X, __Y);
4041*67e74705SXin Li }
4042*67e74705SXin Li 
test_mm512_srav_epi64(__m512i __X,__m512i __Y)4043*67e74705SXin Li __m512i test_mm512_srav_epi64(__m512i __X, __m512i __Y) {
4044*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srav_epi64
4045*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrav.q
4046*67e74705SXin Li   return _mm512_srav_epi64(__X, __Y);
4047*67e74705SXin Li }
4048*67e74705SXin Li 
test_mm512_mask_srav_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)4049*67e74705SXin Li __m512i test_mm512_mask_srav_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
4050*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srav_epi64
4051*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrav.q
4052*67e74705SXin Li   return _mm512_mask_srav_epi64(__W, __U, __X, __Y);
4053*67e74705SXin Li }
4054*67e74705SXin Li 
test_mm512_maskz_srav_epi64(__mmask8 __U,__m512i __X,__m512i __Y)4055*67e74705SXin Li __m512i test_mm512_maskz_srav_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
4056*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srav_epi64
4057*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrav.q
4058*67e74705SXin Li   return _mm512_maskz_srav_epi64(__U, __X, __Y);
4059*67e74705SXin Li }
4060*67e74705SXin Li 
test_mm512_srl_epi32(__m512i __A,__m128i __B)4061*67e74705SXin Li __m512i test_mm512_srl_epi32(__m512i __A, __m128i __B) {
4062*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srl_epi32
4063*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.d
4064*67e74705SXin Li   return _mm512_srl_epi32(__A, __B);
4065*67e74705SXin Li }
4066*67e74705SXin Li 
test_mm512_mask_srl_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)4067*67e74705SXin Li __m512i test_mm512_mask_srl_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
4068*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srl_epi32
4069*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.d
4070*67e74705SXin Li   return _mm512_mask_srl_epi32(__W, __U, __A, __B);
4071*67e74705SXin Li }
4072*67e74705SXin Li 
test_mm512_maskz_srl_epi32(__mmask16 __U,__m512i __A,__m128i __B)4073*67e74705SXin Li __m512i test_mm512_maskz_srl_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
4074*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srl_epi32
4075*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.d
4076*67e74705SXin Li   return _mm512_maskz_srl_epi32(__U, __A, __B);
4077*67e74705SXin Li }
4078*67e74705SXin Li 
test_mm512_srl_epi64(__m512i __A,__m128i __B)4079*67e74705SXin Li __m512i test_mm512_srl_epi64(__m512i __A, __m128i __B) {
4080*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srl_epi64
4081*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.q
4082*67e74705SXin Li   return _mm512_srl_epi64(__A, __B);
4083*67e74705SXin Li }
4084*67e74705SXin Li 
test_mm512_mask_srl_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)4085*67e74705SXin Li __m512i test_mm512_mask_srl_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
4086*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srl_epi64
4087*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.q
4088*67e74705SXin Li   return _mm512_mask_srl_epi64(__W, __U, __A, __B);
4089*67e74705SXin Li }
4090*67e74705SXin Li 
test_mm512_maskz_srl_epi64(__mmask8 __U,__m512i __A,__m128i __B)4091*67e74705SXin Li __m512i test_mm512_maskz_srl_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
4092*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srl_epi64
4093*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.q
4094*67e74705SXin Li   return _mm512_maskz_srl_epi64(__U, __A, __B);
4095*67e74705SXin Li }
4096*67e74705SXin Li 
test_mm512_srlv_epi32(__m512i __X,__m512i __Y)4097*67e74705SXin Li __m512i test_mm512_srlv_epi32(__m512i __X, __m512i __Y) {
4098*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srlv_epi32
4099*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrlv.d
4100*67e74705SXin Li   return _mm512_srlv_epi32(__X, __Y);
4101*67e74705SXin Li }
4102*67e74705SXin Li 
test_mm512_mask_srlv_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)4103*67e74705SXin Li __m512i test_mm512_mask_srlv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
4104*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srlv_epi32
4105*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrlv.d
4106*67e74705SXin Li   return _mm512_mask_srlv_epi32(__W, __U, __X, __Y);
4107*67e74705SXin Li }
4108*67e74705SXin Li 
test_mm512_maskz_srlv_epi32(__mmask16 __U,__m512i __X,__m512i __Y)4109*67e74705SXin Li __m512i test_mm512_maskz_srlv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
4110*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srlv_epi32
4111*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrlv.d
4112*67e74705SXin Li   return _mm512_maskz_srlv_epi32(__U, __X, __Y);
4113*67e74705SXin Li }
4114*67e74705SXin Li 
test_mm512_srlv_epi64(__m512i __X,__m512i __Y)4115*67e74705SXin Li __m512i test_mm512_srlv_epi64(__m512i __X, __m512i __Y) {
4116*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srlv_epi64
4117*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrlv.q
4118*67e74705SXin Li   return _mm512_srlv_epi64(__X, __Y);
4119*67e74705SXin Li }
4120*67e74705SXin Li 
test_mm512_mask_srlv_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)4121*67e74705SXin Li __m512i test_mm512_mask_srlv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
4122*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srlv_epi64
4123*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrlv.q
4124*67e74705SXin Li   return _mm512_mask_srlv_epi64(__W, __U, __X, __Y);
4125*67e74705SXin Li }
4126*67e74705SXin Li 
test_mm512_maskz_srlv_epi64(__mmask8 __U,__m512i __X,__m512i __Y)4127*67e74705SXin Li __m512i test_mm512_maskz_srlv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
4128*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srlv_epi64
4129*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrlv.q
4130*67e74705SXin Li   return _mm512_maskz_srlv_epi64(__U, __X, __Y);
4131*67e74705SXin Li }
4132*67e74705SXin Li 
test_mm512_ternarylogic_epi32(__m512i __A,__m512i __B,__m512i __C)4133*67e74705SXin Li __m512i test_mm512_ternarylogic_epi32(__m512i __A, __m512i __B, __m512i __C) {
4134*67e74705SXin Li   // CHECK-LABEL: @test_mm512_ternarylogic_epi32
4135*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pternlog.d.512
4136*67e74705SXin Li   return _mm512_ternarylogic_epi32(__A, __B, __C, 4);
4137*67e74705SXin Li }
4138*67e74705SXin Li 
test_mm512_mask_ternarylogic_epi32(__m512i __A,__mmask16 __U,__m512i __B,__m512i __C)4139*67e74705SXin Li __m512i test_mm512_mask_ternarylogic_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
4140*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_ternarylogic_epi32
4141*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pternlog.d.512
4142*67e74705SXin Li   return _mm512_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
4143*67e74705SXin Li }
4144*67e74705SXin Li 
test_mm512_maskz_ternarylogic_epi32(__mmask16 __U,__m512i __A,__m512i __B,__m512i __C)4145*67e74705SXin Li __m512i test_mm512_maskz_ternarylogic_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) {
4146*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_ternarylogic_epi32
4147*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.pternlog.d.512
4148*67e74705SXin Li   return _mm512_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
4149*67e74705SXin Li }
4150*67e74705SXin Li 
test_mm512_ternarylogic_epi64(__m512i __A,__m512i __B,__m512i __C)4151*67e74705SXin Li __m512i test_mm512_ternarylogic_epi64(__m512i __A, __m512i __B, __m512i __C) {
4152*67e74705SXin Li   // CHECK-LABEL: @test_mm512_ternarylogic_epi64
4153*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pternlog.q.512
4154*67e74705SXin Li   return _mm512_ternarylogic_epi64(__A, __B, __C, 4);
4155*67e74705SXin Li }
4156*67e74705SXin Li 
test_mm512_mask_ternarylogic_epi64(__m512i __A,__mmask8 __U,__m512i __B,__m512i __C)4157*67e74705SXin Li __m512i test_mm512_mask_ternarylogic_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) {
4158*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_ternarylogic_epi64
4159*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pternlog.q.512
4160*67e74705SXin Li   return _mm512_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
4161*67e74705SXin Li }
4162*67e74705SXin Li 
test_mm512_maskz_ternarylogic_epi64(__mmask8 __U,__m512i __A,__m512i __B,__m512i __C)4163*67e74705SXin Li __m512i test_mm512_maskz_ternarylogic_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) {
4164*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_ternarylogic_epi64
4165*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.pternlog.q.512
4166*67e74705SXin Li   return _mm512_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
4167*67e74705SXin Li }
4168*67e74705SXin Li 
test_mm512_shuffle_f32x4(__m512 __A,__m512 __B)4169*67e74705SXin Li __m512 test_mm512_shuffle_f32x4(__m512 __A, __m512 __B) {
4170*67e74705SXin Li   // CHECK-LABEL: @test_mm512_shuffle_f32x4
4171*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
4172*67e74705SXin Li   return _mm512_shuffle_f32x4(__A, __B, 4);
4173*67e74705SXin Li }
4174*67e74705SXin Li 
test_mm512_mask_shuffle_f32x4(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)4175*67e74705SXin Li __m512 test_mm512_mask_shuffle_f32x4(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
4176*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_shuffle_f32x4
4177*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
4178*67e74705SXin Li   return _mm512_mask_shuffle_f32x4(__W, __U, __A, __B, 4);
4179*67e74705SXin Li }
4180*67e74705SXin Li 
test_mm512_maskz_shuffle_f32x4(__mmask16 __U,__m512 __A,__m512 __B)4181*67e74705SXin Li __m512 test_mm512_maskz_shuffle_f32x4(__mmask16 __U, __m512 __A, __m512 __B) {
4182*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_shuffle_f32x4
4183*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
4184*67e74705SXin Li   return _mm512_maskz_shuffle_f32x4(__U, __A, __B, 4);
4185*67e74705SXin Li }
4186*67e74705SXin Li 
test_mm512_shuffle_f64x2(__m512d __A,__m512d __B)4187*67e74705SXin Li __m512d test_mm512_shuffle_f64x2(__m512d __A, __m512d __B) {
4188*67e74705SXin Li   // CHECK-LABEL: @test_mm512_shuffle_f64x2
4189*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
4190*67e74705SXin Li   return _mm512_shuffle_f64x2(__A, __B, 4);
4191*67e74705SXin Li }
4192*67e74705SXin Li 
test_mm512_mask_shuffle_f64x2(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)4193*67e74705SXin Li __m512d test_mm512_mask_shuffle_f64x2(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
4194*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_shuffle_f64x2
4195*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
4196*67e74705SXin Li   return _mm512_mask_shuffle_f64x2(__W, __U, __A, __B, 4);
4197*67e74705SXin Li }
4198*67e74705SXin Li 
test_mm512_maskz_shuffle_f64x2(__mmask8 __U,__m512d __A,__m512d __B)4199*67e74705SXin Li __m512d test_mm512_maskz_shuffle_f64x2(__mmask8 __U, __m512d __A, __m512d __B) {
4200*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_shuffle_f64x2
4201*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
4202*67e74705SXin Li   return _mm512_maskz_shuffle_f64x2(__U, __A, __B, 4);
4203*67e74705SXin Li }
4204*67e74705SXin Li 
test_mm512_shuffle_i32x4(__m512i __A,__m512i __B)4205*67e74705SXin Li __m512i test_mm512_shuffle_i32x4(__m512i __A, __m512i __B) {
4206*67e74705SXin Li   // CHECK-LABEL: @test_mm512_shuffle_i32x4
4207*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
4208*67e74705SXin Li   return _mm512_shuffle_i32x4(__A, __B, 4);
4209*67e74705SXin Li }
4210*67e74705SXin Li 
test_mm512_mask_shuffle_i32x4(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)4211*67e74705SXin Li __m512i test_mm512_mask_shuffle_i32x4(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
4212*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_shuffle_i32x4
4213*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
4214*67e74705SXin Li   return _mm512_mask_shuffle_i32x4(__W, __U, __A, __B, 4);
4215*67e74705SXin Li }
4216*67e74705SXin Li 
test_mm512_maskz_shuffle_i32x4(__mmask16 __U,__m512i __A,__m512i __B)4217*67e74705SXin Li __m512i test_mm512_maskz_shuffle_i32x4(__mmask16 __U, __m512i __A, __m512i __B) {
4218*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_shuffle_i32x4
4219*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
4220*67e74705SXin Li   return _mm512_maskz_shuffle_i32x4(__U, __A, __B, 4);
4221*67e74705SXin Li }
4222*67e74705SXin Li 
test_mm512_shuffle_i64x2(__m512i __A,__m512i __B)4223*67e74705SXin Li __m512i test_mm512_shuffle_i64x2(__m512i __A, __m512i __B) {
4224*67e74705SXin Li   // CHECK-LABEL: @test_mm512_shuffle_i64x2
4225*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
4226*67e74705SXin Li   return _mm512_shuffle_i64x2(__A, __B, 4);
4227*67e74705SXin Li }
4228*67e74705SXin Li 
test_mm512_mask_shuffle_i64x2(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)4229*67e74705SXin Li __m512i test_mm512_mask_shuffle_i64x2(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
4230*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_shuffle_i64x2
4231*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
4232*67e74705SXin Li   return _mm512_mask_shuffle_i64x2(__W, __U, __A, __B, 4);
4233*67e74705SXin Li }
4234*67e74705SXin Li 
test_mm512_maskz_shuffle_i64x2(__mmask8 __U,__m512i __A,__m512i __B)4235*67e74705SXin Li __m512i test_mm512_maskz_shuffle_i64x2(__mmask8 __U, __m512i __A, __m512i __B) {
4236*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_shuffle_i64x2
4237*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
4238*67e74705SXin Li   return _mm512_maskz_shuffle_i64x2(__U, __A, __B, 4);
4239*67e74705SXin Li }
4240*67e74705SXin Li 
test_mm512_shuffle_pd(__m512d __M,__m512d __V)4241*67e74705SXin Li __m512d test_mm512_shuffle_pd(__m512d __M, __m512d __V) {
4242*67e74705SXin Li   // CHECK-LABEL: @test_mm512_shuffle_pd
4243*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 3, i32 10, i32 4, i32 12, i32 6, i32 14>
4244*67e74705SXin Li   return _mm512_shuffle_pd(__M, __V, 4);
4245*67e74705SXin Li }
4246*67e74705SXin Li 
test_mm512_mask_shuffle_pd(__m512d __W,__mmask8 __U,__m512d __M,__m512d __V)4247*67e74705SXin Li __m512d test_mm512_mask_shuffle_pd(__m512d __W, __mmask8 __U, __m512d __M, __m512d __V) {
4248*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_shuffle_pd
4249*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 3, i32 10, i32 4, i32 12, i32 6, i32 14>
4250*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4251*67e74705SXin Li   return _mm512_mask_shuffle_pd(__W, __U, __M, __V, 4);
4252*67e74705SXin Li }
4253*67e74705SXin Li 
test_mm512_maskz_shuffle_pd(__mmask8 __U,__m512d __M,__m512d __V)4254*67e74705SXin Li __m512d test_mm512_maskz_shuffle_pd(__mmask8 __U, __m512d __M, __m512d __V) {
4255*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_shuffle_pd
4256*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 3, i32 10, i32 4, i32 12, i32 6, i32 14>
4257*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4258*67e74705SXin Li   return _mm512_maskz_shuffle_pd(__U, __M, __V, 4);
4259*67e74705SXin Li }
4260*67e74705SXin Li 
test_mm512_shuffle_ps(__m512 __M,__m512 __V)4261*67e74705SXin Li __m512 test_mm512_shuffle_ps(__m512 __M, __m512 __V) {
4262*67e74705SXin Li   // CHECK-LABEL: @test_mm512_shuffle_ps
4263*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 16, i32 16, i32 4, i32 5, i32 20, i32 20, i32 8, i32 9, i32 24, i32 24, i32 12, i32 13, i32 28, i32 28>
4264*67e74705SXin Li   return _mm512_shuffle_ps(__M, __V, 4);
4265*67e74705SXin Li }
4266*67e74705SXin Li 
test_mm512_mask_shuffle_ps(__m512 __W,__mmask16 __U,__m512 __M,__m512 __V)4267*67e74705SXin Li __m512 test_mm512_mask_shuffle_ps(__m512 __W, __mmask16 __U, __m512 __M, __m512 __V) {
4268*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_shuffle_ps
4269*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 16, i32 16, i32 4, i32 5, i32 20, i32 20, i32 8, i32 9, i32 24, i32 24, i32 12, i32 13, i32 28, i32 28>
4270*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4271*67e74705SXin Li   return _mm512_mask_shuffle_ps(__W, __U, __M, __V, 4);
4272*67e74705SXin Li }
4273*67e74705SXin Li 
test_mm512_maskz_shuffle_ps(__mmask16 __U,__m512 __M,__m512 __V)4274*67e74705SXin Li __m512 test_mm512_maskz_shuffle_ps(__mmask16 __U, __m512 __M, __m512 __V) {
4275*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_shuffle_ps
4276*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 16, i32 16, i32 4, i32 5, i32 20, i32 20, i32 8, i32 9, i32 24, i32 24, i32 12, i32 13, i32 28, i32 28>
4277*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4278*67e74705SXin Li   return _mm512_maskz_shuffle_ps(__U, __M, __V, 4);
4279*67e74705SXin Li }
4280*67e74705SXin Li 
test_mm_sqrt_round_sd(__m128d __A,__m128d __B)4281*67e74705SXin Li __m128d test_mm_sqrt_round_sd(__m128d __A, __m128d __B) {
4282*67e74705SXin Li   // CHECK-LABEL: @test_mm_sqrt_round_sd
4283*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4284*67e74705SXin Li   return _mm_sqrt_round_sd(__A, __B, 4);
4285*67e74705SXin Li }
4286*67e74705SXin Li 
test_mm_mask_sqrt_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4287*67e74705SXin Li __m128d test_mm_mask_sqrt_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
4288*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4289*67e74705SXin Li     return _mm_mask_sqrt_sd(__W,__U,__A,__B);
4290*67e74705SXin Li }
4291*67e74705SXin Li 
test_mm_mask_sqrt_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4292*67e74705SXin Li __m128d test_mm_mask_sqrt_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
4293*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4294*67e74705SXin Li     return _mm_mask_sqrt_round_sd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4295*67e74705SXin Li }
4296*67e74705SXin Li 
test_mm_maskz_sqrt_sd(__mmask8 __U,__m128d __A,__m128d __B)4297*67e74705SXin Li __m128d test_mm_maskz_sqrt_sd(__mmask8 __U, __m128d __A, __m128d __B){
4298*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4299*67e74705SXin Li     return _mm_maskz_sqrt_sd(__U,__A,__B);
4300*67e74705SXin Li }
4301*67e74705SXin Li 
test_mm_maskz_sqrt_round_sd(__mmask8 __U,__m128d __A,__m128d __B)4302*67e74705SXin Li __m128d test_mm_maskz_sqrt_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
4303*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4304*67e74705SXin Li     return _mm_maskz_sqrt_round_sd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4305*67e74705SXin Li }
4306*67e74705SXin Li 
test_mm_sqrt_round_ss(__m128 __A,__m128 __B)4307*67e74705SXin Li __m128 test_mm_sqrt_round_ss(__m128 __A, __m128 __B) {
4308*67e74705SXin Li   // CHECK-LABEL: @test_mm_sqrt_round_ss
4309*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4310*67e74705SXin Li   return _mm_sqrt_round_ss(__A, __B, 4);
4311*67e74705SXin Li }
4312*67e74705SXin Li 
test_mm_mask_sqrt_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4313*67e74705SXin Li __m128 test_mm_mask_sqrt_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
4314*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4315*67e74705SXin Li     return _mm_mask_sqrt_ss(__W,__U,__A,__B);
4316*67e74705SXin Li }
4317*67e74705SXin Li 
test_mm_mask_sqrt_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4318*67e74705SXin Li __m128 test_mm_mask_sqrt_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
4319*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4320*67e74705SXin Li     return _mm_mask_sqrt_round_ss(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4321*67e74705SXin Li }
4322*67e74705SXin Li 
test_mm_maskz_sqrt_ss(__mmask8 __U,__m128 __A,__m128 __B)4323*67e74705SXin Li __m128 test_mm_maskz_sqrt_ss(__mmask8 __U, __m128 __A, __m128 __B){
4324*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4325*67e74705SXin Li     return _mm_maskz_sqrt_ss(__U,__A,__B);
4326*67e74705SXin Li }
4327*67e74705SXin Li 
test_mm_maskz_sqrt_round_ss(__mmask8 __U,__m128 __A,__m128 __B)4328*67e74705SXin Li __m128 test_mm_maskz_sqrt_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
4329*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4330*67e74705SXin Li     return _mm_maskz_sqrt_round_ss(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4331*67e74705SXin Li }
4332*67e74705SXin Li 
test_mm512_broadcast_f32x4(__m128 __A)4333*67e74705SXin Li __m512 test_mm512_broadcast_f32x4(__m128 __A) {
4334*67e74705SXin Li   // CHECK-LABEL: @test_mm512_broadcast_f32x4
4335*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
4336*67e74705SXin Li   return _mm512_broadcast_f32x4(__A);
4337*67e74705SXin Li }
4338*67e74705SXin Li 
test_mm512_mask_broadcast_f32x4(__m512 __O,__mmask16 __M,__m128 __A)4339*67e74705SXin Li __m512 test_mm512_mask_broadcast_f32x4(__m512 __O, __mmask16 __M, __m128 __A) {
4340*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_broadcast_f32x4
4341*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
4342*67e74705SXin Li   return _mm512_mask_broadcast_f32x4(__O, __M, __A);
4343*67e74705SXin Li }
4344*67e74705SXin Li 
test_mm512_maskz_broadcast_f32x4(__mmask16 __M,__m128 __A)4345*67e74705SXin Li __m512 test_mm512_maskz_broadcast_f32x4(__mmask16 __M, __m128 __A) {
4346*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_broadcast_f32x4
4347*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
4348*67e74705SXin Li   return _mm512_maskz_broadcast_f32x4(__M, __A);
4349*67e74705SXin Li }
4350*67e74705SXin Li 
test_mm512_broadcast_f64x4(__m256d __A)4351*67e74705SXin Li __m512d test_mm512_broadcast_f64x4(__m256d __A) {
4352*67e74705SXin Li   // CHECK-LABEL: @test_mm512_broadcast_f64x4
4353*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcastf64x4
4354*67e74705SXin Li   return _mm512_broadcast_f64x4(__A);
4355*67e74705SXin Li }
4356*67e74705SXin Li 
test_mm512_mask_broadcast_f64x4(__m512d __O,__mmask8 __M,__m256d __A)4357*67e74705SXin Li __m512d test_mm512_mask_broadcast_f64x4(__m512d __O, __mmask8 __M, __m256d __A) {
4358*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_broadcast_f64x4
4359*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcastf64x4
4360*67e74705SXin Li   return _mm512_mask_broadcast_f64x4(__O, __M, __A);
4361*67e74705SXin Li }
4362*67e74705SXin Li 
test_mm512_maskz_broadcast_f64x4(__mmask8 __M,__m256d __A)4363*67e74705SXin Li __m512d test_mm512_maskz_broadcast_f64x4(__mmask8 __M, __m256d __A) {
4364*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_broadcast_f64x4
4365*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcastf64x4
4366*67e74705SXin Li   return _mm512_maskz_broadcast_f64x4(__M, __A);
4367*67e74705SXin Li }
4368*67e74705SXin Li 
test_mm512_broadcast_i32x4(__m128i __A)4369*67e74705SXin Li __m512i test_mm512_broadcast_i32x4(__m128i __A) {
4370*67e74705SXin Li   // CHECK-LABEL: @test_mm512_broadcast_i32x4
4371*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
4372*67e74705SXin Li   return _mm512_broadcast_i32x4(__A);
4373*67e74705SXin Li }
4374*67e74705SXin Li 
test_mm512_mask_broadcast_i32x4(__m512i __O,__mmask16 __M,__m128i __A)4375*67e74705SXin Li __m512i test_mm512_mask_broadcast_i32x4(__m512i __O, __mmask16 __M, __m128i __A) {
4376*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_broadcast_i32x4
4377*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
4378*67e74705SXin Li   return _mm512_mask_broadcast_i32x4(__O, __M, __A);
4379*67e74705SXin Li }
4380*67e74705SXin Li 
test_mm512_maskz_broadcast_i32x4(__mmask16 __M,__m128i __A)4381*67e74705SXin Li __m512i test_mm512_maskz_broadcast_i32x4(__mmask16 __M, __m128i __A) {
4382*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_broadcast_i32x4
4383*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
4384*67e74705SXin Li   return _mm512_maskz_broadcast_i32x4(__M, __A);
4385*67e74705SXin Li }
4386*67e74705SXin Li 
test_mm512_broadcast_i64x4(__m256i __A)4387*67e74705SXin Li __m512i test_mm512_broadcast_i64x4(__m256i __A) {
4388*67e74705SXin Li   // CHECK-LABEL: @test_mm512_broadcast_i64x4
4389*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcasti64x4
4390*67e74705SXin Li   return _mm512_broadcast_i64x4(__A);
4391*67e74705SXin Li }
4392*67e74705SXin Li 
test_mm512_mask_broadcast_i64x4(__m512i __O,__mmask8 __M,__m256i __A)4393*67e74705SXin Li __m512i test_mm512_mask_broadcast_i64x4(__m512i __O, __mmask8 __M, __m256i __A) {
4394*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_broadcast_i64x4
4395*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcasti64x4
4396*67e74705SXin Li   return _mm512_mask_broadcast_i64x4(__O, __M, __A);
4397*67e74705SXin Li }
4398*67e74705SXin Li 
test_mm512_maskz_broadcast_i64x4(__mmask8 __M,__m256i __A)4399*67e74705SXin Li __m512i test_mm512_maskz_broadcast_i64x4(__mmask8 __M, __m256i __A) {
4400*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_broadcast_i64x4
4401*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.broadcasti64x4
4402*67e74705SXin Li   return _mm512_maskz_broadcast_i64x4(__M, __A);
4403*67e74705SXin Li }
4404*67e74705SXin Li 
test_mm512_broadcastsd_pd(__m128d __A)4405*67e74705SXin Li __m512d test_mm512_broadcastsd_pd(__m128d __A) {
4406*67e74705SXin Li   // CHECK-LABEL: @test_mm512_broadcastsd_pd
4407*67e74705SXin Li   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer
4408*67e74705SXin Li   return _mm512_broadcastsd_pd(__A);
4409*67e74705SXin Li }
4410*67e74705SXin Li 
test_mm512_mask_broadcastsd_pd(__m512d __O,__mmask8 __M,__m128d __A)4411*67e74705SXin Li __m512d test_mm512_mask_broadcastsd_pd(__m512d __O, __mmask8 __M, __m128d __A) {
4412*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_broadcastsd_pd
4413*67e74705SXin Li   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer
4414*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4415*67e74705SXin Li   return _mm512_mask_broadcastsd_pd(__O, __M, __A);
4416*67e74705SXin Li }
4417*67e74705SXin Li 
test_mm512_maskz_broadcastsd_pd(__mmask8 __M,__m128d __A)4418*67e74705SXin Li __m512d test_mm512_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) {
4419*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_broadcastsd_pd
4420*67e74705SXin Li   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer
4421*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4422*67e74705SXin Li   return _mm512_maskz_broadcastsd_pd(__M, __A);
4423*67e74705SXin Li }
4424*67e74705SXin Li 
test_mm512_broadcastss_ps(__m128 __A)4425*67e74705SXin Li __m512 test_mm512_broadcastss_ps(__m128 __A) {
4426*67e74705SXin Li   // CHECK-LABEL: @test_mm512_broadcastss_ps
4427*67e74705SXin Li   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer
4428*67e74705SXin Li   return _mm512_broadcastss_ps(__A);
4429*67e74705SXin Li }
4430*67e74705SXin Li 
test_mm512_mask_broadcastss_ps(__m512 __O,__mmask16 __M,__m128 __A)4431*67e74705SXin Li __m512 test_mm512_mask_broadcastss_ps(__m512 __O, __mmask16 __M, __m128 __A) {
4432*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_broadcastss_ps
4433*67e74705SXin Li   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer
4434*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4435*67e74705SXin Li   return _mm512_mask_broadcastss_ps(__O, __M, __A);
4436*67e74705SXin Li }
4437*67e74705SXin Li 
test_mm512_maskz_broadcastss_ps(__mmask16 __M,__m128 __A)4438*67e74705SXin Li __m512 test_mm512_maskz_broadcastss_ps(__mmask16 __M, __m128 __A) {
4439*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_broadcastss_ps
4440*67e74705SXin Li   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer
4441*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4442*67e74705SXin Li   return _mm512_maskz_broadcastss_ps(__M, __A);
4443*67e74705SXin Li }
4444*67e74705SXin Li 
test_mm512_broadcastd_epi32(__m128i __A)4445*67e74705SXin Li __m512i test_mm512_broadcastd_epi32(__m128i __A) {
4446*67e74705SXin Li   // CHECK-LABEL: @test_mm512_broadcastd_epi32
4447*67e74705SXin Li   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer
4448*67e74705SXin Li   return _mm512_broadcastd_epi32(__A);
4449*67e74705SXin Li }
4450*67e74705SXin Li 
test_mm512_mask_broadcastd_epi32(__m512i __O,__mmask16 __M,__m128i __A)4451*67e74705SXin Li __m512i test_mm512_mask_broadcastd_epi32(__m512i __O, __mmask16 __M, __m128i __A) {
4452*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_broadcastd_epi32
4453*67e74705SXin Li   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer
4454*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4455*67e74705SXin Li   return _mm512_mask_broadcastd_epi32(__O, __M, __A);
4456*67e74705SXin Li }
4457*67e74705SXin Li 
test_mm512_maskz_broadcastd_epi32(__mmask16 __M,__m128i __A)4458*67e74705SXin Li __m512i test_mm512_maskz_broadcastd_epi32(__mmask16 __M, __m128i __A) {
4459*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_broadcastd_epi32
4460*67e74705SXin Li   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer
4461*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4462*67e74705SXin Li   return _mm512_maskz_broadcastd_epi32(__M, __A);
4463*67e74705SXin Li }
4464*67e74705SXin Li 
test_mm512_broadcastq_epi64(__m128i __A)4465*67e74705SXin Li __m512i test_mm512_broadcastq_epi64(__m128i __A) {
4466*67e74705SXin Li   // CHECK-LABEL: @test_mm512_broadcastq_epi64
4467*67e74705SXin Li   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer
4468*67e74705SXin Li   return _mm512_broadcastq_epi64(__A);
4469*67e74705SXin Li }
4470*67e74705SXin Li 
test_mm512_mask_broadcastq_epi64(__m512i __O,__mmask8 __M,__m128i __A)4471*67e74705SXin Li __m512i test_mm512_mask_broadcastq_epi64(__m512i __O, __mmask8 __M, __m128i __A) {
4472*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_broadcastq_epi64
4473*67e74705SXin Li   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer
4474*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4475*67e74705SXin Li   return _mm512_mask_broadcastq_epi64(__O, __M, __A);
4476*67e74705SXin Li }
4477*67e74705SXin Li 
test_mm512_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)4478*67e74705SXin Li __m512i test_mm512_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
4479*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_broadcastq_epi64
4480*67e74705SXin Li   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer
4481*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4482*67e74705SXin Li   return _mm512_maskz_broadcastq_epi64(__M, __A);
4483*67e74705SXin Li }
4484*67e74705SXin Li 
test_mm512_cvtsepi32_epi8(__m512i __A)4485*67e74705SXin Li __m128i test_mm512_cvtsepi32_epi8(__m512i __A) {
4486*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtsepi32_epi8
4487*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
4488*67e74705SXin Li   return _mm512_cvtsepi32_epi8(__A);
4489*67e74705SXin Li }
4490*67e74705SXin Li 
test_mm512_mask_cvtsepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)4491*67e74705SXin Li __m128i test_mm512_mask_cvtsepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
4492*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_epi8
4493*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
4494*67e74705SXin Li   return _mm512_mask_cvtsepi32_epi8(__O, __M, __A);
4495*67e74705SXin Li }
4496*67e74705SXin Li 
test_mm512_maskz_cvtsepi32_epi8(__mmask16 __M,__m512i __A)4497*67e74705SXin Li __m128i test_mm512_maskz_cvtsepi32_epi8(__mmask16 __M, __m512i __A) {
4498*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtsepi32_epi8
4499*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
4500*67e74705SXin Li   return _mm512_maskz_cvtsepi32_epi8(__M, __A);
4501*67e74705SXin Li }
4502*67e74705SXin Li 
test_mm512_mask_cvtsepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)4503*67e74705SXin Li void test_mm512_mask_cvtsepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
4504*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_storeu_epi8
4505*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.512
4506*67e74705SXin Li   return _mm512_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
4507*67e74705SXin Li }
4508*67e74705SXin Li 
test_mm512_cvtsepi32_epi16(__m512i __A)4509*67e74705SXin Li __m256i test_mm512_cvtsepi32_epi16(__m512i __A) {
4510*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtsepi32_epi16
4511*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
4512*67e74705SXin Li   return _mm512_cvtsepi32_epi16(__A);
4513*67e74705SXin Li }
4514*67e74705SXin Li 
test_mm512_mask_cvtsepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)4515*67e74705SXin Li __m256i test_mm512_mask_cvtsepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
4516*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_epi16
4517*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
4518*67e74705SXin Li   return _mm512_mask_cvtsepi32_epi16(__O, __M, __A);
4519*67e74705SXin Li }
4520*67e74705SXin Li 
test_mm512_maskz_cvtsepi32_epi16(__mmask16 __M,__m512i __A)4521*67e74705SXin Li __m256i test_mm512_maskz_cvtsepi32_epi16(__mmask16 __M, __m512i __A) {
4522*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtsepi32_epi16
4523*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
4524*67e74705SXin Li   return _mm512_maskz_cvtsepi32_epi16(__M, __A);
4525*67e74705SXin Li }
4526*67e74705SXin Li 
test_mm512_mask_cvtsepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)4527*67e74705SXin Li void test_mm512_mask_cvtsepi32_storeu_epi16(void *__P, __mmask16 __M, __m512i __A) {
4528*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_storeu_epi16
4529*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.512
4530*67e74705SXin Li   return _mm512_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
4531*67e74705SXin Li }
4532*67e74705SXin Li 
test_mm512_cvtsepi64_epi8(__m512i __A)4533*67e74705SXin Li __m128i test_mm512_cvtsepi64_epi8(__m512i __A) {
4534*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtsepi64_epi8
4535*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
4536*67e74705SXin Li   return _mm512_cvtsepi64_epi8(__A);
4537*67e74705SXin Li }
4538*67e74705SXin Li 
test_mm512_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)4539*67e74705SXin Li __m128i test_mm512_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
4540*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi8
4541*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
4542*67e74705SXin Li   return _mm512_mask_cvtsepi64_epi8(__O, __M, __A);
4543*67e74705SXin Li }
4544*67e74705SXin Li 
test_mm512_maskz_cvtsepi64_epi8(__mmask8 __M,__m512i __A)4545*67e74705SXin Li __m128i test_mm512_maskz_cvtsepi64_epi8(__mmask8 __M, __m512i __A) {
4546*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi8
4547*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
4548*67e74705SXin Li   return _mm512_maskz_cvtsepi64_epi8(__M, __A);
4549*67e74705SXin Li }
4550*67e74705SXin Li 
test_mm512_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)4551*67e74705SXin Li void test_mm512_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
4552*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi8
4553*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.512
4554*67e74705SXin Li   return _mm512_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
4555*67e74705SXin Li }
4556*67e74705SXin Li 
test_mm512_cvtsepi64_epi32(__m512i __A)4557*67e74705SXin Li __m256i test_mm512_cvtsepi64_epi32(__m512i __A) {
4558*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtsepi64_epi32
4559*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
4560*67e74705SXin Li   return _mm512_cvtsepi64_epi32(__A);
4561*67e74705SXin Li }
4562*67e74705SXin Li 
test_mm512_mask_cvtsepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)4563*67e74705SXin Li __m256i test_mm512_mask_cvtsepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
4564*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi32
4565*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
4566*67e74705SXin Li   return _mm512_mask_cvtsepi64_epi32(__O, __M, __A);
4567*67e74705SXin Li }
4568*67e74705SXin Li 
test_mm512_maskz_cvtsepi64_epi32(__mmask8 __M,__m512i __A)4569*67e74705SXin Li __m256i test_mm512_maskz_cvtsepi64_epi32(__mmask8 __M, __m512i __A) {
4570*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi32
4571*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
4572*67e74705SXin Li   return _mm512_maskz_cvtsepi64_epi32(__M, __A);
4573*67e74705SXin Li }
4574*67e74705SXin Li 
test_mm512_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)4575*67e74705SXin Li void test_mm512_mask_cvtsepi64_storeu_epi32(void *__P, __mmask8 __M, __m512i __A) {
4576*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi32
4577*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.512
4578*67e74705SXin Li   return _mm512_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
4579*67e74705SXin Li }
4580*67e74705SXin Li 
test_mm512_cvtsepi64_epi16(__m512i __A)4581*67e74705SXin Li __m128i test_mm512_cvtsepi64_epi16(__m512i __A) {
4582*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtsepi64_epi16
4583*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
4584*67e74705SXin Li   return _mm512_cvtsepi64_epi16(__A);
4585*67e74705SXin Li }
4586*67e74705SXin Li 
test_mm512_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)4587*67e74705SXin Li __m128i test_mm512_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
4588*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi16
4589*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
4590*67e74705SXin Li   return _mm512_mask_cvtsepi64_epi16(__O, __M, __A);
4591*67e74705SXin Li }
4592*67e74705SXin Li 
test_mm512_maskz_cvtsepi64_epi16(__mmask8 __M,__m512i __A)4593*67e74705SXin Li __m128i test_mm512_maskz_cvtsepi64_epi16(__mmask8 __M, __m512i __A) {
4594*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi16
4595*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
4596*67e74705SXin Li   return _mm512_maskz_cvtsepi64_epi16(__M, __A);
4597*67e74705SXin Li }
4598*67e74705SXin Li 
test_mm512_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)4599*67e74705SXin Li void test_mm512_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m512i __A) {
4600*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi16
4601*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.512
4602*67e74705SXin Li   return _mm512_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
4603*67e74705SXin Li }
4604*67e74705SXin Li 
test_mm512_cvtusepi32_epi8(__m512i __A)4605*67e74705SXin Li __m128i test_mm512_cvtusepi32_epi8(__m512i __A) {
4606*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtusepi32_epi8
4607*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
4608*67e74705SXin Li   return _mm512_cvtusepi32_epi8(__A);
4609*67e74705SXin Li }
4610*67e74705SXin Li 
test_mm512_mask_cvtusepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)4611*67e74705SXin Li __m128i test_mm512_mask_cvtusepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
4612*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_epi8
4613*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
4614*67e74705SXin Li   return _mm512_mask_cvtusepi32_epi8(__O, __M, __A);
4615*67e74705SXin Li }
4616*67e74705SXin Li 
test_mm512_maskz_cvtusepi32_epi8(__mmask16 __M,__m512i __A)4617*67e74705SXin Li __m128i test_mm512_maskz_cvtusepi32_epi8(__mmask16 __M, __m512i __A) {
4618*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtusepi32_epi8
4619*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
4620*67e74705SXin Li   return _mm512_maskz_cvtusepi32_epi8(__M, __A);
4621*67e74705SXin Li }
4622*67e74705SXin Li 
test_mm512_mask_cvtusepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)4623*67e74705SXin Li void test_mm512_mask_cvtusepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
4624*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_storeu_epi8
4625*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.512
4626*67e74705SXin Li   return _mm512_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
4627*67e74705SXin Li }
4628*67e74705SXin Li 
test_mm512_cvtusepi32_epi16(__m512i __A)4629*67e74705SXin Li __m256i test_mm512_cvtusepi32_epi16(__m512i __A) {
4630*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtusepi32_epi16
4631*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
4632*67e74705SXin Li   return _mm512_cvtusepi32_epi16(__A);
4633*67e74705SXin Li }
4634*67e74705SXin Li 
test_mm512_mask_cvtusepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)4635*67e74705SXin Li __m256i test_mm512_mask_cvtusepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
4636*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_epi16
4637*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
4638*67e74705SXin Li   return _mm512_mask_cvtusepi32_epi16(__O, __M, __A);
4639*67e74705SXin Li }
4640*67e74705SXin Li 
test_mm512_maskz_cvtusepi32_epi16(__mmask16 __M,__m512i __A)4641*67e74705SXin Li __m256i test_mm512_maskz_cvtusepi32_epi16(__mmask16 __M, __m512i __A) {
4642*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtusepi32_epi16
4643*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
4644*67e74705SXin Li   return _mm512_maskz_cvtusepi32_epi16(__M, __A);
4645*67e74705SXin Li }
4646*67e74705SXin Li 
test_mm512_mask_cvtusepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)4647*67e74705SXin Li void test_mm512_mask_cvtusepi32_storeu_epi16(void *__P, __mmask16 __M, __m512i __A) {
4648*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_storeu_epi16
4649*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.512
4650*67e74705SXin Li   return _mm512_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
4651*67e74705SXin Li }
4652*67e74705SXin Li 
test_mm512_cvtusepi64_epi8(__m512i __A)4653*67e74705SXin Li __m128i test_mm512_cvtusepi64_epi8(__m512i __A) {
4654*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtusepi64_epi8
4655*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
4656*67e74705SXin Li   return _mm512_cvtusepi64_epi8(__A);
4657*67e74705SXin Li }
4658*67e74705SXin Li 
test_mm512_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)4659*67e74705SXin Li __m128i test_mm512_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
4660*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi8
4661*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
4662*67e74705SXin Li   return _mm512_mask_cvtusepi64_epi8(__O, __M, __A);
4663*67e74705SXin Li }
4664*67e74705SXin Li 
test_mm512_maskz_cvtusepi64_epi8(__mmask8 __M,__m512i __A)4665*67e74705SXin Li __m128i test_mm512_maskz_cvtusepi64_epi8(__mmask8 __M, __m512i __A) {
4666*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi8
4667*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
4668*67e74705SXin Li   return _mm512_maskz_cvtusepi64_epi8(__M, __A);
4669*67e74705SXin Li }
4670*67e74705SXin Li 
test_mm512_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)4671*67e74705SXin Li void test_mm512_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
4672*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi8
4673*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.512
4674*67e74705SXin Li   return _mm512_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
4675*67e74705SXin Li }
4676*67e74705SXin Li 
test_mm512_cvtusepi64_epi32(__m512i __A)4677*67e74705SXin Li __m256i test_mm512_cvtusepi64_epi32(__m512i __A) {
4678*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtusepi64_epi32
4679*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
4680*67e74705SXin Li   return _mm512_cvtusepi64_epi32(__A);
4681*67e74705SXin Li }
4682*67e74705SXin Li 
test_mm512_mask_cvtusepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)4683*67e74705SXin Li __m256i test_mm512_mask_cvtusepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
4684*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi32
4685*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
4686*67e74705SXin Li   return _mm512_mask_cvtusepi64_epi32(__O, __M, __A);
4687*67e74705SXin Li }
4688*67e74705SXin Li 
test_mm512_maskz_cvtusepi64_epi32(__mmask8 __M,__m512i __A)4689*67e74705SXin Li __m256i test_mm512_maskz_cvtusepi64_epi32(__mmask8 __M, __m512i __A) {
4690*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi32
4691*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
4692*67e74705SXin Li   return _mm512_maskz_cvtusepi64_epi32(__M, __A);
4693*67e74705SXin Li }
4694*67e74705SXin Li 
test_mm512_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)4695*67e74705SXin Li void test_mm512_mask_cvtusepi64_storeu_epi32(void* __P, __mmask8 __M, __m512i __A) {
4696*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi32
4697*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.512
4698*67e74705SXin Li   return _mm512_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
4699*67e74705SXin Li }
4700*67e74705SXin Li 
test_mm512_cvtusepi64_epi16(__m512i __A)4701*67e74705SXin Li __m128i test_mm512_cvtusepi64_epi16(__m512i __A) {
4702*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtusepi64_epi16
4703*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
4704*67e74705SXin Li   return _mm512_cvtusepi64_epi16(__A);
4705*67e74705SXin Li }
4706*67e74705SXin Li 
test_mm512_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)4707*67e74705SXin Li __m128i test_mm512_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
4708*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi16
4709*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
4710*67e74705SXin Li   return _mm512_mask_cvtusepi64_epi16(__O, __M, __A);
4711*67e74705SXin Li }
4712*67e74705SXin Li 
test_mm512_maskz_cvtusepi64_epi16(__mmask8 __M,__m512i __A)4713*67e74705SXin Li __m128i test_mm512_maskz_cvtusepi64_epi16(__mmask8 __M, __m512i __A) {
4714*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi16
4715*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
4716*67e74705SXin Li   return _mm512_maskz_cvtusepi64_epi16(__M, __A);
4717*67e74705SXin Li }
4718*67e74705SXin Li 
test_mm512_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)4719*67e74705SXin Li void test_mm512_mask_cvtusepi64_storeu_epi16(void *__P, __mmask8 __M, __m512i __A) {
4720*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi16
4721*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.512
4722*67e74705SXin Li   return _mm512_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
4723*67e74705SXin Li }
4724*67e74705SXin Li 
test_mm512_cvtepi32_epi8(__m512i __A)4725*67e74705SXin Li __m128i test_mm512_cvtepi32_epi8(__m512i __A) {
4726*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi32_epi8
4727*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.db.512
4728*67e74705SXin Li   return _mm512_cvtepi32_epi8(__A);
4729*67e74705SXin Li }
4730*67e74705SXin Li 
test_mm512_mask_cvtepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)4731*67e74705SXin Li __m128i test_mm512_mask_cvtepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
4732*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi8
4733*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.db.512
4734*67e74705SXin Li   return _mm512_mask_cvtepi32_epi8(__O, __M, __A);
4735*67e74705SXin Li }
4736*67e74705SXin Li 
test_mm512_maskz_cvtepi32_epi8(__mmask16 __M,__m512i __A)4737*67e74705SXin Li __m128i test_mm512_maskz_cvtepi32_epi8(__mmask16 __M, __m512i __A) {
4738*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi8
4739*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.db.512
4740*67e74705SXin Li   return _mm512_maskz_cvtepi32_epi8(__M, __A);
4741*67e74705SXin Li }
4742*67e74705SXin Li 
test_mm512_mask_cvtepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)4743*67e74705SXin Li void test_mm512_mask_cvtepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
4744*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi32_storeu_epi8
4745*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.512
4746*67e74705SXin Li   return _mm512_mask_cvtepi32_storeu_epi8(__P, __M, __A);
4747*67e74705SXin Li }
4748*67e74705SXin Li 
test_mm512_cvtepi32_epi16(__m512i __A)4749*67e74705SXin Li __m256i test_mm512_cvtepi32_epi16(__m512i __A) {
4750*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi32_epi16
4751*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
4752*67e74705SXin Li   return _mm512_cvtepi32_epi16(__A);
4753*67e74705SXin Li }
4754*67e74705SXin Li 
test_mm512_mask_cvtepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)4755*67e74705SXin Li __m256i test_mm512_mask_cvtepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
4756*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi16
4757*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
4758*67e74705SXin Li   return _mm512_mask_cvtepi32_epi16(__O, __M, __A);
4759*67e74705SXin Li }
4760*67e74705SXin Li 
test_mm512_maskz_cvtepi32_epi16(__mmask16 __M,__m512i __A)4761*67e74705SXin Li __m256i test_mm512_maskz_cvtepi32_epi16(__mmask16 __M, __m512i __A) {
4762*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi16
4763*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
4764*67e74705SXin Li   return _mm512_maskz_cvtepi32_epi16(__M, __A);
4765*67e74705SXin Li }
4766*67e74705SXin Li 
test_mm512_mask_cvtepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)4767*67e74705SXin Li void test_mm512_mask_cvtepi32_storeu_epi16(void * __P, __mmask16 __M, __m512i __A) {
4768*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi32_storeu_epi16
4769*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.512
4770*67e74705SXin Li   return _mm512_mask_cvtepi32_storeu_epi16(__P, __M, __A);
4771*67e74705SXin Li }
4772*67e74705SXin Li 
test_mm512_cvtepi64_epi8(__m512i __A)4773*67e74705SXin Li __m128i test_mm512_cvtepi64_epi8(__m512i __A) {
4774*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi64_epi8
4775*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
4776*67e74705SXin Li   return _mm512_cvtepi64_epi8(__A);
4777*67e74705SXin Li }
4778*67e74705SXin Li 
test_mm512_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)4779*67e74705SXin Li __m128i test_mm512_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
4780*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi8
4781*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
4782*67e74705SXin Li   return _mm512_mask_cvtepi64_epi8(__O, __M, __A);
4783*67e74705SXin Li }
4784*67e74705SXin Li 
test_mm512_maskz_cvtepi64_epi8(__mmask8 __M,__m512i __A)4785*67e74705SXin Li __m128i test_mm512_maskz_cvtepi64_epi8(__mmask8 __M, __m512i __A) {
4786*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi8
4787*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
4788*67e74705SXin Li   return _mm512_maskz_cvtepi64_epi8(__M, __A);
4789*67e74705SXin Li }
4790*67e74705SXin Li 
test_mm512_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)4791*67e74705SXin Li void test_mm512_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
4792*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi8
4793*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.512
4794*67e74705SXin Li   return _mm512_mask_cvtepi64_storeu_epi8(__P, __M, __A);
4795*67e74705SXin Li }
4796*67e74705SXin Li 
test_mm512_cvtepi64_epi32(__m512i __A)4797*67e74705SXin Li __m256i test_mm512_cvtepi64_epi32(__m512i __A) {
4798*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi64_epi32
4799*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
4800*67e74705SXin Li   return _mm512_cvtepi64_epi32(__A);
4801*67e74705SXin Li }
4802*67e74705SXin Li 
test_mm512_mask_cvtepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)4803*67e74705SXin Li __m256i test_mm512_mask_cvtepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
4804*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi32
4805*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
4806*67e74705SXin Li   return _mm512_mask_cvtepi64_epi32(__O, __M, __A);
4807*67e74705SXin Li }
4808*67e74705SXin Li 
test_mm512_maskz_cvtepi64_epi32(__mmask8 __M,__m512i __A)4809*67e74705SXin Li __m256i test_mm512_maskz_cvtepi64_epi32(__mmask8 __M, __m512i __A) {
4810*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi32
4811*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
4812*67e74705SXin Li   return _mm512_maskz_cvtepi64_epi32(__M, __A);
4813*67e74705SXin Li }
4814*67e74705SXin Li 
test_mm512_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)4815*67e74705SXin Li void test_mm512_mask_cvtepi64_storeu_epi32(void* __P, __mmask8 __M, __m512i __A) {
4816*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi32
4817*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.512
4818*67e74705SXin Li   return _mm512_mask_cvtepi64_storeu_epi32(__P, __M, __A);
4819*67e74705SXin Li }
4820*67e74705SXin Li 
test_mm512_cvtepi64_epi16(__m512i __A)4821*67e74705SXin Li __m128i test_mm512_cvtepi64_epi16(__m512i __A) {
4822*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi64_epi16
4823*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
4824*67e74705SXin Li   return _mm512_cvtepi64_epi16(__A);
4825*67e74705SXin Li }
4826*67e74705SXin Li 
test_mm512_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)4827*67e74705SXin Li __m128i test_mm512_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
4828*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi16
4829*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
4830*67e74705SXin Li   return _mm512_mask_cvtepi64_epi16(__O, __M, __A);
4831*67e74705SXin Li }
4832*67e74705SXin Li 
test_mm512_maskz_cvtepi64_epi16(__mmask8 __M,__m512i __A)4833*67e74705SXin Li __m128i test_mm512_maskz_cvtepi64_epi16(__mmask8 __M, __m512i __A) {
4834*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi16
4835*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
4836*67e74705SXin Li   return _mm512_maskz_cvtepi64_epi16(__M, __A);
4837*67e74705SXin Li }
4838*67e74705SXin Li 
test_mm512_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)4839*67e74705SXin Li void test_mm512_mask_cvtepi64_storeu_epi16(void *__P, __mmask8 __M, __m512i __A) {
4840*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi16
4841*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.512
4842*67e74705SXin Li   return _mm512_mask_cvtepi64_storeu_epi16(__P, __M, __A);
4843*67e74705SXin Li }
4844*67e74705SXin Li 
test_mm512_extracti32x4_epi32(__m512i __A)4845*67e74705SXin Li __m128i test_mm512_extracti32x4_epi32(__m512i __A) {
4846*67e74705SXin Li   // CHECK-LABEL: @test_mm512_extracti32x4_epi32
4847*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
4848*67e74705SXin Li   return _mm512_extracti32x4_epi32(__A, 3);
4849*67e74705SXin Li }
4850*67e74705SXin Li 
test_mm512_mask_extracti32x4_epi32(__m128i __W,__mmask8 __U,__m512i __A)4851*67e74705SXin Li __m128i test_mm512_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m512i __A) {
4852*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_extracti32x4_epi32
4853*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
4854*67e74705SXin Li   return _mm512_mask_extracti32x4_epi32(__W, __U, __A, 3);
4855*67e74705SXin Li }
4856*67e74705SXin Li 
test_mm512_maskz_extracti32x4_epi32(__mmask8 __U,__m512i __A)4857*67e74705SXin Li __m128i test_mm512_maskz_extracti32x4_epi32(__mmask8 __U, __m512i __A) {
4858*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_extracti32x4_epi32
4859*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
4860*67e74705SXin Li   return _mm512_maskz_extracti32x4_epi32(__U, __A, 3);
4861*67e74705SXin Li }
4862*67e74705SXin Li 
test_mm512_extracti64x4_epi64(__m512i __A)4863*67e74705SXin Li __m256i test_mm512_extracti64x4_epi64(__m512i __A) {
4864*67e74705SXin Li   // CHECK-LABEL: @test_mm512_extracti64x4_epi64
4865*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vextracti64x4
4866*67e74705SXin Li   return _mm512_extracti64x4_epi64(__A, 1);
4867*67e74705SXin Li }
4868*67e74705SXin Li 
test_mm512_mask_extracti64x4_epi64(__m256i __W,__mmask8 __U,__m512i __A)4869*67e74705SXin Li __m256i test_mm512_mask_extracti64x4_epi64(__m256i __W, __mmask8 __U, __m512i __A) {
4870*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_extracti64x4_epi64
4871*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vextracti64x4
4872*67e74705SXin Li   return _mm512_mask_extracti64x4_epi64(__W, __U, __A, 1);
4873*67e74705SXin Li }
4874*67e74705SXin Li 
test_mm512_maskz_extracti64x4_epi64(__mmask8 __U,__m512i __A)4875*67e74705SXin Li __m256i test_mm512_maskz_extracti64x4_epi64(__mmask8 __U, __m512i __A) {
4876*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_extracti64x4_epi64
4877*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vextracti64x4
4878*67e74705SXin Li   return _mm512_maskz_extracti64x4_epi64(__U, __A, 1);
4879*67e74705SXin Li }
4880*67e74705SXin Li 
test_mm512_insertf64x4(__m512d __A,__m256d __B)4881*67e74705SXin Li __m512d test_mm512_insertf64x4(__m512d __A, __m256d __B) {
4882*67e74705SXin Li   // CHECK-LABEL: @test_mm512_insertf64x4
4883*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.insertf64x4
4884*67e74705SXin Li   return _mm512_insertf64x4(__A, __B, 1);
4885*67e74705SXin Li }
4886*67e74705SXin Li 
test_mm512_mask_insertf64x4(__m512d __W,__mmask8 __U,__m512d __A,__m256d __B)4887*67e74705SXin Li __m512d test_mm512_mask_insertf64x4(__m512d __W, __mmask8 __U, __m512d __A, __m256d __B) {
4888*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_insertf64x4
4889*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.insertf64x4
4890*67e74705SXin Li   return _mm512_mask_insertf64x4(__W, __U, __A, __B, 1);
4891*67e74705SXin Li }
4892*67e74705SXin Li 
test_mm512_maskz_insertf64x4(__mmask8 __U,__m512d __A,__m256d __B)4893*67e74705SXin Li __m512d test_mm512_maskz_insertf64x4(__mmask8 __U, __m512d __A, __m256d __B) {
4894*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_insertf64x4
4895*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.insertf64x4
4896*67e74705SXin Li   return _mm512_maskz_insertf64x4(__U, __A, __B, 1);
4897*67e74705SXin Li }
4898*67e74705SXin Li 
test_mm512_inserti64x4(__m512i __A,__m256i __B)4899*67e74705SXin Li __m512i test_mm512_inserti64x4(__m512i __A, __m256i __B) {
4900*67e74705SXin Li   // CHECK-LABEL: @test_mm512_inserti64x4
4901*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.inserti64x4
4902*67e74705SXin Li   return _mm512_inserti64x4(__A, __B, 1);
4903*67e74705SXin Li }
4904*67e74705SXin Li 
test_mm512_mask_inserti64x4(__m512i __W,__mmask8 __U,__m512i __A,__m256i __B)4905*67e74705SXin Li __m512i test_mm512_mask_inserti64x4(__m512i __W, __mmask8 __U, __m512i __A, __m256i __B) {
4906*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_inserti64x4
4907*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.inserti64x4
4908*67e74705SXin Li   return _mm512_mask_inserti64x4(__W, __U, __A, __B, 1);
4909*67e74705SXin Li }
4910*67e74705SXin Li 
test_mm512_maskz_inserti64x4(__mmask8 __U,__m512i __A,__m256i __B)4911*67e74705SXin Li __m512i test_mm512_maskz_inserti64x4(__mmask8 __U, __m512i __A, __m256i __B) {
4912*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_inserti64x4
4913*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.inserti64x4
4914*67e74705SXin Li   return _mm512_maskz_inserti64x4(__U, __A, __B, 1);
4915*67e74705SXin Li }
4916*67e74705SXin Li 
test_mm512_insertf32x4(__m512 __A,__m128 __B)4917*67e74705SXin Li __m512 test_mm512_insertf32x4(__m512 __A, __m128 __B) {
4918*67e74705SXin Li   // CHECK-LABEL: @test_mm512_insertf32x4
4919*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.insertf32x4
4920*67e74705SXin Li   return _mm512_insertf32x4(__A, __B, 1);
4921*67e74705SXin Li }
4922*67e74705SXin Li 
test_mm512_mask_insertf32x4(__m512 __W,__mmask16 __U,__m512 __A,__m128 __B)4923*67e74705SXin Li __m512 test_mm512_mask_insertf32x4(__m512 __W, __mmask16 __U, __m512 __A, __m128 __B) {
4924*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_insertf32x4
4925*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.insertf32x4
4926*67e74705SXin Li   return _mm512_mask_insertf32x4(__W, __U, __A, __B, 1);
4927*67e74705SXin Li }
4928*67e74705SXin Li 
test_mm512_maskz_insertf32x4(__mmask16 __U,__m512 __A,__m128 __B)4929*67e74705SXin Li __m512 test_mm512_maskz_insertf32x4(__mmask16 __U, __m512 __A, __m128 __B) {
4930*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_insertf32x4
4931*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.insertf32x4
4932*67e74705SXin Li   return _mm512_maskz_insertf32x4(__U, __A, __B, 1);
4933*67e74705SXin Li }
4934*67e74705SXin Li 
test_mm512_inserti32x4(__m512i __A,__m128i __B)4935*67e74705SXin Li __m512i test_mm512_inserti32x4(__m512i __A, __m128i __B) {
4936*67e74705SXin Li   // CHECK-LABEL: @test_mm512_inserti32x4
4937*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.inserti32x4
4938*67e74705SXin Li   return _mm512_inserti32x4(__A, __B, 1);
4939*67e74705SXin Li }
4940*67e74705SXin Li 
test_mm512_mask_inserti32x4(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)4941*67e74705SXin Li __m512i test_mm512_mask_inserti32x4(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
4942*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_inserti32x4
4943*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.inserti32x4
4944*67e74705SXin Li   return _mm512_mask_inserti32x4(__W, __U, __A, __B, 1);
4945*67e74705SXin Li }
4946*67e74705SXin Li 
test_mm512_maskz_inserti32x4(__mmask16 __U,__m512i __A,__m128i __B)4947*67e74705SXin Li __m512i test_mm512_maskz_inserti32x4(__mmask16 __U, __m512i __A, __m128i __B) {
4948*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_inserti32x4
4949*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.inserti32x4
4950*67e74705SXin Li   return _mm512_maskz_inserti32x4(__U, __A, __B, 1);
4951*67e74705SXin Li }
4952*67e74705SXin Li 
test_mm512_getmant_round_pd(__m512d __A)4953*67e74705SXin Li __m512d test_mm512_getmant_round_pd(__m512d __A) {
4954*67e74705SXin Li   // CHECK-LABEL: @test_mm512_getmant_round_pd
4955*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4956*67e74705SXin Li   return _mm512_getmant_round_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
4957*67e74705SXin Li }
4958*67e74705SXin Li 
test_mm512_mask_getmant_round_pd(__m512d __W,__mmask8 __U,__m512d __A)4959*67e74705SXin Li __m512d test_mm512_mask_getmant_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
4960*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_getmant_round_pd
4961*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4962*67e74705SXin Li   return _mm512_mask_getmant_round_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
4963*67e74705SXin Li }
4964*67e74705SXin Li 
test_mm512_maskz_getmant_round_pd(__mmask8 __U,__m512d __A)4965*67e74705SXin Li __m512d test_mm512_maskz_getmant_round_pd(__mmask8 __U, __m512d __A) {
4966*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_getmant_round_pd
4967*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4968*67e74705SXin Li   return _mm512_maskz_getmant_round_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
4969*67e74705SXin Li }
4970*67e74705SXin Li 
test_mm512_getmant_pd(__m512d __A)4971*67e74705SXin Li __m512d test_mm512_getmant_pd(__m512d __A) {
4972*67e74705SXin Li   // CHECK-LABEL: @test_mm512_getmant_pd
4973*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4974*67e74705SXin Li   return _mm512_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
4975*67e74705SXin Li }
4976*67e74705SXin Li 
test_mm512_mask_getmant_pd(__m512d __W,__mmask8 __U,__m512d __A)4977*67e74705SXin Li __m512d test_mm512_mask_getmant_pd(__m512d __W, __mmask8 __U, __m512d __A) {
4978*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_getmant_pd
4979*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4980*67e74705SXin Li   return _mm512_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
4981*67e74705SXin Li }
4982*67e74705SXin Li 
test_mm512_maskz_getmant_pd(__mmask8 __U,__m512d __A)4983*67e74705SXin Li __m512d test_mm512_maskz_getmant_pd(__mmask8 __U, __m512d __A) {
4984*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_getmant_pd
4985*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4986*67e74705SXin Li   return _mm512_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
4987*67e74705SXin Li }
4988*67e74705SXin Li 
test_mm512_getmant_round_ps(__m512 __A)4989*67e74705SXin Li __m512 test_mm512_getmant_round_ps(__m512 __A) {
4990*67e74705SXin Li   // CHECK-LABEL: @test_mm512_getmant_round_ps
4991*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
4992*67e74705SXin Li   return _mm512_getmant_round_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
4993*67e74705SXin Li }
4994*67e74705SXin Li 
test_mm512_mask_getmant_round_ps(__m512 __W,__mmask16 __U,__m512 __A)4995*67e74705SXin Li __m512 test_mm512_mask_getmant_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
4996*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_getmant_round_ps
4997*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
4998*67e74705SXin Li   return _mm512_mask_getmant_round_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
4999*67e74705SXin Li }
5000*67e74705SXin Li 
test_mm512_maskz_getmant_round_ps(__mmask16 __U,__m512 __A)5001*67e74705SXin Li __m512 test_mm512_maskz_getmant_round_ps(__mmask16 __U, __m512 __A) {
5002*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_getmant_round_ps
5003*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5004*67e74705SXin Li   return _mm512_maskz_getmant_round_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
5005*67e74705SXin Li }
5006*67e74705SXin Li 
test_mm512_getmant_ps(__m512 __A)5007*67e74705SXin Li __m512 test_mm512_getmant_ps(__m512 __A) {
5008*67e74705SXin Li   // CHECK-LABEL: @test_mm512_getmant_ps
5009*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5010*67e74705SXin Li   return _mm512_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5011*67e74705SXin Li }
5012*67e74705SXin Li 
test_mm512_mask_getmant_ps(__m512 __W,__mmask16 __U,__m512 __A)5013*67e74705SXin Li __m512 test_mm512_mask_getmant_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5014*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_getmant_ps
5015*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5016*67e74705SXin Li   return _mm512_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5017*67e74705SXin Li }
5018*67e74705SXin Li 
test_mm512_maskz_getmant_ps(__mmask16 __U,__m512 __A)5019*67e74705SXin Li __m512 test_mm512_maskz_getmant_ps(__mmask16 __U, __m512 __A) {
5020*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_getmant_ps
5021*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5022*67e74705SXin Li   return _mm512_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5023*67e74705SXin Li }
5024*67e74705SXin Li 
test_mm512_getexp_round_pd(__m512d __A)5025*67e74705SXin Li __m512d test_mm512_getexp_round_pd(__m512d __A) {
5026*67e74705SXin Li   // CHECK-LABEL: @test_mm512_getexp_round_pd
5027*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5028*67e74705SXin Li   return _mm512_getexp_round_pd(__A, _MM_FROUND_CUR_DIRECTION);
5029*67e74705SXin Li }
5030*67e74705SXin Li 
test_mm512_mask_getexp_round_pd(__m512d __W,__mmask8 __U,__m512d __A)5031*67e74705SXin Li __m512d test_mm512_mask_getexp_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
5032*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_getexp_round_pd
5033*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5034*67e74705SXin Li   return _mm512_mask_getexp_round_pd(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
5035*67e74705SXin Li }
5036*67e74705SXin Li 
test_mm512_maskz_getexp_round_pd(__mmask8 __U,__m512d __A)5037*67e74705SXin Li __m512d test_mm512_maskz_getexp_round_pd(__mmask8 __U, __m512d __A) {
5038*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_getexp_round_pd
5039*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5040*67e74705SXin Li   return _mm512_maskz_getexp_round_pd(__U, __A, _MM_FROUND_CUR_DIRECTION);
5041*67e74705SXin Li }
5042*67e74705SXin Li 
test_mm512_getexp_pd(__m512d __A)5043*67e74705SXin Li __m512d test_mm512_getexp_pd(__m512d __A) {
5044*67e74705SXin Li   // CHECK-LABEL: @test_mm512_getexp_pd
5045*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5046*67e74705SXin Li   return _mm512_getexp_pd(__A);
5047*67e74705SXin Li }
5048*67e74705SXin Li 
test_mm512_mask_getexp_pd(__m512d __W,__mmask8 __U,__m512d __A)5049*67e74705SXin Li __m512d test_mm512_mask_getexp_pd(__m512d __W, __mmask8 __U, __m512d __A) {
5050*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_getexp_pd
5051*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5052*67e74705SXin Li   return _mm512_mask_getexp_pd(__W, __U, __A);
5053*67e74705SXin Li }
5054*67e74705SXin Li 
test_mm512_maskz_getexp_pd(__mmask8 __U,__m512d __A)5055*67e74705SXin Li __m512d test_mm512_maskz_getexp_pd(__mmask8 __U, __m512d __A) {
5056*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_getexp_pd
5057*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5058*67e74705SXin Li   return _mm512_maskz_getexp_pd(__U, __A);
5059*67e74705SXin Li }
5060*67e74705SXin Li 
test_mm512_getexp_round_ps(__m512 __A)5061*67e74705SXin Li __m512 test_mm512_getexp_round_ps(__m512 __A) {
5062*67e74705SXin Li   // CHECK-LABEL: @test_mm512_getexp_round_ps
5063*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5064*67e74705SXin Li   return _mm512_getexp_round_ps(__A, _MM_FROUND_CUR_DIRECTION);
5065*67e74705SXin Li }
5066*67e74705SXin Li 
test_mm512_mask_getexp_round_ps(__m512 __W,__mmask16 __U,__m512 __A)5067*67e74705SXin Li __m512 test_mm512_mask_getexp_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5068*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_getexp_round_ps
5069*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5070*67e74705SXin Li   return _mm512_mask_getexp_round_ps(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
5071*67e74705SXin Li }
5072*67e74705SXin Li 
test_mm512_maskz_getexp_round_ps(__mmask16 __U,__m512 __A)5073*67e74705SXin Li __m512 test_mm512_maskz_getexp_round_ps(__mmask16 __U, __m512 __A) {
5074*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_getexp_round_ps
5075*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5076*67e74705SXin Li   return _mm512_maskz_getexp_round_ps(__U, __A, _MM_FROUND_CUR_DIRECTION);
5077*67e74705SXin Li }
5078*67e74705SXin Li 
test_mm512_getexp_ps(__m512 __A)5079*67e74705SXin Li __m512 test_mm512_getexp_ps(__m512 __A) {
5080*67e74705SXin Li   // CHECK-LABEL: @test_mm512_getexp_ps
5081*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5082*67e74705SXin Li   return _mm512_getexp_ps(__A);
5083*67e74705SXin Li }
5084*67e74705SXin Li 
test_mm512_mask_getexp_ps(__m512 __W,__mmask16 __U,__m512 __A)5085*67e74705SXin Li __m512 test_mm512_mask_getexp_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5086*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_getexp_ps
5087*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5088*67e74705SXin Li   return _mm512_mask_getexp_ps(__W, __U, __A);
5089*67e74705SXin Li }
5090*67e74705SXin Li 
test_mm512_maskz_getexp_ps(__mmask16 __U,__m512 __A)5091*67e74705SXin Li __m512 test_mm512_maskz_getexp_ps(__mmask16 __U, __m512 __A) {
5092*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_getexp_ps
5093*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5094*67e74705SXin Li   return _mm512_maskz_getexp_ps(__U, __A);
5095*67e74705SXin Li }
5096*67e74705SXin Li 
test_mm512_i64gather_ps(__m512i __index,void const * __addr)5097*67e74705SXin Li __m256 test_mm512_i64gather_ps(__m512i __index, void const *__addr) {
5098*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i64gather_ps
5099*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.qps.512
5100*67e74705SXin Li   return _mm512_i64gather_ps(__index, __addr, 2);
5101*67e74705SXin Li }
5102*67e74705SXin Li 
test_mm512_mask_i64gather_ps(__m256 __v1_old,__mmask8 __mask,__m512i __index,void const * __addr)5103*67e74705SXin Li __m256 test_mm512_mask_i64gather_ps(__m256 __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5104*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i64gather_ps
5105*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.qps.512
5106*67e74705SXin Li   return _mm512_mask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
5107*67e74705SXin Li }
5108*67e74705SXin Li 
test_mm512_i64gather_epi32(__m512i __index,void const * __addr)5109*67e74705SXin Li __m256i test_mm512_i64gather_epi32(__m512i __index, void const *__addr) {
5110*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i64gather_epi32
5111*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.qpi.512
5112*67e74705SXin Li   return _mm512_i64gather_epi32(__index, __addr, 2);
5113*67e74705SXin Li }
5114*67e74705SXin Li 
test_mm512_mask_i64gather_epi32(__m256i __v1_old,__mmask8 __mask,__m512i __index,void const * __addr)5115*67e74705SXin Li __m256i test_mm512_mask_i64gather_epi32(__m256i __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5116*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i64gather_epi32
5117*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.qpi.512
5118*67e74705SXin Li   return _mm512_mask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
5119*67e74705SXin Li }
5120*67e74705SXin Li 
test_mm512_i64gather_pd(__m512i __index,void const * __addr)5121*67e74705SXin Li __m512d test_mm512_i64gather_pd(__m512i __index, void const *__addr) {
5122*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i64gather_pd
5123*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.qpd.512
5124*67e74705SXin Li   return _mm512_i64gather_pd(__index, __addr, 2);
5125*67e74705SXin Li }
5126*67e74705SXin Li 
test_mm512_mask_i64gather_pd(__m512d __v1_old,__mmask8 __mask,__m512i __index,void const * __addr)5127*67e74705SXin Li __m512d test_mm512_mask_i64gather_pd(__m512d __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5128*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i64gather_pd
5129*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.qpd.512
5130*67e74705SXin Li   return _mm512_mask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
5131*67e74705SXin Li }
5132*67e74705SXin Li 
test_mm512_i64gather_epi64(__m512i __index,void const * __addr)5133*67e74705SXin Li __m512i test_mm512_i64gather_epi64(__m512i __index, void const *__addr) {
5134*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i64gather_epi64
5135*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.qpq.512
5136*67e74705SXin Li   return _mm512_i64gather_epi64(__index, __addr, 2);
5137*67e74705SXin Li }
5138*67e74705SXin Li 
test_mm512_mask_i64gather_epi64(__m512i __v1_old,__mmask8 __mask,__m512i __index,void const * __addr)5139*67e74705SXin Li __m512i test_mm512_mask_i64gather_epi64(__m512i __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5140*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i64gather_epi64
5141*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.qpq.512
5142*67e74705SXin Li   return _mm512_mask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
5143*67e74705SXin Li }
5144*67e74705SXin Li 
test_mm512_i32gather_ps(__m512i __index,void const * __addr)5145*67e74705SXin Li __m512 test_mm512_i32gather_ps(__m512i __index, void const *__addr) {
5146*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i32gather_ps
5147*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.dps.512
5148*67e74705SXin Li   return _mm512_i32gather_ps(__index, __addr, 2);
5149*67e74705SXin Li }
5150*67e74705SXin Li 
test_mm512_mask_i32gather_ps(__m512 v1_old,__mmask16 __mask,__m512i __index,void const * __addr)5151*67e74705SXin Li __m512 test_mm512_mask_i32gather_ps(__m512 v1_old, __mmask16 __mask, __m512i __index, void const *__addr) {
5152*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i32gather_ps
5153*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.dps.512
5154*67e74705SXin Li   return _mm512_mask_i32gather_ps(v1_old, __mask, __index, __addr, 2);
5155*67e74705SXin Li }
5156*67e74705SXin Li 
test_mm512_i32gather_epi32(__m512i __index,void const * __addr)5157*67e74705SXin Li __m512i test_mm512_i32gather_epi32(__m512i __index, void const *__addr) {
5158*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i32gather_epi32
5159*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.dpi.512
5160*67e74705SXin Li   return _mm512_i32gather_epi32(__index, __addr, 2);
5161*67e74705SXin Li }
5162*67e74705SXin Li 
test_mm512_mask_i32gather_epi32(__m512i __v1_old,__mmask16 __mask,__m512i __index,void const * __addr)5163*67e74705SXin Li __m512i test_mm512_mask_i32gather_epi32(__m512i __v1_old, __mmask16 __mask, __m512i __index, void const *__addr) {
5164*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i32gather_epi32
5165*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.dpi.512
5166*67e74705SXin Li   return _mm512_mask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
5167*67e74705SXin Li }
5168*67e74705SXin Li 
test_mm512_i32gather_pd(__m256i __index,void const * __addr)5169*67e74705SXin Li __m512d test_mm512_i32gather_pd(__m256i __index, void const *__addr) {
5170*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i32gather_pd
5171*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.dpd.512
5172*67e74705SXin Li   return _mm512_i32gather_pd(__index, __addr, 2);
5173*67e74705SXin Li }
5174*67e74705SXin Li 
test_mm512_mask_i32gather_pd(__m512d __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)5175*67e74705SXin Li __m512d test_mm512_mask_i32gather_pd(__m512d __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
5176*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i32gather_pd
5177*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.dpd.512
5178*67e74705SXin Li   return _mm512_mask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
5179*67e74705SXin Li }
5180*67e74705SXin Li 
test_mm512_i32gather_epi64(__m256i __index,void const * __addr)5181*67e74705SXin Li __m512i test_mm512_i32gather_epi64(__m256i __index, void const *__addr) {
5182*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i32gather_epi64
5183*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.dpq.512
5184*67e74705SXin Li   return _mm512_i32gather_epi64(__index, __addr, 2);
5185*67e74705SXin Li }
5186*67e74705SXin Li 
test_mm512_mask_i32gather_epi64(__m512i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)5187*67e74705SXin Li __m512i test_mm512_mask_i32gather_epi64(__m512i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
5188*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i32gather_epi64
5189*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gather.dpq.512
5190*67e74705SXin Li   return _mm512_mask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
5191*67e74705SXin Li }
5192*67e74705SXin Li 
test_mm512_i64scatter_ps(void * __addr,__m512i __index,__m256 __v1)5193*67e74705SXin Li void test_mm512_i64scatter_ps(void *__addr, __m512i __index, __m256 __v1) {
5194*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i64scatter_ps
5195*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.qps.512
5196*67e74705SXin Li   return _mm512_i64scatter_ps(__addr, __index, __v1, 2);
5197*67e74705SXin Li }
5198*67e74705SXin Li 
test_mm512_mask_i64scatter_ps(void * __addr,__mmask8 __mask,__m512i __index,__m256 __v1)5199*67e74705SXin Li void test_mm512_mask_i64scatter_ps(void *__addr, __mmask8 __mask, __m512i __index, __m256 __v1) {
5200*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i64scatter_ps
5201*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.qps.512
5202*67e74705SXin Li   return _mm512_mask_i64scatter_ps(__addr, __mask, __index, __v1, 2);
5203*67e74705SXin Li }
5204*67e74705SXin Li 
test_mm512_i64scatter_epi32(void * __addr,__m512i __index,__m256i __v1)5205*67e74705SXin Li void test_mm512_i64scatter_epi32(void *__addr, __m512i __index, __m256i __v1) {
5206*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i64scatter_epi32
5207*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.qpi.512
5208*67e74705SXin Li   return _mm512_i64scatter_epi32(__addr, __index, __v1, 2);
5209*67e74705SXin Li }
5210*67e74705SXin Li 
test_mm512_mask_i64scatter_epi32(void * __addr,__mmask8 __mask,__m512i __index,__m256i __v1)5211*67e74705SXin Li void test_mm512_mask_i64scatter_epi32(void *__addr, __mmask8 __mask, __m512i __index, __m256i __v1) {
5212*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i64scatter_epi32
5213*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.qpi.512
5214*67e74705SXin Li   return _mm512_mask_i64scatter_epi32(__addr, __mask, __index, __v1, 2);
5215*67e74705SXin Li }
5216*67e74705SXin Li 
test_mm512_i64scatter_pd(void * __addr,__m512i __index,__m512d __v1)5217*67e74705SXin Li void test_mm512_i64scatter_pd(void *__addr, __m512i __index, __m512d __v1) {
5218*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i64scatter_pd
5219*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.qpd.512
5220*67e74705SXin Li   return _mm512_i64scatter_pd(__addr, __index, __v1, 2);
5221*67e74705SXin Li }
5222*67e74705SXin Li 
test_mm512_mask_i64scatter_pd(void * __addr,__mmask8 __mask,__m512i __index,__m512d __v1)5223*67e74705SXin Li void test_mm512_mask_i64scatter_pd(void *__addr, __mmask8 __mask, __m512i __index, __m512d __v1) {
5224*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i64scatter_pd
5225*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.qpd.512
5226*67e74705SXin Li   return _mm512_mask_i64scatter_pd(__addr, __mask, __index, __v1, 2);
5227*67e74705SXin Li }
5228*67e74705SXin Li 
test_mm512_i64scatter_epi64(void * __addr,__m512i __index,__m512i __v1)5229*67e74705SXin Li void test_mm512_i64scatter_epi64(void *__addr, __m512i __index, __m512i __v1) {
5230*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i64scatter_epi64
5231*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.qpq.512
5232*67e74705SXin Li   return _mm512_i64scatter_epi64(__addr, __index, __v1, 2);
5233*67e74705SXin Li }
5234*67e74705SXin Li 
test_mm512_mask_i64scatter_epi64(void * __addr,__mmask8 __mask,__m512i __index,__m512i __v1)5235*67e74705SXin Li void test_mm512_mask_i64scatter_epi64(void *__addr, __mmask8 __mask, __m512i __index, __m512i __v1) {
5236*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i64scatter_epi64
5237*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.qpq.512
5238*67e74705SXin Li   return _mm512_mask_i64scatter_epi64(__addr, __mask, __index, __v1, 2);
5239*67e74705SXin Li }
5240*67e74705SXin Li 
test_mm512_i32scatter_ps(void * __addr,__m512i __index,__m512 __v1)5241*67e74705SXin Li void test_mm512_i32scatter_ps(void *__addr, __m512i __index, __m512 __v1) {
5242*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i32scatter_ps
5243*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.dps.512
5244*67e74705SXin Li   return _mm512_i32scatter_ps(__addr, __index, __v1, 2);
5245*67e74705SXin Li }
5246*67e74705SXin Li 
test_mm512_mask_i32scatter_ps(void * __addr,__mmask16 __mask,__m512i __index,__m512 __v1)5247*67e74705SXin Li void test_mm512_mask_i32scatter_ps(void *__addr, __mmask16 __mask, __m512i __index, __m512 __v1) {
5248*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i32scatter_ps
5249*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.dps.512
5250*67e74705SXin Li   return _mm512_mask_i32scatter_ps(__addr, __mask, __index, __v1, 2);
5251*67e74705SXin Li }
5252*67e74705SXin Li 
test_mm512_i32scatter_epi32(void * __addr,__m512i __index,__m512i __v1)5253*67e74705SXin Li void test_mm512_i32scatter_epi32(void *__addr, __m512i __index, __m512i __v1) {
5254*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i32scatter_epi32
5255*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.dpi.512
5256*67e74705SXin Li   return _mm512_i32scatter_epi32(__addr, __index, __v1, 2);
5257*67e74705SXin Li }
5258*67e74705SXin Li 
test_mm512_mask_i32scatter_epi32(void * __addr,__mmask16 __mask,__m512i __index,__m512i __v1)5259*67e74705SXin Li void test_mm512_mask_i32scatter_epi32(void *__addr, __mmask16 __mask, __m512i __index, __m512i __v1) {
5260*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i32scatter_epi32
5261*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.dpi.512
5262*67e74705SXin Li   return _mm512_mask_i32scatter_epi32(__addr, __mask, __index, __v1, 2);
5263*67e74705SXin Li }
5264*67e74705SXin Li 
test_mm512_i32scatter_pd(void * __addr,__m256i __index,__m512d __v1)5265*67e74705SXin Li void test_mm512_i32scatter_pd(void *__addr, __m256i __index, __m512d __v1) {
5266*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i32scatter_pd
5267*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.dpd.512
5268*67e74705SXin Li   return _mm512_i32scatter_pd(__addr, __index, __v1, 2);
5269*67e74705SXin Li }
5270*67e74705SXin Li 
test_mm512_mask_i32scatter_pd(void * __addr,__mmask8 __mask,__m256i __index,__m512d __v1)5271*67e74705SXin Li void test_mm512_mask_i32scatter_pd(void *__addr, __mmask8 __mask, __m256i __index, __m512d __v1) {
5272*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i32scatter_pd
5273*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.dpd.512
5274*67e74705SXin Li   return _mm512_mask_i32scatter_pd(__addr, __mask, __index, __v1, 2);
5275*67e74705SXin Li }
5276*67e74705SXin Li 
test_mm512_i32scatter_epi64(void * __addr,__m256i __index,__m512i __v1)5277*67e74705SXin Li void test_mm512_i32scatter_epi64(void *__addr, __m256i __index, __m512i __v1) {
5278*67e74705SXin Li   // CHECK-LABEL: @test_mm512_i32scatter_epi64
5279*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.dpq.512
5280*67e74705SXin Li   return _mm512_i32scatter_epi64(__addr, __index, __v1, 2);
5281*67e74705SXin Li }
5282*67e74705SXin Li 
test_mm512_mask_i32scatter_epi64(void * __addr,__mmask8 __mask,__m256i __index,__m512i __v1)5283*67e74705SXin Li void test_mm512_mask_i32scatter_epi64(void *__addr, __mmask8 __mask, __m256i __index, __m512i __v1) {
5284*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_i32scatter_epi64
5285*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatter.dpq.512
5286*67e74705SXin Li   return _mm512_mask_i32scatter_epi64(__addr, __mask, __index, __v1, 2);
5287*67e74705SXin Li }
5288*67e74705SXin Li 
test_mm_mask_rsqrt14_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5289*67e74705SXin Li __m128d test_mm_mask_rsqrt14_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5290*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rsqrt14_sd
5291*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt14.sd
5292*67e74705SXin Li   return _mm_mask_rsqrt14_sd(__W, __U, __A, __B);
5293*67e74705SXin Li }
5294*67e74705SXin Li 
test_mm_maskz_rsqrt14_sd(__mmask8 __U,__m128d __A,__m128d __B)5295*67e74705SXin Li __m128d test_mm_maskz_rsqrt14_sd(__mmask8 __U, __m128d __A, __m128d __B){
5296*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rsqrt14_sd
5297*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt14.sd
5298*67e74705SXin Li   return _mm_maskz_rsqrt14_sd(__U, __A, __B);
5299*67e74705SXin Li }
5300*67e74705SXin Li 
test_mm_mask_rsqrt14_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5301*67e74705SXin Li __m128 test_mm_mask_rsqrt14_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5302*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rsqrt14_ss
5303*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt14.ss
5304*67e74705SXin Li   return _mm_mask_rsqrt14_ss(__W, __U, __A, __B);
5305*67e74705SXin Li }
5306*67e74705SXin Li 
test_mm_maskz_rsqrt14_ss(__mmask8 __U,__m128 __A,__m128 __B)5307*67e74705SXin Li __m128 test_mm_maskz_rsqrt14_ss(__mmask8 __U, __m128 __A, __m128 __B){
5308*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rsqrt14_ss
5309*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt14.ss
5310*67e74705SXin Li   return _mm_maskz_rsqrt14_ss(__U, __A, __B);
5311*67e74705SXin Li }
5312*67e74705SXin Li 
test_mm512_mask_rcp14_pd(__m512d __W,__mmask8 __U,__m512d __A)5313*67e74705SXin Li __m512d test_mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A)
5314*67e74705SXin Li {
5315*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rcp14_pd
5316*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp14.pd.512
5317*67e74705SXin Li   return _mm512_mask_rcp14_pd (__W,__U,__A);
5318*67e74705SXin Li }
5319*67e74705SXin Li 
test_mm512_maskz_rcp14_pd(__mmask8 __U,__m512d __A)5320*67e74705SXin Li __m512d test_mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A)
5321*67e74705SXin Li {
5322*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rcp14_pd
5323*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp14.pd.512
5324*67e74705SXin Li   return _mm512_maskz_rcp14_pd (__U,__A);
5325*67e74705SXin Li }
5326*67e74705SXin Li 
test_mm512_mask_rcp14_ps(__m512 __W,__mmask16 __U,__m512 __A)5327*67e74705SXin Li __m512 test_mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A)
5328*67e74705SXin Li {
5329*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rcp14_ps
5330*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp14.ps.512
5331*67e74705SXin Li   return _mm512_mask_rcp14_ps (__W,__U,__A);
5332*67e74705SXin Li }
5333*67e74705SXin Li 
test_mm512_maskz_rcp14_ps(__mmask16 __U,__m512 __A)5334*67e74705SXin Li __m512 test_mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A)
5335*67e74705SXin Li {
5336*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rcp14_ps
5337*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp14.ps.512
5338*67e74705SXin Li   return _mm512_maskz_rcp14_ps (__U,__A);
5339*67e74705SXin Li }
5340*67e74705SXin Li 
test_mm_mask_rcp14_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5341*67e74705SXin Li __m128d test_mm_mask_rcp14_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5342*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rcp14_sd
5343*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp14.sd
5344*67e74705SXin Li   return _mm_mask_rcp14_sd(__W, __U, __A, __B);
5345*67e74705SXin Li }
5346*67e74705SXin Li 
test_mm_maskz_rcp14_sd(__mmask8 __U,__m128d __A,__m128d __B)5347*67e74705SXin Li __m128d test_mm_maskz_rcp14_sd(__mmask8 __U, __m128d __A, __m128d __B){
5348*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rcp14_sd
5349*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp14.sd
5350*67e74705SXin Li   return _mm_maskz_rcp14_sd(__U, __A, __B);
5351*67e74705SXin Li }
5352*67e74705SXin Li 
test_mm_mask_rcp14_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5353*67e74705SXin Li __m128 test_mm_mask_rcp14_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5354*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rcp14_ss
5355*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp14.ss
5356*67e74705SXin Li   return _mm_mask_rcp14_ss(__W, __U, __A, __B);
5357*67e74705SXin Li }
5358*67e74705SXin Li 
test_mm_maskz_rcp14_ss(__mmask8 __U,__m128 __A,__m128 __B)5359*67e74705SXin Li __m128 test_mm_maskz_rcp14_ss(__mmask8 __U, __m128 __A, __m128 __B){
5360*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rcp14_ss
5361*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp14.ss
5362*67e74705SXin Li   return _mm_maskz_rcp14_ss(__U, __A, __B);
5363*67e74705SXin Li }
5364*67e74705SXin Li 
test_mm_mask_getexp_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5365*67e74705SXin Li __m128d test_mm_mask_getexp_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5366*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_getexp_sd
5367*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.sd
5368*67e74705SXin Li   return _mm_mask_getexp_sd(__W, __U, __A, __B);
5369*67e74705SXin Li }
5370*67e74705SXin Li 
test_mm_mask_getexp_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5371*67e74705SXin Li __m128d test_mm_mask_getexp_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5372*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_getexp_round_sd
5373*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.sd
5374*67e74705SXin Li   return _mm_mask_getexp_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5375*67e74705SXin Li }
5376*67e74705SXin Li 
test_mm_maskz_getexp_sd(__mmask8 __U,__m128d __A,__m128d __B)5377*67e74705SXin Li __m128d test_mm_maskz_getexp_sd(__mmask8 __U, __m128d __A, __m128d __B){
5378*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_getexp_sd
5379*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.sd
5380*67e74705SXin Li   return _mm_maskz_getexp_sd(__U, __A, __B);
5381*67e74705SXin Li }
5382*67e74705SXin Li 
test_mm_maskz_getexp_round_sd(__mmask8 __U,__m128d __A,__m128d __B)5383*67e74705SXin Li __m128d test_mm_maskz_getexp_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
5384*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_getexp_round_sd
5385*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.sd
5386*67e74705SXin Li   return _mm_maskz_getexp_round_sd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5387*67e74705SXin Li }
5388*67e74705SXin Li 
test_mm_mask_getexp_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5389*67e74705SXin Li __m128 test_mm_mask_getexp_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5390*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_getexp_ss
5391*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ss
5392*67e74705SXin Li   return _mm_mask_getexp_ss(__W, __U, __A, __B);
5393*67e74705SXin Li }
5394*67e74705SXin Li 
test_mm_mask_getexp_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5395*67e74705SXin Li __m128 test_mm_mask_getexp_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5396*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_getexp_round_ss
5397*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ss
5398*67e74705SXin Li   return _mm_mask_getexp_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5399*67e74705SXin Li }
5400*67e74705SXin Li 
test_mm_maskz_getexp_ss(__mmask8 __U,__m128 __A,__m128 __B)5401*67e74705SXin Li __m128 test_mm_maskz_getexp_ss(__mmask8 __U, __m128 __A, __m128 __B){
5402*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_getexp_ss
5403*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ss
5404*67e74705SXin Li   return _mm_maskz_getexp_ss(__U, __A, __B);
5405*67e74705SXin Li }
5406*67e74705SXin Li 
test_mm_maskz_getexp_round_ss(__mmask8 __U,__m128 __A,__m128 __B)5407*67e74705SXin Li __m128 test_mm_maskz_getexp_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
5408*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_getexp_round_ss
5409*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getexp.ss
5410*67e74705SXin Li   return _mm_maskz_getexp_round_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5411*67e74705SXin Li }
5412*67e74705SXin Li 
test_mm_mask_getmant_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5413*67e74705SXin Li __m128d test_mm_mask_getmant_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5414*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_getmant_sd
5415*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.sd
5416*67e74705SXin Li   return _mm_mask_getmant_sd(__W, __U, __A, __B, 1, 2);
5417*67e74705SXin Li }
5418*67e74705SXin Li 
test_mm_mask_getmant_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5419*67e74705SXin Li __m128d test_mm_mask_getmant_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5420*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_getmant_round_sd
5421*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.sd
5422*67e74705SXin Li   return _mm_mask_getmant_round_sd(__W, __U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5423*67e74705SXin Li }
5424*67e74705SXin Li 
test_mm_maskz_getmant_sd(__mmask8 __U,__m128d __A,__m128d __B)5425*67e74705SXin Li __m128d test_mm_maskz_getmant_sd(__mmask8 __U, __m128d __A, __m128d __B){
5426*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_getmant_sd
5427*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.sd
5428*67e74705SXin Li   return _mm_maskz_getmant_sd(__U, __A, __B, 1, 2);
5429*67e74705SXin Li }
5430*67e74705SXin Li 
test_mm_maskz_getmant_round_sd(__mmask8 __U,__m128d __A,__m128d __B)5431*67e74705SXin Li __m128d test_mm_maskz_getmant_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
5432*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_getmant_round_sd
5433*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.sd
5434*67e74705SXin Li   return _mm_maskz_getmant_round_sd(__U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5435*67e74705SXin Li }
5436*67e74705SXin Li 
test_mm_mask_getmant_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5437*67e74705SXin Li __m128 test_mm_mask_getmant_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5438*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_getmant_ss
5439*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ss
5440*67e74705SXin Li   return _mm_mask_getmant_ss(__W, __U, __A, __B, 1, 2);
5441*67e74705SXin Li }
5442*67e74705SXin Li 
test_mm_mask_getmant_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5443*67e74705SXin Li __m128 test_mm_mask_getmant_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5444*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_getmant_round_ss
5445*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ss
5446*67e74705SXin Li   return _mm_mask_getmant_round_ss(__W, __U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5447*67e74705SXin Li }
5448*67e74705SXin Li 
test_mm_maskz_getmant_ss(__mmask8 __U,__m128 __A,__m128 __B)5449*67e74705SXin Li __m128 test_mm_maskz_getmant_ss(__mmask8 __U, __m128 __A, __m128 __B){
5450*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_getmant_ss
5451*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ss
5452*67e74705SXin Li   return _mm_maskz_getmant_ss(__U, __A, __B, 1, 2);
5453*67e74705SXin Li }
5454*67e74705SXin Li 
test_mm_maskz_getmant_round_ss(__mmask8 __U,__m128 __A,__m128 __B)5455*67e74705SXin Li __m128 test_mm_maskz_getmant_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
5456*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_getmant_round_ss
5457*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.getmant.ss
5458*67e74705SXin Li   return _mm_maskz_getmant_round_ss(__U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5459*67e74705SXin Li }
5460*67e74705SXin Li 
test_mm_mask_fmadd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5461*67e74705SXin Li __m128 test_mm_mask_fmadd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5462*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fmadd_ss
5463*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5464*67e74705SXin Li   return _mm_mask_fmadd_ss(__W, __U, __A, __B);
5465*67e74705SXin Li }
5466*67e74705SXin Li 
test_mm_mask_fmadd_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5467*67e74705SXin Li __m128 test_mm_mask_fmadd_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5468*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fmadd_round_ss
5469*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5470*67e74705SXin Li   return _mm_mask_fmadd_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5471*67e74705SXin Li }
5472*67e74705SXin Li 
test_mm_maskz_fmadd_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5473*67e74705SXin Li __m128 test_mm_maskz_fmadd_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5474*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fmadd_ss
5475*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5476*67e74705SXin Li   return _mm_maskz_fmadd_ss(__U, __A, __B, __C);
5477*67e74705SXin Li }
5478*67e74705SXin Li 
test_mm_maskz_fmadd_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5479*67e74705SXin Li __m128 test_mm_maskz_fmadd_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5480*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fmadd_round_ss
5481*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5482*67e74705SXin Li   return _mm_maskz_fmadd_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5483*67e74705SXin Li }
5484*67e74705SXin Li 
test_mm_mask3_fmadd_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5485*67e74705SXin Li __m128 test_mm_mask3_fmadd_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5486*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fmadd_ss
5487*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5488*67e74705SXin Li   return _mm_mask3_fmadd_ss(__W, __X, __Y, __U);
5489*67e74705SXin Li }
5490*67e74705SXin Li 
test_mm_mask3_fmadd_round_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5491*67e74705SXin Li __m128 test_mm_mask3_fmadd_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5492*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fmadd_round_ss
5493*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5494*67e74705SXin Li   return _mm_mask3_fmadd_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5495*67e74705SXin Li }
5496*67e74705SXin Li 
test_mm_mask_fmsub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5497*67e74705SXin Li __m128 test_mm_mask_fmsub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5498*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fmsub_ss
5499*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5500*67e74705SXin Li   return _mm_mask_fmsub_ss(__W, __U, __A, __B);
5501*67e74705SXin Li }
5502*67e74705SXin Li 
test_mm_mask_fmsub_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5503*67e74705SXin Li __m128 test_mm_mask_fmsub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5504*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fmsub_round_ss
5505*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5506*67e74705SXin Li   return _mm_mask_fmsub_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5507*67e74705SXin Li }
5508*67e74705SXin Li 
test_mm_maskz_fmsub_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5509*67e74705SXin Li __m128 test_mm_maskz_fmsub_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5510*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fmsub_ss
5511*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5512*67e74705SXin Li   return _mm_maskz_fmsub_ss(__U, __A, __B, __C);
5513*67e74705SXin Li }
5514*67e74705SXin Li 
test_mm_maskz_fmsub_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5515*67e74705SXin Li __m128 test_mm_maskz_fmsub_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5516*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fmsub_round_ss
5517*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5518*67e74705SXin Li   return _mm_maskz_fmsub_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5519*67e74705SXin Li }
5520*67e74705SXin Li 
test_mm_mask3_fmsub_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5521*67e74705SXin Li __m128 test_mm_mask3_fmsub_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5522*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fmsub_ss
5523*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5524*67e74705SXin Li   return _mm_mask3_fmsub_ss(__W, __X, __Y, __U);
5525*67e74705SXin Li }
5526*67e74705SXin Li 
test_mm_mask3_fmsub_round_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5527*67e74705SXin Li __m128 test_mm_mask3_fmsub_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5528*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fmsub_round_ss
5529*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5530*67e74705SXin Li   return _mm_mask3_fmsub_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5531*67e74705SXin Li }
5532*67e74705SXin Li 
test_mm_mask_fnmadd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5533*67e74705SXin Li __m128 test_mm_mask_fnmadd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5534*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fnmadd_ss
5535*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5536*67e74705SXin Li   return _mm_mask_fnmadd_ss(__W, __U, __A, __B);
5537*67e74705SXin Li }
5538*67e74705SXin Li 
test_mm_mask_fnmadd_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5539*67e74705SXin Li __m128 test_mm_mask_fnmadd_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5540*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fnmadd_round_ss
5541*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5542*67e74705SXin Li   return _mm_mask_fnmadd_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5543*67e74705SXin Li }
5544*67e74705SXin Li 
test_mm_maskz_fnmadd_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5545*67e74705SXin Li __m128 test_mm_maskz_fnmadd_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5546*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fnmadd_ss
5547*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5548*67e74705SXin Li   return _mm_maskz_fnmadd_ss(__U, __A, __B, __C);
5549*67e74705SXin Li }
5550*67e74705SXin Li 
test_mm_maskz_fnmadd_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5551*67e74705SXin Li __m128 test_mm_maskz_fnmadd_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5552*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fnmadd_round_ss
5553*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5554*67e74705SXin Li   return _mm_maskz_fnmadd_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5555*67e74705SXin Li }
5556*67e74705SXin Li 
test_mm_mask3_fnmadd_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5557*67e74705SXin Li __m128 test_mm_mask3_fnmadd_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5558*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fnmadd_ss
5559*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5560*67e74705SXin Li   return _mm_mask3_fnmadd_ss(__W, __X, __Y, __U);
5561*67e74705SXin Li }
5562*67e74705SXin Li 
test_mm_mask3_fnmadd_round_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5563*67e74705SXin Li __m128 test_mm_mask3_fnmadd_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5564*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fnmadd_round_ss
5565*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5566*67e74705SXin Li   return _mm_mask3_fnmadd_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5567*67e74705SXin Li }
5568*67e74705SXin Li 
test_mm_mask_fnmsub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5569*67e74705SXin Li __m128 test_mm_mask_fnmsub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5570*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fnmsub_ss
5571*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5572*67e74705SXin Li   return _mm_mask_fnmsub_ss(__W, __U, __A, __B);
5573*67e74705SXin Li }
5574*67e74705SXin Li 
test_mm_mask_fnmsub_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5575*67e74705SXin Li __m128 test_mm_mask_fnmsub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5576*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fnmsub_round_ss
5577*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5578*67e74705SXin Li   return _mm_mask_fnmsub_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5579*67e74705SXin Li }
5580*67e74705SXin Li 
test_mm_maskz_fnmsub_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5581*67e74705SXin Li __m128 test_mm_maskz_fnmsub_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5582*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fnmsub_ss
5583*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5584*67e74705SXin Li   return _mm_maskz_fnmsub_ss(__U, __A, __B, __C);
5585*67e74705SXin Li }
5586*67e74705SXin Li 
test_mm_maskz_fnmsub_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5587*67e74705SXin Li __m128 test_mm_maskz_fnmsub_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5588*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fnmsub_round_ss
5589*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5590*67e74705SXin Li   return _mm_maskz_fnmsub_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5591*67e74705SXin Li }
5592*67e74705SXin Li 
test_mm_mask3_fnmsub_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5593*67e74705SXin Li __m128 test_mm_mask3_fnmsub_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5594*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fnmsub_ss
5595*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5596*67e74705SXin Li   return _mm_mask3_fnmsub_ss(__W, __X, __Y, __U);
5597*67e74705SXin Li }
5598*67e74705SXin Li 
test_mm_mask3_fnmsub_round_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5599*67e74705SXin Li __m128 test_mm_mask3_fnmsub_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5600*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fnmsub_round_ss
5601*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5602*67e74705SXin Li   return _mm_mask3_fnmsub_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5603*67e74705SXin Li }
5604*67e74705SXin Li 
test_mm_mask_fmadd_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5605*67e74705SXin Li __m128d test_mm_mask_fmadd_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5606*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fmadd_sd
5607*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5608*67e74705SXin Li   return _mm_mask_fmadd_sd(__W, __U, __A, __B);
5609*67e74705SXin Li }
5610*67e74705SXin Li 
test_mm_mask_fmadd_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5611*67e74705SXin Li __m128d test_mm_mask_fmadd_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5612*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fmadd_round_sd
5613*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5614*67e74705SXin Li   return _mm_mask_fmadd_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5615*67e74705SXin Li }
5616*67e74705SXin Li 
test_mm_maskz_fmadd_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5617*67e74705SXin Li __m128d test_mm_maskz_fmadd_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5618*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fmadd_sd
5619*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5620*67e74705SXin Li   return _mm_maskz_fmadd_sd(__U, __A, __B, __C);
5621*67e74705SXin Li }
5622*67e74705SXin Li 
test_mm_maskz_fmadd_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5623*67e74705SXin Li __m128d test_mm_maskz_fmadd_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5624*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fmadd_round_sd
5625*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5626*67e74705SXin Li   return _mm_maskz_fmadd_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5627*67e74705SXin Li }
5628*67e74705SXin Li 
test_mm_mask3_fmadd_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5629*67e74705SXin Li __m128d test_mm_mask3_fmadd_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5630*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fmadd_sd
5631*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5632*67e74705SXin Li   return _mm_mask3_fmadd_sd(__W, __X, __Y, __U);
5633*67e74705SXin Li }
5634*67e74705SXin Li 
test_mm_mask3_fmadd_round_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5635*67e74705SXin Li __m128d test_mm_mask3_fmadd_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5636*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fmadd_round_sd
5637*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5638*67e74705SXin Li   return _mm_mask3_fmadd_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5639*67e74705SXin Li }
5640*67e74705SXin Li 
test_mm_mask_fmsub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5641*67e74705SXin Li __m128d test_mm_mask_fmsub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5642*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fmsub_sd
5643*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5644*67e74705SXin Li   return _mm_mask_fmsub_sd(__W, __U, __A, __B);
5645*67e74705SXin Li }
5646*67e74705SXin Li 
test_mm_mask_fmsub_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5647*67e74705SXin Li __m128d test_mm_mask_fmsub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5648*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fmsub_round_sd
5649*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5650*67e74705SXin Li   return _mm_mask_fmsub_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5651*67e74705SXin Li }
5652*67e74705SXin Li 
test_mm_maskz_fmsub_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5653*67e74705SXin Li __m128d test_mm_maskz_fmsub_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5654*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fmsub_sd
5655*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5656*67e74705SXin Li   return _mm_maskz_fmsub_sd(__U, __A, __B, __C);
5657*67e74705SXin Li }
5658*67e74705SXin Li 
test_mm_maskz_fmsub_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5659*67e74705SXin Li __m128d test_mm_maskz_fmsub_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5660*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fmsub_round_sd
5661*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5662*67e74705SXin Li   return _mm_maskz_fmsub_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5663*67e74705SXin Li }
5664*67e74705SXin Li 
test_mm_mask3_fmsub_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5665*67e74705SXin Li __m128d test_mm_mask3_fmsub_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5666*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fmsub_sd
5667*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5668*67e74705SXin Li   return _mm_mask3_fmsub_sd(__W, __X, __Y, __U);
5669*67e74705SXin Li }
5670*67e74705SXin Li 
test_mm_mask3_fmsub_round_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5671*67e74705SXin Li __m128d test_mm_mask3_fmsub_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5672*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fmsub_round_sd
5673*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5674*67e74705SXin Li   return _mm_mask3_fmsub_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5675*67e74705SXin Li }
5676*67e74705SXin Li 
test_mm_mask_fnmadd_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5677*67e74705SXin Li __m128d test_mm_mask_fnmadd_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5678*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fnmadd_sd
5679*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5680*67e74705SXin Li   return _mm_mask_fnmadd_sd(__W, __U, __A, __B);
5681*67e74705SXin Li }
5682*67e74705SXin Li 
test_mm_mask_fnmadd_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5683*67e74705SXin Li __m128d test_mm_mask_fnmadd_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5684*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fnmadd_round_sd
5685*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5686*67e74705SXin Li   return _mm_mask_fnmadd_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5687*67e74705SXin Li }
5688*67e74705SXin Li 
test_mm_maskz_fnmadd_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5689*67e74705SXin Li __m128d test_mm_maskz_fnmadd_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5690*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fnmadd_sd
5691*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5692*67e74705SXin Li   return _mm_maskz_fnmadd_sd(__U, __A, __B, __C);
5693*67e74705SXin Li }
5694*67e74705SXin Li 
test_mm_maskz_fnmadd_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5695*67e74705SXin Li __m128d test_mm_maskz_fnmadd_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5696*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fnmadd_round_sd
5697*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5698*67e74705SXin Li   return _mm_maskz_fnmadd_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5699*67e74705SXin Li }
5700*67e74705SXin Li 
test_mm_mask3_fnmadd_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5701*67e74705SXin Li __m128d test_mm_mask3_fnmadd_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5702*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fnmadd_sd
5703*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5704*67e74705SXin Li   return _mm_mask3_fnmadd_sd(__W, __X, __Y, __U);
5705*67e74705SXin Li }
5706*67e74705SXin Li 
test_mm_mask3_fnmadd_round_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5707*67e74705SXin Li __m128d test_mm_mask3_fnmadd_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5708*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fnmadd_round_sd
5709*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5710*67e74705SXin Li   return _mm_mask3_fnmadd_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5711*67e74705SXin Li }
5712*67e74705SXin Li 
test_mm_mask_fnmsub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5713*67e74705SXin Li __m128d test_mm_mask_fnmsub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5714*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fnmsub_sd
5715*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5716*67e74705SXin Li   return _mm_mask_fnmsub_sd(__W, __U, __A, __B);
5717*67e74705SXin Li }
5718*67e74705SXin Li 
test_mm_mask_fnmsub_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5719*67e74705SXin Li __m128d test_mm_mask_fnmsub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5720*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_fnmsub_round_sd
5721*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5722*67e74705SXin Li   return _mm_mask_fnmsub_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5723*67e74705SXin Li }
5724*67e74705SXin Li 
test_mm_maskz_fnmsub_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5725*67e74705SXin Li __m128d test_mm_maskz_fnmsub_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5726*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fnmsub_sd
5727*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5728*67e74705SXin Li   return _mm_maskz_fnmsub_sd(__U, __A, __B, __C);
5729*67e74705SXin Li }
5730*67e74705SXin Li 
test_mm_maskz_fnmsub_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5731*67e74705SXin Li __m128d test_mm_maskz_fnmsub_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5732*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_fnmsub_round_sd
5733*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5734*67e74705SXin Li   return _mm_maskz_fnmsub_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5735*67e74705SXin Li }
5736*67e74705SXin Li 
test_mm_mask3_fnmsub_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5737*67e74705SXin Li __m128d test_mm_mask3_fnmsub_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5738*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fnmsub_sd
5739*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5740*67e74705SXin Li   return _mm_mask3_fnmsub_sd(__W, __X, __Y, __U);
5741*67e74705SXin Li }
5742*67e74705SXin Li 
test_mm_mask3_fnmsub_round_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5743*67e74705SXin Li __m128d test_mm_mask3_fnmsub_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5744*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask3_fnmsub_round_sd
5745*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5746*67e74705SXin Li   return _mm_mask3_fnmsub_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5747*67e74705SXin Li }
5748*67e74705SXin Li 
test_mm512_permutex_pd(__m512d __X)5749*67e74705SXin Li __m512d test_mm512_permutex_pd(__m512d __X) {
5750*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutex_pd
5751*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
5752*67e74705SXin Li   return _mm512_permutex_pd(__X, 0);
5753*67e74705SXin Li }
5754*67e74705SXin Li 
test_mm512_mask_permutex_pd(__m512d __W,__mmask8 __U,__m512d __X)5755*67e74705SXin Li __m512d test_mm512_mask_permutex_pd(__m512d __W, __mmask8 __U, __m512d __X) {
5756*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutex_pd
5757*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
5758*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
5759*67e74705SXin Li   return _mm512_mask_permutex_pd(__W, __U, __X, 0);
5760*67e74705SXin Li }
5761*67e74705SXin Li 
test_mm512_maskz_permutex_pd(__mmask8 __U,__m512d __X)5762*67e74705SXin Li __m512d test_mm512_maskz_permutex_pd(__mmask8 __U, __m512d __X) {
5763*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutex_pd
5764*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
5765*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
5766*67e74705SXin Li   return _mm512_maskz_permutex_pd(__U, __X, 0);
5767*67e74705SXin Li }
5768*67e74705SXin Li 
test_mm512_permutex_epi64(__m512i __X)5769*67e74705SXin Li __m512i test_mm512_permutex_epi64(__m512i __X) {
5770*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutex_epi64
5771*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
5772*67e74705SXin Li   return _mm512_permutex_epi64(__X, 0);
5773*67e74705SXin Li }
5774*67e74705SXin Li 
test_mm512_mask_permutex_epi64(__m512i __W,__mmask8 __M,__m512i __X)5775*67e74705SXin Li __m512i test_mm512_mask_permutex_epi64(__m512i __W, __mmask8 __M, __m512i __X) {
5776*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutex_epi64
5777*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
5778*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
5779*67e74705SXin Li   return _mm512_mask_permutex_epi64(__W, __M, __X, 0);
5780*67e74705SXin Li }
5781*67e74705SXin Li 
test_mm512_maskz_permutex_epi64(__mmask8 __M,__m512i __X)5782*67e74705SXin Li __m512i test_mm512_maskz_permutex_epi64(__mmask8 __M, __m512i __X) {
5783*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutex_epi64
5784*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
5785*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
5786*67e74705SXin Li   return _mm512_maskz_permutex_epi64(__M, __X, 0);
5787*67e74705SXin Li }
5788*67e74705SXin Li 
test_mm512_permutexvar_pd(__m512i __X,__m512d __Y)5789*67e74705SXin Li __m512d test_mm512_permutexvar_pd(__m512i __X, __m512d __Y) {
5790*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutexvar_pd
5791*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.df.512
5792*67e74705SXin Li   return _mm512_permutexvar_pd(__X, __Y);
5793*67e74705SXin Li }
5794*67e74705SXin Li 
test_mm512_mask_permutexvar_pd(__m512d __W,__mmask8 __U,__m512i __X,__m512d __Y)5795*67e74705SXin Li __m512d test_mm512_mask_permutexvar_pd(__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y) {
5796*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutexvar_pd
5797*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.df.512
5798*67e74705SXin Li   return _mm512_mask_permutexvar_pd(__W, __U, __X, __Y);
5799*67e74705SXin Li }
5800*67e74705SXin Li 
test_mm512_maskz_permutexvar_pd(__mmask8 __U,__m512i __X,__m512d __Y)5801*67e74705SXin Li __m512d test_mm512_maskz_permutexvar_pd(__mmask8 __U, __m512i __X, __m512d __Y) {
5802*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutexvar_pd
5803*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.df.512
5804*67e74705SXin Li   return _mm512_maskz_permutexvar_pd(__U, __X, __Y);
5805*67e74705SXin Li }
5806*67e74705SXin Li 
test_mm512_maskz_permutexvar_epi64(__mmask8 __M,__m512i __X,__m512i __Y)5807*67e74705SXin Li __m512i test_mm512_maskz_permutexvar_epi64(__mmask8 __M, __m512i __X, __m512i __Y) {
5808*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi64
5809*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.di.512
5810*67e74705SXin Li   return _mm512_maskz_permutexvar_epi64(__M, __X, __Y);
5811*67e74705SXin Li }
5812*67e74705SXin Li 
test_mm512_permutexvar_epi64(__m512i __X,__m512i __Y)5813*67e74705SXin Li __m512i test_mm512_permutexvar_epi64(__m512i __X, __m512i __Y) {
5814*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutexvar_epi64
5815*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.di.512
5816*67e74705SXin Li   return _mm512_permutexvar_epi64(__X, __Y);
5817*67e74705SXin Li }
5818*67e74705SXin Li 
test_mm512_mask_permutexvar_epi64(__m512i __W,__mmask8 __M,__m512i __X,__m512i __Y)5819*67e74705SXin Li __m512i test_mm512_mask_permutexvar_epi64(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) {
5820*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutexvar_epi64
5821*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.di.512
5822*67e74705SXin Li   return _mm512_mask_permutexvar_epi64(__W, __M, __X, __Y);
5823*67e74705SXin Li }
5824*67e74705SXin Li 
test_mm512_permutexvar_ps(__m512i __X,__m512 __Y)5825*67e74705SXin Li __m512 test_mm512_permutexvar_ps(__m512i __X, __m512 __Y) {
5826*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutexvar_ps
5827*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
5828*67e74705SXin Li   return _mm512_permutexvar_ps(__X, __Y);
5829*67e74705SXin Li }
5830*67e74705SXin Li 
test_mm512_mask_permutexvar_ps(__m512 __W,__mmask16 __U,__m512i __X,__m512 __Y)5831*67e74705SXin Li __m512 test_mm512_mask_permutexvar_ps(__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y) {
5832*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutexvar_ps
5833*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
5834*67e74705SXin Li   return _mm512_mask_permutexvar_ps(__W, __U, __X, __Y);
5835*67e74705SXin Li }
5836*67e74705SXin Li 
test_mm512_maskz_permutexvar_ps(__mmask16 __U,__m512i __X,__m512 __Y)5837*67e74705SXin Li __m512 test_mm512_maskz_permutexvar_ps(__mmask16 __U, __m512i __X, __m512 __Y) {
5838*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutexvar_ps
5839*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
5840*67e74705SXin Li   return _mm512_maskz_permutexvar_ps(__U, __X, __Y);
5841*67e74705SXin Li }
5842*67e74705SXin Li 
test_mm512_maskz_permutexvar_epi32(__mmask16 __M,__m512i __X,__m512i __Y)5843*67e74705SXin Li __m512i test_mm512_maskz_permutexvar_epi32(__mmask16 __M, __m512i __X, __m512i __Y) {
5844*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi32
5845*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.si.512
5846*67e74705SXin Li   return _mm512_maskz_permutexvar_epi32(__M, __X, __Y);
5847*67e74705SXin Li }
5848*67e74705SXin Li 
test_mm512_permutexvar_epi32(__m512i __X,__m512i __Y)5849*67e74705SXin Li __m512i test_mm512_permutexvar_epi32(__m512i __X, __m512i __Y) {
5850*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutexvar_epi32
5851*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.si.512
5852*67e74705SXin Li   return _mm512_permutexvar_epi32(__X, __Y);
5853*67e74705SXin Li }
5854*67e74705SXin Li 
test_mm512_mask_permutexvar_epi32(__m512i __W,__mmask16 __M,__m512i __X,__m512i __Y)5855*67e74705SXin Li __m512i test_mm512_mask_permutexvar_epi32(__m512i __W, __mmask16 __M, __m512i __X, __m512i __Y) {
5856*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutexvar_epi32
5857*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.si.512
5858*67e74705SXin Li   return _mm512_mask_permutexvar_epi32(__W, __M, __X, __Y);
5859*67e74705SXin Li }
5860*67e74705SXin Li 
test_mm512_kand(__mmask16 __A,__mmask16 __B)5861*67e74705SXin Li __mmask16 test_mm512_kand(__mmask16 __A, __mmask16 __B) {
5862*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kand
5863*67e74705SXin Li   // CHECK: @llvm.x86.avx512.kand.w
5864*67e74705SXin Li   return _mm512_kand(__A, __B);
5865*67e74705SXin Li }
5866*67e74705SXin Li 
test_mm512_kandn(__mmask16 __A,__mmask16 __B)5867*67e74705SXin Li __mmask16 test_mm512_kandn(__mmask16 __A, __mmask16 __B) {
5868*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kandn
5869*67e74705SXin Li   // CHECK: @llvm.x86.avx512.kandn.w
5870*67e74705SXin Li   return _mm512_kandn(__A, __B);
5871*67e74705SXin Li }
5872*67e74705SXin Li 
test_mm512_kor(__mmask16 __A,__mmask16 __B)5873*67e74705SXin Li __mmask16 test_mm512_kor(__mmask16 __A, __mmask16 __B) {
5874*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kor
5875*67e74705SXin Li   // CHECK: @llvm.x86.avx512.kor.w
5876*67e74705SXin Li   return _mm512_kor(__A, __B);
5877*67e74705SXin Li }
5878*67e74705SXin Li 
test_mm512_kortestc(__mmask16 __A,__mmask16 __B)5879*67e74705SXin Li int test_mm512_kortestc(__mmask16 __A, __mmask16 __B) {
5880*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kortestc
5881*67e74705SXin Li   // CHECK: @llvm.x86.avx512.kortestc.w
5882*67e74705SXin Li   return _mm512_kortestc(__A, __B);
5883*67e74705SXin Li }
5884*67e74705SXin Li 
test_mm512_kortestz(__mmask16 __A,__mmask16 __B)5885*67e74705SXin Li int test_mm512_kortestz(__mmask16 __A, __mmask16 __B) {
5886*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kortestz
5887*67e74705SXin Li   // CHECK: @llvm.x86.avx512.kortestz.w
5888*67e74705SXin Li   return _mm512_kortestz(__A, __B);
5889*67e74705SXin Li }
5890*67e74705SXin Li 
test_mm512_kunpackb(__mmask16 __A,__mmask16 __B)5891*67e74705SXin Li __mmask16 test_mm512_kunpackb(__mmask16 __A, __mmask16 __B) {
5892*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kunpackb
5893*67e74705SXin Li   // CHECK: @llvm.x86.avx512.kunpck.bw
5894*67e74705SXin Li   return _mm512_kunpackb(__A, __B);
5895*67e74705SXin Li }
5896*67e74705SXin Li 
test_mm512_kxnor(__mmask16 __A,__mmask16 __B)5897*67e74705SXin Li __mmask16 test_mm512_kxnor(__mmask16 __A, __mmask16 __B) {
5898*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kxnor
5899*67e74705SXin Li   // CHECK: @llvm.x86.avx512.kxnor.w
5900*67e74705SXin Li   return _mm512_kxnor(__A, __B);
5901*67e74705SXin Li }
5902*67e74705SXin Li 
test_mm512_kxor(__mmask16 __A,__mmask16 __B)5903*67e74705SXin Li __mmask16 test_mm512_kxor(__mmask16 __A, __mmask16 __B) {
5904*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kxor
5905*67e74705SXin Li   // CHECK: @llvm.x86.avx512.kxor.w
5906*67e74705SXin Li   return _mm512_kxor(__A, __B);
5907*67e74705SXin Li }
5908*67e74705SXin Li 
test_mm512_stream_si512(__m512i * __P,__m512i __A)5909*67e74705SXin Li void test_mm512_stream_si512(__m512i * __P, __m512i __A) {
5910*67e74705SXin Li   // CHECK-LABEL: @test_mm512_stream_si512
5911*67e74705SXin Li   // CHECK: store <8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, align 64, !nontemporal
5912*67e74705SXin Li   _mm512_stream_si512(__P, __A);
5913*67e74705SXin Li }
5914*67e74705SXin Li 
test_mm512_stream_load_si512(void * __P)5915*67e74705SXin Li __m512i test_mm512_stream_load_si512(void *__P) {
5916*67e74705SXin Li   // CHECK-LABEL: @test_mm512_stream_load_si512
5917*67e74705SXin Li   // CHECK: @llvm.x86.avx512.movntdqa
5918*67e74705SXin Li   return _mm512_stream_load_si512(__P);
5919*67e74705SXin Li }
5920*67e74705SXin Li 
test_mm512_stream_pd(double * __P,__m512d __A)5921*67e74705SXin Li void test_mm512_stream_pd(double *__P, __m512d __A) {
5922*67e74705SXin Li   // CHECK-LABEL: @test_mm512_stream_pd
5923*67e74705SXin Li   // CHECK: store <8 x double> %{{.*}}, <8 x double>* %{{.*}}, align 64, !nontemporal
5924*67e74705SXin Li   return _mm512_stream_pd(__P, __A);
5925*67e74705SXin Li }
5926*67e74705SXin Li 
test_mm512_stream_ps(float * __P,__m512 __A)5927*67e74705SXin Li void test_mm512_stream_ps(float *__P, __m512 __A) {
5928*67e74705SXin Li   // CHECK-LABEL: @test_mm512_stream_ps
5929*67e74705SXin Li   // CHECK: store <16 x float> %{{.*}}, <16 x float>* %{{.*}}, align 64, !nontemporal
5930*67e74705SXin Li   _mm512_stream_ps(__P, __A);
5931*67e74705SXin Li }
5932*67e74705SXin Li 
test_mm512_mask_compress_pd(__m512d __W,__mmask8 __U,__m512d __A)5933*67e74705SXin Li __m512d test_mm512_mask_compress_pd(__m512d __W, __mmask8 __U, __m512d __A) {
5934*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_compress_pd
5935*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.pd.512
5936*67e74705SXin Li   return _mm512_mask_compress_pd(__W, __U, __A);
5937*67e74705SXin Li }
5938*67e74705SXin Li 
test_mm512_maskz_compress_pd(__mmask8 __U,__m512d __A)5939*67e74705SXin Li __m512d test_mm512_maskz_compress_pd(__mmask8 __U, __m512d __A) {
5940*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_compress_pd
5941*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.pd.512
5942*67e74705SXin Li   return _mm512_maskz_compress_pd(__U, __A);
5943*67e74705SXin Li }
5944*67e74705SXin Li 
test_mm512_mask_compress_epi64(__m512i __W,__mmask8 __U,__m512i __A)5945*67e74705SXin Li __m512i test_mm512_mask_compress_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
5946*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_compress_epi64
5947*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.q.512
5948*67e74705SXin Li   return _mm512_mask_compress_epi64(__W, __U, __A);
5949*67e74705SXin Li }
5950*67e74705SXin Li 
test_mm512_maskz_compress_epi64(__mmask8 __U,__m512i __A)5951*67e74705SXin Li __m512i test_mm512_maskz_compress_epi64(__mmask8 __U, __m512i __A) {
5952*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_compress_epi64
5953*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.q.512
5954*67e74705SXin Li   return _mm512_maskz_compress_epi64(__U, __A);
5955*67e74705SXin Li }
5956*67e74705SXin Li 
test_mm512_mask_compress_ps(__m512 __W,__mmask16 __U,__m512 __A)5957*67e74705SXin Li __m512 test_mm512_mask_compress_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5958*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_compress_ps
5959*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.ps.512
5960*67e74705SXin Li   return _mm512_mask_compress_ps(__W, __U, __A);
5961*67e74705SXin Li }
5962*67e74705SXin Li 
test_mm512_maskz_compress_ps(__mmask16 __U,__m512 __A)5963*67e74705SXin Li __m512 test_mm512_maskz_compress_ps(__mmask16 __U, __m512 __A) {
5964*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_compress_ps
5965*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.ps.512
5966*67e74705SXin Li   return _mm512_maskz_compress_ps(__U, __A);
5967*67e74705SXin Li }
5968*67e74705SXin Li 
test_mm512_mask_compress_epi32(__m512i __W,__mmask16 __U,__m512i __A)5969*67e74705SXin Li __m512i test_mm512_mask_compress_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
5970*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_compress_epi32
5971*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.d.512
5972*67e74705SXin Li   return _mm512_mask_compress_epi32(__W, __U, __A);
5973*67e74705SXin Li }
5974*67e74705SXin Li 
test_mm512_maskz_compress_epi32(__mmask16 __U,__m512i __A)5975*67e74705SXin Li __m512i test_mm512_maskz_compress_epi32(__mmask16 __U, __m512i __A) {
5976*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_compress_epi32
5977*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.d.512
5978*67e74705SXin Li   return _mm512_maskz_compress_epi32(__U, __A);
5979*67e74705SXin Li }
5980*67e74705SXin Li 
test_mm_cmp_round_ss_mask(__m128 __X,__m128 __Y)5981*67e74705SXin Li __mmask8 test_mm_cmp_round_ss_mask(__m128 __X, __m128 __Y) {
5982*67e74705SXin Li   // CHECK-LABEL: @test_mm_cmp_round_ss_mask
5983*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp
5984*67e74705SXin Li   return _mm_cmp_round_ss_mask(__X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
5985*67e74705SXin Li }
5986*67e74705SXin Li 
test_mm_mask_cmp_round_ss_mask(__mmask8 __M,__m128 __X,__m128 __Y)5987*67e74705SXin Li __mmask8 test_mm_mask_cmp_round_ss_mask(__mmask8 __M, __m128 __X, __m128 __Y) {
5988*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_cmp_round_ss_mask
5989*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp
5990*67e74705SXin Li   return _mm_mask_cmp_round_ss_mask(__M, __X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
5991*67e74705SXin Li }
5992*67e74705SXin Li 
test_mm_cmp_ss_mask(__m128 __X,__m128 __Y)5993*67e74705SXin Li __mmask8 test_mm_cmp_ss_mask(__m128 __X, __m128 __Y) {
5994*67e74705SXin Li   // CHECK-LABEL: @test_mm_cmp_ss_mask
5995*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp
5996*67e74705SXin Li   return _mm_cmp_ss_mask(__X, __Y, 5);
5997*67e74705SXin Li }
5998*67e74705SXin Li 
test_mm_mask_cmp_ss_mask(__mmask8 __M,__m128 __X,__m128 __Y)5999*67e74705SXin Li __mmask8 test_mm_mask_cmp_ss_mask(__mmask8 __M, __m128 __X, __m128 __Y) {
6000*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_cmp_ss_mask
6001*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp
6002*67e74705SXin Li   return _mm_mask_cmp_ss_mask(__M, __X, __Y, 5);
6003*67e74705SXin Li }
6004*67e74705SXin Li 
test_mm_cmp_round_sd_mask(__m128d __X,__m128d __Y)6005*67e74705SXin Li __mmask8 test_mm_cmp_round_sd_mask(__m128d __X, __m128d __Y) {
6006*67e74705SXin Li   // CHECK-LABEL: @test_mm_cmp_round_sd_mask
6007*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp
6008*67e74705SXin Li   return _mm_cmp_round_sd_mask(__X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
6009*67e74705SXin Li }
6010*67e74705SXin Li 
test_mm_mask_cmp_round_sd_mask(__mmask8 __M,__m128d __X,__m128d __Y)6011*67e74705SXin Li __mmask8 test_mm_mask_cmp_round_sd_mask(__mmask8 __M, __m128d __X, __m128d __Y) {
6012*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_cmp_round_sd_mask
6013*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp
6014*67e74705SXin Li   return _mm_mask_cmp_round_sd_mask(__M, __X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
6015*67e74705SXin Li }
6016*67e74705SXin Li 
test_mm_cmp_sd_mask(__m128d __X,__m128d __Y)6017*67e74705SXin Li __mmask8 test_mm_cmp_sd_mask(__m128d __X, __m128d __Y) {
6018*67e74705SXin Li   // CHECK-LABEL: @test_mm_cmp_sd_mask
6019*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp
6020*67e74705SXin Li   return _mm_cmp_sd_mask(__X, __Y, 5);
6021*67e74705SXin Li }
6022*67e74705SXin Li 
test_mm_mask_cmp_sd_mask(__mmask8 __M,__m128d __X,__m128d __Y)6023*67e74705SXin Li __mmask8 test_mm_mask_cmp_sd_mask(__mmask8 __M, __m128d __X, __m128d __Y) {
6024*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_cmp_sd_mask
6025*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cmp
6026*67e74705SXin Li   return _mm_mask_cmp_sd_mask(__M, __X, __Y, 5);
6027*67e74705SXin Li }
6028*67e74705SXin Li 
test_mm512_movehdup_ps(__m512 __A)6029*67e74705SXin Li __m512 test_mm512_movehdup_ps(__m512 __A) {
6030*67e74705SXin Li   // CHECK-LABEL: @test_mm512_movehdup_ps
6031*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15, i32 15>
6032*67e74705SXin Li   return _mm512_movehdup_ps(__A);
6033*67e74705SXin Li }
6034*67e74705SXin Li 
test_mm512_mask_movehdup_ps(__m512 __W,__mmask16 __U,__m512 __A)6035*67e74705SXin Li __m512 test_mm512_mask_movehdup_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6036*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_movehdup_ps
6037*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15, i32 15>
6038*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6039*67e74705SXin Li   return _mm512_mask_movehdup_ps(__W, __U, __A);
6040*67e74705SXin Li }
6041*67e74705SXin Li 
test_mm512_maskz_movehdup_ps(__mmask16 __U,__m512 __A)6042*67e74705SXin Li __m512 test_mm512_maskz_movehdup_ps(__mmask16 __U, __m512 __A) {
6043*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_movehdup_ps
6044*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15, i32 15>
6045*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6046*67e74705SXin Li   return _mm512_maskz_movehdup_ps(__U, __A);
6047*67e74705SXin Li }
6048*67e74705SXin Li 
test_mm512_moveldup_ps(__m512 __A)6049*67e74705SXin Li __m512 test_mm512_moveldup_ps(__m512 __A) {
6050*67e74705SXin Li   // CHECK-LABEL: @test_mm512_moveldup_ps
6051*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6, i32 8, i32 8, i32 10, i32 10, i32 12, i32 12, i32 14, i32 14>
6052*67e74705SXin Li   return _mm512_moveldup_ps(__A);
6053*67e74705SXin Li }
6054*67e74705SXin Li 
test_mm512_mask_moveldup_ps(__m512 __W,__mmask16 __U,__m512 __A)6055*67e74705SXin Li __m512 test_mm512_mask_moveldup_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6056*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_moveldup_ps
6057*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6, i32 8, i32 8, i32 10, i32 10, i32 12, i32 12, i32 14, i32 14>
6058*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6059*67e74705SXin Li   return _mm512_mask_moveldup_ps(__W, __U, __A);
6060*67e74705SXin Li }
6061*67e74705SXin Li 
test_mm512_maskz_moveldup_ps(__mmask16 __U,__m512 __A)6062*67e74705SXin Li __m512 test_mm512_maskz_moveldup_ps(__mmask16 __U, __m512 __A) {
6063*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_moveldup_ps
6064*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6, i32 8, i32 8, i32 10, i32 10, i32 12, i32 12, i32 14, i32 14>
6065*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6066*67e74705SXin Li   return _mm512_maskz_moveldup_ps(__U, __A);
6067*67e74705SXin Li }
6068*67e74705SXin Li 
test_mm512_shuffle_epi32(__m512i __A)6069*67e74705SXin Li __m512i test_mm512_shuffle_epi32(__m512i __A) {
6070*67e74705SXin Li   // CHECK-LABEL: @test_mm512_shuffle_epi32
6071*67e74705SXin Li   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 1, i32 0, i32 0, i32 0, i32 5, i32 4, i32 4, i32 4, i32 9, i32 8, i32 8, i32 8, i32 13, i32 12, i32 12, i32 12>
6072*67e74705SXin Li   return _mm512_shuffle_epi32(__A, 1);
6073*67e74705SXin Li }
6074*67e74705SXin Li 
test_mm512_mask_shuffle_epi32(__m512i __W,__mmask16 __U,__m512i __A)6075*67e74705SXin Li __m512i test_mm512_mask_shuffle_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
6076*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_shuffle_epi32
6077*67e74705SXin Li   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 1, i32 0, i32 0, i32 0, i32 5, i32 4, i32 4, i32 4, i32 9, i32 8, i32 8, i32 8, i32 13, i32 12, i32 12, i32 12>
6078*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
6079*67e74705SXin Li   return _mm512_mask_shuffle_epi32(__W, __U, __A, 1);
6080*67e74705SXin Li }
6081*67e74705SXin Li 
test_mm512_maskz_shuffle_epi32(__mmask16 __U,__m512i __A)6082*67e74705SXin Li __m512i test_mm512_maskz_shuffle_epi32(__mmask16 __U, __m512i __A) {
6083*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_shuffle_epi32
6084*67e74705SXin Li   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 1, i32 0, i32 0, i32 0, i32 5, i32 4, i32 4, i32 4, i32 9, i32 8, i32 8, i32 8, i32 13, i32 12, i32 12, i32 12>
6085*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
6086*67e74705SXin Li   return _mm512_maskz_shuffle_epi32(__U, __A, 1);
6087*67e74705SXin Li }
6088*67e74705SXin Li 
test_mm512_mask_expand_pd(__m512d __W,__mmask8 __U,__m512d __A)6089*67e74705SXin Li __m512d test_mm512_mask_expand_pd(__m512d __W, __mmask8 __U, __m512d __A) {
6090*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_expand_pd
6091*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.pd.512
6092*67e74705SXin Li   return _mm512_mask_expand_pd(__W, __U, __A);
6093*67e74705SXin Li }
6094*67e74705SXin Li 
test_mm512_maskz_expand_pd(__mmask8 __U,__m512d __A)6095*67e74705SXin Li __m512d test_mm512_maskz_expand_pd(__mmask8 __U, __m512d __A) {
6096*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_expand_pd
6097*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.pd.512
6098*67e74705SXin Li   return _mm512_maskz_expand_pd(__U, __A);
6099*67e74705SXin Li }
6100*67e74705SXin Li 
test_mm512_mask_expand_epi64(__m512i __W,__mmask8 __U,__m512i __A)6101*67e74705SXin Li __m512i test_mm512_mask_expand_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
6102*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_expand_epi64
6103*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.q.512
6104*67e74705SXin Li   return _mm512_mask_expand_epi64(__W, __U, __A);
6105*67e74705SXin Li }
6106*67e74705SXin Li 
test_mm512_maskz_expand_epi64(__mmask8 __U,__m512i __A)6107*67e74705SXin Li __m512i test_mm512_maskz_expand_epi64(__mmask8 __U, __m512i __A) {
6108*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_expand_epi64
6109*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.q.512
6110*67e74705SXin Li   return _mm512_maskz_expand_epi64(__U, __A);
6111*67e74705SXin Li }
test_mm512_mask_expandloadu_epi64(__m512i __W,__mmask8 __U,void const * __P)6112*67e74705SXin Li __m512i test_mm512_mask_expandloadu_epi64(__m512i __W, __mmask8 __U, void const *__P) {
6113*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_expandloadu_epi64
6114*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.load.q.512
6115*67e74705SXin Li   return _mm512_mask_expandloadu_epi64(__W, __U, __P);
6116*67e74705SXin Li }
6117*67e74705SXin Li 
test_mm512_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)6118*67e74705SXin Li __m512i test_mm512_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
6119*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_expandloadu_epi64
6120*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.load.q.512
6121*67e74705SXin Li   return _mm512_maskz_expandloadu_epi64(__U, __P);
6122*67e74705SXin Li }
6123*67e74705SXin Li 
test_mm512_mask_expandloadu_pd(__m512d __W,__mmask8 __U,void const * __P)6124*67e74705SXin Li __m512d test_mm512_mask_expandloadu_pd(__m512d __W, __mmask8 __U, void const *__P) {
6125*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_expandloadu_pd
6126*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.load.pd.512
6127*67e74705SXin Li   return _mm512_mask_expandloadu_pd(__W, __U, __P);
6128*67e74705SXin Li }
6129*67e74705SXin Li 
test_mm512_maskz_expandloadu_pd(__mmask8 __U,void const * __P)6130*67e74705SXin Li __m512d test_mm512_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
6131*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_expandloadu_pd
6132*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.load.pd.512
6133*67e74705SXin Li   return _mm512_maskz_expandloadu_pd(__U, __P);
6134*67e74705SXin Li }
6135*67e74705SXin Li 
test_mm512_mask_expandloadu_epi32(__m512i __W,__mmask16 __U,void const * __P)6136*67e74705SXin Li __m512i test_mm512_mask_expandloadu_epi32(__m512i __W, __mmask16 __U, void const *__P) {
6137*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_expandloadu_epi32
6138*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.load.d.512
6139*67e74705SXin Li   return _mm512_mask_expandloadu_epi32(__W, __U, __P);
6140*67e74705SXin Li }
6141*67e74705SXin Li 
test_mm512_maskz_expandloadu_epi32(__mmask16 __U,void const * __P)6142*67e74705SXin Li __m512i test_mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P) {
6143*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_expandloadu_epi32
6144*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.load.d.512
6145*67e74705SXin Li   return _mm512_maskz_expandloadu_epi32(__U, __P);
6146*67e74705SXin Li }
6147*67e74705SXin Li 
test_mm512_mask_expand_ps(__m512 __W,__mmask16 __U,__m512 __A)6148*67e74705SXin Li __m512 test_mm512_mask_expand_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6149*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_expand_ps
6150*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.ps.512
6151*67e74705SXin Li   return _mm512_mask_expand_ps(__W, __U, __A);
6152*67e74705SXin Li }
6153*67e74705SXin Li 
test_mm512_maskz_expand_ps(__mmask16 __U,__m512 __A)6154*67e74705SXin Li __m512 test_mm512_maskz_expand_ps(__mmask16 __U, __m512 __A) {
6155*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_expand_ps
6156*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.ps.512
6157*67e74705SXin Li   return _mm512_maskz_expand_ps(__U, __A);
6158*67e74705SXin Li }
6159*67e74705SXin Li 
test_mm512_mask_expand_epi32(__m512i __W,__mmask16 __U,__m512i __A)6160*67e74705SXin Li __m512i test_mm512_mask_expand_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
6161*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_expand_epi32
6162*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.d.512
6163*67e74705SXin Li   return _mm512_mask_expand_epi32(__W, __U, __A);
6164*67e74705SXin Li }
6165*67e74705SXin Li 
test_mm512_maskz_expand_epi32(__mmask16 __U,__m512i __A)6166*67e74705SXin Li __m512i test_mm512_maskz_expand_epi32(__mmask16 __U, __m512i __A) {
6167*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_expand_epi32
6168*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.expand.d.512
6169*67e74705SXin Li   return _mm512_maskz_expand_epi32(__U, __A);
6170*67e74705SXin Li }
test_mm512_cvt_roundps_pd(__m256 __A)6171*67e74705SXin Li __m512d test_mm512_cvt_roundps_pd(__m256 __A) {
6172*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvt_roundps_pd
6173*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6174*67e74705SXin Li   return _mm512_cvt_roundps_pd(__A, _MM_FROUND_CUR_DIRECTION);
6175*67e74705SXin Li }
6176*67e74705SXin Li 
test_mm512_mask_cvt_roundps_pd(__m512d __W,__mmask8 __U,__m256 __A)6177*67e74705SXin Li __m512d test_mm512_mask_cvt_roundps_pd(__m512d __W, __mmask8 __U, __m256 __A) {
6178*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvt_roundps_pd
6179*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6180*67e74705SXin Li   return _mm512_mask_cvt_roundps_pd(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
6181*67e74705SXin Li }
6182*67e74705SXin Li 
test_mm512_maskz_cvt_roundps_pd(__mmask8 __U,__m256 __A)6183*67e74705SXin Li __m512d test_mm512_maskz_cvt_roundps_pd(__mmask8 __U, __m256 __A) {
6184*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_pd
6185*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6186*67e74705SXin Li   return _mm512_maskz_cvt_roundps_pd(__U, __A, _MM_FROUND_CUR_DIRECTION);
6187*67e74705SXin Li }
6188*67e74705SXin Li 
test_mm512_cvtps_pd(__m256 __A)6189*67e74705SXin Li __m512d test_mm512_cvtps_pd(__m256 __A) {
6190*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtps_pd
6191*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6192*67e74705SXin Li   return _mm512_cvtps_pd(__A);
6193*67e74705SXin Li }
6194*67e74705SXin Li 
test_mm512_mask_cvtps_pd(__m512d __W,__mmask8 __U,__m256 __A)6195*67e74705SXin Li __m512d test_mm512_mask_cvtps_pd(__m512d __W, __mmask8 __U, __m256 __A) {
6196*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtps_pd
6197*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6198*67e74705SXin Li   return _mm512_mask_cvtps_pd(__W, __U, __A);
6199*67e74705SXin Li }
6200*67e74705SXin Li 
test_mm512_maskz_cvtps_pd(__mmask8 __U,__m256 __A)6201*67e74705SXin Li __m512d test_mm512_maskz_cvtps_pd(__mmask8 __U, __m256 __A) {
6202*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtps_pd
6203*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6204*67e74705SXin Li   return _mm512_maskz_cvtps_pd(__U, __A);
6205*67e74705SXin Li }
test_mm512_mask_mov_pd(__m512d __W,__mmask8 __U,__m512d __A)6206*67e74705SXin Li __m512d test_mm512_mask_mov_pd(__m512d __W, __mmask8 __U, __m512d __A) {
6207*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mov_pd
6208*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
6209*67e74705SXin Li   return _mm512_mask_mov_pd(__W, __U, __A);
6210*67e74705SXin Li }
6211*67e74705SXin Li 
test_mm512_maskz_mov_pd(__mmask8 __U,__m512d __A)6212*67e74705SXin Li __m512d test_mm512_maskz_mov_pd(__mmask8 __U, __m512d __A) {
6213*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mov_pd
6214*67e74705SXin Li   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
6215*67e74705SXin Li   return _mm512_maskz_mov_pd(__U, __A);
6216*67e74705SXin Li }
6217*67e74705SXin Li 
test_mm512_mask_mov_ps(__m512 __W,__mmask16 __U,__m512 __A)6218*67e74705SXin Li __m512 test_mm512_mask_mov_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6219*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mov_ps
6220*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6221*67e74705SXin Li   return _mm512_mask_mov_ps(__W, __U, __A);
6222*67e74705SXin Li }
6223*67e74705SXin Li 
test_mm512_maskz_mov_ps(__mmask16 __U,__m512 __A)6224*67e74705SXin Li __m512 test_mm512_maskz_mov_ps(__mmask16 __U, __m512 __A) {
6225*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mov_ps
6226*67e74705SXin Li   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6227*67e74705SXin Li   return _mm512_maskz_mov_ps(__U, __A);
6228*67e74705SXin Li }
6229*67e74705SXin Li 
test_mm512_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m512d __A)6230*67e74705SXin Li void test_mm512_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m512d __A) {
6231*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_compressstoreu_pd
6232*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.store.pd.512
6233*67e74705SXin Li   return _mm512_mask_compressstoreu_pd(__P, __U, __A);
6234*67e74705SXin Li }
6235*67e74705SXin Li 
test_mm512_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m512i __A)6236*67e74705SXin Li void test_mm512_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m512i __A) {
6237*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_compressstoreu_epi64
6238*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.store.q.512
6239*67e74705SXin Li   return _mm512_mask_compressstoreu_epi64(__P, __U, __A);
6240*67e74705SXin Li }
6241*67e74705SXin Li 
test_mm512_mask_compressstoreu_ps(void * __P,__mmask16 __U,__m512 __A)6242*67e74705SXin Li void test_mm512_mask_compressstoreu_ps(void *__P, __mmask16 __U, __m512 __A) {
6243*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_compressstoreu_ps
6244*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.store.ps.512
6245*67e74705SXin Li   return _mm512_mask_compressstoreu_ps(__P, __U, __A);
6246*67e74705SXin Li }
6247*67e74705SXin Li 
test_mm512_mask_compressstoreu_epi32(void * __P,__mmask16 __U,__m512i __A)6248*67e74705SXin Li void test_mm512_mask_compressstoreu_epi32(void *__P, __mmask16 __U, __m512i __A) {
6249*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_compressstoreu_epi32
6250*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.compress.store.d.512
6251*67e74705SXin Li   return _mm512_mask_compressstoreu_epi32(__P, __U, __A);
6252*67e74705SXin Li }
6253*67e74705SXin Li 
test_mm512_cvtt_roundpd_epu32(__m512d __A)6254*67e74705SXin Li __m256i test_mm512_cvtt_roundpd_epu32(__m512d __A) {
6255*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtt_roundpd_epu32
6256*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6257*67e74705SXin Li   return _mm512_cvtt_roundpd_epu32(__A, _MM_FROUND_CUR_DIRECTION);
6258*67e74705SXin Li }
6259*67e74705SXin Li 
test_mm512_mask_cvtt_roundpd_epu32(__m256i __W,__mmask8 __U,__m512d __A)6260*67e74705SXin Li __m256i test_mm512_mask_cvtt_roundpd_epu32(__m256i __W, __mmask8 __U, __m512d __A) {
6261*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epu32
6262*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6263*67e74705SXin Li   return _mm512_mask_cvtt_roundpd_epu32(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
6264*67e74705SXin Li }
6265*67e74705SXin Li 
test_mm512_maskz_cvtt_roundpd_epu32(__mmask8 __U,__m512d __A)6266*67e74705SXin Li __m256i test_mm512_maskz_cvtt_roundpd_epu32(__mmask8 __U, __m512d __A) {
6267*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epu32
6268*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6269*67e74705SXin Li   return _mm512_maskz_cvtt_roundpd_epu32(__U, __A, _MM_FROUND_CUR_DIRECTION);
6270*67e74705SXin Li }
6271*67e74705SXin Li 
test_mm512_cvttpd_epu32(__m512d __A)6272*67e74705SXin Li __m256i test_mm512_cvttpd_epu32(__m512d __A) {
6273*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvttpd_epu32
6274*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6275*67e74705SXin Li   return _mm512_cvttpd_epu32(__A);
6276*67e74705SXin Li }
6277*67e74705SXin Li 
test_mm512_mask_cvttpd_epu32(__m256i __W,__mmask8 __U,__m512d __A)6278*67e74705SXin Li __m256i test_mm512_mask_cvttpd_epu32(__m256i __W, __mmask8 __U, __m512d __A) {
6279*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvttpd_epu32
6280*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6281*67e74705SXin Li   return _mm512_mask_cvttpd_epu32(__W, __U, __A);
6282*67e74705SXin Li }
6283*67e74705SXin Li 
test_mm512_maskz_cvttpd_epu32(__mmask8 __U,__m512d __A)6284*67e74705SXin Li __m256i test_mm512_maskz_cvttpd_epu32(__mmask8 __U, __m512d __A) {
6285*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvttpd_epu32
6286*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6287*67e74705SXin Li   return _mm512_maskz_cvttpd_epu32(__U, __A);
6288*67e74705SXin Li }
6289*67e74705SXin Li 
test_mm512_castpd_ps(__m512d __A)6290*67e74705SXin Li __m512 test_mm512_castpd_ps (__m512d __A)
6291*67e74705SXin Li {
6292*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castpd_ps
6293*67e74705SXin Li   // CHECK: bitcast <8 x double> %{{.}} to <16 x float>
6294*67e74705SXin Li   return _mm512_castpd_ps (__A);
6295*67e74705SXin Li }
6296*67e74705SXin Li 
test_mm512_castps_pd(__m512 __A)6297*67e74705SXin Li __m512d test_mm512_castps_pd (__m512 __A)
6298*67e74705SXin Li {
6299*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castps_pd
6300*67e74705SXin Li   // CHECK: bitcast <16 x float> %{{.}} to <8 x double>
6301*67e74705SXin Li   return _mm512_castps_pd (__A);
6302*67e74705SXin Li }
6303*67e74705SXin Li 
test_mm512_castpd_si512(__m512d __A)6304*67e74705SXin Li __m512i test_mm512_castpd_si512 (__m512d __A)
6305*67e74705SXin Li {
6306*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castpd_si512
6307*67e74705SXin Li   // CHECK: bitcast <8 x double> %{{.}} to <8 x i64>
6308*67e74705SXin Li   return _mm512_castpd_si512 (__A);
6309*67e74705SXin Li }
6310*67e74705SXin Li 
test_mm512_castps128_ps512(__m128 __A)6311*67e74705SXin Li __m512 test_mm512_castps128_ps512(__m128 __A) {
6312*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castps128_ps512
6313*67e74705SXin Li   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
6314*67e74705SXin Li   return _mm512_castps128_ps512(__A);
6315*67e74705SXin Li }
6316*67e74705SXin Li 
test_mm512_castpd128_pd512(__m128d __A)6317*67e74705SXin Li __m512d test_mm512_castpd128_pd512(__m128d __A) {
6318*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castpd128_pd512
6319*67e74705SXin Li   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
6320*67e74705SXin Li   return _mm512_castpd128_pd512(__A);
6321*67e74705SXin Li }
6322*67e74705SXin Li 
test_mm512_set1_epi8(char d)6323*67e74705SXin Li __m512d test_mm512_set1_epi8(char d)
6324*67e74705SXin Li {
6325*67e74705SXin Li   // CHECK-LABEL: @test_mm512_set1_epi8
6326*67e74705SXin Li   // CHECK: insertelement <64 x i8> {{.*}}, i32 0
6327*67e74705SXin Li   // CHECK: insertelement <64 x i8> {{.*}}, i32 1
6328*67e74705SXin Li   // CHECK: insertelement <64 x i8> {{.*}}, i32 2
6329*67e74705SXin Li   // CHECK: insertelement <64 x i8> {{.*}}, i32 3
6330*67e74705SXin Li   // CHECK: insertelement <64 x i8> {{.*}}, i32 4
6331*67e74705SXin Li   // CHECK: insertelement <64 x i8> {{.*}}, i32 5
6332*67e74705SXin Li   // CHECK: insertelement <64 x i8> {{.*}}, i32 6
6333*67e74705SXin Li   // CHECK: insertelement <64 x i8> {{.*}}, i32 7
6334*67e74705SXin Li   // CHECK: insertelement <64 x i8> {{.*}}, i32 63
6335*67e74705SXin Li   return _mm512_set1_epi8(d);
6336*67e74705SXin Li }
6337*67e74705SXin Li 
test_mm512_set1_epi16(short d)6338*67e74705SXin Li __m512d test_mm512_set1_epi16(short d)
6339*67e74705SXin Li {
6340*67e74705SXin Li   // CHECK-LABEL: @test_mm512_set1_epi16
6341*67e74705SXin Li   // CHECK: insertelement <32 x i16> {{.*}}, i32 0
6342*67e74705SXin Li   // CHECK: insertelement <32 x i16> {{.*}}, i32 1
6343*67e74705SXin Li   // CHECK: insertelement <32 x i16> {{.*}}, i32 2
6344*67e74705SXin Li   // CHECK: insertelement <32 x i16> {{.*}}, i32 3
6345*67e74705SXin Li   // CHECK: insertelement <32 x i16> {{.*}}, i32 4
6346*67e74705SXin Li   // CHECK: insertelement <32 x i16> {{.*}}, i32 5
6347*67e74705SXin Li   // CHECK: insertelement <32 x i16> {{.*}}, i32 6
6348*67e74705SXin Li   // CHECK: insertelement <32 x i16> {{.*}}, i32 7
6349*67e74705SXin Li   // CHECK: insertelement <32 x i16> {{.*}}, i32 31
6350*67e74705SXin Li   return _mm512_set1_epi16(d);
6351*67e74705SXin Li }
6352*67e74705SXin Li 
test_mm512_set4_epi32(int __A,int __B,int __C,int __D)6353*67e74705SXin Li __m512i test_mm512_set4_epi32 (int __A, int __B, int __C, int __D)
6354*67e74705SXin Li {
6355*67e74705SXin Li   // CHECK-LABEL: @test_mm512_set4_epi32
6356*67e74705SXin Li   // CHECK: insertelement <16 x i32> {{.*}}, i32 15
6357*67e74705SXin Li   return _mm512_set4_epi32 (__A,__B,__C,__D);
6358*67e74705SXin Li }
6359*67e74705SXin Li 
test_mm512_set4_epi64(long long __A,long long __B,long long __C,long long __D)6360*67e74705SXin Li __m512i test_mm512_set4_epi64 (long long __A, long long __B, long long __C, long long __D)
6361*67e74705SXin Li {
6362*67e74705SXin Li   // CHECK-LABEL: @test_mm512_set4_epi64
6363*67e74705SXin Li   // CHECK: insertelement <8 x i64> {{.*}}, i32 7
6364*67e74705SXin Li   return _mm512_set4_epi64 (__A,__B,__C,__D);
6365*67e74705SXin Li }
6366*67e74705SXin Li 
test_mm512_set4_pd(double __A,double __B,double __C,double __D)6367*67e74705SXin Li __m512d test_mm512_set4_pd (double __A, double __B, double __C, double __D)
6368*67e74705SXin Li {
6369*67e74705SXin Li   // CHECK-LABEL: @test_mm512_set4_pd
6370*67e74705SXin Li   // CHECK: insertelement <8 x double> {{.*}}, i32 7
6371*67e74705SXin Li   return _mm512_set4_pd (__A,__B,__C,__D);
6372*67e74705SXin Li }
6373*67e74705SXin Li 
test_mm512_set4_ps(float __A,float __B,float __C,float __D)6374*67e74705SXin Li __m512 test_mm512_set4_ps (float __A, float __B, float __C, float __D)
6375*67e74705SXin Li {
6376*67e74705SXin Li   // CHECK-LABEL: @test_mm512_set4_ps
6377*67e74705SXin Li   // CHECK: insertelement <16 x float> {{.*}}, i32 15
6378*67e74705SXin Li   return _mm512_set4_ps (__A,__B,__C,__D);
6379*67e74705SXin Li }
6380*67e74705SXin Li 
test_mm512_setr4_epi32(int e0,int e1,int e2,int e3)6381*67e74705SXin Li __m512i test_mm512_setr4_epi32(int e0, int e1, int e2, int e3)
6382*67e74705SXin Li {
6383*67e74705SXin Li   // CHECK-LABEL: @test_mm512_setr4_epi32
6384*67e74705SXin Li   // CHECK: insertelement <16 x i32> {{.*}}, i32 15
6385*67e74705SXin Li   return _mm512_setr4_epi32(e0, e1, e2, e3);
6386*67e74705SXin Li }
6387*67e74705SXin Li 
test_mm512_setr4_epi64(long long e0,long long e1,long long e2,long long e3)6388*67e74705SXin Li  __m512i test_mm512_setr4_epi64(long long e0, long long e1, long long e2, long long e3)
6389*67e74705SXin Li {
6390*67e74705SXin Li   // CHECK-LABEL: @test_mm512_setr4_epi64
6391*67e74705SXin Li   // CHECK: insertelement <8 x i64> {{.*}}, i32 7
6392*67e74705SXin Li   return _mm512_setr4_epi64(e0, e1, e2, e3);
6393*67e74705SXin Li }
6394*67e74705SXin Li 
test_mm512_setr4_pd(double e0,double e1,double e2,double e3)6395*67e74705SXin Li __m512i test_mm512_setr4_pd(double e0, double e1, double e2, double e3)
6396*67e74705SXin Li {
6397*67e74705SXin Li   // CHECK-LABEL: @test_mm512_setr4_pd
6398*67e74705SXin Li   // CHECK: insertelement <8 x double> {{.*}}, i32 7
6399*67e74705SXin Li   return _mm512_setr4_pd(e0,e1,e2,e3);
6400*67e74705SXin Li }
6401*67e74705SXin Li 
test_mm512_setr4_ps(float e0,float e1,float e2,float e3)6402*67e74705SXin Li  __m512i test_mm512_setr4_ps(float e0, float e1, float e2, float e3)
6403*67e74705SXin Li {
6404*67e74705SXin Li   // CHECK-LABEL: @test_mm512_setr4_ps
6405*67e74705SXin Li   // CHECK: insertelement <16 x float> {{.*}}, i32 15
6406*67e74705SXin Li   return _mm512_setr4_ps(e0,e1,e2,e3);
6407*67e74705SXin Li }
6408*67e74705SXin Li 
test_mm512_castpd256_pd512(__m256d a)6409*67e74705SXin Li __m512d test_mm512_castpd256_pd512(__m256d a)
6410*67e74705SXin Li {
6411*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castpd256_pd512
6412*67e74705SXin Li   // CHECK: shufflevector <4 x double> {{.*}} <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
6413*67e74705SXin Li   return _mm512_castpd256_pd512(a);
6414*67e74705SXin Li }
6415*67e74705SXin Li 
test_mm512_castpd512_pd256(__m512d __A)6416*67e74705SXin Li __m256d test_mm512_castpd512_pd256 (__m512d __A)
6417*67e74705SXin Li {
6418*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castpd512_pd256
6419*67e74705SXin Li   // CHECK: shufflevector <8 x double> %{{.}}, <8 x double> %{{.}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6420*67e74705SXin Li   return _mm512_castpd512_pd256 (__A);
6421*67e74705SXin Li }
6422*67e74705SXin Li 
test_mm512_castps512_ps256(__m512 __A)6423*67e74705SXin Li __m256 test_mm512_castps512_ps256 (__m512 __A)
6424*67e74705SXin Li {
6425*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castps512_ps256
6426*67e74705SXin Li   // CHECK: shufflevector <16 x float> %{{.}}, <16 x float> %{{.}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
6427*67e74705SXin Li   return _mm512_castps512_ps256 (__A);
6428*67e74705SXin Li }
6429*67e74705SXin Li 
test_mm512_castps_si512(__m512 __A)6430*67e74705SXin Li __m512i test_mm512_castps_si512 (__m512 __A)
6431*67e74705SXin Li {
6432*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castps_si512
6433*67e74705SXin Li   // CHECK: bitcast <16 x float> %{{.}} to <8 x i64>
6434*67e74705SXin Li   return _mm512_castps_si512 (__A);
6435*67e74705SXin Li }
test_mm512_castsi128_si512(__m128i __A)6436*67e74705SXin Li __m512i test_mm512_castsi128_si512(__m128i __A) {
6437*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castsi128_si512
6438*67e74705SXin Li   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
6439*67e74705SXin Li   return _mm512_castsi128_si512(__A);
6440*67e74705SXin Li }
6441*67e74705SXin Li 
test_mm512_castsi256_si512(__m256i __A)6442*67e74705SXin Li __m512i test_mm512_castsi256_si512(__m256i __A) {
6443*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castsi256_si512
6444*67e74705SXin Li   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
6445*67e74705SXin Li   return _mm512_castsi256_si512(__A);
6446*67e74705SXin Li }
6447*67e74705SXin Li 
test_mm512_castsi512_ps(__m512i __A)6448*67e74705SXin Li __m512 test_mm512_castsi512_ps (__m512i __A)
6449*67e74705SXin Li {
6450*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castsi512_ps
6451*67e74705SXin Li   // CHECK: bitcast <8 x i64> %{{.}} to <16 x float>
6452*67e74705SXin Li   return _mm512_castsi512_ps (__A);
6453*67e74705SXin Li }
6454*67e74705SXin Li 
test_mm512_castsi512_pd(__m512i __A)6455*67e74705SXin Li __m512d test_mm512_castsi512_pd (__m512i __A)
6456*67e74705SXin Li {
6457*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castsi512_pd
6458*67e74705SXin Li   // CHECK: bitcast <8 x i64> %{{.}} to <8 x double>
6459*67e74705SXin Li   return _mm512_castsi512_pd (__A);
6460*67e74705SXin Li }
6461*67e74705SXin Li 
test_mm512_castsi512_si128(__m512i __A)6462*67e74705SXin Li __m128i test_mm512_castsi512_si128 (__m512i __A)
6463*67e74705SXin Li {
6464*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castsi512_si128
6465*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.}}, <8 x i64> %{{.}}, <2 x i32> <i32 0, i32 1>
6466*67e74705SXin Li   return _mm512_castsi512_si128 (__A);
6467*67e74705SXin Li }
6468*67e74705SXin Li 
test_mm512_castsi512_si256(__m512i __A)6469*67e74705SXin Li __m256i test_mm512_castsi512_si256 (__m512i __A)
6470*67e74705SXin Li {
6471*67e74705SXin Li   // CHECK-LABEL: @test_mm512_castsi512_si256
6472*67e74705SXin Li   // CHECK: shufflevector <8 x i64> %{{.}}, <8 x i64> %{{.}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6473*67e74705SXin Li   return _mm512_castsi512_si256 (__A);
6474*67e74705SXin Li }
6475*67e74705SXin Li 
test_mm_cvt_roundsd_ss(__m128 __A,__m128d __B)6476*67e74705SXin Li __m128 test_mm_cvt_roundsd_ss(__m128 __A, __m128d __B) {
6477*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundsd_ss
6478*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
6479*67e74705SXin Li   return _mm_cvt_roundsd_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6480*67e74705SXin Li }
6481*67e74705SXin Li 
test_mm_mask_cvt_roundsd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128d __B)6482*67e74705SXin Li __m128 test_mm_mask_cvt_roundsd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128d __B) {
6483*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_cvt_roundsd_ss
6484*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
6485*67e74705SXin Li   return _mm_mask_cvt_roundsd_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6486*67e74705SXin Li }
6487*67e74705SXin Li 
test_mm_maskz_cvt_roundsd_ss(__mmask8 __U,__m128 __A,__m128d __B)6488*67e74705SXin Li __m128 test_mm_maskz_cvt_roundsd_ss(__mmask8 __U, __m128 __A, __m128d __B) {
6489*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_cvt_roundsd_ss
6490*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
6491*67e74705SXin Li   return _mm_maskz_cvt_roundsd_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6492*67e74705SXin Li }
6493*67e74705SXin Li 
test_mm_cvt_roundi64_sd(__m128d __A,long long __B)6494*67e74705SXin Li __m128d test_mm_cvt_roundi64_sd(__m128d __A, long long __B) {
6495*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundi64_sd
6496*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtsi2sd64
6497*67e74705SXin Li   return _mm_cvt_roundi64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6498*67e74705SXin Li }
6499*67e74705SXin Li 
test_mm_cvt_roundsi64_sd(__m128d __A,long long __B)6500*67e74705SXin Li __m128d test_mm_cvt_roundsi64_sd(__m128d __A, long long __B) {
6501*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundsi64_sd
6502*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtsi2sd64
6503*67e74705SXin Li   return _mm_cvt_roundsi64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6504*67e74705SXin Li }
6505*67e74705SXin Li 
test_mm_cvt_roundsi32_ss(__m128 __A,int __B)6506*67e74705SXin Li __m128 test_mm_cvt_roundsi32_ss(__m128 __A, int __B) {
6507*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundsi32_ss
6508*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtsi2ss32
6509*67e74705SXin Li   return _mm_cvt_roundsi32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6510*67e74705SXin Li }
6511*67e74705SXin Li 
test_mm_cvt_roundi32_ss(__m128 __A,int __B)6512*67e74705SXin Li __m128 test_mm_cvt_roundi32_ss(__m128 __A, int __B) {
6513*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundi32_ss
6514*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtsi2ss32
6515*67e74705SXin Li   return _mm_cvt_roundi32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6516*67e74705SXin Li }
6517*67e74705SXin Li 
test_mm_cvt_roundsi64_ss(__m128 __A,long long __B)6518*67e74705SXin Li __m128 test_mm_cvt_roundsi64_ss(__m128 __A, long long __B) {
6519*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundsi64_ss
6520*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtsi2ss64
6521*67e74705SXin Li   return _mm_cvt_roundsi64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6522*67e74705SXin Li }
6523*67e74705SXin Li 
test_mm_cvt_roundi64_ss(__m128 __A,long long __B)6524*67e74705SXin Li __m128 test_mm_cvt_roundi64_ss(__m128 __A, long long __B) {
6525*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundi64_ss
6526*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtsi2ss64
6527*67e74705SXin Li   return _mm_cvt_roundi64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6528*67e74705SXin Li }
6529*67e74705SXin Li 
test_mm_cvt_roundss_sd(__m128d __A,__m128 __B)6530*67e74705SXin Li __m128d test_mm_cvt_roundss_sd(__m128d __A, __m128 __B) {
6531*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundss_sd
6532*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
6533*67e74705SXin Li   return _mm_cvt_roundss_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6534*67e74705SXin Li }
6535*67e74705SXin Li 
test_mm_mask_cvt_roundss_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128 __B)6536*67e74705SXin Li __m128d test_mm_mask_cvt_roundss_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128 __B) {
6537*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_cvt_roundss_sd
6538*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
6539*67e74705SXin Li   return _mm_mask_cvt_roundss_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6540*67e74705SXin Li }
6541*67e74705SXin Li 
test_mm_maskz_cvt_roundss_sd(__mmask8 __U,__m128d __A,__m128 __B)6542*67e74705SXin Li __m128d test_mm_maskz_cvt_roundss_sd( __mmask8 __U, __m128d __A, __m128 __B) {
6543*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_cvt_roundss_sd
6544*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
6545*67e74705SXin Li   return _mm_maskz_cvt_roundss_sd( __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6546*67e74705SXin Li }
6547*67e74705SXin Li 
test_mm_cvtu32_sd(__m128d __A,unsigned __B)6548*67e74705SXin Li __m128d test_mm_cvtu32_sd(__m128d __A, unsigned __B) {
6549*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtu32_sd
6550*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtusi2sd
6551*67e74705SXin Li   return _mm_cvtu32_sd(__A, __B);
6552*67e74705SXin Li }
6553*67e74705SXin Li 
test_mm_cvt_roundu64_sd(__m128d __A,unsigned long long __B)6554*67e74705SXin Li __m128d test_mm_cvt_roundu64_sd(__m128d __A, unsigned long long __B) {
6555*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundu64_sd
6556*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtusi642sd
6557*67e74705SXin Li   return _mm_cvt_roundu64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6558*67e74705SXin Li }
6559*67e74705SXin Li 
test_mm_cvtu64_sd(__m128d __A,unsigned long long __B)6560*67e74705SXin Li __m128d test_mm_cvtu64_sd(__m128d __A, unsigned long long __B) {
6561*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtu64_sd
6562*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtusi642sd
6563*67e74705SXin Li   return _mm_cvtu64_sd(__A, __B);
6564*67e74705SXin Li }
6565*67e74705SXin Li 
test_mm_cvt_roundu32_ss(__m128 __A,unsigned __B)6566*67e74705SXin Li __m128 test_mm_cvt_roundu32_ss(__m128 __A, unsigned __B) {
6567*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundu32_ss
6568*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtusi2ss
6569*67e74705SXin Li   return _mm_cvt_roundu32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6570*67e74705SXin Li }
6571*67e74705SXin Li 
test_mm_cvtu32_ss(__m128 __A,unsigned __B)6572*67e74705SXin Li __m128 test_mm_cvtu32_ss(__m128 __A, unsigned __B) {
6573*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtu32_ss
6574*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtusi2ss
6575*67e74705SXin Li   return _mm_cvtu32_ss(__A, __B);
6576*67e74705SXin Li }
6577*67e74705SXin Li 
test_mm_cvt_roundu64_ss(__m128 __A,unsigned long long __B)6578*67e74705SXin Li __m128 test_mm_cvt_roundu64_ss(__m128 __A, unsigned long long __B) {
6579*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvt_roundu64_ss
6580*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtusi642ss
6581*67e74705SXin Li     return _mm_cvt_roundu64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6582*67e74705SXin Li }
6583*67e74705SXin Li 
test_mm_cvtu64_ss(__m128 __A,unsigned long long __B)6584*67e74705SXin Li __m128 test_mm_cvtu64_ss(__m128 __A, unsigned long long __B) {
6585*67e74705SXin Li   // CHECK-LABEL: @test_mm_cvtu64_ss
6586*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtusi642ss
6587*67e74705SXin Li   return _mm_cvtu64_ss(__A, __B);
6588*67e74705SXin Li }
6589*67e74705SXin Li 
test_mm512_mask_cvttps_epu32(__m512i __W,__mmask16 __U,__m512 __A)6590*67e74705SXin Li __m512i test_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
6591*67e74705SXin Li {
6592*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvttps_epu32
6593*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
6594*67e74705SXin Li   return _mm512_mask_cvttps_epu32 (__W,__U,__A);
6595*67e74705SXin Li }
6596*67e74705SXin Li 
test_mm512_maskz_cvttps_epu32(__mmask16 __U,__m512 __A)6597*67e74705SXin Li __m512i test_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A)
6598*67e74705SXin Li {
6599*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvttps_epu32
6600*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
6601*67e74705SXin Li   return _mm512_maskz_cvttps_epu32 (__U,__A);
6602*67e74705SXin Li }
6603*67e74705SXin Li 
test_mm512_cvtepu32_ps(__m512i __A)6604*67e74705SXin Li __m512 test_mm512_cvtepu32_ps (__m512i __A)
6605*67e74705SXin Li {
6606*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepu32_ps
6607*67e74705SXin Li   // CHECK:  @llvm.x86.avx512.mask.cvtudq2ps.512
6608*67e74705SXin Li   return _mm512_cvtepu32_ps (__A);
6609*67e74705SXin Li }
6610*67e74705SXin Li 
test_mm512_mask_cvtepu32_ps(__m512 __W,__mmask16 __U,__m512i __A)6611*67e74705SXin Li __m512 test_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A)
6612*67e74705SXin Li {
6613*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepu32_ps
6614*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
6615*67e74705SXin Li   return _mm512_mask_cvtepu32_ps (__W,__U,__A);
6616*67e74705SXin Li }
6617*67e74705SXin Li 
test_mm512_maskz_cvtepu32_ps(__mmask16 __U,__m512i __A)6618*67e74705SXin Li __m512 test_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A)
6619*67e74705SXin Li {
6620*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepu32_ps
6621*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
6622*67e74705SXin Li   return _mm512_maskz_cvtepu32_ps (__U,__A);
6623*67e74705SXin Li }
6624*67e74705SXin Li 
test_mm512_mask_cvtepi32_pd(__m512d __W,__mmask8 __U,__m256i __A)6625*67e74705SXin Li __m512d test_mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A)
6626*67e74705SXin Li {
6627*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi32_pd
6628*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.512
6629*67e74705SXin Li   return _mm512_mask_cvtepi32_pd (__W,__U,__A);
6630*67e74705SXin Li }
6631*67e74705SXin Li 
test_mm512_maskz_cvtepi32_pd(__mmask8 __U,__m256i __A)6632*67e74705SXin Li __m512d test_mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A)
6633*67e74705SXin Li {
6634*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_pd
6635*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.512
6636*67e74705SXin Li   return _mm512_maskz_cvtepi32_pd (__U,__A);
6637*67e74705SXin Li }
6638*67e74705SXin Li 
test_mm512_cvtepi32_ps(__m512i __A)6639*67e74705SXin Li __m512 test_mm512_cvtepi32_ps (__m512i __A)
6640*67e74705SXin Li {
6641*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi32_ps
6642*67e74705SXin Li   // CHECK:  @llvm.x86.avx512.mask.cvtdq2ps.512
6643*67e74705SXin Li   return _mm512_cvtepi32_ps (__A);
6644*67e74705SXin Li }
6645*67e74705SXin Li 
test_mm512_mask_cvtepi32_ps(__m512 __W,__mmask16 __U,__m512i __A)6646*67e74705SXin Li __m512 test_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A)
6647*67e74705SXin Li {
6648*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi32_ps
6649*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
6650*67e74705SXin Li   return _mm512_mask_cvtepi32_ps (__W,__U,__A);
6651*67e74705SXin Li }
6652*67e74705SXin Li 
test_mm512_maskz_cvtepi32_ps(__mmask16 __U,__m512i __A)6653*67e74705SXin Li __m512 test_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A)
6654*67e74705SXin Li {
6655*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_ps
6656*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
6657*67e74705SXin Li   return _mm512_maskz_cvtepi32_ps (__U,__A);
6658*67e74705SXin Li }
6659*67e74705SXin Li 
test_mm512_mask_cvtepu32_pd(__m512d __W,__mmask8 __U,__m256i __A)6660*67e74705SXin Li __m512d test_mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A)
6661*67e74705SXin Li {
6662*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepu32_pd
6663*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.512
6664*67e74705SXin Li   return _mm512_mask_cvtepu32_pd (__W,__U,__A);
6665*67e74705SXin Li }
6666*67e74705SXin Li 
test_mm512_maskz_cvtepu32_pd(__mmask8 __U,__m256i __A)6667*67e74705SXin Li __m512d test_mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A)
6668*67e74705SXin Li {
6669*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepu32_pd
6670*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.512
6671*67e74705SXin Li   return _mm512_maskz_cvtepu32_pd (__U,__A);
6672*67e74705SXin Li }
6673*67e74705SXin Li 
test_mm512_cvtpd_ps(__m512d __A)6674*67e74705SXin Li __m256 test_mm512_cvtpd_ps (__m512d __A)
6675*67e74705SXin Li {
6676*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtpd_ps
6677*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
6678*67e74705SXin Li   return _mm512_cvtpd_ps (__A);
6679*67e74705SXin Li }
6680*67e74705SXin Li 
test_mm512_mask_cvtpd_ps(__m256 __W,__mmask8 __U,__m512d __A)6681*67e74705SXin Li __m256 test_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A)
6682*67e74705SXin Li {
6683*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtpd_ps
6684*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
6685*67e74705SXin Li   return _mm512_mask_cvtpd_ps (__W,__U,__A);
6686*67e74705SXin Li }
6687*67e74705SXin Li 
test_mm512_maskz_cvtpd_ps(__mmask8 __U,__m512d __A)6688*67e74705SXin Li __m256 test_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A)
6689*67e74705SXin Li {
6690*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtpd_ps
6691*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
6692*67e74705SXin Li   return _mm512_maskz_cvtpd_ps (__U,__A);
6693*67e74705SXin Li }
6694*67e74705SXin Li 
test_mm512_mask_cvtph_ps(__m512 __W,__mmask16 __U,__m256i __A)6695*67e74705SXin Li __m512 test_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A)
6696*67e74705SXin Li {
6697*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtph_ps
6698*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
6699*67e74705SXin Li   return _mm512_mask_cvtph_ps (__W,__U,__A);
6700*67e74705SXin Li }
6701*67e74705SXin Li 
test_mm512_maskz_cvtph_ps(__mmask16 __U,__m256i __A)6702*67e74705SXin Li __m512 test_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A)
6703*67e74705SXin Li {
6704*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtph_ps
6705*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
6706*67e74705SXin Li   return _mm512_maskz_cvtph_ps (__U,__A);
6707*67e74705SXin Li }
6708*67e74705SXin Li 
test_mm512_mask_cvttpd_epi32(__m256i __W,__mmask8 __U,__m512d __A)6709*67e74705SXin Li __m256i test_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
6710*67e74705SXin Li {
6711*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvttpd_epi32
6712*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
6713*67e74705SXin Li   return _mm512_mask_cvttpd_epi32 (__W,__U,__A);
6714*67e74705SXin Li }
6715*67e74705SXin Li 
test_mm512_maskz_cvttpd_epi32(__mmask8 __U,__m512d __A)6716*67e74705SXin Li __m256i test_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A)
6717*67e74705SXin Li {
6718*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvttpd_epi32
6719*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
6720*67e74705SXin Li   return _mm512_maskz_cvttpd_epi32 (__U,__A);
6721*67e74705SXin Li }
6722*67e74705SXin Li 
test_mm512_mask_cvttps_epi32(__m512i __W,__mmask16 __U,__m512 __A)6723*67e74705SXin Li __m512i test_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
6724*67e74705SXin Li {
6725*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvttps_epi32
6726*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
6727*67e74705SXin Li   return _mm512_mask_cvttps_epi32 (__W,__U,__A);
6728*67e74705SXin Li }
6729*67e74705SXin Li 
test_mm512_maskz_cvttps_epi32(__mmask16 __U,__m512 __A)6730*67e74705SXin Li __m512i test_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A)
6731*67e74705SXin Li {
6732*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvttps_epi32
6733*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
6734*67e74705SXin Li   return _mm512_maskz_cvttps_epi32 (__U,__A);
6735*67e74705SXin Li }
6736*67e74705SXin Li 
test_mm512_cvtps_epi32(__m512 __A)6737*67e74705SXin Li __m512i test_mm512_cvtps_epi32 (__m512 __A)
6738*67e74705SXin Li {
6739*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtps_epi32
6740*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
6741*67e74705SXin Li   return _mm512_cvtps_epi32 (__A);
6742*67e74705SXin Li }
6743*67e74705SXin Li 
test_mm512_mask_cvtps_epi32(__m512i __W,__mmask16 __U,__m512 __A)6744*67e74705SXin Li __m512i test_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
6745*67e74705SXin Li {
6746*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtps_epi32
6747*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
6748*67e74705SXin Li   return _mm512_mask_cvtps_epi32 (__W,__U,__A);
6749*67e74705SXin Li }
6750*67e74705SXin Li 
test_mm512_maskz_cvtps_epi32(__mmask16 __U,__m512 __A)6751*67e74705SXin Li __m512i test_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A)
6752*67e74705SXin Li {
6753*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtps_epi32
6754*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
6755*67e74705SXin Li   return _mm512_maskz_cvtps_epi32 (__U,__A);
6756*67e74705SXin Li }
6757*67e74705SXin Li 
test_mm512_cvtpd_epi32(__m512d __A)6758*67e74705SXin Li __m256i test_mm512_cvtpd_epi32 (__m512d __A)
6759*67e74705SXin Li {
6760*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtpd_epi32
6761*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
6762*67e74705SXin Li   return _mm512_cvtpd_epi32 (__A);
6763*67e74705SXin Li }
6764*67e74705SXin Li 
test_mm512_mask_cvtpd_epi32(__m256i __W,__mmask8 __U,__m512d __A)6765*67e74705SXin Li __m256i test_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
6766*67e74705SXin Li {
6767*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtpd_epi32
6768*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
6769*67e74705SXin Li   return _mm512_mask_cvtpd_epi32 (__W,__U,__A);
6770*67e74705SXin Li }
6771*67e74705SXin Li 
test_mm512_maskz_cvtpd_epi32(__mmask8 __U,__m512d __A)6772*67e74705SXin Li __m256i test_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A)
6773*67e74705SXin Li {
6774*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtpd_epi32
6775*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
6776*67e74705SXin Li   return _mm512_maskz_cvtpd_epi32 (__U,__A);
6777*67e74705SXin Li }
6778*67e74705SXin Li 
test_mm512_cvtpd_epu32(__m512d __A)6779*67e74705SXin Li __m256i test_mm512_cvtpd_epu32 (__m512d __A)
6780*67e74705SXin Li {
6781*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtpd_epu32
6782*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
6783*67e74705SXin Li   return _mm512_cvtpd_epu32 (__A);
6784*67e74705SXin Li }
6785*67e74705SXin Li 
test_mm512_mask_cvtpd_epu32(__m256i __W,__mmask8 __U,__m512d __A)6786*67e74705SXin Li __m256i test_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
6787*67e74705SXin Li {
6788*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtpd_epu32
6789*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
6790*67e74705SXin Li   return _mm512_mask_cvtpd_epu32 (__W,__U,__A);
6791*67e74705SXin Li }
6792*67e74705SXin Li 
test_mm512_maskz_cvtpd_epu32(__mmask8 __U,__m512d __A)6793*67e74705SXin Li __m256i test_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A)
6794*67e74705SXin Li {
6795*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtpd_epu32
6796*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
6797*67e74705SXin Li   return _mm512_maskz_cvtpd_epu32 (__U,__A);
6798*67e74705SXin Li }
6799*67e74705SXin Li 
test_mm512_mask_cvtps_ph(__m256i src,__mmask16 k,__m512 a)6800*67e74705SXin Li __m256i test_mm512_mask_cvtps_ph(__m256i src, __mmask16 k, __m512 a)
6801*67e74705SXin Li {
6802*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtps_ph
6803*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
6804*67e74705SXin Li   return _mm512_mask_cvtps_ph(src, k, a,_MM_FROUND_CUR_DIRECTION);
6805*67e74705SXin Li }
6806*67e74705SXin Li 
test_mm512_maskz_cvtps_ph(__mmask16 k,__m512 a)6807*67e74705SXin Li __m256i test_mm512_maskz_cvtps_ph (__mmask16 k, __m512 a)
6808*67e74705SXin Li {
6809*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtps_ph
6810*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
6811*67e74705SXin Li   return _mm512_maskz_cvtps_ph( k, a,_MM_FROUND_CUR_DIRECTION);
6812*67e74705SXin Li }
6813*67e74705SXin Li 
test_mm512_cvtps_epu32(__m512 __A)6814*67e74705SXin Li __m512i test_mm512_cvtps_epu32 ( __m512 __A)
6815*67e74705SXin Li {
6816*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtps_epu32
6817*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
6818*67e74705SXin Li   return _mm512_cvtps_epu32(__A);
6819*67e74705SXin Li }
6820*67e74705SXin Li 
test_mm512_mask_cvtps_epu32(__m512i __W,__mmask16 __U,__m512 __A)6821*67e74705SXin Li __m512i test_mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
6822*67e74705SXin Li {
6823*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtps_epu32
6824*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
6825*67e74705SXin Li   return _mm512_mask_cvtps_epu32( __W, __U, __A);
6826*67e74705SXin Li }
test_mm512_maskz_cvtps_epu32(__mmask16 __U,__m512 __A)6827*67e74705SXin Li __m512i test_mm512_maskz_cvtps_epu32 (__mmask16 __U, __m512 __A)
6828*67e74705SXin Li {
6829*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtps_epu32
6830*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
6831*67e74705SXin Li   return _mm512_maskz_cvtps_epu32( __U, __A);
6832*67e74705SXin Li }
6833*67e74705SXin Li 
test_mm512_mask_max_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)6834*67e74705SXin Li __m512d test_mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
6835*67e74705SXin Li {
6836*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_pd
6837*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.pd.512
6838*67e74705SXin Li   return _mm512_mask_max_pd (__W,__U,__A,__B);
6839*67e74705SXin Li }
6840*67e74705SXin Li 
test_mm512_maskz_max_pd(__mmask8 __U,__m512d __A,__m512d __B)6841*67e74705SXin Li __m512d test_mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B)
6842*67e74705SXin Li {
6843*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_pd
6844*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.pd.512
6845*67e74705SXin Li   return _mm512_maskz_max_pd (__U,__A,__B);
6846*67e74705SXin Li }
6847*67e74705SXin Li 
test_mm512_mask_max_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)6848*67e74705SXin Li __m512 test_mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
6849*67e74705SXin Li {
6850*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_ps
6851*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.ps.512
6852*67e74705SXin Li   return _mm512_mask_max_ps (__W,__U,__A,__B);
6853*67e74705SXin Li }
6854*67e74705SXin Li 
test_mm512_mask_max_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)6855*67e74705SXin Li __m512d test_mm512_mask_max_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)
6856*67e74705SXin Li {
6857*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_round_pd
6858*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.pd.512
6859*67e74705SXin Li   return _mm512_mask_max_round_pd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6860*67e74705SXin Li }
6861*67e74705SXin Li 
test_mm512_maskz_max_round_pd(__mmask8 __U,__m512d __A,__m512d __B)6862*67e74705SXin Li __m512d test_mm512_maskz_max_round_pd(__mmask8 __U,__m512d __A,__m512d __B)
6863*67e74705SXin Li {
6864*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_round_pd
6865*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.pd.512
6866*67e74705SXin Li   return _mm512_maskz_max_round_pd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6867*67e74705SXin Li }
6868*67e74705SXin Li 
test_mm512_max_round_pd(__m512d __A,__m512d __B)6869*67e74705SXin Li __m512d test_mm512_max_round_pd(__m512d __A,__m512d __B)
6870*67e74705SXin Li {
6871*67e74705SXin Li   // CHECK-LABEL: @test_mm512_max_round_pd
6872*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.pd.512
6873*67e74705SXin Li   return _mm512_max_round_pd(__A,__B,_MM_FROUND_CUR_DIRECTION);
6874*67e74705SXin Li }
6875*67e74705SXin Li 
test_mm512_maskz_max_ps(__mmask16 __U,__m512 __A,__m512 __B)6876*67e74705SXin Li __m512 test_mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B)
6877*67e74705SXin Li {
6878*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_ps
6879*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.ps.512
6880*67e74705SXin Li   return _mm512_maskz_max_ps (__U,__A,__B);
6881*67e74705SXin Li }
6882*67e74705SXin Li 
test_mm512_mask_max_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)6883*67e74705SXin Li __m512 test_mm512_mask_max_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)
6884*67e74705SXin Li {
6885*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_round_ps
6886*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.ps.512
6887*67e74705SXin Li   return _mm512_mask_max_round_ps(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6888*67e74705SXin Li }
6889*67e74705SXin Li 
test_mm512_maskz_max_round_ps(__mmask16 __U,__m512 __A,__m512 __B)6890*67e74705SXin Li __m512 test_mm512_maskz_max_round_ps(__mmask16 __U,__m512 __A,__m512 __B)
6891*67e74705SXin Li {
6892*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_round_ps
6893*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.ps.512
6894*67e74705SXin Li   return _mm512_maskz_max_round_ps(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6895*67e74705SXin Li }
6896*67e74705SXin Li 
test_mm512_max_round_ps(__m512 __A,__m512 __B)6897*67e74705SXin Li __m512 test_mm512_max_round_ps(__m512 __A,__m512 __B)
6898*67e74705SXin Li {
6899*67e74705SXin Li   // CHECK-LABEL: @test_mm512_max_round_ps
6900*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.max.ps.512
6901*67e74705SXin Li   return _mm512_max_round_ps(__A,__B,_MM_FROUND_CUR_DIRECTION);
6902*67e74705SXin Li }
6903*67e74705SXin Li 
test_mm512_mask_min_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)6904*67e74705SXin Li __m512d test_mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
6905*67e74705SXin Li {
6906*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_pd
6907*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.pd.512
6908*67e74705SXin Li   return _mm512_mask_min_pd (__W,__U,__A,__B);
6909*67e74705SXin Li }
6910*67e74705SXin Li 
test_mm512_maskz_min_pd(__mmask8 __U,__m512d __A,__m512d __B)6911*67e74705SXin Li __m512d test_mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B)
6912*67e74705SXin Li {
6913*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_pd
6914*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.pd.512
6915*67e74705SXin Li   return _mm512_maskz_min_pd (__U,__A,__B);
6916*67e74705SXin Li }
6917*67e74705SXin Li 
test_mm512_mask_min_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)6918*67e74705SXin Li __m512d test_mm512_mask_min_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)
6919*67e74705SXin Li {
6920*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_round_pd
6921*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.pd.512
6922*67e74705SXin Li   return _mm512_mask_min_round_pd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6923*67e74705SXin Li }
6924*67e74705SXin Li 
test_mm512_maskz_min_round_pd(__mmask8 __U,__m512d __A,__m512d __B)6925*67e74705SXin Li __m512d test_mm512_maskz_min_round_pd(__mmask8 __U,__m512d __A,__m512d __B)
6926*67e74705SXin Li {
6927*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_round_pd
6928*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.pd.512
6929*67e74705SXin Li   return _mm512_maskz_min_round_pd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6930*67e74705SXin Li }
6931*67e74705SXin Li 
test_mm512_min_round_pd(__m512d __A,__m512d __B)6932*67e74705SXin Li __m512d test_mm512_min_round_pd( __m512d __A,__m512d __B)
6933*67e74705SXin Li {
6934*67e74705SXin Li   // CHECK-LABEL: @test_mm512_min_round_pd
6935*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.pd.512
6936*67e74705SXin Li   return _mm512_min_round_pd(__A,__B,_MM_FROUND_CUR_DIRECTION);
6937*67e74705SXin Li }
6938*67e74705SXin Li 
test_mm512_mask_min_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)6939*67e74705SXin Li __m512 test_mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
6940*67e74705SXin Li {
6941*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_ps
6942*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.ps.512
6943*67e74705SXin Li   return _mm512_mask_min_ps (__W,__U,__A,__B);
6944*67e74705SXin Li }
6945*67e74705SXin Li 
test_mm512_maskz_min_ps(__mmask16 __U,__m512 __A,__m512 __B)6946*67e74705SXin Li __m512 test_mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B)
6947*67e74705SXin Li {
6948*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_ps
6949*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.ps.512
6950*67e74705SXin Li   return _mm512_maskz_min_ps (__U,__A,__B);
6951*67e74705SXin Li }
6952*67e74705SXin Li 
test_mm512_mask_min_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)6953*67e74705SXin Li __m512 test_mm512_mask_min_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)
6954*67e74705SXin Li {
6955*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_round_ps
6956*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.ps.512
6957*67e74705SXin Li   return _mm512_mask_min_round_ps(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6958*67e74705SXin Li }
6959*67e74705SXin Li 
test_mm512_maskz_min_round_ps(__mmask16 __U,__m512 __A,__m512 __B)6960*67e74705SXin Li __m512 test_mm512_maskz_min_round_ps(__mmask16 __U,__m512 __A,__m512 __B)
6961*67e74705SXin Li {
6962*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_round_ps
6963*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.ps.512
6964*67e74705SXin Li   return _mm512_maskz_min_round_ps(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6965*67e74705SXin Li }
6966*67e74705SXin Li 
test_mm512_min_round_ps(__m512 __A,__m512 __B)6967*67e74705SXin Li __m512 test_mm512_min_round_ps(__m512 __A,__m512 __B)
6968*67e74705SXin Li {
6969*67e74705SXin Li   // CHECK-LABEL: @test_mm512_min_round_ps
6970*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.min.ps.512
6971*67e74705SXin Li   return _mm512_min_round_ps(__A,__B,_MM_FROUND_CUR_DIRECTION);
6972*67e74705SXin Li }
6973*67e74705SXin Li 
test_mm512_mask_floor_ps(__m512 __W,__mmask16 __U,__m512 __A)6974*67e74705SXin Li __m512 test_mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A)
6975*67e74705SXin Li {
6976*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_floor_ps
6977*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
6978*67e74705SXin Li   return _mm512_mask_floor_ps (__W,__U,__A);
6979*67e74705SXin Li }
6980*67e74705SXin Li 
test_mm512_mask_floor_pd(__m512d __W,__mmask8 __U,__m512d __A)6981*67e74705SXin Li __m512d test_mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A)
6982*67e74705SXin Li {
6983*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_floor_pd
6984*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
6985*67e74705SXin Li   return _mm512_mask_floor_pd (__W,__U,__A);
6986*67e74705SXin Li }
6987*67e74705SXin Li 
test_mm512_mask_ceil_ps(__m512 __W,__mmask16 __U,__m512 __A)6988*67e74705SXin Li __m512 test_mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A)
6989*67e74705SXin Li {
6990*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_ceil_ps
6991*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
6992*67e74705SXin Li   return _mm512_mask_ceil_ps (__W,__U,__A);
6993*67e74705SXin Li }
6994*67e74705SXin Li 
test_mm512_mask_ceil_pd(__m512d __W,__mmask8 __U,__m512d __A)6995*67e74705SXin Li __m512d test_mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A)
6996*67e74705SXin Li {
6997*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_ceil_pd
6998*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
6999*67e74705SXin Li   return _mm512_mask_ceil_pd (__W,__U,__A);
7000*67e74705SXin Li }
7001*67e74705SXin Li 
test_mm512_mask_roundscale_ps(__m512 __W,__mmask16 __U,__m512 __A)7002*67e74705SXin Li __m512 test_mm512_mask_roundscale_ps(__m512 __W, __mmask16 __U, __m512 __A)
7003*67e74705SXin Li {
7004*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_roundscale_ps
7005*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7006*67e74705SXin Li   return _mm512_mask_roundscale_ps(__W,__U,__A, 1);
7007*67e74705SXin Li }
7008*67e74705SXin Li 
test_mm512_maskz_roundscale_ps(__mmask16 __U,__m512 __A)7009*67e74705SXin Li __m512 test_mm512_maskz_roundscale_ps(__mmask16 __U, __m512 __A)
7010*67e74705SXin Li {
7011*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_roundscale_ps
7012*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7013*67e74705SXin Li   return _mm512_maskz_roundscale_ps(__U,__A, 1);
7014*67e74705SXin Li }
7015*67e74705SXin Li 
test_mm512_mask_roundscale_round_ps(__m512 __A,__mmask16 __U,__m512 __C)7016*67e74705SXin Li __m512 test_mm512_mask_roundscale_round_ps(__m512 __A,__mmask16 __U,__m512 __C)
7017*67e74705SXin Li {
7018*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_roundscale_round_ps
7019*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7020*67e74705SXin Li   return _mm512_mask_roundscale_round_ps(__A,__U,__C,3,_MM_FROUND_CUR_DIRECTION);
7021*67e74705SXin Li }
7022*67e74705SXin Li 
test_mm512_maskz_roundscale_round_ps(__m512 __A,__mmask16 __U)7023*67e74705SXin Li __m512 test_mm512_maskz_roundscale_round_ps(__m512 __A,__mmask16 __U)
7024*67e74705SXin Li {
7025*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_roundscale_round_ps
7026*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7027*67e74705SXin Li   return _mm512_maskz_roundscale_round_ps(__U,__A,3,_MM_FROUND_CUR_DIRECTION);
7028*67e74705SXin Li }
7029*67e74705SXin Li 
test_mm512_roundscale_round_ps(__m512 __A)7030*67e74705SXin Li __m512 test_mm512_roundscale_round_ps(__m512 __A)
7031*67e74705SXin Li {
7032*67e74705SXin Li   // CHECK-LABEL: @test_mm512_roundscale_round_ps
7033*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7034*67e74705SXin Li   return _mm512_roundscale_round_ps(__A,3,_MM_FROUND_CUR_DIRECTION);
7035*67e74705SXin Li }
7036*67e74705SXin Li 
test_mm512_mask_roundscale_pd(__m512d __W,__mmask8 __U,__m512d __A)7037*67e74705SXin Li __m512d test_mm512_mask_roundscale_pd(__m512d __W, __mmask8 __U, __m512d __A)
7038*67e74705SXin Li {
7039*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_roundscale_pd
7040*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7041*67e74705SXin Li   return _mm512_mask_roundscale_pd(__W,__U,__A, 1);
7042*67e74705SXin Li }
7043*67e74705SXin Li 
test_mm512_maskz_roundscale_pd(__mmask8 __U,__m512d __A)7044*67e74705SXin Li __m512d test_mm512_maskz_roundscale_pd(__mmask8 __U, __m512d __A)
7045*67e74705SXin Li {
7046*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_roundscale_pd
7047*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7048*67e74705SXin Li   return _mm512_maskz_roundscale_pd(__U,__A, 1);
7049*67e74705SXin Li }
7050*67e74705SXin Li 
test_mm512_mask_roundscale_round_pd(__m512d __A,__mmask8 __U,__m512d __C)7051*67e74705SXin Li __m512d test_mm512_mask_roundscale_round_pd(__m512d __A,__mmask8 __U,__m512d __C)
7052*67e74705SXin Li {
7053*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_roundscale_round_pd
7054*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7055*67e74705SXin Li   return _mm512_mask_roundscale_round_pd(__A,__U,__C,3,_MM_FROUND_CUR_DIRECTION);
7056*67e74705SXin Li }
7057*67e74705SXin Li 
test_mm512_maskz_roundscale_round_pd(__m512d __A,__mmask8 __U)7058*67e74705SXin Li __m512d test_mm512_maskz_roundscale_round_pd(__m512d __A,__mmask8 __U)
7059*67e74705SXin Li {
7060*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_roundscale_round_pd
7061*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7062*67e74705SXin Li   return _mm512_maskz_roundscale_round_pd(__U,__A,3,_MM_FROUND_CUR_DIRECTION);
7063*67e74705SXin Li }
7064*67e74705SXin Li 
test_mm512_roundscale_round_pd(__m512d __A)7065*67e74705SXin Li __m512d test_mm512_roundscale_round_pd(__m512d __A)
7066*67e74705SXin Li {
7067*67e74705SXin Li   // CHECK-LABEL: @test_mm512_roundscale_round_pd
7068*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7069*67e74705SXin Li   return _mm512_roundscale_round_pd(__A,3,_MM_FROUND_CUR_DIRECTION);
7070*67e74705SXin Li }
7071*67e74705SXin Li 
test_mm512_mask_max_epi32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)7072*67e74705SXin Li __m512i test_mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7073*67e74705SXin Li {
7074*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_epi32
7075*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxs.d.512
7076*67e74705SXin Li   return _mm512_mask_max_epi32 (__W,__M,__A,__B);
7077*67e74705SXin Li }
7078*67e74705SXin Li 
test_mm512_maskz_max_epi32(__mmask16 __M,__m512i __A,__m512i __B)7079*67e74705SXin Li __m512i test_mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
7080*67e74705SXin Li {
7081*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_epi32
7082*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxs.d.512
7083*67e74705SXin Li   return _mm512_maskz_max_epi32 (__M,__A,__B);
7084*67e74705SXin Li }
7085*67e74705SXin Li 
test_mm512_mask_max_epi64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)7086*67e74705SXin Li __m512i test_mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7087*67e74705SXin Li {
7088*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_epi64
7089*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.512
7090*67e74705SXin Li   return _mm512_mask_max_epi64 (__W,__M,__A,__B);
7091*67e74705SXin Li }
7092*67e74705SXin Li 
test_mm512_maskz_max_epi64(__mmask8 __M,__m512i __A,__m512i __B)7093*67e74705SXin Li __m512i test_mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
7094*67e74705SXin Li {
7095*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_epi64
7096*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.512
7097*67e74705SXin Li   return _mm512_maskz_max_epi64 (__M,__A,__B);
7098*67e74705SXin Li }
7099*67e74705SXin Li 
test_mm512_mask_max_epu64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)7100*67e74705SXin Li __m512i test_mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7101*67e74705SXin Li {
7102*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_epu64
7103*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.512
7104*67e74705SXin Li   return _mm512_mask_max_epu64 (__W,__M,__A,__B);
7105*67e74705SXin Li }
7106*67e74705SXin Li 
test_mm512_maskz_max_epu64(__mmask8 __M,__m512i __A,__m512i __B)7107*67e74705SXin Li __m512i test_mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
7108*67e74705SXin Li {
7109*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_epu64
7110*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.512
7111*67e74705SXin Li   return _mm512_maskz_max_epu64 (__M,__A,__B);
7112*67e74705SXin Li }
7113*67e74705SXin Li 
test_mm512_mask_max_epu32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)7114*67e74705SXin Li __m512i test_mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7115*67e74705SXin Li {
7116*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_epu32
7117*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxu.d.512
7118*67e74705SXin Li   return _mm512_mask_max_epu32 (__W,__M,__A,__B);
7119*67e74705SXin Li }
7120*67e74705SXin Li 
test_mm512_maskz_max_epu32(__mmask16 __M,__m512i __A,__m512i __B)7121*67e74705SXin Li __m512i test_mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
7122*67e74705SXin Li {
7123*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_epu32
7124*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxu.d.512
7125*67e74705SXin Li   return _mm512_maskz_max_epu32 (__M,__A,__B);
7126*67e74705SXin Li }
7127*67e74705SXin Li 
test_mm512_mask_min_epi32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)7128*67e74705SXin Li __m512i test_mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7129*67e74705SXin Li {
7130*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_epi32
7131*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmins.d.512
7132*67e74705SXin Li   return _mm512_mask_min_epi32 (__W,__M,__A,__B);
7133*67e74705SXin Li }
7134*67e74705SXin Li 
test_mm512_maskz_min_epi32(__mmask16 __M,__m512i __A,__m512i __B)7135*67e74705SXin Li __m512i test_mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
7136*67e74705SXin Li {
7137*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_epi32
7138*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmins.d.512
7139*67e74705SXin Li   return _mm512_maskz_min_epi32 (__M,__A,__B);
7140*67e74705SXin Li }
7141*67e74705SXin Li 
test_mm512_mask_min_epu32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)7142*67e74705SXin Li __m512i test_mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7143*67e74705SXin Li {
7144*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_epu32
7145*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pminu.d.512
7146*67e74705SXin Li   return _mm512_mask_min_epu32 (__W,__M,__A,__B);
7147*67e74705SXin Li }
7148*67e74705SXin Li 
test_mm512_maskz_min_epu32(__mmask16 __M,__m512i __A,__m512i __B)7149*67e74705SXin Li __m512i test_mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
7150*67e74705SXin Li {
7151*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_epu32
7152*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pminu.d.512
7153*67e74705SXin Li   return _mm512_maskz_min_epu32 (__M,__A,__B);
7154*67e74705SXin Li }
7155*67e74705SXin Li 
test_mm512_mask_min_epi64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)7156*67e74705SXin Li __m512i test_mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7157*67e74705SXin Li {
7158*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_epi64
7159*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmins.q.512
7160*67e74705SXin Li   return _mm512_mask_min_epi64 (__W,__M,__A,__B);
7161*67e74705SXin Li }
7162*67e74705SXin Li 
test_mm512_maskz_min_epi64(__mmask8 __M,__m512i __A,__m512i __B)7163*67e74705SXin Li __m512i test_mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
7164*67e74705SXin Li {
7165*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_epi64
7166*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmins.q.512
7167*67e74705SXin Li   return _mm512_maskz_min_epi64 (__M,__A,__B);
7168*67e74705SXin Li }
7169*67e74705SXin Li 
test_mm512_mask_min_epu64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)7170*67e74705SXin Li __m512i test_mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7171*67e74705SXin Li {
7172*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_epu64
7173*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pminu.q.512
7174*67e74705SXin Li   return _mm512_mask_min_epu64 (__W,__M,__A,__B);
7175*67e74705SXin Li }
7176*67e74705SXin Li 
test_mm512_maskz_min_epu64(__mmask8 __M,__m512i __A,__m512i __B)7177*67e74705SXin Li __m512i test_mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
7178*67e74705SXin Li {
7179*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_epu64
7180*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pminu.q.512
7181*67e74705SXin Li   return _mm512_maskz_min_epu64 (__M,__A,__B);
7182*67e74705SXin Li }
7183*67e74705SXin Li 
test_mm512_mask_set1_epi32(__m512i __O,__mmask16 __M,int __A)7184*67e74705SXin Li __m512i test_mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A)
7185*67e74705SXin Li {
7186*67e74705SXin Li     //CHECK-LABEL: @test_mm512_mask_set1_epi32
7187*67e74705SXin Li     //CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.512
7188*67e74705SXin Li   return _mm512_mask_set1_epi32 ( __O, __M, __A);
7189*67e74705SXin Li }
7190*67e74705SXin Li 
test_mm512_set_epi32(int __A,int __B,int __C,int __D,int __E,int __F,int __G,int __H,int __I,int __J,int __K,int __L,int __M,int __N,int __O,int __P)7191*67e74705SXin Li __m512i test_mm512_set_epi32 (int __A, int __B, int __C, int __D,
7192*67e74705SXin Li                int __E, int __F, int __G, int __H,
7193*67e74705SXin Li                int __I, int __J, int __K, int __L,
7194*67e74705SXin Li                int __M, int __N, int __O, int __P)
7195*67e74705SXin Li {
7196*67e74705SXin Li  //CHECK-LABEL: @test_mm512_set_epi32
7197*67e74705SXin Li  //CHECK: insertelement{{.*}}i32 0
7198*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 1
7199*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 2
7200*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 3
7201*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 4
7202*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 5
7203*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 6
7204*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 7
7205*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 8
7206*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 9
7207*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 10
7208*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 11
7209*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 12
7210*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 13
7211*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 14
7212*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 15
7213*67e74705SXin Li  return _mm512_set_epi32( __A, __B, __C, __D,__E, __F, __G, __H,
7214*67e74705SXin Li               __I, __J, __K, __L,__M, __N, __O, __P);
7215*67e74705SXin Li }
7216*67e74705SXin Li 
test_mm512_setr_epi32(int __A,int __B,int __C,int __D,int __E,int __F,int __G,int __H,int __I,int __J,int __K,int __L,int __M,int __N,int __O,int __P)7217*67e74705SXin Li __m512i test_mm512_setr_epi32 (int __A, int __B, int __C, int __D,
7218*67e74705SXin Li                int __E, int __F, int __G, int __H,
7219*67e74705SXin Li                int __I, int __J, int __K, int __L,
7220*67e74705SXin Li                int __M, int __N, int __O, int __P)
7221*67e74705SXin Li {
7222*67e74705SXin Li     //CHECK-LABEL: @test_mm512_setr_epi32
7223*67e74705SXin Li     //CHECK: load{{.*}}%__P.addr, align 4
7224*67e74705SXin Li     //CHECK: load{{.*}}%__O.addr, align 4
7225*67e74705SXin Li     //CHECK: load{{.*}}%__N.addr, align 4
7226*67e74705SXin Li     //CHECK: load{{.*}}%__M.addr, align 4
7227*67e74705SXin Li     //CHECK: load{{.*}}%__L.addr, align 4
7228*67e74705SXin Li     //CHECK: load{{.*}}%__K.addr, align 4
7229*67e74705SXin Li     //CHECK: load{{.*}}%__J.addr, align 4
7230*67e74705SXin Li     //CHECK: load{{.*}}%__I.addr, align 4
7231*67e74705SXin Li     //CHECK: load{{.*}}%__H.addr, align 4
7232*67e74705SXin Li     //CHECK: load{{.*}}%__G.addr, align 4
7233*67e74705SXin Li     //CHECK: load{{.*}}%__F.addr, align 4
7234*67e74705SXin Li     //CHECK: load{{.*}}%__E.addr, align 4
7235*67e74705SXin Li     //CHECK: load{{.*}}%__D.addr, align 4
7236*67e74705SXin Li     //CHECK: load{{.*}}%__C.addr, align 4
7237*67e74705SXin Li     //CHECK: load{{.*}}%__B.addr, align 4
7238*67e74705SXin Li     //CHECK: load{{.*}}%__A.addr, align 4
7239*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 0
7240*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 1
7241*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 2
7242*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 3
7243*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 4
7244*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 5
7245*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 6
7246*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 7
7247*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 8
7248*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 9
7249*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 10
7250*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 11
7251*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 12
7252*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 13
7253*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 14
7254*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 15
7255*67e74705SXin Li  return _mm512_setr_epi32( __A, __B, __C, __D,__E, __F, __G, __H,
7256*67e74705SXin Li               __I, __J, __K, __L,__M, __N, __O, __P);
7257*67e74705SXin Li }
7258*67e74705SXin Li 
test_mm512_mask_set1_epi64(__m512i __O,__mmask8 __M,long long __A)7259*67e74705SXin Li __m512i test_mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A)
7260*67e74705SXin Li {
7261*67e74705SXin Li     //CHECK-LABEL: @test_mm512_mask_set1_epi64
7262*67e74705SXin Li     //CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.512
7263*67e74705SXin Li   return _mm512_mask_set1_epi64 (__O, __M, __A);
7264*67e74705SXin Li }
7265*67e74705SXin Li 
test_mm512_set_epi64(long long __A,long long __B,long long __C,long long __D,long long __E,long long __F,long long __G,long long __H)7266*67e74705SXin Li __m512i test_mm512_set_epi64 (long long __A, long long __B, long long __C,
7267*67e74705SXin Li                               long long __D, long long __E, long long __F,
7268*67e74705SXin Li                               long long __G, long long __H)
7269*67e74705SXin Li {
7270*67e74705SXin Li     //CHECK-LABEL: @test_mm512_set_epi64
7271*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 0
7272*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 1
7273*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 2
7274*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 3
7275*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 4
7276*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 5
7277*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 6
7278*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 7
7279*67e74705SXin Li   return _mm512_set_epi64(__A, __B, __C, __D, __E, __F, __G, __H );
7280*67e74705SXin Li }
7281*67e74705SXin Li 
test_mm512_setr_epi64(long long __A,long long __B,long long __C,long long __D,long long __E,long long __F,long long __G,long long __H)7282*67e74705SXin Li __m512i test_mm512_setr_epi64 (long long __A, long long __B, long long __C,
7283*67e74705SXin Li                               long long __D, long long __E, long long __F,
7284*67e74705SXin Li                               long long __G, long long __H)
7285*67e74705SXin Li {
7286*67e74705SXin Li     //CHECK-LABEL: @test_mm512_setr_epi64
7287*67e74705SXin Li     //CHECK: load{{.*}}%__H.addr, align 8
7288*67e74705SXin Li     //CHECK: load{{.*}}%__G.addr, align 8
7289*67e74705SXin Li     //CHECK: load{{.*}}%__F.addr, align 8
7290*67e74705SXin Li     //CHECK: load{{.*}}%__E.addr, align 8
7291*67e74705SXin Li     //CHECK: load{{.*}}%__D.addr, align 8
7292*67e74705SXin Li     //CHECK: load{{.*}}%__C.addr, align 8
7293*67e74705SXin Li     //CHECK: load{{.*}}%__B.addr, align 8
7294*67e74705SXin Li     //CHECK: load{{.*}}%__A.addr, align 8
7295*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 0
7296*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 1
7297*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 2
7298*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 3
7299*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 4
7300*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 5
7301*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 6
7302*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 7
7303*67e74705SXin Li   return _mm512_setr_epi64(__A, __B, __C, __D, __E, __F, __G, __H );
7304*67e74705SXin Li }
7305*67e74705SXin Li 
test_mm512_set_pd(double __A,double __B,double __C,double __D,double __E,double __F,double __G,double __H)7306*67e74705SXin Li __m512d test_mm512_set_pd (double __A, double __B, double __C, double __D,
7307*67e74705SXin Li                            double __E, double __F, double __G, double __H)
7308*67e74705SXin Li {
7309*67e74705SXin Li     //CHECK-LABEL: @test_mm512_set_pd
7310*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 0
7311*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 1
7312*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 2
7313*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 3
7314*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 4
7315*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 5
7316*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 6
7317*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 7
7318*67e74705SXin Li   return _mm512_set_pd( __A, __B, __C, __D, __E, __F, __G, __H);
7319*67e74705SXin Li }
7320*67e74705SXin Li 
test_mm512_setr_pd(double __A,double __B,double __C,double __D,double __E,double __F,double __G,double __H)7321*67e74705SXin Li __m512d test_mm512_setr_pd (double __A, double __B, double __C, double __D,
7322*67e74705SXin Li                            double __E, double __F, double __G, double __H)
7323*67e74705SXin Li {
7324*67e74705SXin Li     //CHECK-LABEL: @test_mm512_setr_pd
7325*67e74705SXin Li     //CHECK: load{{.*}}%__H.addr, align 8
7326*67e74705SXin Li     //CHECK: load{{.*}}%__G.addr, align 8
7327*67e74705SXin Li     //CHECK: load{{.*}}%__F.addr, align 8
7328*67e74705SXin Li     //CHECK: load{{.*}}%__E.addr, align 8
7329*67e74705SXin Li     //CHECK: load{{.*}}%__D.addr, align 8
7330*67e74705SXin Li     //CHECK: load{{.*}}%__C.addr, align 8
7331*67e74705SXin Li     //CHECK: load{{.*}}%__B.addr, align 8
7332*67e74705SXin Li     //CHECK: load{{.*}}%__A.addr, align 8
7333*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 0
7334*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 1
7335*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 2
7336*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 3
7337*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 4
7338*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 5
7339*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 6
7340*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 7
7341*67e74705SXin Li   return _mm512_setr_pd( __A, __B, __C, __D, __E, __F, __G, __H);
7342*67e74705SXin Li }
7343*67e74705SXin Li 
test_mm512_set_ps(float __A,float __B,float __C,float __D,float __E,float __F,float __G,float __H,float __I,float __J,float __K,float __L,float __M,float __N,float __O,float __P)7344*67e74705SXin Li __m512 test_mm512_set_ps (float __A, float __B, float __C, float __D,
7345*67e74705SXin Li                           float __E, float __F, float __G, float __H,
7346*67e74705SXin Li                           float __I, float __J, float __K, float __L,
7347*67e74705SXin Li                           float __M, float __N, float __O, float __P)
7348*67e74705SXin Li {
7349*67e74705SXin Li     //CHECK-LABEL: @test_mm512_set_ps
7350*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 0
7351*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 1
7352*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 2
7353*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 3
7354*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 4
7355*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 5
7356*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 6
7357*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 7
7358*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 8
7359*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 9
7360*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 10
7361*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 11
7362*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 12
7363*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 13
7364*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 14
7365*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 15
7366*67e74705SXin Li     return _mm512_set_ps( __A, __B, __C, __D, __E, __F, __G, __H,
7367*67e74705SXin Li                           __I, __J, __K, __L, __M, __N, __O, __P);
7368*67e74705SXin Li }
7369*67e74705SXin Li 
test_mm512_mask_abs_epi64(__m512i __W,__mmask8 __U,__m512i __A)7370*67e74705SXin Li __m512i test_mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
7371*67e74705SXin Li {
7372*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_abs_epi64
7373*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pabs.q.512
7374*67e74705SXin Li   return _mm512_mask_abs_epi64 (__W,__U,__A);
7375*67e74705SXin Li }
7376*67e74705SXin Li 
test_mm512_maskz_abs_epi64(__mmask8 __U,__m512i __A)7377*67e74705SXin Li __m512i test_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
7378*67e74705SXin Li {
7379*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_abs_epi64
7380*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pabs.q.512
7381*67e74705SXin Li   return _mm512_maskz_abs_epi64 (__U,__A);
7382*67e74705SXin Li }
7383*67e74705SXin Li 
test_mm512_mask_abs_epi32(__m512i __W,__mmask16 __U,__m512i __A)7384*67e74705SXin Li __m512i test_mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
7385*67e74705SXin Li {
7386*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_abs_epi32
7387*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pabs.d.512
7388*67e74705SXin Li   return _mm512_mask_abs_epi32 (__W,__U,__A);
7389*67e74705SXin Li }
7390*67e74705SXin Li 
test_mm512_maskz_abs_epi32(__mmask16 __U,__m512i __A)7391*67e74705SXin Li __m512i test_mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)
7392*67e74705SXin Li {
7393*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_abs_epi32
7394*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pabs.d.512
7395*67e74705SXin Li   return _mm512_maskz_abs_epi32 (__U,__A);
7396*67e74705SXin Li }
7397*67e74705SXin Li 
test_mm512_setr_ps(float __A,float __B,float __C,float __D,float __E,float __F,float __G,float __H,float __I,float __J,float __K,float __L,float __M,float __N,float __O,float __P)7398*67e74705SXin Li __m512 test_mm512_setr_ps (float __A, float __B, float __C, float __D,
7399*67e74705SXin Li                           float __E, float __F, float __G, float __H,
7400*67e74705SXin Li                           float __I, float __J, float __K, float __L,
7401*67e74705SXin Li                           float __M, float __N, float __O, float __P)
7402*67e74705SXin Li {
7403*67e74705SXin Li     //CHECK-LABEL: @test_mm512_setr_ps
7404*67e74705SXin Li     //CHECK: load{{.*}}%__P.addr, align 4
7405*67e74705SXin Li     //CHECK: load{{.*}}%__O.addr, align 4
7406*67e74705SXin Li     //CHECK: load{{.*}}%__N.addr, align 4
7407*67e74705SXin Li     //CHECK: load{{.*}}%__M.addr, align 4
7408*67e74705SXin Li     //CHECK: load{{.*}}%__L.addr, align 4
7409*67e74705SXin Li     //CHECK: load{{.*}}%__K.addr, align 4
7410*67e74705SXin Li     //CHECK: load{{.*}}%__J.addr, align 4
7411*67e74705SXin Li     //CHECK: load{{.*}}%__I.addr, align 4
7412*67e74705SXin Li     //CHECK: load{{.*}}%__H.addr, align 4
7413*67e74705SXin Li     //CHECK: load{{.*}}%__G.addr, align 4
7414*67e74705SXin Li     //CHECK: load{{.*}}%__F.addr, align 4
7415*67e74705SXin Li     //CHECK: load{{.*}}%__E.addr, align 4
7416*67e74705SXin Li     //CHECK: load{{.*}}%__D.addr, align 4
7417*67e74705SXin Li     //CHECK: load{{.*}}%__C.addr, align 4
7418*67e74705SXin Li     //CHECK: load{{.*}}%__B.addr, align 4
7419*67e74705SXin Li     //CHECK: load{{.*}}%__A.addr, align 4
7420*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 0
7421*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 1
7422*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 2
7423*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 3
7424*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 4
7425*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 5
7426*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 6
7427*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 7
7428*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 8
7429*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 9
7430*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 10
7431*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 11
7432*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 12
7433*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 13
7434*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 14
7435*67e74705SXin Li     //CHECK: insertelement{{.*}}i32 15
7436*67e74705SXin Li     return _mm512_setr_ps( __A, __B, __C, __D, __E, __F, __G, __H,
7437*67e74705SXin Li                           __I, __J, __K, __L, __M, __N, __O, __P);
7438*67e74705SXin Li }
7439*67e74705SXin Li 
test_mm_cvtss_i32(__m128 A)7440*67e74705SXin Li int test_mm_cvtss_i32(__m128 A) {
7441*67e74705SXin Li   // CHECK-LABEL: test_mm_cvtss_i32
7442*67e74705SXin Li   // CHECK: call i32 @llvm.x86.sse.cvtss2si(<4 x float> %{{.*}})
7443*67e74705SXin Li   return _mm_cvtss_i32(A);
7444*67e74705SXin Li }
7445*67e74705SXin Li 
test_mm_cvtss_i64(__m128 A)7446*67e74705SXin Li long long test_mm_cvtss_i64(__m128 A) {
7447*67e74705SXin Li   // CHECK-LABEL: test_mm_cvtss_i64
7448*67e74705SXin Li   // CHECK: call i64 @llvm.x86.sse.cvtss2si64(<4 x float> %{{.*}})
7449*67e74705SXin Li   return _mm_cvtss_i64(A);
7450*67e74705SXin Li }
7451*67e74705SXin Li 
test_mm_cvti32_sd(__m128d A,int B)7452*67e74705SXin Li __m128d test_mm_cvti32_sd(__m128d A, int B) {
7453*67e74705SXin Li   // CHECK-LABEL: test_mm_cvti32_sd
7454*67e74705SXin Li   // CHECK: sitofp i32 %{{.*}} to double
7455*67e74705SXin Li   // CHECK: insertelement <2 x double> %{{.*}}, double %{{.*}}, i32 0
7456*67e74705SXin Li   return _mm_cvti32_sd(A, B);
7457*67e74705SXin Li }
7458*67e74705SXin Li 
test_mm_cvti64_sd(__m128d A,long long B)7459*67e74705SXin Li __m128d test_mm_cvti64_sd(__m128d A, long long B) {
7460*67e74705SXin Li   // CHECK-LABEL: test_mm_cvti64_sd
7461*67e74705SXin Li   // CHECK: sitofp i64 %{{.*}} to double
7462*67e74705SXin Li   // CHECK: insertelement <2 x double> %{{.*}}, double %{{.*}}, i32 0
7463*67e74705SXin Li   return _mm_cvti64_sd(A, B);
7464*67e74705SXin Li }
7465*67e74705SXin Li 
test_mm_cvti32_ss(__m128 A,int B)7466*67e74705SXin Li __m128 test_mm_cvti32_ss(__m128 A, int B) {
7467*67e74705SXin Li   // CHECK-LABEL: test_mm_cvti32_ss
7468*67e74705SXin Li   // CHECK: sitofp i32 %{{.*}} to float
7469*67e74705SXin Li   // CHECK: insertelement <4 x float> %{{.*}}, float %{{.*}}, i32 0
7470*67e74705SXin Li   return _mm_cvti32_ss(A, B);
7471*67e74705SXin Li }
7472*67e74705SXin Li 
test_mm_cvti64_ss(__m128 A,long long B)7473*67e74705SXin Li __m128 test_mm_cvti64_ss(__m128 A, long long B) {
7474*67e74705SXin Li   // CHECK-LABEL: test_mm_cvti64_ss
7475*67e74705SXin Li   // CHECK: sitofp i64 %{{.*}} to float
7476*67e74705SXin Li   // CHECK: insertelement <4 x float> %{{.*}}, float %{{.*}}, i32 0
7477*67e74705SXin Li   return _mm_cvti64_ss(A, B);
7478*67e74705SXin Li }
7479*67e74705SXin Li 
test_mm_cvtsd_i32(__m128d A)7480*67e74705SXin Li int test_mm_cvtsd_i32(__m128d A) {
7481*67e74705SXin Li   // CHECK-LABEL: test_mm_cvtsd_i32
7482*67e74705SXin Li   // CHECK: call i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %{{.*}})
7483*67e74705SXin Li   return _mm_cvtsd_i32(A);
7484*67e74705SXin Li }
7485*67e74705SXin Li 
test_mm_cvtsd_i64(__m128d A)7486*67e74705SXin Li long long test_mm_cvtsd_i64(__m128d A) {
7487*67e74705SXin Li   // CHECK-LABEL: test_mm_cvtsd_i64
7488*67e74705SXin Li   // CHECK: call i64 @llvm.x86.sse2.cvtsd2si64(<2 x double> %{{.*}})
7489*67e74705SXin Li   return _mm_cvtsd_i64(A);
7490*67e74705SXin Li }
7491*67e74705SXin Li 
test_mm_mask_cvtss_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128 __B)7492*67e74705SXin Li __m128d test_mm_mask_cvtss_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128 __B) {
7493*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_cvtss_sd
7494*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
7495*67e74705SXin Li   return _mm_mask_cvtss_sd(__W, __U, __A, __B);
7496*67e74705SXin Li }
7497*67e74705SXin Li 
test_mm_maskz_cvtss_sd(__mmask8 __U,__m128d __A,__m128 __B)7498*67e74705SXin Li __m128d test_mm_maskz_cvtss_sd( __mmask8 __U, __m128d __A, __m128 __B) {
7499*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_cvtss_sd
7500*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
7501*67e74705SXin Li   return _mm_maskz_cvtss_sd( __U, __A, __B);
7502*67e74705SXin Li }
7503*67e74705SXin Li 
test_mm_mask_cvtsd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128d __B)7504*67e74705SXin Li __m128 test_mm_mask_cvtsd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128d __B) {
7505*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_cvtsd_ss
7506*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
7507*67e74705SXin Li   return _mm_mask_cvtsd_ss(__W, __U, __A, __B);
7508*67e74705SXin Li }
7509*67e74705SXin Li 
test_mm_maskz_cvtsd_ss(__mmask8 __U,__m128 __A,__m128d __B)7510*67e74705SXin Li __m128 test_mm_maskz_cvtsd_ss(__mmask8 __U, __m128 __A, __m128d __B) {
7511*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_cvtsd_ss
7512*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
7513*67e74705SXin Li   return _mm_maskz_cvtsd_ss(__U, __A, __B);
7514*67e74705SXin Li }
7515*67e74705SXin Li 
7516*67e74705SXin Li 
test_mm512_setzero_epi32()7517*67e74705SXin Li __m512i test_mm512_setzero_epi32()
7518*67e74705SXin Li {
7519*67e74705SXin Li   // CHECK-LABEL: @test_mm512_setzero_epi32
7520*67e74705SXin Li   // CHECK: zeroinitializer
7521*67e74705SXin Li   return _mm512_setzero_epi32();
7522*67e74705SXin Li }
7523*67e74705SXin Li 
test_mm512_setzero()7524*67e74705SXin Li __m512i test_mm512_setzero()
7525*67e74705SXin Li {
7526*67e74705SXin Li   // CHECK-LABEL: @test_mm512_setzero
7527*67e74705SXin Li   // CHECK: zeroinitializer
7528*67e74705SXin Li   return _mm512_setzero();
7529*67e74705SXin Li }
7530*67e74705SXin Li 
test_mm512_setzero_si512()7531*67e74705SXin Li __m512i test_mm512_setzero_si512()
7532*67e74705SXin Li {
7533*67e74705SXin Li   // CHECK-LABEL: @test_mm512_setzero_si512
7534*67e74705SXin Li   // CHECK: zeroinitializer
7535*67e74705SXin Li   return _mm512_setzero_si512();
7536*67e74705SXin Li }
7537*67e74705SXin Li 
test_mm512_setzero_ps()7538*67e74705SXin Li __m512i test_mm512_setzero_ps()
7539*67e74705SXin Li {
7540*67e74705SXin Li   // CHECK-LABEL: @test_mm512_setzero_ps
7541*67e74705SXin Li   // CHECK: zeroinitializer
7542*67e74705SXin Li   return _mm512_setzero_ps();
7543*67e74705SXin Li }
7544*67e74705SXin Li 
test_mm512_setzero_pd()7545*67e74705SXin Li __m512d test_mm512_setzero_pd()
7546*67e74705SXin Li {
7547*67e74705SXin Li   // CHECK-LABEL: @test_mm512_setzero_pd
7548*67e74705SXin Li   // CHECK: zeroinitializer
7549*67e74705SXin Li   return _mm512_setzero_pd();
7550*67e74705SXin Li }
7551*67e74705SXin Li 
test_mm512_abs_pd(__m512d a)7552*67e74705SXin Li __m512d test_mm512_abs_pd(__m512d a){
7553*67e74705SXin Li   // CHECK-LABEL: @test_mm512_abs_pd
7554*67e74705SXin Li   // CHECK: and <8 x i64>
7555*67e74705SXin Li   return _mm512_abs_pd(a);
7556*67e74705SXin Li }
7557*67e74705SXin Li 
test_mm512_mask_abs_pd(__m512d __W,__mmask8 __U,__m512d __A)7558*67e74705SXin Li __m512d test_mm512_mask_abs_pd (__m512d __W, __mmask8 __U, __m512d __A){
7559*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_abs_pd
7560*67e74705SXin Li   // CHECK: %[[AND_RES:.*]] = and <8 x i64>
7561*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
7562*67e74705SXin Li   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
7563*67e74705SXin Li   return _mm512_mask_abs_pd (__W,__U,__A);
7564*67e74705SXin Li }
7565*67e74705SXin Li 
test_mm512_abs_ps(__m512 a)7566*67e74705SXin Li __m512 test_mm512_abs_ps(__m512 a){
7567*67e74705SXin Li   // CHECK-LABEL: @test_mm512_abs_ps
7568*67e74705SXin Li   // CHECK: and <16 x i32>
7569*67e74705SXin Li   return _mm512_abs_ps(a);
7570*67e74705SXin Li }
7571*67e74705SXin Li 
test_mm512_mask_abs_ps(__m512 __W,__mmask16 __U,__m512 __A)7572*67e74705SXin Li __m512 test_mm512_mask_abs_ps(__m512 __W, __mmask16 __U, __m512 __A){
7573*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_abs_ps
7574*67e74705SXin Li   // CHECK: and <16 x i32>
7575*67e74705SXin Li   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
7576*67e74705SXin Li   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
7577*67e74705SXin Li   return _mm512_mask_abs_ps( __W, __U, __A);
7578*67e74705SXin Li }
7579*67e74705SXin Li 
7580