• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512f -emit-llvm -o - -Werror | FileCheck %s
2 
3 // Don't include mm_malloc.h, it's system specific.
4 #define __MM_MALLOC_H
5 
6 #include <immintrin.h>
7 
test_mm512_sqrt_pd(__m512d a)8 __m512d test_mm512_sqrt_pd(__m512d a)
9 {
10   // CHECK-LABEL: @test_mm512_sqrt_pd
11   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
12   return _mm512_sqrt_pd(a);
13 }
14 
test_mm512_mask_sqrt_pd(__m512d __W,__mmask8 __U,__m512d __A)15 __m512d test_mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)
16 {
17   // CHECK-LABEL: @test_mm512_mask_sqrt_pd
18   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
19   return _mm512_mask_sqrt_pd (__W,__U,__A);
20 }
21 
test_mm512_maskz_sqrt_pd(__mmask8 __U,__m512d __A)22 __m512d test_mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
23 {
24   // CHECK-LABEL: @test_mm512_maskz_sqrt_pd
25   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
26   return _mm512_maskz_sqrt_pd (__U,__A);
27 }
28 
test_mm512_mask_sqrt_round_pd(__m512d __W,__mmask8 __U,__m512d __A)29 __m512d test_mm512_mask_sqrt_round_pd(__m512d __W,__mmask8 __U,__m512d __A)
30 {
31   // CHECK-LABEL: @test_mm512_mask_sqrt_round_pd
32   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
33   return _mm512_mask_sqrt_round_pd(__W,__U,__A,_MM_FROUND_CUR_DIRECTION);
34 }
35 
test_mm512_maskz_sqrt_round_pd(__mmask8 __U,__m512d __A)36 __m512d test_mm512_maskz_sqrt_round_pd(__mmask8 __U,__m512d __A)
37 {
38   // CHECK-LABEL: @test_mm512_maskz_sqrt_round_pd
39   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
40   return _mm512_maskz_sqrt_round_pd(__U,__A,_MM_FROUND_CUR_DIRECTION);
41 }
42 
test_mm512_sqrt_round_pd(__m512d __A)43 __m512d test_mm512_sqrt_round_pd(__m512d __A)
44 {
45   // CHECK-LABEL: @test_mm512_sqrt_round_pd
46   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
47   return _mm512_sqrt_round_pd(__A,_MM_FROUND_CUR_DIRECTION);
48 }
49 
test_mm512_sqrt_ps(__m512 a)50 __m512 test_mm512_sqrt_ps(__m512 a)
51 {
52   // CHECK-LABEL: @test_mm512_sqrt_ps
53   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
54   return _mm512_sqrt_ps(a);
55 }
56 
test_mm512_mask_sqrt_ps(__m512 __W,__mmask16 __U,__m512 __A)57 __m512 test_mm512_mask_sqrt_ps(__m512 __W, __mmask16 __U, __m512 __A)
58 {
59   // CHECK-LABEL: @test_mm512_mask_sqrt_ps
60   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
61   return _mm512_mask_sqrt_ps( __W, __U, __A);
62 }
63 
test_mm512_maskz_sqrt_ps(__mmask16 __U,__m512 __A)64 __m512 test_mm512_maskz_sqrt_ps( __mmask16 __U, __m512 __A)
65 {
66   // CHECK-LABEL: @test_mm512_maskz_sqrt_ps
67   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
68   return _mm512_maskz_sqrt_ps(__U ,__A);
69 }
70 
test_mm512_mask_sqrt_round_ps(__m512 __W,__mmask16 __U,__m512 __A)71 __m512 test_mm512_mask_sqrt_round_ps(__m512 __W,__mmask16 __U,__m512 __A)
72 {
73   // CHECK-LABEL: @test_mm512_mask_sqrt_round_ps
74   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
75   return _mm512_mask_sqrt_round_ps(__W,__U,__A,_MM_FROUND_CUR_DIRECTION);
76 }
77 
test_mm512_maskz_sqrt_round_ps(__mmask16 __U,__m512 __A)78 __m512 test_mm512_maskz_sqrt_round_ps(__mmask16 __U,__m512 __A)
79 {
80   // CHECK-LABEL: @test_mm512_maskz_sqrt_round_ps
81   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
82   return _mm512_maskz_sqrt_round_ps(__U,__A,_MM_FROUND_CUR_DIRECTION);
83 }
84 
test_mm512_sqrt_round_ps(__m512 __A)85 __m512 test_mm512_sqrt_round_ps(__m512 __A)
86 {
87   // CHECK-LABEL: @test_mm512_sqrt_round_ps
88   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
89   return _mm512_sqrt_round_ps(__A,_MM_FROUND_CUR_DIRECTION);
90 }
91 
test_mm512_rsqrt14_pd(__m512d a)92 __m512d test_mm512_rsqrt14_pd(__m512d a)
93 {
94   // CHECK-LABEL: @test_mm512_rsqrt14_pd
95   // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
96   return _mm512_rsqrt14_pd(a);
97 }
98 
test_mm512_mask_rsqrt14_pd(__m512d __W,__mmask8 __U,__m512d __A)99 __m512d test_mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A)
100 {
101   // CHECK-LABEL: @test_mm512_mask_rsqrt14_pd
102   // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
103   return _mm512_mask_rsqrt14_pd (__W,__U,__A);
104 }
105 
test_mm512_maskz_rsqrt14_pd(__mmask8 __U,__m512d __A)106 __m512d test_mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A)
107 {
108   // CHECK-LABEL: @test_mm512_maskz_rsqrt14_pd
109   // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
110   return _mm512_maskz_rsqrt14_pd (__U,__A);
111 }
112 
test_mm512_rsqrt14_ps(__m512 a)113 __m512 test_mm512_rsqrt14_ps(__m512 a)
114 {
115   // CHECK-LABEL: @test_mm512_rsqrt14_ps
116   // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
117   return _mm512_rsqrt14_ps(a);
118 }
119 
test_mm512_mask_rsqrt14_ps(__m512 __W,__mmask16 __U,__m512 __A)120 __m512 test_mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A)
121 {
122   // CHECK-LABEL: @test_mm512_mask_rsqrt14_ps
123   // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
124   return _mm512_mask_rsqrt14_ps (__W,__U,__A);
125 }
126 
test_mm512_maskz_rsqrt14_ps(__mmask16 __U,__m512 __A)127 __m512 test_mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A)
128 {
129   // CHECK-LABEL: @test_mm512_maskz_rsqrt14_ps
130   // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
131   return _mm512_maskz_rsqrt14_ps (__U,__A);
132 }
133 
test_mm512_add_ps(__m512 a,__m512 b)134 __m512 test_mm512_add_ps(__m512 a, __m512 b)
135 {
136   // CHECK-LABEL: @test_mm512_add_ps
137   // CHECK: fadd <16 x float>
138   return _mm512_add_ps(a, b);
139 }
140 
test_mm512_add_pd(__m512d a,__m512d b)141 __m512d test_mm512_add_pd(__m512d a, __m512d b)
142 {
143   // CHECK-LABEL: @test_mm512_add_pd
144   // CHECK: fadd <8 x double>
145   return _mm512_add_pd(a, b);
146 }
147 
test_mm512_mul_ps(__m512 a,__m512 b)148 __m512 test_mm512_mul_ps(__m512 a, __m512 b)
149 {
150   // CHECK-LABEL: @test_mm512_mul_ps
151   // CHECK: fmul <16 x float>
152   return _mm512_mul_ps(a, b);
153 }
154 
test_mm512_mul_pd(__m512d a,__m512d b)155 __m512d test_mm512_mul_pd(__m512d a, __m512d b)
156 {
157   // CHECK-LABEL: @test_mm512_mul_pd
158   // CHECK: fmul <8 x double>
159   return _mm512_mul_pd(a, b);
160 }
161 
test_mm512_storeu_si512(void * __P,__m512i __A)162 void test_mm512_storeu_si512 (void *__P, __m512i __A)
163 {
164   // CHECK-LABEL: @test_mm512_storeu_si512
165   // CHECK: store <16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, align 1{{$}}
166   // CHECK-NEXT: ret void
167   _mm512_storeu_si512 ( __P,__A);
168 }
169 
test_mm512_storeu_ps(void * p,__m512 a)170 void test_mm512_storeu_ps(void *p, __m512 a)
171 {
172   // CHECK-LABEL: @test_mm512_storeu_ps
173   // CHECK: store <16 x float> %{{.*}}, <16 x float>* %{{.*}}, align 1{{$}}
174   // CHECK-NEXT: ret void
175   _mm512_storeu_ps(p, a);
176 }
177 
test_mm512_storeu_pd(void * p,__m512d a)178 void test_mm512_storeu_pd(void *p, __m512d a)
179 {
180   // CHECK-LABEL: @test_mm512_storeu_pd
181   // CHECK: store <8 x double> %{{.*}}, <8 x double>* %{{.*}}, align 1{{$}}
182   // CHECK-NEXT: ret void
183   _mm512_storeu_pd(p, a);
184 }
185 
test_mm512_mask_store_ps(void * p,__m512 a,__mmask16 m)186 void test_mm512_mask_store_ps(void *p, __m512 a, __mmask16 m)
187 {
188   // CHECK-LABEL: @test_mm512_mask_store_ps
189   // CHECK: @llvm.masked.store.v16f32.p0v16f32(<16 x float> %{{.*}}, <16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}})
190   _mm512_mask_store_ps(p, m, a);
191 }
192 
test_mm512_store_si512(void * __P,__m512i __A)193 void test_mm512_store_si512 (void *__P, __m512i __A)
194 {
195   // CHECK-LABEL: @test_mm512_store_si512
196   // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
197   // CHECK: [[SI512_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
198   // CHECK: bitcast i8* [[SI512_3]] to <8 x i64>*
199   // CHECK: store <8 x i64>
200   _mm512_store_si512 ( __P,__A);
201 }
202 
test_mm512_store_epi32(void * __P,__m512i __A)203 void test_mm512_store_epi32 (void *__P, __m512i __A)
204 {
205   // CHECK-LABEL: @test_mm512_store_epi32
206   // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
207   // CHECK: [[Si32_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
208   // CHECK: bitcast i8* [[Si32_3]] to <8 x i64>*
209   // CHECK: store <8 x i64>
210   _mm512_store_epi32 ( __P,__A);
211 }
212 
test_mm512_store_epi64(void * __P,__m512i __A)213 void test_mm512_store_epi64 (void *__P, __m512i __A)
214 {
215   // CHECK-LABEL: @test_mm512_store_epi64
216   // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
217   // CHECK: [[SI64_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
218   // CHECK: bitcast i8* [[SI64_3]] to <8 x i64>*
219   // CHECK: store <8 x i64>
220   _mm512_store_epi64 ( __P,__A);
221 }
222 
test_mm512_store_ps(void * p,__m512 a)223 void test_mm512_store_ps(void *p, __m512 a)
224 {
225   // CHECK-LABEL: @test_mm512_store_ps
226   // CHECK: store <16 x float>
227   _mm512_store_ps(p, a);
228 }
229 
test_mm512_store_pd(void * p,__m512d a)230 void test_mm512_store_pd(void *p, __m512d a)
231 {
232   // CHECK-LABEL: @test_mm512_store_pd
233   // CHECK: store <8 x double>
234   _mm512_store_pd(p, a);
235 }
236 
test_mm512_mask_store_pd(void * p,__m512d a,__mmask8 m)237 void test_mm512_mask_store_pd(void *p, __m512d a, __mmask8 m)
238 {
239   // CHECK-LABEL: @test_mm512_mask_store_pd
240   // CHECK: @llvm.masked.store.v8f64.p0v8f64(<8 x double> %{{.*}}, <8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}})
241   _mm512_mask_store_pd(p, m, a);
242 }
243 
test_mm512_mask_storeu_epi32(void * __P,__mmask16 __U,__m512i __A)244 void test_mm512_mask_storeu_epi32(void *__P, __mmask16 __U, __m512i __A) {
245   // CHECK-LABEL: @test_mm512_mask_storeu_epi32
246   // CHECK: @llvm.masked.store.v16i32.p0v16i32(<16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, i32 1, <16 x i1> %{{.*}})
247   return _mm512_mask_storeu_epi32(__P, __U, __A);
248 }
249 
test_mm512_mask_storeu_epi64(void * __P,__mmask8 __U,__m512i __A)250 void test_mm512_mask_storeu_epi64(void *__P, __mmask8 __U, __m512i __A) {
251   // CHECK-LABEL: @test_mm512_mask_storeu_epi64
252   // CHECK: @llvm.masked.store.v8i64.p0v8i64(<8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
253   return _mm512_mask_storeu_epi64(__P, __U, __A);
254 }
255 
test_mm512_loadu_si512(void * __P)256 __m512i test_mm512_loadu_si512 (void *__P)
257 {
258   // CHECK-LABEL: @test_mm512_loadu_si512
259   // CHECK: load <16 x i32>, <16 x i32>* %{{.*}}, align 1{{$}}
260   return _mm512_loadu_si512 ( __P);
261 }
262 
test_mm512_mask_loadu_epi32(__m512i __W,__mmask16 __U,void * __P)263 __m512i test_mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void *__P)
264 {
265   // CHECK-LABEL: @test_mm512_mask_loadu_epi32
266   // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
267   return _mm512_mask_loadu_epi32 (__W,__U, __P);
268 }
269 
test_mm512_mask_loadu_epi64(__m512i __W,__mmask8 __U,void * __P)270 __m512i test_mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void *__P)
271 {
272   // CHECK-LABEL: @test_mm512_mask_loadu_epi64
273   // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
274   return _mm512_mask_loadu_epi64 (__W,__U, __P);
275 }
276 
test_mm512_loadu_ps(void * p)277 __m512 test_mm512_loadu_ps(void *p)
278 {
279   // CHECK-LABEL: @test_mm512_loadu_ps
280   // CHECK: load <16 x float>, <16 x float>* {{.*}}, align 1{{$}}
281   return _mm512_loadu_ps(p);
282 }
283 
test_mm512_mask_loadu_ps(__m512 __W,__mmask16 __U,void * __P)284 __m512 test_mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void *__P)
285 {
286   // CHECK-LABEL: @test_mm512_mask_loadu_ps
287   // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
288   return _mm512_mask_loadu_ps (__W,__U, __P);
289 }
290 
test_mm512_loadu_pd(void * p)291 __m512d test_mm512_loadu_pd(void *p)
292 {
293   // CHECK-LABEL: @test_mm512_loadu_pd
294   // CHECK: load <8 x double>, <8 x double>* {{.*}}, align 1{{$}}
295   return _mm512_loadu_pd(p);
296 }
297 
test_mm512_mask_loadu_pd(__m512d __W,__mmask8 __U,void * __P)298 __m512d test_mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void *__P)
299 {
300   // CHECK-LABEL: @test_mm512_mask_loadu_pd
301   // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
302   return _mm512_mask_loadu_pd (__W,__U, __P);
303 }
304 
test_mm512_load_si512(void * __P)305 __m512i test_mm512_load_si512 (void *__P)
306 {
307   // CHECK-LABEL: @test_mm512_load_si512
308   // CHECK: [[LI512_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
309   // CHECK: [[LI512_2:%.+]] = bitcast i8* [[LI512_1]] to <8 x i64>*
310   // CHECK: load <8 x i64>, <8 x i64>* [[LI512_2]], align 64
311   return _mm512_load_si512 ( __P);
312 }
313 
test_mm512_load_epi32(void * __P)314 __m512i test_mm512_load_epi32 (void *__P)
315 {
316   // CHECK-LABEL: @test_mm512_load_epi32
317   // CHECK: [[LI32_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
318   // CHECK: [[LI32_2:%.+]] = bitcast i8* [[LI32_1]] to <8 x i64>*
319   // CHECK: load <8 x i64>, <8 x i64>* [[LI32_2]], align 64
320   return _mm512_load_epi32 ( __P);
321 }
322 
test_mm512_load_epi64(void * __P)323 __m512i test_mm512_load_epi64 (void *__P)
324 {
325   // CHECK-LABEL: @test_mm512_load_epi64
326   // CHECK: [[LI64_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
327   // CHECK: [[LI64_2:%.+]] = bitcast i8* [[LI64_1]] to <8 x i64>*
328   // CHECK: load <8 x i64>, <8 x i64>* [[LI64_2]], align 64
329   return _mm512_load_epi64 ( __P);
330 }
331 
test_mm512_load_ps(void * p)332 __m512 test_mm512_load_ps(void *p)
333 {
334   // CHECK-LABEL: @test_mm512_load_ps
335   // CHECK: load <16 x float>, <16 x float>* %{{.*}}, align 64
336   return _mm512_load_ps(p);
337 }
338 
test_mm512_mask_load_ps(__m512 __W,__mmask16 __U,void * __P)339 __m512 test_mm512_mask_load_ps (__m512 __W, __mmask16 __U, void *__P)
340 {
341   // CHECK-LABEL: @test_mm512_mask_load_ps
342   // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
343   return _mm512_mask_load_ps (__W,__U, __P);
344 }
345 
test_mm512_maskz_load_ps(__mmask16 __U,void * __P)346 __m512 test_mm512_maskz_load_ps(__mmask16 __U, void *__P)
347 {
348   // CHECK-LABEL: @test_mm512_maskz_load_ps
349   // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
350   return _mm512_maskz_load_ps(__U, __P);
351 }
352 
test_mm512_load_pd(void * p)353 __m512d test_mm512_load_pd(void *p)
354 {
355   // CHECK-LABEL: @test_mm512_load_pd
356   // CHECK: load <8 x double>, <8 x double>* %{{.*}}, align 64
357   return _mm512_load_pd(p);
358 }
359 
test_mm512_mask_load_pd(__m512d __W,__mmask8 __U,void * __P)360 __m512d test_mm512_mask_load_pd (__m512d __W, __mmask8 __U, void *__P)
361 {
362   // CHECK-LABEL: @test_mm512_mask_load_pd
363   // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
364   return _mm512_mask_load_pd (__W,__U, __P);
365 }
366 
test_mm512_maskz_load_pd(__mmask8 __U,void * __P)367 __m512d test_mm512_maskz_load_pd(__mmask8 __U, void *__P)
368 {
369   // CHECK-LABEL: @test_mm512_maskz_load_pd
370   // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
371   return _mm512_maskz_load_pd(__U, __P);
372 }
373 
test_mm512_set1_pd(double d)374 __m512d test_mm512_set1_pd(double d)
375 {
376   // CHECK-LABEL: @test_mm512_set1_pd
377   // CHECK: insertelement <8 x double> {{.*}}, i32 0
378   // CHECK: insertelement <8 x double> {{.*}}, i32 1
379   // CHECK: insertelement <8 x double> {{.*}}, i32 2
380   // CHECK: insertelement <8 x double> {{.*}}, i32 3
381   // CHECK: insertelement <8 x double> {{.*}}, i32 4
382   // CHECK: insertelement <8 x double> {{.*}}, i32 5
383   // CHECK: insertelement <8 x double> {{.*}}, i32 6
384   // CHECK: insertelement <8 x double> {{.*}}, i32 7
385   return _mm512_set1_pd(d);
386 }
387 
test_mm512_knot(__mmask16 a)388 __mmask16 test_mm512_knot(__mmask16 a)
389 {
390   // CHECK-LABEL: @test_mm512_knot
391   // CHECK: @llvm.x86.avx512.knot.w
392   return _mm512_knot(a);
393 }
394 
test_mm512_alignr_epi32(__m512i a,__m512i b)395 __m512i test_mm512_alignr_epi32(__m512i a, __m512i b)
396 {
397   // CHECK-LABEL: @test_mm512_alignr_epi32
398   // CHECK: @llvm.x86.avx512.mask.valign.d.512
399   return _mm512_alignr_epi32(a, b, 2);
400 }
401 
test_mm512_mask_alignr_epi32(__m512i w,__mmask16 u,__m512i a,__m512i b)402 __m512i test_mm512_mask_alignr_epi32(__m512i w, __mmask16 u, __m512i a, __m512i b)
403 {
404   // CHECK-LABEL: @test_mm512_mask_alignr_epi32
405   // CHECK: @llvm.x86.avx512.mask.valign.d.512
406   return _mm512_mask_alignr_epi32(w, u, a, b, 2);
407 }
408 
test_mm512_maskz_alignr_epi32(__mmask16 u,__m512i a,__m512i b)409 __m512i test_mm512_maskz_alignr_epi32( __mmask16 u, __m512i a, __m512i b)
410 {
411   // CHECK-LABEL: @test_mm512_maskz_alignr_epi32
412   // CHECK: @llvm.x86.avx512.mask.valign.d.512
413   return _mm512_maskz_alignr_epi32(u, a, b, 2);
414 }
415 
test_mm512_alignr_epi64(__m512i a,__m512i b)416 __m512i test_mm512_alignr_epi64(__m512i a, __m512i b)
417 {
418   // CHECK-LABEL: @test_mm512_alignr_epi64
419   // CHECK: @llvm.x86.avx512.mask.valign.q.512
420   return _mm512_alignr_epi64(a, b, 2);
421 }
422 
test_mm512_mask_alignr_epi64(__m512i w,__mmask8 u,__m512i a,__m512i b)423 __m512i test_mm512_mask_alignr_epi64(__m512i w, __mmask8 u, __m512i a, __m512i b)
424 {
425   // CHECK-LABEL: @test_mm512_mask_alignr_epi64
426   // CHECK: @llvm.x86.avx512.mask.valign.q.512
427   return _mm512_mask_alignr_epi64(w, u, a, b, 2);
428 }
429 
test_mm512_maskz_alignr_epi64(__mmask8 u,__m512i a,__m512i b)430 __m512i test_mm512_maskz_alignr_epi64( __mmask8 u, __m512i a, __m512i b)
431 {
432   // CHECK-LABEL: @test_mm512_maskz_alignr_epi64
433   // CHECK: @llvm.x86.avx512.mask.valign.q.512
434   return _mm512_maskz_alignr_epi64(u, a, b, 2);
435 }
436 
test_mm512_fmadd_round_pd(__m512d __A,__m512d __B,__m512d __C)437 __m512d test_mm512_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
438   // CHECK-LABEL: @test_mm512_fmadd_round_pd
439   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
440   return _mm512_fmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
441 }
442 
test_mm512_mask_fmadd_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)443 __m512d test_mm512_mask_fmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
444   // CHECK-LABEL: @test_mm512_mask_fmadd_round_pd
445   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
446   return _mm512_mask_fmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
447 }
test_mm512_mask3_fmadd_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)448 __m512d test_mm512_mask3_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
449   // CHECK-LABEL: @test_mm512_mask3_fmadd_round_pd
450   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
451   return _mm512_mask3_fmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
452 }
test_mm512_maskz_fmadd_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)453 __m512d test_mm512_maskz_fmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
454   // CHECK-LABEL: @test_mm512_maskz_fmadd_round_pd
455   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
456   return _mm512_maskz_fmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
457 }
test_mm512_fmsub_round_pd(__m512d __A,__m512d __B,__m512d __C)458 __m512d test_mm512_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
459   // CHECK-LABEL: @test_mm512_fmsub_round_pd
460   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
461   return _mm512_fmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
462 }
test_mm512_mask_fmsub_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)463 __m512d test_mm512_mask_fmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
464   // CHECK-LABEL: @test_mm512_mask_fmsub_round_pd
465   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
466   return _mm512_mask_fmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
467 }
test_mm512_maskz_fmsub_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)468 __m512d test_mm512_maskz_fmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
469   // CHECK-LABEL: @test_mm512_maskz_fmsub_round_pd
470   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
471   return _mm512_maskz_fmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
472 }
test_mm512_fnmadd_round_pd(__m512d __A,__m512d __B,__m512d __C)473 __m512d test_mm512_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
474   // CHECK-LABEL: @test_mm512_fnmadd_round_pd
475   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
476   return _mm512_fnmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
477 }
test_mm512_mask3_fnmadd_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)478 __m512d test_mm512_mask3_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
479   // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_pd
480   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
481   return _mm512_mask3_fnmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
482 }
test_mm512_maskz_fnmadd_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)483 __m512d test_mm512_maskz_fnmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
484   // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_pd
485   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
486   return _mm512_maskz_fnmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
487 }
test_mm512_fnmsub_round_pd(__m512d __A,__m512d __B,__m512d __C)488 __m512d test_mm512_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
489   // CHECK-LABEL: @test_mm512_fnmsub_round_pd
490   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
491   return _mm512_fnmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
492 }
test_mm512_maskz_fnmsub_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)493 __m512d test_mm512_maskz_fnmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
494   // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_pd
495   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
496   return _mm512_maskz_fnmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
497 }
test_mm512_fmadd_pd(__m512d __A,__m512d __B,__m512d __C)498 __m512d test_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
499   // CHECK-LABEL: @test_mm512_fmadd_pd
500   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
501   return _mm512_fmadd_pd(__A, __B, __C);
502 }
test_mm512_mask_fmadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)503 __m512d test_mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
504   // CHECK-LABEL: @test_mm512_mask_fmadd_pd
505   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
506   return _mm512_mask_fmadd_pd(__A, __U, __B, __C);
507 }
test_mm512_mask3_fmadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)508 __m512d test_mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
509   // CHECK-LABEL: @test_mm512_mask3_fmadd_pd
510   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
511   return _mm512_mask3_fmadd_pd(__A, __B, __C, __U);
512 }
test_mm512_maskz_fmadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)513 __m512d test_mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
514   // CHECK-LABEL: @test_mm512_maskz_fmadd_pd
515   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
516   return _mm512_maskz_fmadd_pd(__U, __A, __B, __C);
517 }
test_mm512_fmsub_pd(__m512d __A,__m512d __B,__m512d __C)518 __m512d test_mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
519   // CHECK-LABEL: @test_mm512_fmsub_pd
520   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
521   return _mm512_fmsub_pd(__A, __B, __C);
522 }
test_mm512_mask_fmsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)523 __m512d test_mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
524   // CHECK-LABEL: @test_mm512_mask_fmsub_pd
525   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
526   return _mm512_mask_fmsub_pd(__A, __U, __B, __C);
527 }
test_mm512_maskz_fmsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)528 __m512d test_mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
529   // CHECK-LABEL: @test_mm512_maskz_fmsub_pd
530   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
531   return _mm512_maskz_fmsub_pd(__U, __A, __B, __C);
532 }
test_mm512_fnmadd_pd(__m512d __A,__m512d __B,__m512d __C)533 __m512d test_mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
534   // CHECK-LABEL: @test_mm512_fnmadd_pd
535   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
536   return _mm512_fnmadd_pd(__A, __B, __C);
537 }
test_mm512_mask3_fnmadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)538 __m512d test_mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
539   // CHECK-LABEL: @test_mm512_mask3_fnmadd_pd
540   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
541   return _mm512_mask3_fnmadd_pd(__A, __B, __C, __U);
542 }
test_mm512_maskz_fnmadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)543 __m512d test_mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
544   // CHECK-LABEL: @test_mm512_maskz_fnmadd_pd
545   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
546   return _mm512_maskz_fnmadd_pd(__U, __A, __B, __C);
547 }
test_mm512_fnmsub_pd(__m512d __A,__m512d __B,__m512d __C)548 __m512d test_mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
549   // CHECK-LABEL: @test_mm512_fnmsub_pd
550   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
551   return _mm512_fnmsub_pd(__A, __B, __C);
552 }
test_mm512_maskz_fnmsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)553 __m512d test_mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
554   // CHECK-LABEL: @test_mm512_maskz_fnmsub_pd
555   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
556   return _mm512_maskz_fnmsub_pd(__U, __A, __B, __C);
557 }
test_mm512_fmadd_round_ps(__m512 __A,__m512 __B,__m512 __C)558 __m512 test_mm512_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
559   // CHECK-LABEL: @test_mm512_fmadd_round_ps
560   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
561   return _mm512_fmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
562 }
test_mm512_mask_fmadd_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)563 __m512 test_mm512_mask_fmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
564   // CHECK-LABEL: @test_mm512_mask_fmadd_round_ps
565   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
566   return _mm512_mask_fmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
567 }
test_mm512_mask3_fmadd_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)568 __m512 test_mm512_mask3_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
569   // CHECK-LABEL: @test_mm512_mask3_fmadd_round_ps
570   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
571   return _mm512_mask3_fmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
572 }
test_mm512_maskz_fmadd_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)573 __m512 test_mm512_maskz_fmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
574   // CHECK-LABEL: @test_mm512_maskz_fmadd_round_ps
575   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
576   return _mm512_maskz_fmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
577 }
test_mm512_fmsub_round_ps(__m512 __A,__m512 __B,__m512 __C)578 __m512 test_mm512_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
579   // CHECK-LABEL: @test_mm512_fmsub_round_ps
580   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
581   return _mm512_fmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
582 }
test_mm512_mask_fmsub_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)583 __m512 test_mm512_mask_fmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
584   // CHECK-LABEL: @test_mm512_mask_fmsub_round_ps
585   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
586   return _mm512_mask_fmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
587 }
test_mm512_maskz_fmsub_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)588 __m512 test_mm512_maskz_fmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
589   // CHECK-LABEL: @test_mm512_maskz_fmsub_round_ps
590   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
591   return _mm512_maskz_fmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
592 }
test_mm512_fnmadd_round_ps(__m512 __A,__m512 __B,__m512 __C)593 __m512 test_mm512_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
594   // CHECK-LABEL: @test_mm512_fnmadd_round_ps
595   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
596   return _mm512_fnmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
597 }
test_mm512_mask3_fnmadd_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)598 __m512 test_mm512_mask3_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
599   // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_ps
600   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
601   return _mm512_mask3_fnmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
602 }
test_mm512_maskz_fnmadd_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)603 __m512 test_mm512_maskz_fnmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
604   // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_ps
605   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
606   return _mm512_maskz_fnmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
607 }
test_mm512_fnmsub_round_ps(__m512 __A,__m512 __B,__m512 __C)608 __m512 test_mm512_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
609   // CHECK-LABEL: @test_mm512_fnmsub_round_ps
610   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
611   return _mm512_fnmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
612 }
test_mm512_maskz_fnmsub_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)613 __m512 test_mm512_maskz_fnmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
614   // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_ps
615   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
616   return _mm512_maskz_fnmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
617 }
test_mm512_fmadd_ps(__m512 __A,__m512 __B,__m512 __C)618 __m512 test_mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
619   // CHECK-LABEL: @test_mm512_fmadd_ps
620   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
621   return _mm512_fmadd_ps(__A, __B, __C);
622 }
test_mm512_mask_fmadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)623 __m512 test_mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
624   // CHECK-LABEL: @test_mm512_mask_fmadd_ps
625   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
626   return _mm512_mask_fmadd_ps(__A, __U, __B, __C);
627 }
test_mm512_mask3_fmadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)628 __m512 test_mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
629   // CHECK-LABEL: @test_mm512_mask3_fmadd_ps
630   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
631   return _mm512_mask3_fmadd_ps(__A, __B, __C, __U);
632 }
test_mm512_maskz_fmadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)633 __m512 test_mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
634   // CHECK-LABEL: @test_mm512_maskz_fmadd_ps
635   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
636   return _mm512_maskz_fmadd_ps(__U, __A, __B, __C);
637 }
test_mm512_fmsub_ps(__m512 __A,__m512 __B,__m512 __C)638 __m512 test_mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
639   // CHECK-LABEL: @test_mm512_fmsub_ps
640   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
641   return _mm512_fmsub_ps(__A, __B, __C);
642 }
test_mm512_mask_fmsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)643 __m512 test_mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
644   // CHECK-LABEL: @test_mm512_mask_fmsub_ps
645   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
646   return _mm512_mask_fmsub_ps(__A, __U, __B, __C);
647 }
test_mm512_maskz_fmsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)648 __m512 test_mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
649   // CHECK-LABEL: @test_mm512_maskz_fmsub_ps
650   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
651   return _mm512_maskz_fmsub_ps(__U, __A, __B, __C);
652 }
test_mm512_fnmadd_ps(__m512 __A,__m512 __B,__m512 __C)653 __m512 test_mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
654   // CHECK-LABEL: @test_mm512_fnmadd_ps
655   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
656   return _mm512_fnmadd_ps(__A, __B, __C);
657 }
test_mm512_mask3_fnmadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)658 __m512 test_mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
659   // CHECK-LABEL: @test_mm512_mask3_fnmadd_ps
660   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
661   return _mm512_mask3_fnmadd_ps(__A, __B, __C, __U);
662 }
test_mm512_maskz_fnmadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)663 __m512 test_mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
664   // CHECK-LABEL: @test_mm512_maskz_fnmadd_ps
665   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
666   return _mm512_maskz_fnmadd_ps(__U, __A, __B, __C);
667 }
test_mm512_fnmsub_ps(__m512 __A,__m512 __B,__m512 __C)668 __m512 test_mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
669   // CHECK-LABEL: @test_mm512_fnmsub_ps
670   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
671   return _mm512_fnmsub_ps(__A, __B, __C);
672 }
test_mm512_maskz_fnmsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)673 __m512 test_mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
674   // CHECK-LABEL: @test_mm512_maskz_fnmsub_ps
675   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
676   return _mm512_maskz_fnmsub_ps(__U, __A, __B, __C);
677 }
test_mm512_fmaddsub_round_pd(__m512d __A,__m512d __B,__m512d __C)678 __m512d test_mm512_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
679   // CHECK-LABEL: @test_mm512_fmaddsub_round_pd
680   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
681   return _mm512_fmaddsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
682 }
test_mm512_mask_fmaddsub_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)683 __m512d test_mm512_mask_fmaddsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
684   // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_pd
685   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
686   return _mm512_mask_fmaddsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
687 }
test_mm512_mask3_fmaddsub_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)688 __m512d test_mm512_mask3_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
689   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_pd
690   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
691   return _mm512_mask3_fmaddsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
692 }
test_mm512_maskz_fmaddsub_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)693 __m512d test_mm512_maskz_fmaddsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
694   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_pd
695   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
696   return _mm512_maskz_fmaddsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
697 }
test_mm512_fmsubadd_round_pd(__m512d __A,__m512d __B,__m512d __C)698 __m512d test_mm512_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
699   // CHECK-LABEL: @test_mm512_fmsubadd_round_pd
700   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
701   return _mm512_fmsubadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
702 }
test_mm512_mask_fmsubadd_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)703 __m512d test_mm512_mask_fmsubadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
704   // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_pd
705   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
706   return _mm512_mask_fmsubadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
707 }
test_mm512_maskz_fmsubadd_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)708 __m512d test_mm512_maskz_fmsubadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
709   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_pd
710   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
711   return _mm512_maskz_fmsubadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
712 }
test_mm512_fmaddsub_pd(__m512d __A,__m512d __B,__m512d __C)713 __m512d test_mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C) {
714   // CHECK-LABEL: @test_mm512_fmaddsub_pd
715   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
716   return _mm512_fmaddsub_pd(__A, __B, __C);
717 }
test_mm512_mask_fmaddsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)718 __m512d test_mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
719   // CHECK-LABEL: @test_mm512_mask_fmaddsub_pd
720   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
721   return _mm512_mask_fmaddsub_pd(__A, __U, __B, __C);
722 }
test_mm512_mask3_fmaddsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)723 __m512d test_mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
724   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_pd
725   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
726   return _mm512_mask3_fmaddsub_pd(__A, __B, __C, __U);
727 }
test_mm512_maskz_fmaddsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)728 __m512d test_mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
729   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_pd
730   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
731   return _mm512_maskz_fmaddsub_pd(__U, __A, __B, __C);
732 }
test_mm512_fmsubadd_pd(__m512d __A,__m512d __B,__m512d __C)733 __m512d test_mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C) {
734   // CHECK-LABEL: @test_mm512_fmsubadd_pd
735   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
736   return _mm512_fmsubadd_pd(__A, __B, __C);
737 }
test_mm512_mask_fmsubadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)738 __m512d test_mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
739   // CHECK-LABEL: @test_mm512_mask_fmsubadd_pd
740   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
741   return _mm512_mask_fmsubadd_pd(__A, __U, __B, __C);
742 }
test_mm512_maskz_fmsubadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)743 __m512d test_mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
744   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_pd
745   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
746   return _mm512_maskz_fmsubadd_pd(__U, __A, __B, __C);
747 }
test_mm512_fmaddsub_round_ps(__m512 __A,__m512 __B,__m512 __C)748 __m512 test_mm512_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
749   // CHECK-LABEL: @test_mm512_fmaddsub_round_ps
750   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
751   return _mm512_fmaddsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
752 }
test_mm512_mask_fmaddsub_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)753 __m512 test_mm512_mask_fmaddsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
754   // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_ps
755   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
756   return _mm512_mask_fmaddsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
757 }
test_mm512_mask3_fmaddsub_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)758 __m512 test_mm512_mask3_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
759   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_ps
760   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
761   return _mm512_mask3_fmaddsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
762 }
test_mm512_maskz_fmaddsub_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)763 __m512 test_mm512_maskz_fmaddsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
764   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_ps
765   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
766   return _mm512_maskz_fmaddsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
767 }
test_mm512_fmsubadd_round_ps(__m512 __A,__m512 __B,__m512 __C)768 __m512 test_mm512_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
769   // CHECK-LABEL: @test_mm512_fmsubadd_round_ps
770   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
771   return _mm512_fmsubadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
772 }
test_mm512_mask_fmsubadd_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)773 __m512 test_mm512_mask_fmsubadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
774   // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_ps
775   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
776   return _mm512_mask_fmsubadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
777 }
test_mm512_maskz_fmsubadd_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)778 __m512 test_mm512_maskz_fmsubadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
779   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_ps
780   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
781   return _mm512_maskz_fmsubadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
782 }
test_mm512_fmaddsub_ps(__m512 __A,__m512 __B,__m512 __C)783 __m512 test_mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C) {
784   // CHECK-LABEL: @test_mm512_fmaddsub_ps
785   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
786   return _mm512_fmaddsub_ps(__A, __B, __C);
787 }
test_mm512_mask_fmaddsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)788 __m512 test_mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
789   // CHECK-LABEL: @test_mm512_mask_fmaddsub_ps
790   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
791   return _mm512_mask_fmaddsub_ps(__A, __U, __B, __C);
792 }
test_mm512_mask3_fmaddsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)793 __m512 test_mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
794   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_ps
795   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
796   return _mm512_mask3_fmaddsub_ps(__A, __B, __C, __U);
797 }
test_mm512_maskz_fmaddsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)798 __m512 test_mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
799   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_ps
800   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
801   return _mm512_maskz_fmaddsub_ps(__U, __A, __B, __C);
802 }
test_mm512_fmsubadd_ps(__m512 __A,__m512 __B,__m512 __C)803 __m512 test_mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C) {
804   // CHECK-LABEL: @test_mm512_fmsubadd_ps
805   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
806   return _mm512_fmsubadd_ps(__A, __B, __C);
807 }
test_mm512_mask_fmsubadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)808 __m512 test_mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
809   // CHECK-LABEL: @test_mm512_mask_fmsubadd_ps
810   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
811   return _mm512_mask_fmsubadd_ps(__A, __U, __B, __C);
812 }
test_mm512_maskz_fmsubadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)813 __m512 test_mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
814   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_ps
815   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
816   return _mm512_maskz_fmsubadd_ps(__U, __A, __B, __C);
817 }
test_mm512_mask3_fmsub_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)818 __m512d test_mm512_mask3_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
819   // CHECK-LABEL: @test_mm512_mask3_fmsub_round_pd
820   // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
821   return _mm512_mask3_fmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
822 }
test_mm512_mask3_fmsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)823 __m512d test_mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
824   // CHECK-LABEL: @test_mm512_mask3_fmsub_pd
825   // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
826   return _mm512_mask3_fmsub_pd(__A, __B, __C, __U);
827 }
test_mm512_mask3_fmsub_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)828 __m512 test_mm512_mask3_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
829   // CHECK-LABEL: @test_mm512_mask3_fmsub_round_ps
830   // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
831   return _mm512_mask3_fmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
832 }
test_mm512_mask3_fmsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)833 __m512 test_mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
834   // CHECK-LABEL: @test_mm512_mask3_fmsub_ps
835   // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
836   return _mm512_mask3_fmsub_ps(__A, __B, __C, __U);
837 }
test_mm512_mask3_fmsubadd_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)838 __m512d test_mm512_mask3_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
839   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_pd
840   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
841   return _mm512_mask3_fmsubadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
842 }
test_mm512_mask3_fmsubadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)843 __m512d test_mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
844   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_pd
845   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
846   return _mm512_mask3_fmsubadd_pd(__A, __B, __C, __U);
847 }
test_mm512_mask3_fmsubadd_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)848 __m512 test_mm512_mask3_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
849   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_ps
850   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
851   return _mm512_mask3_fmsubadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
852 }
test_mm512_mask3_fmsubadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)853 __m512 test_mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
854   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_ps
855   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
856   return _mm512_mask3_fmsubadd_ps(__A, __B, __C, __U);
857 }
test_mm512_mask_fnmadd_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)858 __m512d test_mm512_mask_fnmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
859   // CHECK-LABEL: @test_mm512_mask_fnmadd_round_pd
860   // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
861   return _mm512_mask_fnmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
862 }
test_mm512_mask_fnmadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)863 __m512d test_mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
864   // CHECK-LABEL: @test_mm512_mask_fnmadd_pd
865   // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
866   return _mm512_mask_fnmadd_pd(__A, __U, __B, __C);
867 }
test_mm512_mask_fnmadd_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)868 __m512 test_mm512_mask_fnmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
869   // CHECK-LABEL: @test_mm512_mask_fnmadd_round_ps
870   // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
871   return _mm512_mask_fnmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
872 }
test_mm512_mask_fnmadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)873 __m512 test_mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
874   // CHECK-LABEL: @test_mm512_mask_fnmadd_ps
875   // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
876   return _mm512_mask_fnmadd_ps(__A, __U, __B, __C);
877 }
test_mm512_mask_fnmsub_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)878 __m512d test_mm512_mask_fnmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
879   // CHECK-LABEL: @test_mm512_mask_fnmsub_round_pd
880   // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
881   return _mm512_mask_fnmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
882 }
test_mm512_mask3_fnmsub_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)883 __m512d test_mm512_mask3_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
884   // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_pd
885   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
886   return _mm512_mask3_fnmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
887 }
test_mm512_mask_fnmsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)888 __m512d test_mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
889   // CHECK-LABEL: @test_mm512_mask_fnmsub_pd
890   // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
891   return _mm512_mask_fnmsub_pd(__A, __U, __B, __C);
892 }
test_mm512_mask3_fnmsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)893 __m512d test_mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
894   // CHECK-LABEL: @test_mm512_mask3_fnmsub_pd
895   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
896   return _mm512_mask3_fnmsub_pd(__A, __B, __C, __U);
897 }
test_mm512_mask_fnmsub_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)898 __m512 test_mm512_mask_fnmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
899   // CHECK-LABEL: @test_mm512_mask_fnmsub_round_ps
900   // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
901   return _mm512_mask_fnmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
902 }
test_mm512_mask3_fnmsub_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)903 __m512 test_mm512_mask3_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
904   // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_ps
905   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
906   return _mm512_mask3_fnmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
907 }
test_mm512_mask_fnmsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)908 __m512 test_mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
909   // CHECK-LABEL: @test_mm512_mask_fnmsub_ps
910   // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
911   return _mm512_mask_fnmsub_ps(__A, __U, __B, __C);
912 }
test_mm512_mask3_fnmsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)913 __m512 test_mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
914   // CHECK-LABEL: @test_mm512_mask3_fnmsub_ps
915   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
916   return _mm512_mask3_fnmsub_ps(__A, __B, __C, __U);
917 }
918 
test_mm512_cmpeq_epi32_mask(__m512i __a,__m512i __b)919 __mmask16 test_mm512_cmpeq_epi32_mask(__m512i __a, __m512i __b) {
920   // CHECK-LABEL: @test_mm512_cmpeq_epi32_mask
921   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
922   return (__mmask16)_mm512_cmpeq_epi32_mask(__a, __b);
923 }
924 
test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)925 __mmask16 test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
926   // CHECK-LABEL: @test_mm512_mask_cmpeq_epi32_mask
927   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
928   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
929   return (__mmask16)_mm512_mask_cmpeq_epi32_mask(__u, __a, __b);
930 }
931 
test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)932 __mmask8 test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
933   // CHECK-LABEL: @test_mm512_mask_cmpeq_epi64_mask
934   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
935   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
936   return (__mmask8)_mm512_mask_cmpeq_epi64_mask(__u, __a, __b);
937 }
938 
test_mm512_cmpeq_epi64_mask(__m512i __a,__m512i __b)939 __mmask8 test_mm512_cmpeq_epi64_mask(__m512i __a, __m512i __b) {
940   // CHECK-LABEL: @test_mm512_cmpeq_epi64_mask
941   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
942   return (__mmask8)_mm512_cmpeq_epi64_mask(__a, __b);
943 }
944 
test_mm512_cmpgt_epi32_mask(__m512i __a,__m512i __b)945 __mmask16 test_mm512_cmpgt_epi32_mask(__m512i __a, __m512i __b) {
946   // CHECK-LABEL: @test_mm512_cmpgt_epi32_mask
947   // CHECK: icmp sgt <16 x i32> %{{.*}}, %{{.*}}
948   return (__mmask16)_mm512_cmpgt_epi32_mask(__a, __b);
949 }
950 
test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)951 __mmask16 test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
952   // CHECK-LABEL: @test_mm512_mask_cmpgt_epi32_mask
953   // CHECK: icmp sgt <16 x i32> %{{.*}}, %{{.*}}
954   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
955   return (__mmask16)_mm512_mask_cmpgt_epi32_mask(__u, __a, __b);
956 }
957 
test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)958 __mmask8 test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
959   // CHECK-LABEL: @test_mm512_mask_cmpgt_epi64_mask
960   // CHECK: icmp sgt <8 x i64> %{{.*}}, %{{.*}}
961   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
962   return (__mmask8)_mm512_mask_cmpgt_epi64_mask(__u, __a, __b);
963 }
964 
test_mm512_cmpgt_epi64_mask(__m512i __a,__m512i __b)965 __mmask8 test_mm512_cmpgt_epi64_mask(__m512i __a, __m512i __b) {
966   // CHECK-LABEL: @test_mm512_cmpgt_epi64_mask
967   // CHECK: icmp sgt <8 x i64> %{{.*}}, %{{.*}}
968   return (__mmask8)_mm512_cmpgt_epi64_mask(__a, __b);
969 }
970 
test_mm512_unpackhi_pd(__m512d a,__m512d b)971 __m512d test_mm512_unpackhi_pd(__m512d a, __m512d b)
972 {
973   // CHECK-LABEL: @test_mm512_unpackhi_pd
974   // CHECK: shufflevector <8 x double> {{.*}} <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
975   return _mm512_unpackhi_pd(a, b);
976 }
977 
test_mm512_unpacklo_pd(__m512d a,__m512d b)978 __m512d test_mm512_unpacklo_pd(__m512d a, __m512d b)
979 {
980   // CHECK-LABEL: @test_mm512_unpacklo_pd
981   // CHECK: shufflevector <8 x double> {{.*}} <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
982   return _mm512_unpacklo_pd(a, b);
983 }
984 
test_mm512_unpackhi_ps(__m512 a,__m512 b)985 __m512 test_mm512_unpackhi_ps(__m512 a, __m512 b)
986 {
987   // CHECK-LABEL: @test_mm512_unpackhi_ps
988   // 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   return _mm512_unpackhi_ps(a, b);
990 }
991 
test_mm512_unpacklo_ps(__m512 a,__m512 b)992 __m512 test_mm512_unpacklo_ps(__m512 a, __m512 b)
993 {
994   // CHECK-LABEL: @test_mm512_unpacklo_ps
995   // 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   return _mm512_unpacklo_ps(a, b);
997 }
998 
test_mm512_cmp_round_ps_mask(__m512 a,__m512 b)999 __mmask16 test_mm512_cmp_round_ps_mask(__m512 a, __m512 b) {
1000   // CHECK-LABEL: @test_mm512_cmp_round_ps_mask
1001   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1002   return _mm512_cmp_round_ps_mask(a, b, 0, _MM_FROUND_CUR_DIRECTION);
1003 }
1004 
test_mm512_mask_cmp_round_ps_mask(__mmask16 m,__m512 a,__m512 b)1005 __mmask16 test_mm512_mask_cmp_round_ps_mask(__mmask16 m, __m512 a, __m512 b) {
1006   // CHECK-LABEL: @test_mm512_mask_cmp_round_ps_mask
1007   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1008   return _mm512_mask_cmp_round_ps_mask(m, a, b, 0, _MM_FROUND_CUR_DIRECTION);
1009 }
1010 
test_mm512_cmp_ps_mask(__m512 a,__m512 b)1011 __mmask16 test_mm512_cmp_ps_mask(__m512 a, __m512 b) {
1012   // CHECK-LABEL: @test_mm512_cmp_ps_mask
1013   // CHECKn: @llvm.x86.avx512.mask.cmp.ps.512
1014   return _mm512_cmp_ps_mask(a, b, 0);
1015 }
1016 
test_mm512_mask_cmp_ps_mask(__mmask16 m,__m512 a,__m512 b)1017 __mmask16 test_mm512_mask_cmp_ps_mask(__mmask16 m, __m512 a, __m512 b) {
1018   // CHECK-LABEL: @test_mm512_mask_cmp_ps_mask
1019   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1020   return _mm512_mask_cmp_ps_mask(m, a, b, 0);
1021 }
1022 
test_mm512_cmp_round_pd_mask(__m512d a,__m512d b)1023 __mmask8 test_mm512_cmp_round_pd_mask(__m512d a, __m512d b) {
1024   // CHECK-LABEL: @test_mm512_cmp_round_pd_mask
1025   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1026   return _mm512_cmp_round_pd_mask(a, b, 0, _MM_FROUND_CUR_DIRECTION);
1027 }
1028 
test_mm512_mask_cmp_round_pd_mask(__mmask8 m,__m512d a,__m512d b)1029 __mmask8 test_mm512_mask_cmp_round_pd_mask(__mmask8 m, __m512d a, __m512d b) {
1030   // CHECK-LABEL: @test_mm512_mask_cmp_round_pd_mask
1031   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1032   return _mm512_mask_cmp_round_pd_mask(m, a, b, 0, _MM_FROUND_CUR_DIRECTION);
1033 }
1034 
test_mm512_cmp_pd_mask(__m512d a,__m512d b)1035 __mmask8 test_mm512_cmp_pd_mask(__m512d a, __m512d b) {
1036   // CHECK-LABEL: @test_mm512_cmp_pd_mask
1037   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1038   return _mm512_cmp_pd_mask(a, b, 0);
1039 }
1040 
test_mm512_mask_cmp_pd_mask(__mmask8 m,__m512d a,__m512d b)1041 __mmask8 test_mm512_mask_cmp_pd_mask(__mmask8 m, __m512d a, __m512d b) {
1042   // CHECK-LABEL: @test_mm512_mask_cmp_pd_mask
1043   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1044   return _mm512_mask_cmp_pd_mask(m, a, b, 0);
1045 }
1046 
test_mm512_extractf64x4_pd(__m512d a)1047 __m256d test_mm512_extractf64x4_pd(__m512d a)
1048 {
1049   // CHECK-LABEL: @test_mm512_extractf64x4_pd
1050   // CHECK: @llvm.x86.avx512.mask.vextractf64x4.512
1051   return _mm512_extractf64x4_pd(a, 1);
1052 }
1053 
test_mm512_mask_extractf64x4_pd(__m256d __W,__mmask8 __U,__m512d __A)1054 __m256d test_mm512_mask_extractf64x4_pd(__m256d  __W,__mmask8  __U,__m512d __A){
1055  //CHECK-LABEL:@test_mm512_mask_extractf64x4_pd
1056  //CHECL:@llvm.x86.avx512.mask.vextractf64x4.512
1057  return _mm512_mask_extractf64x4_pd( __W, __U, __A, 1);
1058 }
1059 
test_mm512_maskz_extractf64x4_pd(__mmask8 __U,__m512d __A)1060 __m256d test_mm512_maskz_extractf64x4_pd(__mmask8  __U,__m512d __A){
1061  //CHECK-LABEL:@test_mm512_maskz_extractf64x4_pd
1062  //CHECL:@llvm.x86.avx512.mask.vextractf64x4.512
1063  return _mm512_maskz_extractf64x4_pd( __U, __A, 1);
1064 }
1065 
test_mm512_extractf32x4_ps(__m512 a)1066 __m128 test_mm512_extractf32x4_ps(__m512 a)
1067 {
1068   // CHECK-LABEL: @test_mm512_extractf32x4_ps
1069   // CHECK: @llvm.x86.avx512.mask.vextractf32x4.512
1070   return _mm512_extractf32x4_ps(a, 1);
1071 }
1072 
test_mm512_mask_extractf32x4_ps(__m128 __W,__mmask8 __U,__m512d __A)1073 __m128 test_mm512_mask_extractf32x4_ps(__m128 __W, __mmask8  __U,__m512d __A){
1074  //CHECK-LABEL:@test_mm512_mask_extractf32x4_ps
1075  //CHECL: @llvm.x86.avx512.mask.vextractf32x4.512
1076  return _mm512_mask_extractf32x4_ps( __W, __U, __A, 1);
1077 }
1078 
test_mm512_maskz_extractf32x4_ps(__mmask8 __U,__m512d __A)1079 __m128 test_mm512_maskz_extractf32x4_ps( __mmask8  __U,__m512d __A){
1080  //CHECK-LABEL:@test_mm512_maskz_extractf32x4_ps
1081  //CHECL: @llvm.x86.avx512.mask.vextractf32x4.512
1082  return _mm512_maskz_extractf32x4_ps(  __U, __A, 1);
1083 }
1084 
test_mm512_cmpeq_epu32_mask(__m512i __a,__m512i __b)1085 __mmask16 test_mm512_cmpeq_epu32_mask(__m512i __a, __m512i __b) {
1086   // CHECK-LABEL: @test_mm512_cmpeq_epu32_mask
1087   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1088   return (__mmask16)_mm512_cmpeq_epu32_mask(__a, __b);
1089 }
1090 
test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1091 __mmask16 test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1092   // CHECK-LABEL: @test_mm512_mask_cmpeq_epu32_mask
1093   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1094   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1095   return (__mmask16)_mm512_mask_cmpeq_epu32_mask(__u, __a, __b);
1096 }
1097 
test_mm512_cmpeq_epu64_mask(__m512i __a,__m512i __b)1098 __mmask8 test_mm512_cmpeq_epu64_mask(__m512i __a, __m512i __b) {
1099   // CHECK-LABEL: @test_mm512_cmpeq_epu64_mask
1100   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1101   return (__mmask8)_mm512_cmpeq_epu64_mask(__a, __b);
1102 }
1103 
test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1104 __mmask8 test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1105   // CHECK-LABEL: @test_mm512_mask_cmpeq_epu64_mask
1106   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1107   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1108   return (__mmask8)_mm512_mask_cmpeq_epu64_mask(__u, __a, __b);
1109 }
1110 
test_mm512_cmpge_epi32_mask(__m512i __a,__m512i __b)1111 __mmask16 test_mm512_cmpge_epi32_mask(__m512i __a, __m512i __b) {
1112   // CHECK-LABEL: @test_mm512_cmpge_epi32_mask
1113   // CHECK: icmp sge <16 x i32> %{{.*}}, %{{.*}}
1114   return (__mmask16)_mm512_cmpge_epi32_mask(__a, __b);
1115 }
1116 
test_mm512_mask_cmpge_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)1117 __mmask16 test_mm512_mask_cmpge_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1118   // CHECK-LABEL: @test_mm512_mask_cmpge_epi32_mask
1119   // CHECK: icmp sge <16 x i32> %{{.*}}, %{{.*}}
1120   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1121   return (__mmask16)_mm512_mask_cmpge_epi32_mask(__u, __a, __b);
1122 }
1123 
test_mm512_cmpge_epi64_mask(__m512i __a,__m512i __b)1124 __mmask8 test_mm512_cmpge_epi64_mask(__m512i __a, __m512i __b) {
1125   // CHECK-LABEL: @test_mm512_cmpge_epi64_mask
1126   // CHECK: icmp sge <8 x i64> %{{.*}}, %{{.*}}
1127   return (__mmask8)_mm512_cmpge_epi64_mask(__a, __b);
1128 }
1129 
test_mm512_mask_cmpge_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)1130 __mmask8 test_mm512_mask_cmpge_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1131   // CHECK-LABEL: @test_mm512_mask_cmpge_epi64_mask
1132   // CHECK: icmp sge <8 x i64> %{{.*}}, %{{.*}}
1133   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1134   return (__mmask8)_mm512_mask_cmpge_epi64_mask(__u, __a, __b);
1135 }
1136 
test_mm512_cmpge_epu32_mask(__m512i __a,__m512i __b)1137 __mmask16 test_mm512_cmpge_epu32_mask(__m512i __a, __m512i __b) {
1138   // CHECK-LABEL: @test_mm512_cmpge_epu32_mask
1139   // CHECK: icmp uge <16 x i32> %{{.*}}, %{{.*}}
1140   return (__mmask16)_mm512_cmpge_epu32_mask(__a, __b);
1141 }
1142 
test_mm512_mask_cmpge_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1143 __mmask16 test_mm512_mask_cmpge_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1144   // CHECK-LABEL: @test_mm512_mask_cmpge_epu32_mask
1145   // CHECK: icmp uge <16 x i32> %{{.*}}, %{{.*}}
1146   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1147   return (__mmask16)_mm512_mask_cmpge_epu32_mask(__u, __a, __b);
1148 }
1149 
test_mm512_cmpge_epu64_mask(__m512i __a,__m512i __b)1150 __mmask8 test_mm512_cmpge_epu64_mask(__m512i __a, __m512i __b) {
1151   // CHECK-LABEL: @test_mm512_cmpge_epu64_mask
1152   // CHECK: icmp uge <8 x i64> %{{.*}}, %{{.*}}
1153   return (__mmask8)_mm512_cmpge_epu64_mask(__a, __b);
1154 }
1155 
test_mm512_mask_cmpge_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1156 __mmask8 test_mm512_mask_cmpge_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1157   // CHECK-LABEL: @test_mm512_mask_cmpge_epu64_mask
1158   // CHECK: icmp uge <8 x i64> %{{.*}}, %{{.*}}
1159   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1160   return (__mmask8)_mm512_mask_cmpge_epu64_mask(__u, __a, __b);
1161 }
1162 
test_mm512_cmpgt_epu32_mask(__m512i __a,__m512i __b)1163 __mmask16 test_mm512_cmpgt_epu32_mask(__m512i __a, __m512i __b) {
1164   // CHECK-LABEL: @test_mm512_cmpgt_epu32_mask
1165   // CHECK: icmp ugt <16 x i32> %{{.*}}, %{{.*}}
1166   return (__mmask16)_mm512_cmpgt_epu32_mask(__a, __b);
1167 }
1168 
test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1169 __mmask16 test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1170   // CHECK-LABEL: @test_mm512_mask_cmpgt_epu32_mask
1171   // CHECK: icmp ugt <16 x i32> %{{.*}}, %{{.*}}
1172   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1173   return (__mmask16)_mm512_mask_cmpgt_epu32_mask(__u, __a, __b);
1174 }
1175 
test_mm512_cmpgt_epu64_mask(__m512i __a,__m512i __b)1176 __mmask8 test_mm512_cmpgt_epu64_mask(__m512i __a, __m512i __b) {
1177   // CHECK-LABEL: @test_mm512_cmpgt_epu64_mask
1178   // CHECK: icmp ugt <8 x i64> %{{.*}}, %{{.*}}
1179   return (__mmask8)_mm512_cmpgt_epu64_mask(__a, __b);
1180 }
1181 
test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1182 __mmask8 test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1183   // CHECK-LABEL: @test_mm512_mask_cmpgt_epu64_mask
1184   // CHECK: icmp ugt <8 x i64> %{{.*}}, %{{.*}}
1185   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1186   return (__mmask8)_mm512_mask_cmpgt_epu64_mask(__u, __a, __b);
1187 }
1188 
test_mm512_cmple_epi32_mask(__m512i __a,__m512i __b)1189 __mmask16 test_mm512_cmple_epi32_mask(__m512i __a, __m512i __b) {
1190   // CHECK-LABEL: @test_mm512_cmple_epi32_mask
1191   // CHECK: icmp sle <16 x i32> %{{.*}}, %{{.*}}
1192   return (__mmask16)_mm512_cmple_epi32_mask(__a, __b);
1193 }
1194 
test_mm512_mask_cmple_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)1195 __mmask16 test_mm512_mask_cmple_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1196   // CHECK-LABEL: @test_mm512_mask_cmple_epi32_mask
1197   // CHECK: icmp sle <16 x i32> %{{.*}}, %{{.*}}
1198   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1199   return (__mmask16)_mm512_mask_cmple_epi32_mask(__u, __a, __b);
1200 }
1201 
test_mm512_cmple_epi64_mask(__m512i __a,__m512i __b)1202 __mmask8 test_mm512_cmple_epi64_mask(__m512i __a, __m512i __b) {
1203   // CHECK-LABEL: @test_mm512_cmple_epi64_mask
1204   // CHECK: icmp sle <8 x i64> %{{.*}}, %{{.*}}
1205   return (__mmask8)_mm512_cmple_epi64_mask(__a, __b);
1206 }
1207 
test_mm512_mask_cmple_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)1208 __mmask8 test_mm512_mask_cmple_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1209   // CHECK-LABEL: @test_mm512_mask_cmple_epi64_mask
1210   // CHECK: icmp sle <8 x i64> %{{.*}}, %{{.*}}
1211   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1212   return (__mmask8)_mm512_mask_cmple_epi64_mask(__u, __a, __b);
1213 }
1214 
test_mm512_cmple_epu32_mask(__m512i __a,__m512i __b)1215 __mmask16 test_mm512_cmple_epu32_mask(__m512i __a, __m512i __b) {
1216   // CHECK-LABEL: @test_mm512_cmple_epu32_mask
1217   // CHECK: icmp ule <16 x i32> %{{.*}}, %{{.*}}
1218   return (__mmask16)_mm512_cmple_epu32_mask(__a, __b);
1219 }
1220 
test_mm512_mask_cmple_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1221 __mmask16 test_mm512_mask_cmple_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1222   // CHECK-LABEL: @test_mm512_mask_cmple_epu32_mask
1223   // CHECK: icmp ule <16 x i32> %{{.*}}, %{{.*}}
1224   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1225   return (__mmask16)_mm512_mask_cmple_epu32_mask(__u, __a, __b);
1226 }
1227 
test_mm512_cmple_epu64_mask(__m512i __a,__m512i __b)1228 __mmask8 test_mm512_cmple_epu64_mask(__m512i __a, __m512i __b) {
1229   // CHECK-LABEL: @test_mm512_cmple_epu64_mask
1230   // CHECK: icmp ule <8 x i64> %{{.*}}, %{{.*}}
1231   return (__mmask8)_mm512_cmple_epu64_mask(__a, __b);
1232 }
1233 
test_mm512_mask_cmple_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1234 __mmask8 test_mm512_mask_cmple_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1235   // CHECK-LABEL: @test_mm512_mask_cmple_epu64_mask
1236   // CHECK: icmp ule <8 x i64> %{{.*}}, %{{.*}}
1237   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1238   return (__mmask8)_mm512_mask_cmple_epu64_mask(__u, __a, __b);
1239 }
1240 
test_mm512_cmplt_epi32_mask(__m512i __a,__m512i __b)1241 __mmask16 test_mm512_cmplt_epi32_mask(__m512i __a, __m512i __b) {
1242   // CHECK-LABEL: @test_mm512_cmplt_epi32_mask
1243   // CHECK: icmp slt <16 x i32> %{{.*}}, %{{.*}}
1244   return (__mmask16)_mm512_cmplt_epi32_mask(__a, __b);
1245 }
1246 
test_mm512_mask_cmplt_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)1247 __mmask16 test_mm512_mask_cmplt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1248   // CHECK-LABEL: @test_mm512_mask_cmplt_epi32_mask
1249   // CHECK: icmp slt <16 x i32> %{{.*}}, %{{.*}}
1250   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1251   return (__mmask16)_mm512_mask_cmplt_epi32_mask(__u, __a, __b);
1252 }
1253 
test_mm512_cmplt_epi64_mask(__m512i __a,__m512i __b)1254 __mmask8 test_mm512_cmplt_epi64_mask(__m512i __a, __m512i __b) {
1255   // CHECK-LABEL: @test_mm512_cmplt_epi64_mask
1256   // CHECK: icmp slt <8 x i64> %{{.*}}, %{{.*}}
1257   return (__mmask8)_mm512_cmplt_epi64_mask(__a, __b);
1258 }
1259 
test_mm512_mask_cmplt_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)1260 __mmask8 test_mm512_mask_cmplt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1261   // CHECK-LABEL: @test_mm512_mask_cmplt_epi64_mask
1262   // CHECK: icmp slt <8 x i64> %{{.*}}, %{{.*}}
1263   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1264   return (__mmask8)_mm512_mask_cmplt_epi64_mask(__u, __a, __b);
1265 }
1266 
test_mm512_cmplt_epu32_mask(__m512i __a,__m512i __b)1267 __mmask16 test_mm512_cmplt_epu32_mask(__m512i __a, __m512i __b) {
1268   // CHECK-LABEL: @test_mm512_cmplt_epu32_mask
1269   // CHECK: icmp ult <16 x i32> %{{.*}}, %{{.*}}
1270   return (__mmask16)_mm512_cmplt_epu32_mask(__a, __b);
1271 }
1272 
test_mm512_mask_cmplt_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1273 __mmask16 test_mm512_mask_cmplt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1274   // CHECK-LABEL: @test_mm512_mask_cmplt_epu32_mask
1275   // CHECK: icmp ult <16 x i32> %{{.*}}, %{{.*}}
1276   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1277   return (__mmask16)_mm512_mask_cmplt_epu32_mask(__u, __a, __b);
1278 }
1279 
test_mm512_cmplt_epu64_mask(__m512i __a,__m512i __b)1280 __mmask8 test_mm512_cmplt_epu64_mask(__m512i __a, __m512i __b) {
1281   // CHECK-LABEL: @test_mm512_cmplt_epu64_mask
1282   // CHECK: icmp ult <8 x i64> %{{.*}}, %{{.*}}
1283   return (__mmask8)_mm512_cmplt_epu64_mask(__a, __b);
1284 }
1285 
test_mm512_mask_cmplt_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1286 __mmask8 test_mm512_mask_cmplt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1287   // CHECK-LABEL: @test_mm512_mask_cmplt_epu64_mask
1288   // CHECK: icmp ult <8 x i64> %{{.*}}, %{{.*}}
1289   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1290   return (__mmask8)_mm512_mask_cmplt_epu64_mask(__u, __a, __b);
1291 }
1292 
test_mm512_cmpneq_epi32_mask(__m512i __a,__m512i __b)1293 __mmask16 test_mm512_cmpneq_epi32_mask(__m512i __a, __m512i __b) {
1294   // CHECK-LABEL: @test_mm512_cmpneq_epi32_mask
1295   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1296   return (__mmask16)_mm512_cmpneq_epi32_mask(__a, __b);
1297 }
1298 
test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)1299 __mmask16 test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1300   // CHECK-LABEL: @test_mm512_mask_cmpneq_epi32_mask
1301   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1302   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1303   return (__mmask16)_mm512_mask_cmpneq_epi32_mask(__u, __a, __b);
1304 }
1305 
test_mm512_cmpneq_epi64_mask(__m512i __a,__m512i __b)1306 __mmask8 test_mm512_cmpneq_epi64_mask(__m512i __a, __m512i __b) {
1307   // CHECK-LABEL: @test_mm512_cmpneq_epi64_mask
1308   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1309   return (__mmask8)_mm512_cmpneq_epi64_mask(__a, __b);
1310 }
1311 
test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)1312 __mmask8 test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1313   // CHECK-LABEL: @test_mm512_mask_cmpneq_epi64_mask
1314   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1315   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1316   return (__mmask8)_mm512_mask_cmpneq_epi64_mask(__u, __a, __b);
1317 }
1318 
test_mm512_cmpneq_epu32_mask(__m512i __a,__m512i __b)1319 __mmask16 test_mm512_cmpneq_epu32_mask(__m512i __a, __m512i __b) {
1320   // CHECK-LABEL: @test_mm512_cmpneq_epu32_mask
1321   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1322   return (__mmask16)_mm512_cmpneq_epu32_mask(__a, __b);
1323 }
1324 
test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1325 __mmask16 test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1326   // CHECK-LABEL: @test_mm512_mask_cmpneq_epu32_mask
1327   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1328   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1329   return (__mmask16)_mm512_mask_cmpneq_epu32_mask(__u, __a, __b);
1330 }
1331 
test_mm512_cmpneq_epu64_mask(__m512i __a,__m512i __b)1332 __mmask8 test_mm512_cmpneq_epu64_mask(__m512i __a, __m512i __b) {
1333   // CHECK-LABEL: @test_mm512_cmpneq_epu64_mask
1334   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1335   return (__mmask8)_mm512_cmpneq_epu64_mask(__a, __b);
1336 }
1337 
test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1338 __mmask8 test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1339   // CHECK-LABEL: @test_mm512_mask_cmpneq_epu64_mask
1340   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1341   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1342   return (__mmask8)_mm512_mask_cmpneq_epu64_mask(__u, __a, __b);
1343 }
1344 
test_mm512_cmp_epi32_mask(__m512i __a,__m512i __b)1345 __mmask16 test_mm512_cmp_epi32_mask(__m512i __a, __m512i __b) {
1346   // CHECK-LABEL: @test_mm512_cmp_epi32_mask
1347   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1348   return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, 0);
1349 }
1350 
test_mm512_mask_cmp_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)1351 __mmask16 test_mm512_mask_cmp_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1352   // CHECK-LABEL: @test_mm512_mask_cmp_epi32_mask
1353   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1354   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1355   return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, 0);
1356 }
1357 
test_mm512_cmp_epi64_mask(__m512i __a,__m512i __b)1358 __mmask8 test_mm512_cmp_epi64_mask(__m512i __a, __m512i __b) {
1359   // CHECK-LABEL: @test_mm512_cmp_epi64_mask
1360   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1361   return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, 0);
1362 }
1363 
test_mm512_mask_cmp_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)1364 __mmask8 test_mm512_mask_cmp_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1365   // CHECK-LABEL: @test_mm512_mask_cmp_epi64_mask
1366   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1367   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1368   return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, 0);
1369 }
1370 
test_mm512_cmp_epu32_mask(__m512i __a,__m512i __b)1371 __mmask16 test_mm512_cmp_epu32_mask(__m512i __a, __m512i __b) {
1372   // CHECK-LABEL: @test_mm512_cmp_epu32_mask
1373   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1374   return (__mmask16)_mm512_cmp_epu32_mask(__a, __b, 0);
1375 }
1376 
test_mm512_mask_cmp_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)1377 __mmask16 test_mm512_mask_cmp_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1378   // CHECK-LABEL: @test_mm512_mask_cmp_epu32_mask
1379   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1380   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1381   return (__mmask16)_mm512_mask_cmp_epu32_mask(__u, __a, __b, 0);
1382 }
1383 
test_mm512_cmp_epu64_mask(__m512i __a,__m512i __b)1384 __mmask8 test_mm512_cmp_epu64_mask(__m512i __a, __m512i __b) {
1385   // CHECK-LABEL: @test_mm512_cmp_epu64_mask
1386   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1387   return (__mmask8)_mm512_cmp_epu64_mask(__a, __b, 0);
1388 }
1389 
test_mm512_mask_cmp_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)1390 __mmask8 test_mm512_mask_cmp_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1391   // CHECK-LABEL: @test_mm512_mask_cmp_epu64_mask
1392   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1393   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1394   return (__mmask8)_mm512_mask_cmp_epu64_mask(__u, __a, __b, 0);
1395 }
1396 
test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1397 __m512i test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1398   // CHECK-LABEL: @test_mm512_mask_and_epi32
1399   // CHECK: and <16 x i32>
1400   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1401   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1402   return _mm512_mask_and_epi32(__src, __k,__a, __b);
1403 }
1404 
test_mm512_maskz_and_epi32(__mmask16 __k,__m512i __a,__m512i __b)1405 __m512i test_mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1406   // CHECK-LABEL: @test_mm512_maskz_and_epi32
1407   // CHECK: and <16 x i32>
1408   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1409   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1410   return _mm512_maskz_and_epi32(__k,__a, __b);
1411 }
1412 
test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1413 __m512i test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1414   // CHECK-LABEL: @test_mm512_mask_and_epi64
1415   // CHECK: %[[AND_RES:.*]] = and <8 x i64>
1416   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1417   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
1418   return _mm512_mask_and_epi64(__src, __k,__a, __b);
1419 }
1420 
test_mm512_maskz_and_epi64(__mmask8 __k,__m512i __a,__m512i __b)1421 __m512i test_mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1422   // CHECK-LABEL: @test_mm512_maskz_and_epi64
1423   // CHECK: %[[AND_RES:.*]] = and <8 x i64>
1424   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1425   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
1426   return _mm512_maskz_and_epi64(__k,__a, __b);
1427 }
1428 
test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1429 __m512i test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1430   // CHECK-LABEL: @test_mm512_mask_or_epi32
1431   // CHECK: or <16 x i32>
1432   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1433   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1434   return _mm512_mask_or_epi32(__src, __k,__a, __b);
1435 }
1436 
test_mm512_maskz_or_epi32(__mmask16 __k,__m512i __a,__m512i __b)1437 __m512i test_mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1438   // CHECK-LABEL: @test_mm512_maskz_or_epi32
1439   // CHECK: or <16 x i32>
1440   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1441   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1442   return _mm512_maskz_or_epi32(__k,__a, __b);
1443 }
1444 
test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1445 __m512i test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1446   // CHECK-LABEL: @test_mm512_mask_or_epi64
1447   // CHECK: %[[OR_RES:.*]] = or <8 x i64>
1448   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1449   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[OR_RES]], <8 x i64> %{{.*}}
1450   return _mm512_mask_or_epi64(__src, __k,__a, __b);
1451 }
1452 
test_mm512_maskz_or_epi64(__mmask8 __k,__m512i __a,__m512i __b)1453 __m512i test_mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1454   // CHECK-LABEL: @test_mm512_maskz_or_epi64
1455   // CHECK: %[[OR_RES:.*]] = or <8 x i64>
1456   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1457   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[OR_RES]], <8 x i64> %{{.*}}
1458   return _mm512_maskz_or_epi64(__k,__a, __b);
1459 }
1460 
test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1461 __m512i test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1462   // CHECK-LABEL: @test_mm512_mask_xor_epi32
1463   // CHECK: xor <16 x i32>
1464   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1465   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1466   return _mm512_mask_xor_epi32(__src, __k,__a, __b);
1467 }
1468 
test_mm512_maskz_xor_epi32(__mmask16 __k,__m512i __a,__m512i __b)1469 __m512i test_mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1470   // CHECK-LABEL: @test_mm512_maskz_xor_epi32
1471   // CHECK: xor <16 x i32>
1472   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1473   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1474   return _mm512_maskz_xor_epi32(__k,__a, __b);
1475 }
1476 
test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1477 __m512i test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1478   // CHECK-LABEL: @test_mm512_mask_xor_epi64
1479   // CHECK: %[[XOR_RES:.*]] = xor <8 x i64>
1480   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1481   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[XOR_RES]], <8 x i64> %{{.*}}
1482   return _mm512_mask_xor_epi64(__src, __k,__a, __b);
1483 }
1484 
test_mm512_maskz_xor_epi64(__mmask8 __k,__m512i __a,__m512i __b)1485 __m512i test_mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1486   // CHECK-LABEL: @test_mm512_maskz_xor_epi64
1487   // CHECK: %[[XOR_RES:.*]] = xor <8 x i64>
1488   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1489   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[XOR_RES]], <8 x i64> %{{.*}}
1490   return _mm512_maskz_xor_epi64(__k,__a, __b);
1491 }
1492 
test_mm512_and_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1493 __m512i test_mm512_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1494   // CHECK-LABEL: @test_mm512_and_epi32
1495   // CHECK: and <16 x i32>
1496   return _mm512_and_epi32(__a, __b);
1497 }
1498 
test_mm512_and_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1499 __m512i test_mm512_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1500   // CHECK-LABEL: @test_mm512_and_epi64
1501   // CHECK: and <8 x i64>
1502   return _mm512_and_epi64(__a, __b);
1503 }
1504 
test_mm512_or_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1505 __m512i test_mm512_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1506   // CHECK-LABEL: @test_mm512_or_epi32
1507   // CHECK: or <16 x i32>
1508   return _mm512_or_epi32(__a, __b);
1509 }
1510 
test_mm512_or_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1511 __m512i test_mm512_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1512   // CHECK-LABEL: @test_mm512_or_epi64
1513   // CHECK: or <8 x i64>
1514   return _mm512_or_epi64(__a, __b);
1515 }
1516 
test_mm512_xor_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)1517 __m512i test_mm512_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1518   // CHECK-LABEL: @test_mm512_xor_epi32
1519   // CHECK: xor <16 x i32>
1520   return _mm512_xor_epi32(__a, __b);
1521 }
1522 
test_mm512_xor_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)1523 __m512i test_mm512_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1524   // CHECK-LABEL: @test_mm512_xor_epi64
1525   // CHECK: xor <8 x i64>
1526   return _mm512_xor_epi64(__a, __b);
1527 }
1528 
test_mm512_maskz_andnot_epi32(__mmask16 __k,__m512i __A,__m512i __B)1529 __m512i test_mm512_maskz_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B){
1530   // CHECK-LABEL: @test_mm512_maskz_andnot_epi32
1531   // 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   // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
1533   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1534   return _mm512_maskz_andnot_epi32(__k,__A,__B);
1535 }
1536 
test_mm512_mask_andnot_epi32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1537 __m512i test_mm512_mask_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1538                                       __m512i __src) {
1539   // CHECK-LABEL: @test_mm512_mask_andnot_epi32
1540   // 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   // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
1542   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1543   return _mm512_mask_andnot_epi32(__src,__k,__A,__B);
1544 }
1545 
test_mm512_andnot_si512(__m512i __A,__m512i __B)1546 __m512i test_mm512_andnot_si512(__m512i __A, __m512i __B)
1547 {
1548   //CHECK-LABEL: @test_mm512_andnot_si512
1549   //CHECK: load {{.*}}%__A.addr.i, align 64
1550   //CHECK: %neg.i = xor{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1551   //CHECK: load {{.*}}%__B.addr.i, align 64
1552   //CHECK: and <8 x i64> %neg.i,{{.*}}
1553 
1554   return _mm512_andnot_si512(__A, __B);
1555 }
1556 
test_mm512_andnot_epi32(__m512i __A,__m512i __B)1557 __m512i test_mm512_andnot_epi32(__m512i __A, __m512i __B) {
1558   // CHECK-LABEL: @test_mm512_andnot_epi32
1559   // 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   // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
1561   return _mm512_andnot_epi32(__A,__B);
1562 }
1563 
test_mm512_maskz_andnot_epi64(__mmask8 __k,__m512i __A,__m512i __B)1564 __m512i test_mm512_maskz_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1565   // CHECK-LABEL: @test_mm512_maskz_andnot_epi64
1566   // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1567   // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
1568   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1569   return _mm512_maskz_andnot_epi64(__k,__A,__B);
1570 }
1571 
test_mm512_mask_andnot_epi64(__mmask8 __k,__m512i __A,__m512i __B,__m512i __src)1572 __m512i test_mm512_mask_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1573                                       __m512i __src) {
1574   //CHECK-LABEL: @test_mm512_mask_andnot_epi64
1575   // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1576   // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
1577   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1578   return _mm512_mask_andnot_epi64(__src,__k,__A,__B);
1579 }
1580 
test_mm512_andnot_epi64(__m512i __A,__m512i __B)1581 __m512i test_mm512_andnot_epi64(__m512i __A, __m512i __B) {
1582   //CHECK-LABEL: @test_mm512_andnot_epi64
1583   // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1584   // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
1585   return _mm512_andnot_epi64(__A,__B);
1586 }
1587 
test_mm512_maskz_sub_epi32(__mmask16 __k,__m512i __A,__m512i __B)1588 __m512i test_mm512_maskz_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1589   //CHECK-LABEL: @test_mm512_maskz_sub_epi32
1590   //CHECK: @llvm.x86.avx512.mask.psub.d.512
1591   return _mm512_maskz_sub_epi32(__k,__A,__B);
1592 }
1593 
test_mm512_mask_sub_epi32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1594 __m512i test_mm512_mask_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1595                                    __m512i __src) {
1596   //CHECK-LABEL: @test_mm512_mask_sub_epi32
1597   //CHECK: @llvm.x86.avx512.mask.psub.d.512
1598   return _mm512_mask_sub_epi32(__src,__k,__A,__B);
1599 }
1600 
test_mm512_sub_epi32(__m512i __A,__m512i __B)1601 __m512i test_mm512_sub_epi32(__m512i __A, __m512i __B) {
1602   //CHECK-LABEL: @test_mm512_sub_epi32
1603   //CHECK: sub <16 x i32>
1604   return _mm512_sub_epi32(__A,__B);
1605 }
1606 
test_mm512_maskz_sub_epi64(__mmask8 __k,__m512i __A,__m512i __B)1607 __m512i test_mm512_maskz_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1608   //CHECK-LABEL: @test_mm512_maskz_sub_epi64
1609   //CHECK: @llvm.x86.avx512.mask.psub.q.512
1610   return _mm512_maskz_sub_epi64(__k,__A,__B);
1611 }
1612 
test_mm512_mask_sub_epi64(__mmask8 __k,__m512i __A,__m512i __B,__m512i __src)1613 __m512i test_mm512_mask_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1614                                    __m512i __src) {
1615   //CHECK-LABEL: @test_mm512_mask_sub_epi64
1616   //CHECK: @llvm.x86.avx512.mask.psub.q.512
1617   return _mm512_mask_sub_epi64(__src,__k,__A,__B);
1618 }
1619 
test_mm512_sub_epi64(__m512i __A,__m512i __B)1620 __m512i test_mm512_sub_epi64(__m512i __A, __m512i __B) {
1621   //CHECK-LABEL: @test_mm512_sub_epi64
1622   //CHECK: sub <8 x i64>
1623   return _mm512_sub_epi64(__A,__B);
1624 }
1625 
test_mm512_maskz_add_epi32(__mmask16 __k,__m512i __A,__m512i __B)1626 __m512i test_mm512_maskz_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1627   //CHECK-LABEL: @test_mm512_maskz_add_epi32
1628   //CHECK: @llvm.x86.avx512.mask.padd.d.512
1629   return _mm512_maskz_add_epi32(__k,__A,__B);
1630 }
1631 
test_mm512_mask_add_epi32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1632 __m512i test_mm512_mask_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1633                                    __m512i __src) {
1634   //CHECK-LABEL: @test_mm512_mask_add_epi32
1635   //CHECK: @llvm.x86.avx512.mask.padd.d.512
1636   return _mm512_mask_add_epi32(__src,__k,__A,__B);
1637 }
1638 
test_mm512_add_epi32(__m512i __A,__m512i __B)1639 __m512i test_mm512_add_epi32(__m512i __A, __m512i __B) {
1640   //CHECK-LABEL: @test_mm512_add_epi32
1641   //CHECK: add <16 x i32>
1642   return _mm512_add_epi32(__A,__B);
1643 }
1644 
test_mm512_maskz_add_epi64(__mmask8 __k,__m512i __A,__m512i __B)1645 __m512i test_mm512_maskz_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1646   //CHECK-LABEL: @test_mm512_maskz_add_epi64
1647   //CHECK: @llvm.x86.avx512.mask.padd.q.512
1648   return _mm512_maskz_add_epi64(__k,__A,__B);
1649 }
1650 
test_mm512_mask_add_epi64(__mmask8 __k,__m512i __A,__m512i __B,__m512i __src)1651 __m512i test_mm512_mask_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1652                                    __m512i __src) {
1653   //CHECK-LABEL: @test_mm512_mask_add_epi64
1654   //CHECK: @llvm.x86.avx512.mask.padd.q.512
1655   return _mm512_mask_add_epi64(__src,__k,__A,__B);
1656 }
1657 
test_mm512_add_epi64(__m512i __A,__m512i __B)1658 __m512i test_mm512_add_epi64(__m512i __A, __m512i __B) {
1659   //CHECK-LABEL: @test_mm512_add_epi64
1660   //CHECK: add <8 x i64>
1661   return _mm512_add_epi64(__A,__B);
1662 }
1663 
test_mm512_maskz_mul_epi32(__mmask16 __k,__m512i __A,__m512i __B)1664 __m512i test_mm512_maskz_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1665   //CHECK-LABEL: @test_mm512_maskz_mul_epi32
1666   //CHECK: @llvm.x86.avx512.mask.pmul.dq.512
1667   return _mm512_maskz_mul_epi32(__k,__A,__B);
1668 }
1669 
test_mm512_mask_mul_epi32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1670 __m512i test_mm512_mask_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1671                                    __m512i __src) {
1672   //CHECK-LABEL: @test_mm512_mask_mul_epi32
1673   //CHECK: @llvm.x86.avx512.mask.pmul.dq.512
1674   return _mm512_mask_mul_epi32(__src,__k,__A,__B);
1675 }
1676 
test_mm512_maskz_mul_epu32(__mmask16 __k,__m512i __A,__m512i __B)1677 __m512i test_mm512_maskz_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B) {
1678   //CHECK-LABEL: @test_mm512_maskz_mul_epu32
1679   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512
1680   return _mm512_maskz_mul_epu32(__k,__A,__B);
1681 }
1682 
test_mm512_mask_mul_epu32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1683 __m512i test_mm512_mask_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B,
1684                                    __m512i __src) {
1685   //CHECK-LABEL: @test_mm512_mask_mul_epu32
1686   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512
1687   return _mm512_mask_mul_epu32(__src,__k,__A,__B);
1688 }
1689 
test_mm512_maskz_mullo_epi32(__mmask16 __k,__m512i __A,__m512i __B)1690 __m512i test_mm512_maskz_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1691   //CHECK-LABEL: @test_mm512_maskz_mullo_epi32
1692   //CHECK: @llvm.x86.avx512.mask.pmull.d.512
1693   return _mm512_maskz_mullo_epi32(__k,__A,__B);
1694 }
1695 
test_mm512_mask_mullo_epi32(__mmask16 __k,__m512i __A,__m512i __B,__m512i __src)1696 __m512i test_mm512_mask_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B, __m512i __src) {
1697   //CHECK-LABEL: @test_mm512_mask_mullo_epi32
1698   //CHECK: @llvm.x86.avx512.mask.pmull.d.512
1699   return _mm512_mask_mullo_epi32(__src,__k,__A,__B);
1700 }
1701 
test_mm512_mullo_epi32(__m512i __A,__m512i __B)1702 __m512i test_mm512_mullo_epi32(__m512i __A, __m512i __B) {
1703   //CHECK-LABEL: @test_mm512_mullo_epi32
1704   //CHECK: mul <16 x i32>
1705   return _mm512_mullo_epi32(__A,__B);
1706 }
1707 
test_mm512_add_round_pd(__m512d __A,__m512d __B)1708 __m512d test_mm512_add_round_pd(__m512d __A, __m512d __B) {
1709   // CHECK-LABEL: @test_mm512_add_round_pd
1710   // CHECK: @llvm.x86.avx512.mask.add.pd.512
1711   return _mm512_add_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1712 }
test_mm512_mask_add_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1713 __m512d test_mm512_mask_add_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1714   // CHECK-LABEL: @test_mm512_mask_add_round_pd
1715   // CHECK: @llvm.x86.avx512.mask.add.pd.512
1716   return _mm512_mask_add_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1717 }
test_mm512_maskz_add_round_pd(__mmask8 __U,__m512d __A,__m512d __B)1718 __m512d test_mm512_maskz_add_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1719   // CHECK-LABEL: @test_mm512_maskz_add_round_pd
1720   // CHECK: @llvm.x86.avx512.mask.add.pd.512
1721   return _mm512_maskz_add_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1722 }
test_mm512_mask_add_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1723 __m512d test_mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1724   // CHECK-LABEL: @test_mm512_mask_add_pd
1725   // CHECK: @llvm.x86.avx512.mask.add.pd.512
1726   return _mm512_mask_add_pd(__W,__U,__A,__B);
1727 }
test_mm512_maskz_add_pd(__mmask8 __U,__m512d __A,__m512d __B)1728 __m512d test_mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1729   // CHECK-LABEL: @test_mm512_maskz_add_pd
1730   // CHECK: @llvm.x86.avx512.mask.add.pd.512
1731   return _mm512_maskz_add_pd(__U,__A,__B);
1732 }
test_mm512_add_round_ps(__m512 __A,__m512 __B)1733 __m512 test_mm512_add_round_ps(__m512 __A, __m512 __B) {
1734   // CHECK-LABEL: @test_mm512_add_round_ps
1735   // CHECK: @llvm.x86.avx512.mask.add.ps.512
1736   return _mm512_add_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1737 }
test_mm512_mask_add_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1738 __m512 test_mm512_mask_add_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1739   // CHECK-LABEL: @test_mm512_mask_add_round_ps
1740   // CHECK: @llvm.x86.avx512.mask.add.ps.512
1741   return _mm512_mask_add_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1742 }
test_mm512_maskz_add_round_ps(__mmask16 __U,__m512 __A,__m512 __B)1743 __m512 test_mm512_maskz_add_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1744   // CHECK-LABEL: @test_mm512_maskz_add_round_ps
1745   // CHECK: @llvm.x86.avx512.mask.add.ps.512
1746   return _mm512_maskz_add_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1747 }
test_mm512_mask_add_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1748 __m512 test_mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1749   // CHECK-LABEL: @test_mm512_mask_add_ps
1750   // CHECK: @llvm.x86.avx512.mask.add.ps.512
1751   return _mm512_mask_add_ps(__W,__U,__A,__B);
1752 }
test_mm512_maskz_add_ps(__mmask16 __U,__m512 __A,__m512 __B)1753 __m512 test_mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1754   // CHECK-LABEL: @test_mm512_maskz_add_ps
1755   // CHECK: @llvm.x86.avx512.mask.add.ps.512
1756   return _mm512_maskz_add_ps(__U,__A,__B);
1757 }
test_mm_add_round_ss(__m128 __A,__m128 __B)1758 __m128 test_mm_add_round_ss(__m128 __A, __m128 __B) {
1759   // CHECK-LABEL: @test_mm_add_round_ss
1760   // CHECK: @llvm.x86.avx512.mask.add.ss.round
1761   return _mm_add_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1762 }
test_mm_mask_add_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1763 __m128 test_mm_mask_add_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1764   // CHECK-LABEL: @test_mm_mask_add_round_ss
1765   // CHECK: @llvm.x86.avx512.mask.add.ss.round
1766   return _mm_mask_add_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1767 }
test_mm_maskz_add_round_ss(__mmask8 __U,__m128 __A,__m128 __B)1768 __m128 test_mm_maskz_add_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1769   // CHECK-LABEL: @test_mm_maskz_add_round_ss
1770   // CHECK: @llvm.x86.avx512.mask.add.ss.round
1771   return _mm_maskz_add_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1772 }
test_mm_mask_add_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1773 __m128 test_mm_mask_add_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1774   // CHECK-LABEL: @test_mm_mask_add_ss
1775   // CHECK: @llvm.x86.avx512.mask.add.ss.round
1776   return _mm_mask_add_ss(__W,__U,__A,__B);
1777 }
test_mm_maskz_add_ss(__mmask8 __U,__m128 __A,__m128 __B)1778 __m128 test_mm_maskz_add_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1779   // CHECK-LABEL: @test_mm_maskz_add_ss
1780   // CHECK: @llvm.x86.avx512.mask.add.ss.round
1781   return _mm_maskz_add_ss(__U,__A,__B);
1782 }
test_mm_add_round_sd(__m128d __A,__m128d __B)1783 __m128d test_mm_add_round_sd(__m128d __A, __m128d __B) {
1784   // CHECK-LABEL: @test_mm_add_round_sd
1785   // CHECK: @llvm.x86.avx512.mask.add.sd.round
1786   return _mm_add_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1787 }
test_mm_mask_add_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1788 __m128d test_mm_mask_add_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1789   // CHECK-LABEL: @test_mm_mask_add_round_sd
1790   // CHECK: @llvm.x86.avx512.mask.add.sd.round
1791   return _mm_mask_add_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1792 }
test_mm_maskz_add_round_sd(__mmask8 __U,__m128d __A,__m128d __B)1793 __m128d test_mm_maskz_add_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1794   // CHECK-LABEL: @test_mm_maskz_add_round_sd
1795   // CHECK: @llvm.x86.avx512.mask.add.sd.round
1796   return _mm_maskz_add_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1797 }
test_mm_mask_add_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1798 __m128d test_mm_mask_add_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1799   // CHECK-LABEL: @test_mm_mask_add_sd
1800   // CHECK: @llvm.x86.avx512.mask.add.sd.round
1801   return _mm_mask_add_sd(__W,__U,__A,__B);
1802 }
test_mm_maskz_add_sd(__mmask8 __U,__m128d __A,__m128d __B)1803 __m128d test_mm_maskz_add_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1804   // CHECK-LABEL: @test_mm_maskz_add_sd
1805   // CHECK: @llvm.x86.avx512.mask.add.sd.round
1806   return _mm_maskz_add_sd(__U,__A,__B);
1807 }
test_mm512_sub_round_pd(__m512d __A,__m512d __B)1808 __m512d test_mm512_sub_round_pd(__m512d __A, __m512d __B) {
1809   // CHECK-LABEL: @test_mm512_sub_round_pd
1810   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1811   return _mm512_sub_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1812 }
test_mm512_mask_sub_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1813 __m512d test_mm512_mask_sub_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1814   // CHECK-LABEL: @test_mm512_mask_sub_round_pd
1815   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1816   return _mm512_mask_sub_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1817 }
test_mm512_maskz_sub_round_pd(__mmask8 __U,__m512d __A,__m512d __B)1818 __m512d test_mm512_maskz_sub_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1819   // CHECK-LABEL: @test_mm512_maskz_sub_round_pd
1820   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1821   return _mm512_maskz_sub_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1822 }
test_mm512_mask_sub_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1823 __m512d test_mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1824   // CHECK-LABEL: @test_mm512_mask_sub_pd
1825   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1826   return _mm512_mask_sub_pd(__W,__U,__A,__B);
1827 }
test_mm512_maskz_sub_pd(__mmask8 __U,__m512d __A,__m512d __B)1828 __m512d test_mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1829   // CHECK-LABEL: @test_mm512_maskz_sub_pd
1830   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1831   return _mm512_maskz_sub_pd(__U,__A,__B);
1832 }
test_mm512_sub_round_ps(__m512 __A,__m512 __B)1833 __m512 test_mm512_sub_round_ps(__m512 __A, __m512 __B) {
1834   // CHECK-LABEL: @test_mm512_sub_round_ps
1835   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1836   return _mm512_sub_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1837 }
test_mm512_mask_sub_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1838 __m512 test_mm512_mask_sub_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1839   // CHECK-LABEL: @test_mm512_mask_sub_round_ps
1840   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1841   return _mm512_mask_sub_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1842 }
test_mm512_maskz_sub_round_ps(__mmask16 __U,__m512 __A,__m512 __B)1843 __m512 test_mm512_maskz_sub_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1844   // CHECK-LABEL: @test_mm512_maskz_sub_round_ps
1845   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1846   return _mm512_maskz_sub_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1847 }
test_mm512_mask_sub_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1848 __m512 test_mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1849   // CHECK-LABEL: @test_mm512_mask_sub_ps
1850   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1851   return _mm512_mask_sub_ps(__W,__U,__A,__B);
1852 }
test_mm512_maskz_sub_ps(__mmask16 __U,__m512 __A,__m512 __B)1853 __m512 test_mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1854   // CHECK-LABEL: @test_mm512_maskz_sub_ps
1855   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1856   return _mm512_maskz_sub_ps(__U,__A,__B);
1857 }
test_mm_sub_round_ss(__m128 __A,__m128 __B)1858 __m128 test_mm_sub_round_ss(__m128 __A, __m128 __B) {
1859   // CHECK-LABEL: @test_mm_sub_round_ss
1860   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1861   return _mm_sub_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1862 }
test_mm_mask_sub_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1863 __m128 test_mm_mask_sub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1864   // CHECK-LABEL: @test_mm_mask_sub_round_ss
1865   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1866   return _mm_mask_sub_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1867 }
test_mm_maskz_sub_round_ss(__mmask8 __U,__m128 __A,__m128 __B)1868 __m128 test_mm_maskz_sub_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1869   // CHECK-LABEL: @test_mm_maskz_sub_round_ss
1870   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1871   return _mm_maskz_sub_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1872 }
test_mm_mask_sub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1873 __m128 test_mm_mask_sub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1874   // CHECK-LABEL: @test_mm_mask_sub_ss
1875   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1876   return _mm_mask_sub_ss(__W,__U,__A,__B);
1877 }
test_mm_maskz_sub_ss(__mmask8 __U,__m128 __A,__m128 __B)1878 __m128 test_mm_maskz_sub_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1879   // CHECK-LABEL: @test_mm_maskz_sub_ss
1880   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1881   return _mm_maskz_sub_ss(__U,__A,__B);
1882 }
test_mm_sub_round_sd(__m128d __A,__m128d __B)1883 __m128d test_mm_sub_round_sd(__m128d __A, __m128d __B) {
1884   // CHECK-LABEL: @test_mm_sub_round_sd
1885   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1886   return _mm_sub_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1887 }
test_mm_mask_sub_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1888 __m128d test_mm_mask_sub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1889   // CHECK-LABEL: @test_mm_mask_sub_round_sd
1890   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1891   return _mm_mask_sub_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1892 }
test_mm_maskz_sub_round_sd(__mmask8 __U,__m128d __A,__m128d __B)1893 __m128d test_mm_maskz_sub_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1894   // CHECK-LABEL: @test_mm_maskz_sub_round_sd
1895   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1896   return _mm_maskz_sub_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1897 }
test_mm_mask_sub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1898 __m128d test_mm_mask_sub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1899   // CHECK-LABEL: @test_mm_mask_sub_sd
1900   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1901   return _mm_mask_sub_sd(__W,__U,__A,__B);
1902 }
test_mm_maskz_sub_sd(__mmask8 __U,__m128d __A,__m128d __B)1903 __m128d test_mm_maskz_sub_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1904   // CHECK-LABEL: @test_mm_maskz_sub_sd
1905   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1906   return _mm_maskz_sub_sd(__U,__A,__B);
1907 }
test_mm512_mul_round_pd(__m512d __A,__m512d __B)1908 __m512d test_mm512_mul_round_pd(__m512d __A, __m512d __B) {
1909   // CHECK-LABEL: @test_mm512_mul_round_pd
1910   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1911   return _mm512_mul_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1912 }
test_mm512_mask_mul_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1913 __m512d test_mm512_mask_mul_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1914   // CHECK-LABEL: @test_mm512_mask_mul_round_pd
1915   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1916   return _mm512_mask_mul_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1917 }
test_mm512_maskz_mul_round_pd(__mmask8 __U,__m512d __A,__m512d __B)1918 __m512d test_mm512_maskz_mul_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1919   // CHECK-LABEL: @test_mm512_maskz_mul_round_pd
1920   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1921   return _mm512_maskz_mul_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1922 }
test_mm512_mask_mul_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1923 __m512d test_mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1924   // CHECK-LABEL: @test_mm512_mask_mul_pd
1925   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1926   return _mm512_mask_mul_pd(__W,__U,__A,__B);
1927 }
test_mm512_maskz_mul_pd(__mmask8 __U,__m512d __A,__m512d __B)1928 __m512d test_mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1929   // CHECK-LABEL: @test_mm512_maskz_mul_pd
1930   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1931   return _mm512_maskz_mul_pd(__U,__A,__B);
1932 }
test_mm512_mul_round_ps(__m512 __A,__m512 __B)1933 __m512 test_mm512_mul_round_ps(__m512 __A, __m512 __B) {
1934   // CHECK-LABEL: @test_mm512_mul_round_ps
1935   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1936   return _mm512_mul_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1937 }
test_mm512_mask_mul_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1938 __m512 test_mm512_mask_mul_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1939   // CHECK-LABEL: @test_mm512_mask_mul_round_ps
1940   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1941   return _mm512_mask_mul_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1942 }
test_mm512_maskz_mul_round_ps(__mmask16 __U,__m512 __A,__m512 __B)1943 __m512 test_mm512_maskz_mul_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1944   // CHECK-LABEL: @test_mm512_maskz_mul_round_ps
1945   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1946   return _mm512_maskz_mul_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1947 }
test_mm512_mask_mul_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1948 __m512 test_mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1949   // CHECK-LABEL: @test_mm512_mask_mul_ps
1950   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1951   return _mm512_mask_mul_ps(__W,__U,__A,__B);
1952 }
test_mm512_maskz_mul_ps(__mmask16 __U,__m512 __A,__m512 __B)1953 __m512 test_mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1954   // CHECK-LABEL: @test_mm512_maskz_mul_ps
1955   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1956   return _mm512_maskz_mul_ps(__U,__A,__B);
1957 }
test_mm_mul_round_ss(__m128 __A,__m128 __B)1958 __m128 test_mm_mul_round_ss(__m128 __A, __m128 __B) {
1959   // CHECK-LABEL: @test_mm_mul_round_ss
1960   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1961   return _mm_mul_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1962 }
test_mm_mask_mul_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1963 __m128 test_mm_mask_mul_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1964   // CHECK-LABEL: @test_mm_mask_mul_round_ss
1965   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1966   return _mm_mask_mul_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1967 }
test_mm_maskz_mul_round_ss(__mmask8 __U,__m128 __A,__m128 __B)1968 __m128 test_mm_maskz_mul_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1969   // CHECK-LABEL: @test_mm_maskz_mul_round_ss
1970   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1971   return _mm_maskz_mul_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1972 }
test_mm_mask_mul_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1973 __m128 test_mm_mask_mul_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1974   // CHECK-LABEL: @test_mm_mask_mul_ss
1975   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1976   return _mm_mask_mul_ss(__W,__U,__A,__B);
1977 }
test_mm_maskz_mul_ss(__mmask8 __U,__m128 __A,__m128 __B)1978 __m128 test_mm_maskz_mul_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1979   // CHECK-LABEL: @test_mm_maskz_mul_ss
1980   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1981   return _mm_maskz_mul_ss(__U,__A,__B);
1982 }
test_mm_mul_round_sd(__m128d __A,__m128d __B)1983 __m128d test_mm_mul_round_sd(__m128d __A, __m128d __B) {
1984   // CHECK-LABEL: @test_mm_mul_round_sd
1985   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1986   return _mm_mul_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1987 }
test_mm_mask_mul_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1988 __m128d test_mm_mask_mul_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1989   // CHECK-LABEL: @test_mm_mask_mul_round_sd
1990   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1991   return _mm_mask_mul_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1992 }
test_mm_maskz_mul_round_sd(__mmask8 __U,__m128d __A,__m128d __B)1993 __m128d test_mm_maskz_mul_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1994   // CHECK-LABEL: @test_mm_maskz_mul_round_sd
1995   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1996   return _mm_maskz_mul_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1997 }
test_mm_mask_mul_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1998 __m128d test_mm_mask_mul_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1999   // CHECK-LABEL: @test_mm_mask_mul_sd
2000   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
2001   return _mm_mask_mul_sd(__W,__U,__A,__B);
2002 }
test_mm_maskz_mul_sd(__mmask8 __U,__m128d __A,__m128d __B)2003 __m128d test_mm_maskz_mul_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2004   // CHECK-LABEL: @test_mm_maskz_mul_sd
2005   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
2006   return _mm_maskz_mul_sd(__U,__A,__B);
2007 }
test_mm512_div_round_pd(__m512d __A,__m512d __B)2008 __m512d test_mm512_div_round_pd(__m512d __A, __m512d __B) {
2009   // CHECK-LABEL: @test_mm512_div_round_pd
2010   // CHECK: @llvm.x86.avx512.mask.div.pd.512
2011   return _mm512_div_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
2012 }
test_mm512_mask_div_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)2013 __m512d test_mm512_mask_div_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2014   // CHECK-LABEL: @test_mm512_mask_div_round_pd
2015   // CHECK: @llvm.x86.avx512.mask.div.pd.512
2016   return _mm512_mask_div_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2017 }
test_mm512_maskz_div_round_pd(__mmask8 __U,__m512d __A,__m512d __B)2018 __m512d test_mm512_maskz_div_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2019   // CHECK-LABEL: @test_mm512_maskz_div_round_pd
2020   // CHECK: @llvm.x86.avx512.mask.div.pd.512
2021   return _mm512_maskz_div_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2022 }
test_mm512_div_pd(__m512d __a,__m512d __b)2023 __m512d test_mm512_div_pd(__m512d __a, __m512d __b) {
2024   // CHECK-LABLE: @test_mm512_div_pd
2025   // CHECK: fdiv <8 x double>
2026   return _mm512_div_pd(__a,__b);
2027 }
test_mm512_mask_div_pd(__m512d __w,__mmask8 __u,__m512d __a,__m512d __b)2028 __m512d test_mm512_mask_div_pd(__m512d __w, __mmask8 __u, __m512d __a, __m512d __b) {
2029   // CHECK-LABLE: @test_mm512_mask_div_pd
2030   // CHECK: @llvm.x86.avx512.mask.div.pd.512
2031   return _mm512_mask_div_pd(__w,__u,__a,__b);
2032 }
test_mm512_maskz_div_pd(__mmask8 __U,__m512d __A,__m512d __B)2033 __m512d test_mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2034   // CHECK-LABEL: @test_mm512_maskz_div_pd
2035   // CHECK: @llvm.x86.avx512.mask.div.pd.512
2036   return _mm512_maskz_div_pd(__U,__A,__B);
2037 }
test_mm512_div_round_ps(__m512 __A,__m512 __B)2038 __m512 test_mm512_div_round_ps(__m512 __A, __m512 __B) {
2039   // CHECK-LABEL: @test_mm512_div_round_ps
2040   // CHECK: @llvm.x86.avx512.mask.div.ps.512
2041   return _mm512_div_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
2042 }
test_mm512_mask_div_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)2043 __m512 test_mm512_mask_div_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2044   // CHECK-LABEL: @test_mm512_mask_div_round_ps
2045   // CHECK: @llvm.x86.avx512.mask.div.ps.512
2046   return _mm512_mask_div_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2047 }
test_mm512_maskz_div_round_ps(__mmask16 __U,__m512 __A,__m512 __B)2048 __m512 test_mm512_maskz_div_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2049   // CHECK-LABEL: @test_mm512_maskz_div_round_ps
2050   // CHECK: @llvm.x86.avx512.mask.div.ps.512
2051   return _mm512_maskz_div_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2052 }
test_mm512_div_ps(__m512 __A,__m512 __B)2053 __m512 test_mm512_div_ps(__m512 __A, __m512 __B) {
2054   // CHECK-LABEL: @test_mm512_div_ps
2055   // CHECK: fdiv <16 x float>
2056   return _mm512_div_ps(__A,__B);
2057 }
test_mm512_mask_div_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)2058 __m512 test_mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2059   // CHECK-LABEL: @test_mm512_mask_div_ps
2060   // CHECK: @llvm.x86.avx512.mask.div.ps.512
2061   return _mm512_mask_div_ps(__W,__U,__A,__B);
2062 }
test_mm512_maskz_div_ps(__mmask16 __U,__m512 __A,__m512 __B)2063 __m512 test_mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2064   // CHECK-LABEL: @test_mm512_maskz_div_ps
2065   // CHECK: @llvm.x86.avx512.mask.div.ps.512
2066   return _mm512_maskz_div_ps(__U,__A,__B);
2067 }
test_mm_div_round_ss(__m128 __A,__m128 __B)2068 __m128 test_mm_div_round_ss(__m128 __A, __m128 __B) {
2069   // CHECK-LABEL: @test_mm_div_round_ss
2070   // CHECK: @llvm.x86.avx512.mask.div.ss.round
2071   return _mm_div_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
2072 }
test_mm_mask_div_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2073 __m128 test_mm_mask_div_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2074   // CHECK-LABEL: @test_mm_mask_div_round_ss
2075   // CHECK: @llvm.x86.avx512.mask.div.ss.round
2076   return _mm_mask_div_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2077 }
test_mm_maskz_div_round_ss(__mmask8 __U,__m128 __A,__m128 __B)2078 __m128 test_mm_maskz_div_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2079   // CHECK-LABEL: @test_mm_maskz_div_round_ss
2080   // CHECK: @llvm.x86.avx512.mask.div.ss.round
2081   return _mm_maskz_div_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2082 }
test_mm_mask_div_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2083 __m128 test_mm_mask_div_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2084   // CHECK-LABEL: @test_mm_mask_div_ss
2085   // CHECK: @llvm.x86.avx512.mask.div.ss.round
2086   return _mm_mask_div_ss(__W,__U,__A,__B);
2087 }
test_mm_maskz_div_ss(__mmask8 __U,__m128 __A,__m128 __B)2088 __m128 test_mm_maskz_div_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2089   // CHECK-LABEL: @test_mm_maskz_div_ss
2090   // CHECK: @llvm.x86.avx512.mask.div.ss.round
2091   return _mm_maskz_div_ss(__U,__A,__B);
2092 }
test_mm_div_round_sd(__m128d __A,__m128d __B)2093 __m128d test_mm_div_round_sd(__m128d __A, __m128d __B) {
2094   // CHECK-LABEL: @test_mm_div_round_sd
2095   // CHECK: @llvm.x86.avx512.mask.div.sd.round
2096   return _mm_div_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
2097 }
test_mm_mask_div_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2098 __m128d test_mm_mask_div_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2099   // CHECK-LABEL: @test_mm_mask_div_round_sd
2100   // CHECK: @llvm.x86.avx512.mask.div.sd.round
2101   return _mm_mask_div_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2102 }
test_mm_maskz_div_round_sd(__mmask8 __U,__m128d __A,__m128d __B)2103 __m128d test_mm_maskz_div_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2104   // CHECK-LABEL: @test_mm_maskz_div_round_sd
2105   // CHECK: @llvm.x86.avx512.mask.div.sd.round
2106   return _mm_maskz_div_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
2107 }
test_mm_mask_div_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2108 __m128d test_mm_mask_div_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2109   // CHECK-LABEL: @test_mm_mask_div_sd
2110   // CHECK: @llvm.x86.avx512.mask.div.sd.round
2111   return _mm_mask_div_sd(__W,__U,__A,__B);
2112 }
test_mm_maskz_div_sd(__mmask8 __U,__m128d __A,__m128d __B)2113 __m128d test_mm_maskz_div_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2114   // CHECK-LABEL: @test_mm_maskz_div_sd
2115   // CHECK: @llvm.x86.avx512.mask.div.sd.round
2116   return _mm_maskz_div_sd(__U,__A,__B);
2117 }
test_mm_max_round_ss(__m128 __A,__m128 __B)2118 __m128 test_mm_max_round_ss(__m128 __A, __m128 __B) {
2119   // CHECK-LABEL: @test_mm_max_round_ss
2120   // CHECK: @llvm.x86.avx512.mask.max.ss.round
2121   return _mm_max_round_ss(__A,__B,0x08);
2122 }
test_mm_mask_max_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2123 __m128 test_mm_mask_max_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2124   // CHECK-LABEL: @test_mm_mask_max_round_ss
2125   // CHECK: @llvm.x86.avx512.mask.max.ss.round
2126   return _mm_mask_max_round_ss(__W,__U,__A,__B,0x08);
2127 }
test_mm_maskz_max_round_ss(__mmask8 __U,__m128 __A,__m128 __B)2128 __m128 test_mm_maskz_max_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2129   // CHECK-LABEL: @test_mm_maskz_max_round_ss
2130   // CHECK: @llvm.x86.avx512.mask.max.ss.round
2131   return _mm_maskz_max_round_ss(__U,__A,__B,0x08);
2132 }
test_mm_mask_max_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2133 __m128 test_mm_mask_max_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2134   // CHECK-LABEL: @test_mm_mask_max_ss
2135   // CHECK: @llvm.x86.avx512.mask.max.ss.round
2136   return _mm_mask_max_ss(__W,__U,__A,__B);
2137 }
test_mm_maskz_max_ss(__mmask8 __U,__m128 __A,__m128 __B)2138 __m128 test_mm_maskz_max_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2139   // CHECK-LABEL: @test_mm_maskz_max_ss
2140   // CHECK: @llvm.x86.avx512.mask.max.ss.round
2141   return _mm_maskz_max_ss(__U,__A,__B);
2142 }
test_mm_max_round_sd(__m128d __A,__m128d __B)2143 __m128d test_mm_max_round_sd(__m128d __A, __m128d __B) {
2144   // CHECK-LABEL: @test_mm_max_round_sd
2145   // CHECK: @llvm.x86.avx512.mask.max.sd.round
2146   return _mm_max_round_sd(__A,__B,0x08);
2147 }
test_mm_mask_max_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2148 __m128d test_mm_mask_max_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2149   // CHECK-LABEL: @test_mm_mask_max_round_sd
2150   // CHECK: @llvm.x86.avx512.mask.max.sd.round
2151   return _mm_mask_max_round_sd(__W,__U,__A,__B,0x08);
2152 }
test_mm_maskz_max_round_sd(__mmask8 __U,__m128d __A,__m128d __B)2153 __m128d test_mm_maskz_max_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2154   // CHECK-LABEL: @test_mm_maskz_max_round_sd
2155   // CHECK: @llvm.x86.avx512.mask.max.sd.round
2156   return _mm_maskz_max_round_sd(__U,__A,__B,0x08);
2157 }
test_mm_mask_max_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2158 __m128d test_mm_mask_max_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2159   // CHECK-LABEL: @test_mm_mask_max_sd
2160   // CHECK: @llvm.x86.avx512.mask.max.sd.round
2161   return _mm_mask_max_sd(__W,__U,__A,__B);
2162 }
test_mm_maskz_max_sd(__mmask8 __U,__m128d __A,__m128d __B)2163 __m128d test_mm_maskz_max_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2164   // CHECK-LABEL: @test_mm_maskz_max_sd
2165   // CHECK: @llvm.x86.avx512.mask.max.sd.round
2166   return _mm_maskz_max_sd(__U,__A,__B);
2167 }
test_mm_min_round_ss(__m128 __A,__m128 __B)2168 __m128 test_mm_min_round_ss(__m128 __A, __m128 __B) {
2169   // CHECK-LABEL: @test_mm_min_round_ss
2170   // CHECK: @llvm.x86.avx512.mask.min.ss.round
2171   return _mm_min_round_ss(__A,__B,0x08);
2172 }
test_mm_mask_min_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2173 __m128 test_mm_mask_min_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2174   // CHECK-LABEL: @test_mm_mask_min_round_ss
2175   // CHECK: @llvm.x86.avx512.mask.min.ss.round
2176   return _mm_mask_min_round_ss(__W,__U,__A,__B,0x08);
2177 }
test_mm_maskz_min_round_ss(__mmask8 __U,__m128 __A,__m128 __B)2178 __m128 test_mm_maskz_min_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2179   // CHECK-LABEL: @test_mm_maskz_min_round_ss
2180   // CHECK: @llvm.x86.avx512.mask.min.ss.round
2181   return _mm_maskz_min_round_ss(__U,__A,__B,0x08);
2182 }
test_mm_mask_min_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2183 __m128 test_mm_mask_min_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2184   // CHECK-LABEL: @test_mm_mask_min_ss
2185   // CHECK: @llvm.x86.avx512.mask.min.ss.round
2186   return _mm_mask_min_ss(__W,__U,__A,__B);
2187 }
test_mm_maskz_min_ss(__mmask8 __U,__m128 __A,__m128 __B)2188 __m128 test_mm_maskz_min_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2189   // CHECK-LABEL: @test_mm_maskz_min_ss
2190   // CHECK: @llvm.x86.avx512.mask.min.ss.round
2191   return _mm_maskz_min_ss(__U,__A,__B);
2192 }
test_mm_min_round_sd(__m128d __A,__m128d __B)2193 __m128d test_mm_min_round_sd(__m128d __A, __m128d __B) {
2194   // CHECK-LABEL: @test_mm_min_round_sd
2195   // CHECK: @llvm.x86.avx512.mask.min.sd.round
2196   return _mm_min_round_sd(__A,__B,0x08);
2197 }
test_mm_mask_min_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2198 __m128d test_mm_mask_min_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2199   // CHECK-LABEL: @test_mm_mask_min_round_sd
2200   // CHECK: @llvm.x86.avx512.mask.min.sd.round
2201   return _mm_mask_min_round_sd(__W,__U,__A,__B,0x08);
2202 }
test_mm_maskz_min_round_sd(__mmask8 __U,__m128d __A,__m128d __B)2203 __m128d test_mm_maskz_min_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2204   // CHECK-LABEL: @test_mm_maskz_min_round_sd
2205   // CHECK: @llvm.x86.avx512.mask.min.sd.round
2206   return _mm_maskz_min_round_sd(__U,__A,__B,0x08);
2207 }
test_mm_mask_min_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2208 __m128d test_mm_mask_min_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2209   // CHECK-LABEL: @test_mm_mask_min_sd
2210   // CHECK: @llvm.x86.avx512.mask.min.sd.round
2211   return _mm_mask_min_sd(__W,__U,__A,__B);
2212 }
test_mm_maskz_min_sd(__mmask8 __U,__m128d __A,__m128d __B)2213 __m128d test_mm_maskz_min_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2214   // CHECK-LABEL: @test_mm_maskz_min_sd
2215   // CHECK: @llvm.x86.avx512.mask.min.sd.round
2216   return _mm_maskz_min_sd(__U,__A,__B);
2217 }
2218 
test_mm512_undefined()2219 __m512 test_mm512_undefined() {
2220   // CHECK-LABEL: @test_mm512_undefined
2221   // CHECK: ret <16 x float> undef
2222   return _mm512_undefined();
2223 }
2224 
test_mm512_undefined_ps()2225 __m512 test_mm512_undefined_ps() {
2226   // CHECK-LABEL: @test_mm512_undefined_ps
2227   // CHECK: ret <16 x float> undef
2228   return _mm512_undefined_ps();
2229 }
2230 
test_mm512_undefined_pd()2231 __m512d test_mm512_undefined_pd() {
2232   // CHECK-LABEL: @test_mm512_undefined_pd
2233   // CHECK: ret <8 x double> undef
2234   return _mm512_undefined_pd();
2235 }
2236 
test_mm512_undefined_epi32()2237 __m512i test_mm512_undefined_epi32() {
2238   // CHECK-LABEL: @test_mm512_undefined_epi32
2239   // CHECK: ret <8 x i64> undef
2240   return _mm512_undefined_epi32();
2241 }
2242 
test_mm512_cvtepi8_epi32(__m128i __A)2243 __m512i test_mm512_cvtepi8_epi32(__m128i __A) {
2244   // CHECK-LABEL: @test_mm512_cvtepi8_epi32
2245   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
2246   return _mm512_cvtepi8_epi32(__A);
2247 }
2248 
test_mm512_mask_cvtepi8_epi32(__m512i __W,__mmask16 __U,__m128i __A)2249 __m512i test_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
2250   // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi32
2251   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
2252   return _mm512_mask_cvtepi8_epi32(__W, __U, __A);
2253 }
2254 
test_mm512_maskz_cvtepi8_epi32(__mmask16 __U,__m128i __A)2255 __m512i test_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) {
2256   // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi32
2257   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
2258   return _mm512_maskz_cvtepi8_epi32(__U, __A);
2259 }
2260 
test_mm512_cvtepi8_epi64(__m128i __A)2261 __m512i test_mm512_cvtepi8_epi64(__m128i __A) {
2262   // CHECK-LABEL: @test_mm512_cvtepi8_epi64
2263   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
2264   return _mm512_cvtepi8_epi64(__A);
2265 }
2266 
test_mm512_mask_cvtepi8_epi64(__m512i __W,__mmask8 __U,__m128i __A)2267 __m512i test_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2268   // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi64
2269   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
2270   return _mm512_mask_cvtepi8_epi64(__W, __U, __A);
2271 }
2272 
test_mm512_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)2273 __m512i test_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
2274   // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi64
2275   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
2276   return _mm512_maskz_cvtepi8_epi64(__U, __A);
2277 }
2278 
test_mm512_cvtepi32_epi64(__m256i __X)2279 __m512i test_mm512_cvtepi32_epi64(__m256i __X) {
2280   // CHECK-LABEL: @test_mm512_cvtepi32_epi64
2281   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
2282   return _mm512_cvtepi32_epi64(__X);
2283 }
2284 
test_mm512_mask_cvtepi32_epi64(__m512i __W,__mmask8 __U,__m256i __X)2285 __m512i test_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
2286   // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi64
2287   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
2288   return _mm512_mask_cvtepi32_epi64(__W, __U, __X);
2289 }
2290 
test_mm512_maskz_cvtepi32_epi64(__mmask8 __U,__m256i __X)2291 __m512i test_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) {
2292   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi64
2293   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
2294   return _mm512_maskz_cvtepi32_epi64(__U, __X);
2295 }
2296 
test_mm512_cvtepi16_epi32(__m256i __A)2297 __m512i test_mm512_cvtepi16_epi32(__m256i __A) {
2298   // CHECK-LABEL: @test_mm512_cvtepi16_epi32
2299   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
2300   return _mm512_cvtepi16_epi32(__A);
2301 }
2302 
test_mm512_mask_cvtepi16_epi32(__m512i __W,__mmask16 __U,__m256i __A)2303 __m512i test_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
2304   // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi32
2305   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
2306   return _mm512_mask_cvtepi16_epi32(__W, __U, __A);
2307 }
2308 
test_mm512_maskz_cvtepi16_epi32(__mmask16 __U,__m256i __A)2309 __m512i test_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) {
2310   // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi32
2311   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
2312   return _mm512_maskz_cvtepi16_epi32(__U, __A);
2313 }
2314 
test_mm512_cvtepi16_epi64(__m128i __A)2315 __m512i test_mm512_cvtepi16_epi64(__m128i __A) {
2316   // CHECK-LABEL: @test_mm512_cvtepi16_epi64
2317   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
2318   return _mm512_cvtepi16_epi64(__A);
2319 }
2320 
test_mm512_mask_cvtepi16_epi64(__m512i __W,__mmask8 __U,__m128i __A)2321 __m512i test_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2322   // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi64
2323   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
2324   return _mm512_mask_cvtepi16_epi64(__W, __U, __A);
2325 }
2326 
test_mm512_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)2327 __m512i test_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
2328   // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi64
2329   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
2330   return _mm512_maskz_cvtepi16_epi64(__U, __A);
2331 }
2332 
test_mm512_cvtepu8_epi32(__m128i __A)2333 __m512i test_mm512_cvtepu8_epi32(__m128i __A) {
2334   // CHECK-LABEL: @test_mm512_cvtepu8_epi32
2335   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
2336   return _mm512_cvtepu8_epi32(__A);
2337 }
2338 
test_mm512_mask_cvtepu8_epi32(__m512i __W,__mmask16 __U,__m128i __A)2339 __m512i test_mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
2340   // CHECK-LABEL: @test_mm512_mask_cvtepu8_epi32
2341   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
2342   return _mm512_mask_cvtepu8_epi32(__W, __U, __A);
2343 }
2344 
test_mm512_maskz_cvtepu8_epi32(__mmask16 __U,__m128i __A)2345 __m512i test_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A) {
2346   // CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi32
2347   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
2348   return _mm512_maskz_cvtepu8_epi32(__U, __A);
2349 }
2350 
test_mm512_cvtepu8_epi64(__m128i __A)2351 __m512i test_mm512_cvtepu8_epi64(__m128i __A) {
2352   // CHECK-LABEL: @test_mm512_cvtepu8_epi64
2353   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
2354   return _mm512_cvtepu8_epi64(__A);
2355 }
2356 
test_mm512_mask_cvtepu8_epi64(__m512i __W,__mmask8 __U,__m128i __A)2357 __m512i test_mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2358   // CHECK-LABEL: @test_mm512_mask_cvtepu8_epi64
2359   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
2360   return _mm512_mask_cvtepu8_epi64(__W, __U, __A);
2361 }
2362 
test_mm512_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)2363 __m512i test_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
2364   // CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi64
2365   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
2366   return _mm512_maskz_cvtepu8_epi64(__U, __A);
2367 }
2368 
test_mm512_cvtepu32_epi64(__m256i __X)2369 __m512i test_mm512_cvtepu32_epi64(__m256i __X) {
2370   // CHECK-LABEL: @test_mm512_cvtepu32_epi64
2371   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
2372   return _mm512_cvtepu32_epi64(__X);
2373 }
2374 
test_mm512_mask_cvtepu32_epi64(__m512i __W,__mmask8 __U,__m256i __X)2375 __m512i test_mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
2376   // CHECK-LABEL: @test_mm512_mask_cvtepu32_epi64
2377   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
2378   return _mm512_mask_cvtepu32_epi64(__W, __U, __X);
2379 }
2380 
test_mm512_maskz_cvtepu32_epi64(__mmask8 __U,__m256i __X)2381 __m512i test_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X) {
2382   // CHECK-LABEL: @test_mm512_maskz_cvtepu32_epi64
2383   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
2384   return _mm512_maskz_cvtepu32_epi64(__U, __X);
2385 }
2386 
test_mm512_cvtepu16_epi32(__m256i __A)2387 __m512i test_mm512_cvtepu16_epi32(__m256i __A) {
2388   // CHECK-LABEL: @test_mm512_cvtepu16_epi32
2389   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
2390   return _mm512_cvtepu16_epi32(__A);
2391 }
2392 
test_mm512_mask_cvtepu16_epi32(__m512i __W,__mmask16 __U,__m256i __A)2393 __m512i test_mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
2394   // CHECK-LABEL: @test_mm512_mask_cvtepu16_epi32
2395   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
2396   return _mm512_mask_cvtepu16_epi32(__W, __U, __A);
2397 }
2398 
test_mm512_maskz_cvtepu16_epi32(__mmask16 __U,__m256i __A)2399 __m512i test_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A) {
2400   // CHECK-LABEL: @test_mm512_maskz_cvtepu16_epi32
2401   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
2402   return _mm512_maskz_cvtepu16_epi32(__U, __A);
2403 }
2404 
test_mm512_cvtepu16_epi64(__m128i __A)2405 __m512i test_mm512_cvtepu16_epi64(__m128i __A) {
2406   // CHECK-LABEL: @test_mm512_cvtepu16_epi64
2407   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
2408   return _mm512_cvtepu16_epi64(__A);
2409 }
2410 
test_mm512_mask_cvtepu16_epi64(__m512i __W,__mmask8 __U,__m128i __A)2411 __m512i test_mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2412   // CHECK-LABEL: @test_mm512_mask_cvtepu16_epi64
2413   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
2414   return _mm512_mask_cvtepu16_epi64(__W, __U, __A);
2415 }
2416 
test_mm512_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)2417 __m512i test_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
2418   // CHECK-LABEL: @test_mm512_maskz_cvtepu16_epi64
2419   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
2420   return _mm512_maskz_cvtepu16_epi64(__U, __A);
2421 }
2422 
2423 
test_mm512_rol_epi32(__m512i __A)2424 __m512i test_mm512_rol_epi32(__m512i __A) {
2425   // CHECK-LABEL: @test_mm512_rol_epi32
2426   // CHECK: @llvm.x86.avx512.mask.prol.d.512
2427   return _mm512_rol_epi32(__A, 5);
2428 }
2429 
test_mm512_mask_rol_epi32(__m512i __W,__mmask16 __U,__m512i __A)2430 __m512i test_mm512_mask_rol_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2431   // CHECK-LABEL: @test_mm512_mask_rol_epi32
2432   // CHECK: @llvm.x86.avx512.mask.prol.d.512
2433   return _mm512_mask_rol_epi32(__W, __U, __A, 5);
2434 }
2435 
test_mm512_maskz_rol_epi32(__mmask16 __U,__m512i __A)2436 __m512i test_mm512_maskz_rol_epi32(__mmask16 __U, __m512i __A) {
2437   // CHECK-LABEL: @test_mm512_maskz_rol_epi32
2438   // CHECK: @llvm.x86.avx512.mask.prol.d.512
2439   return _mm512_maskz_rol_epi32(__U, __A, 5);
2440 }
2441 
test_mm512_rol_epi64(__m512i __A)2442 __m512i test_mm512_rol_epi64(__m512i __A) {
2443   // CHECK-LABEL: @test_mm512_rol_epi64
2444   // CHECK: @llvm.x86.avx512.mask.prol.q.512
2445   return _mm512_rol_epi64(__A, 5);
2446 }
2447 
test_mm512_mask_rol_epi64(__m512i __W,__mmask8 __U,__m512i __A)2448 __m512i test_mm512_mask_rol_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2449   // CHECK-LABEL: @test_mm512_mask_rol_epi64
2450   // CHECK: @llvm.x86.avx512.mask.prol.q.512
2451   return _mm512_mask_rol_epi64(__W, __U, __A, 5);
2452 }
2453 
test_mm512_maskz_rol_epi64(__mmask8 __U,__m512i __A)2454 __m512i test_mm512_maskz_rol_epi64(__mmask8 __U, __m512i __A) {
2455   // CHECK-LABEL: @test_mm512_maskz_rol_epi64
2456   // CHECK: @llvm.x86.avx512.mask.prol.q.512
2457   return _mm512_maskz_rol_epi64(__U, __A, 5);
2458 }
2459 
test_mm512_rolv_epi32(__m512i __A,__m512i __B)2460 __m512i test_mm512_rolv_epi32(__m512i __A, __m512i __B) {
2461   // CHECK-LABEL: @test_mm512_rolv_epi32
2462   // CHECK: @llvm.x86.avx512.mask.prolv.d.512
2463   return _mm512_rolv_epi32(__A, __B);
2464 }
2465 
test_mm512_mask_rolv_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)2466 __m512i test_mm512_mask_rolv_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
2467   // CHECK-LABEL: @test_mm512_mask_rolv_epi32
2468   // CHECK: @llvm.x86.avx512.mask.prolv.d.512
2469   return _mm512_mask_rolv_epi32(__W, __U, __A, __B);
2470 }
2471 
test_mm512_maskz_rolv_epi32(__mmask16 __U,__m512i __A,__m512i __B)2472 __m512i test_mm512_maskz_rolv_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
2473   // CHECK-LABEL: @test_mm512_maskz_rolv_epi32
2474   // CHECK: @llvm.x86.avx512.mask.prolv.d.512
2475   return _mm512_maskz_rolv_epi32(__U, __A, __B);
2476 }
2477 
test_mm512_rolv_epi64(__m512i __A,__m512i __B)2478 __m512i test_mm512_rolv_epi64(__m512i __A, __m512i __B) {
2479   // CHECK-LABEL: @test_mm512_rolv_epi64
2480   // CHECK: @llvm.x86.avx512.mask.prolv.q.512
2481   return _mm512_rolv_epi64(__A, __B);
2482 }
2483 
test_mm512_mask_rolv_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)2484 __m512i test_mm512_mask_rolv_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
2485   // CHECK-LABEL: @test_mm512_mask_rolv_epi64
2486   // CHECK: @llvm.x86.avx512.mask.prolv.q.512
2487   return _mm512_mask_rolv_epi64(__W, __U, __A, __B);
2488 }
2489 
test_mm512_maskz_rolv_epi64(__mmask8 __U,__m512i __A,__m512i __B)2490 __m512i test_mm512_maskz_rolv_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
2491   // CHECK-LABEL: @test_mm512_maskz_rolv_epi64
2492   // CHECK: @llvm.x86.avx512.mask.prolv.q.512
2493   return _mm512_maskz_rolv_epi64(__U, __A, __B);
2494 }
2495 
test_mm512_ror_epi32(__m512i __A)2496 __m512i test_mm512_ror_epi32(__m512i __A) {
2497   // CHECK-LABEL: @test_mm512_ror_epi32
2498   // CHECK: @llvm.x86.avx512.mask.pror.d.512
2499   return _mm512_ror_epi32(__A, 5);
2500 }
2501 
test_mm512_mask_ror_epi32(__m512i __W,__mmask16 __U,__m512i __A)2502 __m512i test_mm512_mask_ror_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2503   // CHECK-LABEL: @test_mm512_mask_ror_epi32
2504   // CHECK: @llvm.x86.avx512.mask.pror.d.512
2505   return _mm512_mask_ror_epi32(__W, __U, __A, 5);
2506 }
2507 
test_mm512_maskz_ror_epi32(__mmask16 __U,__m512i __A)2508 __m512i test_mm512_maskz_ror_epi32(__mmask16 __U, __m512i __A) {
2509   // CHECK-LABEL: @test_mm512_maskz_ror_epi32
2510   // CHECK: @llvm.x86.avx512.mask.pror.d.512
2511   return _mm512_maskz_ror_epi32(__U, __A, 5);
2512 }
2513 
test_mm512_ror_epi64(__m512i __A)2514 __m512i test_mm512_ror_epi64(__m512i __A) {
2515   // CHECK-LABEL: @test_mm512_ror_epi64
2516   // CHECK: @llvm.x86.avx512.mask.pror.q.512
2517   return _mm512_ror_epi64(__A, 5);
2518 }
2519 
test_mm512_mask_ror_epi64(__m512i __W,__mmask8 __U,__m512i __A)2520 __m512i test_mm512_mask_ror_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2521   // CHECK-LABEL: @test_mm512_mask_ror_epi64
2522   // CHECK: @llvm.x86.avx512.mask.pror.q.512
2523   return _mm512_mask_ror_epi64(__W, __U, __A, 5);
2524 }
2525 
test_mm512_maskz_ror_epi64(__mmask8 __U,__m512i __A)2526 __m512i test_mm512_maskz_ror_epi64(__mmask8 __U, __m512i __A) {
2527   // CHECK-LABEL: @test_mm512_maskz_ror_epi64
2528   // CHECK: @llvm.x86.avx512.mask.pror.q.512
2529   return _mm512_maskz_ror_epi64(__U, __A, 5);
2530 }
2531 
2532 
test_mm512_rorv_epi32(__m512i __A,__m512i __B)2533 __m512i test_mm512_rorv_epi32(__m512i __A, __m512i __B) {
2534   // CHECK-LABEL: @test_mm512_rorv_epi32
2535   // CHECK: @llvm.x86.avx512.mask.prorv.d.512
2536   return _mm512_rorv_epi32(__A, __B);
2537 }
2538 
test_mm512_mask_rorv_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)2539 __m512i test_mm512_mask_rorv_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
2540   // CHECK-LABEL: @test_mm512_mask_rorv_epi32
2541   // CHECK: @llvm.x86.avx512.mask.prorv.d.512
2542   return _mm512_mask_rorv_epi32(__W, __U, __A, __B);
2543 }
2544 
test_mm512_maskz_rorv_epi32(__mmask16 __U,__m512i __A,__m512i __B)2545 __m512i test_mm512_maskz_rorv_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
2546   // CHECK-LABEL: @test_mm512_maskz_rorv_epi32
2547   // CHECK: @llvm.x86.avx512.mask.prorv.d.512
2548   return _mm512_maskz_rorv_epi32(__U, __A, __B);
2549 }
2550 
test_mm512_rorv_epi64(__m512i __A,__m512i __B)2551 __m512i test_mm512_rorv_epi64(__m512i __A, __m512i __B) {
2552   // CHECK-LABEL: @test_mm512_rorv_epi64
2553   // CHECK: @llvm.x86.avx512.mask.prorv.q.512
2554   return _mm512_rorv_epi64(__A, __B);
2555 }
2556 
test_mm512_mask_rorv_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)2557 __m512i test_mm512_mask_rorv_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
2558   // CHECK-LABEL: @test_mm512_mask_rorv_epi64
2559   // CHECK: @llvm.x86.avx512.mask.prorv.q.512
2560   return _mm512_mask_rorv_epi64(__W, __U, __A, __B);
2561 }
2562 
test_mm512_maskz_rorv_epi64(__mmask8 __U,__m512i __A,__m512i __B)2563 __m512i test_mm512_maskz_rorv_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
2564   // CHECK-LABEL: @test_mm512_maskz_rorv_epi64
2565   // CHECK: @llvm.x86.avx512.mask.prorv.q.512
2566   return _mm512_maskz_rorv_epi64(__U, __A, __B);
2567 }
2568 
test_mm512_slli_epi32(__m512i __A)2569 __m512i test_mm512_slli_epi32(__m512i __A) {
2570   // CHECK-LABEL: @test_mm512_slli_epi32
2571   // CHECK: @llvm.x86.avx512.mask.psll.di.512
2572   return _mm512_slli_epi32(__A, 5);
2573 }
2574 
test_mm512_mask_slli_epi32(__m512i __W,__mmask16 __U,__m512i __A)2575 __m512i test_mm512_mask_slli_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2576   // CHECK-LABEL: @test_mm512_mask_slli_epi32
2577   // CHECK: @llvm.x86.avx512.mask.psll.di.512
2578   return _mm512_mask_slli_epi32(__W, __U, __A, 5);
2579 }
2580 
test_mm512_maskz_slli_epi32(__mmask16 __U,__m512i __A)2581 __m512i test_mm512_maskz_slli_epi32(__mmask16 __U, __m512i __A) {
2582   // CHECK-LABEL: @test_mm512_maskz_slli_epi32
2583   // CHECK: @llvm.x86.avx512.mask.psll.di.512
2584   return _mm512_maskz_slli_epi32(__U, __A, 5);
2585 }
2586 
test_mm512_slli_epi64(__m512i __A)2587 __m512i test_mm512_slli_epi64(__m512i __A) {
2588   // CHECK-LABEL: @test_mm512_slli_epi64
2589   // CHECK: @llvm.x86.avx512.mask.psll.qi.512
2590   return _mm512_slli_epi64(__A, 5);
2591 }
2592 
test_mm512_mask_slli_epi64(__m512i __W,__mmask8 __U,__m512i __A)2593 __m512i test_mm512_mask_slli_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2594   // CHECK-LABEL: @test_mm512_mask_slli_epi64
2595   // CHECK: @llvm.x86.avx512.mask.psll.qi.512
2596   return _mm512_mask_slli_epi64(__W, __U, __A, 5);
2597 }
2598 
test_mm512_maskz_slli_epi64(__mmask8 __U,__m512i __A)2599 __m512i test_mm512_maskz_slli_epi64(__mmask8 __U, __m512i __A) {
2600   // CHECK-LABEL: @test_mm512_maskz_slli_epi64
2601   // CHECK: @llvm.x86.avx512.mask.psll.qi.512
2602   return _mm512_maskz_slli_epi64(__U, __A, 5);
2603 }
2604 
test_mm512_srli_epi32(__m512i __A)2605 __m512i test_mm512_srli_epi32(__m512i __A) {
2606   // CHECK-LABEL: @test_mm512_srli_epi32
2607   // CHECK: @llvm.x86.avx512.mask.psrl.di.512
2608   return _mm512_srli_epi32(__A, 5);
2609 }
2610 
test_mm512_mask_srli_epi32(__m512i __W,__mmask16 __U,__m512i __A)2611 __m512i test_mm512_mask_srli_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2612   // CHECK-LABEL: @test_mm512_mask_srli_epi32
2613   // CHECK: @llvm.x86.avx512.mask.psrl.di.512
2614   return _mm512_mask_srli_epi32(__W, __U, __A, 5);
2615 }
2616 
test_mm512_maskz_srli_epi32(__mmask16 __U,__m512i __A)2617 __m512i test_mm512_maskz_srli_epi32(__mmask16 __U, __m512i __A) {
2618   // CHECK-LABEL: @test_mm512_maskz_srli_epi32
2619   // CHECK: @llvm.x86.avx512.mask.psrl.di.512
2620   return _mm512_maskz_srli_epi32(__U, __A, 5);
2621 }
2622 
test_mm512_srli_epi64(__m512i __A)2623 __m512i test_mm512_srli_epi64(__m512i __A) {
2624   // CHECK-LABEL: @test_mm512_srli_epi64
2625   // CHECK: @llvm.x86.avx512.mask.psrl.qi.512
2626   return _mm512_srli_epi64(__A, 5);
2627 }
2628 
test_mm512_mask_srli_epi64(__m512i __W,__mmask8 __U,__m512i __A)2629 __m512i test_mm512_mask_srli_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2630   // CHECK-LABEL: @test_mm512_mask_srli_epi64
2631   // CHECK: @llvm.x86.avx512.mask.psrl.qi.512
2632   return _mm512_mask_srli_epi64(__W, __U, __A, 5);
2633 }
2634 
test_mm512_maskz_srli_epi64(__mmask8 __U,__m512i __A)2635 __m512i test_mm512_maskz_srli_epi64(__mmask8 __U, __m512i __A) {
2636   // CHECK-LABEL: @test_mm512_maskz_srli_epi64
2637   // CHECK: @llvm.x86.avx512.mask.psrl.qi.512
2638   return _mm512_maskz_srli_epi64(__U, __A, 5);
2639 }
2640 
test_mm512_mask_load_epi32(__m512i __W,__mmask16 __U,void const * __P)2641 __m512i test_mm512_mask_load_epi32(__m512i __W, __mmask16 __U, void const *__P) {
2642   // CHECK-LABEL: @test_mm512_mask_load_epi32
2643   // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
2644   return _mm512_mask_load_epi32(__W, __U, __P);
2645 }
2646 
test_mm512_maskz_load_epi32(__mmask16 __U,void const * __P)2647 __m512i test_mm512_maskz_load_epi32(__mmask16 __U, void const *__P) {
2648   // CHECK-LABEL: @test_mm512_maskz_load_epi32
2649   // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
2650   return _mm512_maskz_load_epi32(__U, __P);
2651 }
2652 
test_mm512_mask_mov_epi32(__m512i __W,__mmask16 __U,__m512i __A)2653 __m512i test_mm512_mask_mov_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2654   // CHECK-LABEL: @test_mm512_mask_mov_epi32
2655   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2656   return _mm512_mask_mov_epi32(__W, __U, __A);
2657 }
2658 
test_mm512_maskz_mov_epi32(__mmask16 __U,__m512i __A)2659 __m512i test_mm512_maskz_mov_epi32(__mmask16 __U, __m512i __A) {
2660   // CHECK-LABEL: @test_mm512_maskz_mov_epi32
2661   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2662   return _mm512_maskz_mov_epi32(__U, __A);
2663 }
2664 
test_mm512_mask_mov_epi64(__m512i __W,__mmask8 __U,__m512i __A)2665 __m512i test_mm512_mask_mov_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2666   // CHECK-LABEL: @test_mm512_mask_mov_epi64
2667   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2668   return _mm512_mask_mov_epi64(__W, __U, __A);
2669 }
2670 
test_mm512_maskz_mov_epi64(__mmask8 __U,__m512i __A)2671 __m512i test_mm512_maskz_mov_epi64(__mmask8 __U, __m512i __A) {
2672   // CHECK-LABEL: @test_mm512_maskz_mov_epi64
2673   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2674   return _mm512_maskz_mov_epi64(__U, __A);
2675 }
2676 
test_mm512_mask_load_epi64(__m512i __W,__mmask8 __U,void const * __P)2677 __m512i test_mm512_mask_load_epi64(__m512i __W, __mmask8 __U, void const *__P) {
2678   // CHECK-LABEL: @test_mm512_mask_load_epi64
2679   // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
2680   return _mm512_mask_load_epi64(__W, __U, __P);
2681 }
2682 
test_mm512_maskz_load_epi64(__mmask8 __U,void const * __P)2683 __m512i test_mm512_maskz_load_epi64(__mmask8 __U, void const *__P) {
2684   // CHECK-LABEL: @test_mm512_maskz_load_epi64
2685   // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
2686   return _mm512_maskz_load_epi64(__U, __P);
2687 }
2688 
test_mm512_mask_store_epi32(void * __P,__mmask16 __U,__m512i __A)2689 void test_mm512_mask_store_epi32(void *__P, __mmask16 __U, __m512i __A) {
2690   // CHECK-LABEL: @test_mm512_mask_store_epi32
2691   // CHECK: @llvm.masked.store.v16i32.p0v16i32(<16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}})
2692   return _mm512_mask_store_epi32(__P, __U, __A);
2693 }
2694 
test_mm512_mask_store_epi64(void * __P,__mmask8 __U,__m512i __A)2695 void test_mm512_mask_store_epi64(void *__P, __mmask8 __U, __m512i __A) {
2696   // CHECK-LABEL: @test_mm512_mask_store_epi64
2697   // CHECK: @llvm.masked.store.v8i64.p0v8i64(<8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}})
2698   return _mm512_mask_store_epi64(__P, __U, __A);
2699 }
2700 
test_mm512_movedup_pd(__m512d __A)2701 __m512d test_mm512_movedup_pd(__m512d __A) {
2702   // CHECK-LABEL: @test_mm512_movedup_pd
2703   // 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   return _mm512_movedup_pd(__A);
2705 }
2706 
test_mm512_mask_movedup_pd(__m512d __W,__mmask8 __U,__m512d __A)2707 __m512d test_mm512_mask_movedup_pd(__m512d __W, __mmask8 __U, __m512d __A) {
2708   // CHECK-LABEL: @test_mm512_mask_movedup_pd
2709   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2711   return _mm512_mask_movedup_pd(__W, __U, __A);
2712 }
2713 
test_mm512_maskz_movedup_pd(__mmask8 __U,__m512d __A)2714 __m512d test_mm512_maskz_movedup_pd(__mmask8 __U, __m512d __A) {
2715   // CHECK-LABEL: @test_mm512_maskz_movedup_pd
2716   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2718   return _mm512_maskz_movedup_pd(__U, __A);
2719 }
2720 
test_mm_comi_round_sd(__m128d __A,__m128d __B)2721 int test_mm_comi_round_sd(__m128d __A, __m128d __B) {
2722   // CHECK-LABEL: @test_mm_comi_round_sd
2723   // CHECK: @llvm.x86.avx512.vcomi.sd
2724   return _mm_comi_round_sd(__A, __B, 5, 3);
2725 }
2726 
test_mm_comi_round_ss(__m128 __A,__m128 __B)2727 int test_mm_comi_round_ss(__m128 __A, __m128 __B) {
2728   // CHECK-LABEL: @test_mm_comi_round_ss
2729   // CHECK: @llvm.x86.avx512.vcomi.ss
2730   return _mm_comi_round_ss(__A, __B, 5, 3);
2731 }
2732 
test_mm512_fixupimm_round_pd(__m512d __A,__m512d __B,__m512i __C)2733 __m512d test_mm512_fixupimm_round_pd(__m512d __A, __m512d __B, __m512i __C) {
2734   // CHECK-LABEL: @test_mm512_fixupimm_round_pd
2735   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
2736   return _mm512_fixupimm_round_pd(__A, __B, __C, 5, 8);
2737 }
2738 
test_mm512_mask_fixupimm_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512i __C)2739 __m512d test_mm512_mask_fixupimm_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512i __C) {
2740   // CHECK-LABEL: @test_mm512_mask_fixupimm_round_pd
2741   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
2742   return _mm512_mask_fixupimm_round_pd(__A, __U, __B, __C, 5, 8);
2743 }
2744 
test_mm512_fixupimm_pd(__m512d __A,__m512d __B,__m512i __C)2745 __m512d test_mm512_fixupimm_pd(__m512d __A, __m512d __B, __m512i __C) {
2746   // CHECK-LABEL: @test_mm512_fixupimm_pd
2747   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
2748   return _mm512_fixupimm_pd(__A, __B, __C, 5);
2749 }
2750 
test_mm512_mask_fixupimm_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512i __C)2751 __m512d test_mm512_mask_fixupimm_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512i __C) {
2752   // CHECK-LABEL: @test_mm512_mask_fixupimm_pd
2753   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
2754   return _mm512_mask_fixupimm_pd(__A, __U, __B, __C, 5);
2755 }
2756 
test_mm512_maskz_fixupimm_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512i __C)2757 __m512d test_mm512_maskz_fixupimm_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512i __C) {
2758   // CHECK-LABEL: @test_mm512_maskz_fixupimm_round_pd
2759   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.512
2760   return _mm512_maskz_fixupimm_round_pd(__U, __A, __B, __C, 5, 8);
2761 }
2762 
test_mm512_maskz_fixupimm_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512i __C)2763 __m512d test_mm512_maskz_fixupimm_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512i __C) {
2764   // CHECK-LABEL: @test_mm512_maskz_fixupimm_pd
2765   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.512
2766   return _mm512_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
2767 }
2768 
test_mm512_fixupimm_round_ps(__m512 __A,__m512 __B,__m512i __C)2769 __m512 test_mm512_fixupimm_round_ps(__m512 __A, __m512 __B, __m512i __C) {
2770   // CHECK-LABEL: @test_mm512_fixupimm_round_ps
2771   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
2772   return _mm512_fixupimm_round_ps(__A, __B, __C, 5, 8);
2773 }
2774 
test_mm512_mask_fixupimm_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512i __C)2775 __m512 test_mm512_mask_fixupimm_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512i __C) {
2776   // CHECK-LABEL: @test_mm512_mask_fixupimm_round_ps
2777   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
2778   return _mm512_mask_fixupimm_round_ps(__A, __U, __B, __C, 5, 8);
2779 }
2780 
test_mm512_fixupimm_ps(__m512 __A,__m512 __B,__m512i __C)2781 __m512 test_mm512_fixupimm_ps(__m512 __A, __m512 __B, __m512i __C) {
2782   // CHECK-LABEL: @test_mm512_fixupimm_ps
2783   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
2784   return _mm512_fixupimm_ps(__A, __B, __C, 5);
2785 }
2786 
test_mm512_mask_fixupimm_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512i __C)2787 __m512 test_mm512_mask_fixupimm_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512i __C) {
2788   // CHECK-LABEL: @test_mm512_mask_fixupimm_ps
2789   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
2790   return _mm512_mask_fixupimm_ps(__A, __U, __B, __C, 5);
2791 }
2792 
test_mm512_maskz_fixupimm_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512i __C)2793 __m512 test_mm512_maskz_fixupimm_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512i __C) {
2794   // CHECK-LABEL: @test_mm512_maskz_fixupimm_round_ps
2795   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.512
2796   return _mm512_maskz_fixupimm_round_ps(__U, __A, __B, __C, 5, 8);
2797 }
2798 
test_mm512_maskz_fixupimm_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512i __C)2799 __m512 test_mm512_maskz_fixupimm_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512i __C) {
2800   // CHECK-LABEL: @test_mm512_maskz_fixupimm_ps
2801   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.512
2802   return _mm512_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
2803 }
2804 
test_mm_fixupimm_round_sd(__m128d __A,__m128d __B,__m128i __C)2805 __m128d test_mm_fixupimm_round_sd(__m128d __A, __m128d __B, __m128i __C) {
2806   // CHECK-LABEL: @test_mm_fixupimm_round_sd
2807   // CHECK: @llvm.x86.avx512.mask.fixupimm
2808   return _mm_fixupimm_round_sd(__A, __B, __C, 5, 8);
2809 }
2810 
test_mm_mask_fixupimm_round_sd(__m128d __A,__mmask8 __U,__m128d __B,__m128i __C)2811 __m128d test_mm_mask_fixupimm_round_sd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
2812   // CHECK-LABEL: @test_mm_mask_fixupimm_round_sd
2813   // CHECK: @llvm.x86.avx512.mask.fixupimm
2814   return _mm_mask_fixupimm_round_sd(__A, __U, __B, __C, 5, 8);
2815 }
2816 
test_mm_fixupimm_sd(__m128d __A,__m128d __B,__m128i __C)2817 __m128d test_mm_fixupimm_sd(__m128d __A, __m128d __B, __m128i __C) {
2818   // CHECK-LABEL: @test_mm_fixupimm_sd
2819   // CHECK: @llvm.x86.avx512.mask.fixupimm
2820   return _mm_fixupimm_sd(__A, __B, __C, 5);
2821 }
2822 
test_mm_mask_fixupimm_sd(__m128d __A,__mmask8 __U,__m128d __B,__m128i __C)2823 __m128d test_mm_mask_fixupimm_sd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
2824   // CHECK-LABEL: @test_mm_mask_fixupimm_sd
2825   // CHECK: @llvm.x86.avx512.mask.fixupimm
2826   return _mm_mask_fixupimm_sd(__A, __U, __B, __C, 5);
2827 }
2828 
test_mm_maskz_fixupimm_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128i __C)2829 __m128d test_mm_maskz_fixupimm_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
2830   // CHECK-LABEL: @test_mm_maskz_fixupimm_round_sd
2831   // CHECK: @llvm.x86.avx512.maskz.fixupimm
2832   return _mm_maskz_fixupimm_round_sd(__U, __A, __B, __C, 5, 8);
2833 }
2834 
test_mm_maskz_fixupimm_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128i __C)2835 __m128d test_mm_maskz_fixupimm_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
2836   // CHECK-LABEL: @test_mm_maskz_fixupimm_sd
2837   // CHECK: @llvm.x86.avx512.maskz.fixupimm
2838   return _mm_maskz_fixupimm_sd(__U, __A, __B, __C, 5);
2839 }
2840 
test_mm_fixupimm_round_ss(__m128 __A,__m128 __B,__m128i __C)2841 __m128 test_mm_fixupimm_round_ss(__m128 __A, __m128 __B, __m128i __C) {
2842   // CHECK-LABEL: @test_mm_fixupimm_round_ss
2843   // CHECK: @llvm.x86.avx512.mask.fixupimm
2844   return _mm_fixupimm_round_ss(__A, __B, __C, 5, 8);
2845 }
2846 
test_mm_mask_fixupimm_round_ss(__m128 __A,__mmask8 __U,__m128 __B,__m128i __C)2847 __m128 test_mm_mask_fixupimm_round_ss(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
2848   // CHECK-LABEL: @test_mm_mask_fixupimm_round_ss
2849   // CHECK: @llvm.x86.avx512.mask.fixupimm
2850   return _mm_mask_fixupimm_round_ss(__A, __U, __B, __C, 5, 8);
2851 }
2852 
test_mm_fixupimm_ss(__m128 __A,__m128 __B,__m128i __C)2853 __m128 test_mm_fixupimm_ss(__m128 __A, __m128 __B, __m128i __C) {
2854   // CHECK-LABEL: @test_mm_fixupimm_ss
2855   // CHECK: @llvm.x86.avx512.mask.fixupimm
2856   return _mm_fixupimm_ss(__A, __B, __C, 5);
2857 }
2858 
test_mm_mask_fixupimm_ss(__m128 __A,__mmask8 __U,__m128 __B,__m128i __C)2859 __m128 test_mm_mask_fixupimm_ss(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
2860   // CHECK-LABEL: @test_mm_mask_fixupimm_ss
2861   // CHECK: @llvm.x86.avx512.mask.fixupimm
2862   return _mm_mask_fixupimm_ss(__A, __U, __B, __C, 5);
2863 }
2864 
test_mm_maskz_fixupimm_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128i __C)2865 __m128 test_mm_maskz_fixupimm_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
2866   // CHECK-LABEL: @test_mm_maskz_fixupimm_round_ss
2867   // CHECK: @llvm.x86.avx512.maskz.fixupimm
2868   return _mm_maskz_fixupimm_round_ss(__U, __A, __B, __C, 5, 8);
2869 }
2870 
test_mm_maskz_fixupimm_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128i __C)2871 __m128 test_mm_maskz_fixupimm_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
2872   // CHECK-LABEL: @test_mm_maskz_fixupimm_ss
2873   // CHECK: @llvm.x86.avx512.maskz.fixupimm
2874   return _mm_maskz_fixupimm_ss(__U, __A, __B, __C, 5);
2875 }
2876 
test_mm_getexp_round_sd(__m128d __A,__m128d __B)2877 __m128d test_mm_getexp_round_sd(__m128d __A, __m128d __B) {
2878   // CHECK-LABEL: @test_mm_getexp_round_sd
2879   // CHECK: @llvm.x86.avx512.mask.getexp.sd
2880   return _mm_getexp_round_sd(__A, __B, 8);
2881 }
2882 
test_mm_getexp_sd(__m128d __A,__m128d __B)2883 __m128d test_mm_getexp_sd(__m128d __A, __m128d __B) {
2884   // CHECK-LABEL: @test_mm_getexp_sd
2885   // CHECK: @llvm.x86.avx512.mask.getexp.sd
2886   return _mm_getexp_sd(__A, __B);
2887 }
2888 
test_mm_getexp_round_ss(__m128 __A,__m128 __B)2889 __m128 test_mm_getexp_round_ss(__m128 __A, __m128 __B) {
2890   // CHECK-LABEL: @test_mm_getexp_round_ss
2891   // CHECK: @llvm.x86.avx512.mask.getexp.ss
2892   return _mm_getexp_round_ss(__A, __B, 8);
2893 }
2894 
test_mm_getexp_ss(__m128 __A,__m128 __B)2895 __m128 test_mm_getexp_ss(__m128 __A, __m128 __B) {
2896   // CHECK-LABEL: @test_mm_getexp_ss
2897   // CHECK: @llvm.x86.avx512.mask.getexp.ss
2898   return _mm_getexp_ss(__A, __B);
2899 }
2900 
test_mm_getmant_round_sd(__m128d __A,__m128d __B)2901 __m128d test_mm_getmant_round_sd(__m128d __A, __m128d __B) {
2902   // CHECK-LABEL: @test_mm_getmant_round_sd
2903   // CHECK: @llvm.x86.avx512.mask.getmant.sd
2904   return _mm_getmant_round_sd(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src, 8);
2905 }
2906 
test_mm_getmant_sd(__m128d __A,__m128d __B)2907 __m128d test_mm_getmant_sd(__m128d __A, __m128d __B) {
2908   // CHECK-LABEL: @test_mm_getmant_sd
2909   // CHECK: @llvm.x86.avx512.mask.getmant.sd
2910   return _mm_getmant_sd(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src);
2911 }
2912 
test_mm_getmant_round_ss(__m128 __A,__m128 __B)2913 __m128 test_mm_getmant_round_ss(__m128 __A, __m128 __B) {
2914   // CHECK-LABEL: @test_mm_getmant_round_ss
2915   // CHECK: @llvm.x86.avx512.mask.getmant.ss
2916   return _mm_getmant_round_ss(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src, 8);
2917 }
2918 
test_mm_getmant_ss(__m128 __A,__m128 __B)2919 __m128 test_mm_getmant_ss(__m128 __A, __m128 __B) {
2920   // CHECK-LABEL: @test_mm_getmant_ss
2921   // CHECK: @llvm.x86.avx512.mask.getmant.ss
2922   return _mm_getmant_ss(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src);
2923 }
2924 
test_mm512_kmov(__mmask16 __A)2925 __mmask16 test_mm512_kmov(__mmask16 __A) {
2926   // CHECK-LABEL: @test_mm512_kmov
2927   // CHECK: load i16, i16* %__A.addr.i, align 2
2928   return _mm512_kmov(__A);
2929 }
2930 
test_mm512_mask_unpackhi_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)2931 __m512d test_mm512_mask_unpackhi_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2932   // CHECK-LABEL: @test_mm512_mask_unpackhi_pd
2933   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2935   return _mm512_mask_unpackhi_pd(__W, __U, __A, __B);
2936 }
test_mm_cvt_roundsd_si64(__m128d __A)2937 unsigned long long test_mm_cvt_roundsd_si64(__m128d __A) {
2938   // CHECK-LABEL: @test_mm_cvt_roundsd_si64
2939   // CHECK: @llvm.x86.avx512.vcvtsd2si64
2940   return _mm_cvt_roundsd_si64(__A, _MM_FROUND_CUR_DIRECTION);
2941 }
test_mm512_mask2_permutex2var_epi32(__m512i __A,__m512i __I,__mmask16 __U,__m512i __B)2942 __m512i test_mm512_mask2_permutex2var_epi32(__m512i __A, __m512i __I, __mmask16 __U, __m512i __B) {
2943   // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi32
2944   // CHECK: @llvm.x86.avx512.mask.vpermi2var.d.512
2945   return _mm512_mask2_permutex2var_epi32(__A, __I, __U, __B);
2946 }
test_mm512_unpackhi_epi32(__m512i __A,__m512i __B)2947 __m512i test_mm512_unpackhi_epi32(__m512i __A, __m512i __B) {
2948   // CHECK-LABEL: @test_mm512_unpackhi_epi32
2949   // 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   return _mm512_unpackhi_epi32(__A, __B);
2951 }
2952 
test_mm512_maskz_unpackhi_pd(__mmask8 __U,__m512d __A,__m512d __B)2953 __m512d test_mm512_maskz_unpackhi_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2954   // CHECK-LABEL: @test_mm512_maskz_unpackhi_pd
2955   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2957   return _mm512_maskz_unpackhi_pd(__U, __A, __B);
2958 }
test_mm_cvt_roundsd_i64(__m128d __A)2959 long long test_mm_cvt_roundsd_i64(__m128d __A) {
2960   // CHECK-LABEL: @test_mm_cvt_roundsd_i64
2961   // CHECK: @llvm.x86.avx512.vcvtsd2si64
2962   return _mm_cvt_roundsd_i64(__A, _MM_FROUND_CUR_DIRECTION);
2963 }
test_mm512_mask2_permutex2var_pd(__m512d __A,__m512i __I,__mmask8 __U,__m512d __B)2964 __m512d test_mm512_mask2_permutex2var_pd(__m512d __A, __m512i __I, __mmask8 __U, __m512d __B) {
2965   // CHECK-LABEL: @test_mm512_mask2_permutex2var_pd
2966   // CHECK: @llvm.x86.avx512.mask.vpermi2var.pd.512
2967   return _mm512_mask2_permutex2var_pd(__A, __I, __U, __B);
2968 }
test_mm512_mask_unpackhi_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)2969 __m512i test_mm512_mask_unpackhi_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
2970   // CHECK-LABEL: @test_mm512_mask_unpackhi_epi32
2971   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2973   return _mm512_mask_unpackhi_epi32(__W, __U, __A, __B);
2974 }
2975 
test_mm512_mask_unpackhi_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)2976 __m512 test_mm512_mask_unpackhi_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2977   // CHECK-LABEL: @test_mm512_mask_unpackhi_ps
2978   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
2980   return _mm512_mask_unpackhi_ps(__W, __U, __A, __B);
2981 }
2982 
test_mm512_maskz_unpackhi_ps(__mmask16 __U,__m512 __A,__m512 __B)2983 __m512 test_mm512_maskz_unpackhi_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2984   // CHECK-LABEL: @test_mm512_maskz_unpackhi_ps
2985   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
2987   return _mm512_maskz_unpackhi_ps(__U, __A, __B);
2988 }
2989 
test_mm512_mask_unpacklo_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)2990 __m512d test_mm512_mask_unpacklo_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2991   // CHECK-LABEL: @test_mm512_mask_unpacklo_pd
2992   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2994   return _mm512_mask_unpacklo_pd(__W, __U, __A, __B);
2995 }
2996 
test_mm512_maskz_unpacklo_pd(__mmask8 __U,__m512d __A,__m512d __B)2997 __m512d test_mm512_maskz_unpacklo_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2998   // CHECK-LABEL: @test_mm512_maskz_unpacklo_pd
2999   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3001   return _mm512_maskz_unpacklo_pd(__U, __A, __B);
3002 }
3003 
test_mm512_mask_unpacklo_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)3004 __m512 test_mm512_mask_unpacklo_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
3005   // CHECK-LABEL: @test_mm512_mask_unpacklo_ps
3006   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3008   return _mm512_mask_unpacklo_ps(__W, __U, __A, __B);
3009 }
3010 
test_mm512_maskz_unpacklo_ps(__mmask16 __U,__m512 __A,__m512 __B)3011 __m512 test_mm512_maskz_unpacklo_ps(__mmask16 __U, __m512 __A, __m512 __B) {
3012   // CHECK-LABEL: @test_mm512_maskz_unpacklo_ps
3013   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3015   return _mm512_maskz_unpacklo_ps(__U, __A, __B);
3016 }
test_mm_cvt_roundsd_si32(__m128d __A)3017 int test_mm_cvt_roundsd_si32(__m128d __A) {
3018   // CHECK-LABEL: @test_mm_cvt_roundsd_si32
3019   // CHECK: @llvm.x86.avx512.vcvtsd2si32
3020   return _mm_cvt_roundsd_si32(__A, _MM_FROUND_CUR_DIRECTION);
3021 }
3022 
test_mm_cvt_roundsd_i32(__m128d __A)3023 int test_mm_cvt_roundsd_i32(__m128d __A) {
3024   // CHECK-LABEL: @test_mm_cvt_roundsd_i32
3025   // CHECK: @llvm.x86.avx512.vcvtsd2si32
3026   return _mm_cvt_roundsd_i32(__A, _MM_FROUND_CUR_DIRECTION);
3027 }
3028 
test_mm_cvt_roundsd_u32(__m128d __A)3029 unsigned test_mm_cvt_roundsd_u32(__m128d __A) {
3030   // CHECK-LABEL: @test_mm_cvt_roundsd_u32
3031   // CHECK: @llvm.x86.avx512.vcvtsd2usi32
3032   return _mm_cvt_roundsd_u32(__A, _MM_FROUND_CUR_DIRECTION);
3033 }
3034 
test_mm_cvtsd_u32(__m128d __A)3035 unsigned test_mm_cvtsd_u32(__m128d __A) {
3036   // CHECK-LABEL: @test_mm_cvtsd_u32
3037   // CHECK: @llvm.x86.avx512.vcvtsd2usi32
3038   return _mm_cvtsd_u32(__A);
3039 }
3040 
test_mm_cvt_roundsd_u64(__m128d __A)3041 unsigned long long test_mm_cvt_roundsd_u64(__m128d __A) {
3042   // CHECK-LABEL: @test_mm_cvt_roundsd_u64
3043   // CHECK: @llvm.x86.avx512.vcvtsd2usi64
3044   return _mm_cvt_roundsd_u64(__A, _MM_FROUND_CUR_DIRECTION);
3045 }
3046 
test_mm_cvtsd_u64(__m128d __A)3047 unsigned long long test_mm_cvtsd_u64(__m128d __A) {
3048   // CHECK-LABEL: @test_mm_cvtsd_u64
3049   // CHECK: @llvm.x86.avx512.vcvtsd2usi64
3050   return _mm_cvtsd_u64(__A);
3051 }
3052 
test_mm_cvt_roundss_si32(__m128 __A)3053 int test_mm_cvt_roundss_si32(__m128 __A) {
3054   // CHECK-LABEL: @test_mm_cvt_roundss_si32
3055   // CHECK: @llvm.x86.avx512.vcvtss2si32
3056   return _mm_cvt_roundss_si32(__A, _MM_FROUND_CUR_DIRECTION);
3057 }
3058 
test_mm_cvt_roundss_i32(__m128 __A)3059 int test_mm_cvt_roundss_i32(__m128 __A) {
3060   // CHECK-LABEL: @test_mm_cvt_roundss_i32
3061   // CHECK: @llvm.x86.avx512.vcvtss2si32
3062   return _mm_cvt_roundss_i32(__A, _MM_FROUND_CUR_DIRECTION);
3063 }
3064 
test_mm_cvt_roundss_si64(__m128 __A)3065 int test_mm_cvt_roundss_si64(__m128 __A) {
3066   // CHECK-LABEL: @test_mm_cvt_roundss_si64
3067   // CHECK: @llvm.x86.avx512.vcvtss2si64
3068   return _mm_cvt_roundss_si64(__A, _MM_FROUND_CUR_DIRECTION);
3069 }
3070 
test_mm_cvt_roundss_i64(__m128 __A)3071 long long test_mm_cvt_roundss_i64(__m128 __A) {
3072   // CHECK-LABEL: @test_mm_cvt_roundss_i64
3073   // CHECK: @llvm.x86.avx512.vcvtss2si64
3074   return _mm_cvt_roundss_i64(__A, _MM_FROUND_CUR_DIRECTION);
3075 }
3076 
test_mm_cvt_roundss_u32(__m128 __A)3077 unsigned test_mm_cvt_roundss_u32(__m128 __A) {
3078   // CHECK-LABEL: @test_mm_cvt_roundss_u32
3079   // CHECK: @llvm.x86.avx512.vcvtss2usi32
3080   return _mm_cvt_roundss_u32(__A, _MM_FROUND_CUR_DIRECTION);
3081 }
3082 
test_mm_cvtss_u32(__m128 __A)3083 unsigned test_mm_cvtss_u32(__m128 __A) {
3084   // CHECK-LABEL: @test_mm_cvtss_u32
3085   // CHECK: @llvm.x86.avx512.vcvtss2usi32
3086   return _mm_cvtss_u32(__A);
3087 }
3088 
test_mm_cvt_roundss_u64(__m128 __A)3089 unsigned long long test_mm_cvt_roundss_u64(__m128 __A) {
3090   // CHECK-LABEL: @test_mm_cvt_roundss_u64
3091   // CHECK: @llvm.x86.avx512.vcvtss2usi64
3092   return _mm_cvt_roundss_u64(__A, _MM_FROUND_CUR_DIRECTION);
3093 }
3094 
test_mm_cvtss_u64(__m128 __A)3095 unsigned long long test_mm_cvtss_u64(__m128 __A) {
3096   // CHECK-LABEL: @test_mm_cvtss_u64
3097   // CHECK: @llvm.x86.avx512.vcvtss2usi64
3098   return _mm_cvtss_u64(__A);
3099 }
3100 
test_mm_cvtt_roundsd_i32(__m128d __A)3101 int test_mm_cvtt_roundsd_i32(__m128d __A) {
3102   // CHECK-LABEL: @test_mm_cvtt_roundsd_i32
3103   // CHECK: @llvm.x86.avx512.cvttsd2si
3104   return _mm_cvtt_roundsd_i32(__A, _MM_FROUND_CUR_DIRECTION);
3105 }
3106 
test_mm_cvtt_roundsd_si32(__m128d __A)3107 int test_mm_cvtt_roundsd_si32(__m128d __A) {
3108   // CHECK-LABEL: @test_mm_cvtt_roundsd_si32
3109   // CHECK: @llvm.x86.avx512.cvttsd2si
3110   return _mm_cvtt_roundsd_si32(__A, _MM_FROUND_CUR_DIRECTION);
3111 }
3112 
test_mm_cvttsd_i32(__m128d __A)3113 int test_mm_cvttsd_i32(__m128d __A) {
3114   // CHECK-LABEL: @test_mm_cvttsd_i32
3115   // CHECK: @llvm.x86.avx512.cvttsd2si
3116   return _mm_cvttsd_i32(__A);
3117 }
3118 
test_mm_cvtt_roundsd_si64(__m128d __A)3119 unsigned long long test_mm_cvtt_roundsd_si64(__m128d __A) {
3120   // CHECK-LABEL: @test_mm_cvtt_roundsd_si64
3121   // CHECK: @llvm.x86.avx512.cvttsd2si64
3122   return _mm_cvtt_roundsd_si64(__A, _MM_FROUND_CUR_DIRECTION);
3123 }
3124 
test_mm_cvtt_roundsd_i64(__m128d __A)3125 long long test_mm_cvtt_roundsd_i64(__m128d __A) {
3126   // CHECK-LABEL: @test_mm_cvtt_roundsd_i64
3127   // CHECK: @llvm.x86.avx512.cvttsd2si64
3128   return _mm_cvtt_roundsd_i64(__A, _MM_FROUND_CUR_DIRECTION);
3129 }
3130 
test_mm_cvttsd_i64(__m128d __A)3131 long long test_mm_cvttsd_i64(__m128d __A) {
3132   // CHECK-LABEL: @test_mm_cvttsd_i64
3133   // CHECK: @llvm.x86.avx512.cvttsd2si64
3134   return _mm_cvttsd_i64(__A);
3135 }
3136 
test_mm_cvtt_roundsd_u32(__m128d __A)3137 unsigned test_mm_cvtt_roundsd_u32(__m128d __A) {
3138   // CHECK-LABEL: @test_mm_cvtt_roundsd_u32
3139   // CHECK: @llvm.x86.avx512.cvttsd2usi
3140   return _mm_cvtt_roundsd_u32(__A, _MM_FROUND_CUR_DIRECTION);
3141 }
3142 
test_mm_cvttsd_u32(__m128d __A)3143 unsigned test_mm_cvttsd_u32(__m128d __A) {
3144   // CHECK-LABEL: @test_mm_cvttsd_u32
3145   // CHECK: @llvm.x86.avx512.cvttsd2usi
3146   return _mm_cvttsd_u32(__A);
3147 }
3148 
test_mm_cvtt_roundsd_u64(__m128d __A)3149 unsigned long long test_mm_cvtt_roundsd_u64(__m128d __A) {
3150   // CHECK-LABEL: @test_mm_cvtt_roundsd_u64
3151   // CHECK: @llvm.x86.avx512.cvttsd2usi64
3152   return _mm_cvtt_roundsd_u64(__A, _MM_FROUND_CUR_DIRECTION);
3153 }
3154 
test_mm_cvttsd_u64(__m128d __A)3155 unsigned long long test_mm_cvttsd_u64(__m128d __A) {
3156   // CHECK-LABEL: @test_mm_cvttsd_u64
3157   // CHECK: @llvm.x86.avx512.cvttsd2usi64
3158   return _mm_cvttsd_u64(__A);
3159 }
3160 
test_mm_cvtt_roundss_i32(__m128 __A)3161 int test_mm_cvtt_roundss_i32(__m128 __A) {
3162   // CHECK-LABEL: @test_mm_cvtt_roundss_i32
3163   // CHECK: @llvm.x86.avx512.cvttss2si
3164   return _mm_cvtt_roundss_i32(__A, _MM_FROUND_CUR_DIRECTION);
3165 }
3166 
test_mm_cvtt_roundss_si32(__m128 __A)3167 int test_mm_cvtt_roundss_si32(__m128 __A) {
3168   // CHECK-LABEL: @test_mm_cvtt_roundss_si32
3169   // CHECK: @llvm.x86.avx512.cvttss2si
3170   return _mm_cvtt_roundss_si32(__A, _MM_FROUND_CUR_DIRECTION);
3171 }
3172 
test_mm_cvttss_i32(__m128 __A)3173 int test_mm_cvttss_i32(__m128 __A) {
3174   // CHECK-LABEL: @test_mm_cvttss_i32
3175   // CHECK: @llvm.x86.avx512.cvttss2si
3176   return _mm_cvttss_i32(__A);
3177 }
3178 
test_mm_cvtt_roundss_i64(__m128 __A)3179 float test_mm_cvtt_roundss_i64(__m128 __A) {
3180   // CHECK-LABEL: @test_mm_cvtt_roundss_i64
3181   // CHECK: @llvm.x86.avx512.cvttss2si64
3182   return _mm_cvtt_roundss_i64(__A, _MM_FROUND_CUR_DIRECTION);
3183 }
3184 
test_mm_cvtt_roundss_si64(__m128 __A)3185 long long test_mm_cvtt_roundss_si64(__m128 __A) {
3186   // CHECK-LABEL: @test_mm_cvtt_roundss_si64
3187   // CHECK: @llvm.x86.avx512.cvttss2si64
3188   return _mm_cvtt_roundss_si64(__A, _MM_FROUND_CUR_DIRECTION);
3189 }
3190 
test_mm_cvttss_i64(__m128 __A)3191 long long test_mm_cvttss_i64(__m128 __A) {
3192   // CHECK-LABEL: @test_mm_cvttss_i64
3193   // CHECK: @llvm.x86.avx512.cvttss2si64
3194   return _mm_cvttss_i64(__A);
3195 }
3196 
test_mm_cvtt_roundss_u32(__m128 __A)3197 unsigned test_mm_cvtt_roundss_u32(__m128 __A) {
3198   // CHECK-LABEL: @test_mm_cvtt_roundss_u32
3199   // CHECK: @llvm.x86.avx512.cvttss2usi
3200   return _mm_cvtt_roundss_u32(__A, _MM_FROUND_CUR_DIRECTION);
3201 }
3202 
test_mm_cvttss_u32(__m128 __A)3203 unsigned test_mm_cvttss_u32(__m128 __A) {
3204   // CHECK-LABEL: @test_mm_cvttss_u32
3205   // CHECK: @llvm.x86.avx512.cvttss2usi
3206   return _mm_cvttss_u32(__A);
3207 }
3208 
test_mm_cvtt_roundss_u64(__m128 __A)3209 unsigned long long test_mm_cvtt_roundss_u64(__m128 __A) {
3210   // CHECK-LABEL: @test_mm_cvtt_roundss_u64
3211   // CHECK: @llvm.x86.avx512.cvttss2usi64
3212   return _mm_cvtt_roundss_u64(__A, _MM_FROUND_CUR_DIRECTION);
3213 }
3214 
test_mm_cvttss_u64(__m128 __A)3215 unsigned long long test_mm_cvttss_u64(__m128 __A) {
3216   // CHECK-LABEL: @test_mm_cvttss_u64
3217   // CHECK: @llvm.x86.avx512.cvttss2usi64
3218   return _mm_cvttss_u64(__A);
3219 }
3220 
test_mm512_cvtt_roundps_epu32(__m512 __A)3221 __m512i test_mm512_cvtt_roundps_epu32(__m512 __A)
3222 {
3223     // CHECK-LABEL: @test_mm512_cvtt_roundps_epu32
3224     // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
3225     return _mm512_cvtt_roundps_epu32(__A, _MM_FROUND_CUR_DIRECTION);
3226 }
3227 
test_mm512_mask_cvtt_roundps_epu32(__m512i __W,__mmask16 __U,__m512 __A)3228 __m512i test_mm512_mask_cvtt_roundps_epu32(__m512i __W, __mmask16 __U, __m512 __A)
3229 {
3230     // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epu32
3231     // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
3232     return _mm512_mask_cvtt_roundps_epu32(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
3233 }
3234 
test_mm512_maskz_cvtt_roundps_epu32(__mmask16 __U,__m512 __A)3235 __m512i test_mm512_maskz_cvtt_roundps_epu32( __mmask16 __U, __m512 __A)
3236 {
3237     // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epu32
3238     // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
3239 
3240     return _mm512_maskz_cvtt_roundps_epu32(__U, __A, _MM_FROUND_CUR_DIRECTION);
3241 }
3242 
test_mm512_cvt_roundps_ph(__m512 __A)3243 __m256i test_mm512_cvt_roundps_ph(__m512  __A)
3244 {
3245     // CHECK-LABEL: @test_mm512_cvt_roundps_ph
3246     // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
3247     return _mm512_cvt_roundps_ph(__A, _MM_FROUND_CUR_DIRECTION);
3248 }
3249 
test_mm512_mask_cvt_roundps_ph(__m256i __W,__mmask16 __U,__m512 __A)3250 __m256i test_mm512_mask_cvt_roundps_ph(__m256i __W , __mmask16 __U, __m512  __A)
3251 {
3252     // CHECK-LABEL: @test_mm512_mask_cvt_roundps_ph
3253     // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
3254     return _mm512_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
3255 }
3256 
test_mm512_maskz_cvt_roundps_ph(__mmask16 __U,__m512 __A)3257 __m256i test_mm512_maskz_cvt_roundps_ph(__mmask16 __U, __m512  __A)
3258 {
3259     // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_ph
3260     // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
3261     return _mm512_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_CUR_DIRECTION);
3262 }
3263 
test_mm512_cvt_roundph_ps(__m256i __A)3264 __m512 test_mm512_cvt_roundph_ps(__m256i __A)
3265 {
3266     // CHECK-LABEL: @test_mm512_cvt_roundph_ps
3267     // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
3268     return _mm512_cvt_roundph_ps(__A, _MM_FROUND_CUR_DIRECTION);
3269 }
3270 
test_mm512_mask_cvt_roundph_ps(__m512 __W,__mmask16 __U,__m256i __A)3271 __m512 test_mm512_mask_cvt_roundph_ps(__m512 __W, __mmask16 __U, __m256i __A)
3272 {
3273     // CHECK-LABEL: @test_mm512_mask_cvt_roundph_ps
3274     // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
3275     return _mm512_mask_cvt_roundph_ps(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
3276 }
3277 
test_mm512_maskz_cvt_roundph_ps(__mmask16 __U,__m256i __A)3278 __m512 test_mm512_maskz_cvt_roundph_ps(__mmask16 __U, __m256i __A)
3279 {
3280     // CHECK-LABEL: @test_mm512_maskz_cvt_roundph_ps
3281     // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
3282     return _mm512_maskz_cvt_roundph_ps(__U, __A, _MM_FROUND_CUR_DIRECTION);
3283 }
3284 
test_mm512_mask_cvt_roundepi32_ps(__m512 __W,__mmask16 __U,__m512i __A)3285 __m512 test_mm512_mask_cvt_roundepi32_ps(__m512 __W, __mmask16 __U, __m512i __A)
3286 {
3287   // CHECK-LABEL: @test_mm512_mask_cvt_roundepi32_ps
3288   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
3289   return _mm512_mask_cvt_roundepi32_ps(__W,__U,__A,4);
3290 }
3291 
test_mm512_maskz_cvt_roundepi32_ps(__mmask16 __U,__m512i __A)3292 __m512 test_mm512_maskz_cvt_roundepi32_ps(__mmask16 __U, __m512i __A)
3293 {
3294   // CHECK-LABEL: @test_mm512_maskz_cvt_roundepi32_ps
3295   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
3296   return _mm512_maskz_cvt_roundepi32_ps(__U,__A,4);
3297 }
3298 
test_mm512_mask_cvt_roundepu32_ps(__m512 __W,__mmask16 __U,__m512i __A)3299 __m512 test_mm512_mask_cvt_roundepu32_ps(__m512 __W, __mmask16 __U,__m512i __A)
3300 {
3301   // CHECK-LABEL: @test_mm512_mask_cvt_roundepu32_ps
3302   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
3303   return _mm512_mask_cvt_roundepu32_ps(__W,__U,__A,4);
3304 }
3305 
test_mm512_maskz_cvt_roundepu32_ps(__mmask16 __U,__m512i __A)3306 __m512 test_mm512_maskz_cvt_roundepu32_ps(__mmask16 __U,__m512i __A)
3307 {
3308   // CHECK-LABEL: @test_mm512_maskz_cvt_roundepu32_ps
3309   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
3310   return _mm512_maskz_cvt_roundepu32_ps(__U,__A,4);
3311 }
3312 
test_mm512_mask_cvt_roundpd_ps(__m256 W,__mmask8 U,__m512d A)3313 __m256 test_mm512_mask_cvt_roundpd_ps(__m256 W, __mmask8 U,__m512d A)
3314 {
3315   // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_ps
3316   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
3317   return _mm512_mask_cvt_roundpd_ps(W,U,A,4);
3318 }
3319 
test_mm512_maskz_cvt_roundpd_ps(__mmask8 U,__m512d A)3320 __m256 test_mm512_maskz_cvt_roundpd_ps(__mmask8 U, __m512d A)
3321 {
3322   // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_ps
3323   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
3324   return _mm512_maskz_cvt_roundpd_ps(U,A,4);
3325 }
3326 
test_mm512_cvtt_roundpd_epi32(__m512d A)3327 __m256i test_mm512_cvtt_roundpd_epi32(__m512d A)
3328 {
3329   // CHECK-LABEL: @test_mm512_cvtt_roundpd_epi32
3330   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
3331   return _mm512_cvtt_roundpd_epi32(A,4);
3332 }
3333 
test_mm512_mask_cvtt_roundpd_epi32(__m256i W,__mmask8 U,__m512d A)3334 __m256i test_mm512_mask_cvtt_roundpd_epi32(__m256i W, __mmask8 U, __m512d A)
3335 {
3336   // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epi32
3337   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
3338   return _mm512_mask_cvtt_roundpd_epi32(W,U,A,4);
3339 }
3340 
test_mm512_maskz_cvtt_roundpd_epi32(__mmask8 U,__m512d A)3341 __m256i test_mm512_maskz_cvtt_roundpd_epi32(__mmask8 U, __m512d A)
3342 {
3343   // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epi32
3344   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
3345   return _mm512_maskz_cvtt_roundpd_epi32(U,A,4);
3346 }
3347 
test_mm512_mask_cvtt_roundps_epi32(__m512i W,__mmask16 U,__m512 A)3348 __m512i test_mm512_mask_cvtt_roundps_epi32(__m512i W,__mmask16 U, __m512 A)
3349 {
3350   // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epi32
3351   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
3352   return _mm512_mask_cvtt_roundps_epi32(W,U,A,4);
3353 }
3354 
test_mm512_maskz_cvtt_roundps_epi32(__mmask16 U,__m512 A)3355 __m512i test_mm512_maskz_cvtt_roundps_epi32(__mmask16 U, __m512 A)
3356 {
3357   // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epi32
3358   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
3359   return _mm512_maskz_cvtt_roundps_epi32(U,A,4);
3360 }
3361 
test_mm512_mask_cvt_roundps_epi32(__m512i __W,__mmask16 __U,__m512 __A)3362 __m512i test_mm512_mask_cvt_roundps_epi32(__m512i __W,__mmask16 __U,__m512 __A)
3363 {
3364   // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epi32
3365   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
3366   return _mm512_mask_cvt_roundps_epi32(__W,__U,__A,4);
3367 }
3368 
test_mm512_maskz_cvt_roundps_epi32(__mmask16 __U,__m512 __A)3369 __m512i test_mm512_maskz_cvt_roundps_epi32(__mmask16 __U, __m512 __A)
3370 {
3371   // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epi32
3372   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
3373   return _mm512_maskz_cvt_roundps_epi32(__U,__A,4);
3374 }
3375 
test_mm512_mask_cvt_roundpd_epi32(__m256i W,__mmask8 U,__m512d A)3376 __m256i test_mm512_mask_cvt_roundpd_epi32(__m256i W,__mmask8 U,__m512d A)
3377 {
3378   // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epi32
3379   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
3380   return _mm512_mask_cvt_roundpd_epi32(W,U,A,4);
3381 }
3382 
test_mm512_maskz_cvt_roundpd_epi32(__mmask8 U,__m512d A)3383 __m256i test_mm512_maskz_cvt_roundpd_epi32(__mmask8 U, __m512d A)
3384 {
3385   // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epi32
3386   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
3387   return _mm512_maskz_cvt_roundpd_epi32(U,A,4);
3388 }
3389 
test_mm512_mask_cvt_roundps_epu32(__m512i __W,__mmask16 __U,__m512 __A)3390 __m512i test_mm512_mask_cvt_roundps_epu32(__m512i __W,__mmask16 __U,__m512 __A)
3391 {
3392   // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epu32
3393   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
3394   return _mm512_mask_cvt_roundps_epu32(__W,__U,__A,4);
3395 }
3396 
test_mm512_maskz_cvt_roundps_epu32(__mmask16 __U,__m512 __A)3397 __m512i test_mm512_maskz_cvt_roundps_epu32(__mmask16 __U,__m512 __A)
3398 {
3399   // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epu32
3400   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
3401   return _mm512_maskz_cvt_roundps_epu32(__U,__A, 4);
3402 }
3403 
test_mm512_mask_cvt_roundpd_epu32(__m256i W,__mmask8 U,__m512d A)3404 __m256i test_mm512_mask_cvt_roundpd_epu32(__m256i W, __mmask8 U, __m512d A)
3405 {
3406   // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epu32
3407   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
3408   return _mm512_mask_cvt_roundpd_epu32(W,U,A,4);
3409 }
3410 
test_mm512_maskz_cvt_roundpd_epu32(__mmask8 U,__m512d A)3411 __m256i test_mm512_maskz_cvt_roundpd_epu32(__mmask8 U, __m512d A)
3412 {
3413   // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epu32
3414   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
3415   return _mm512_maskz_cvt_roundpd_epu32(U, A, 4);
3416 }
3417 
test_mm512_mask2_permutex2var_ps(__m512 __A,__m512i __I,__mmask16 __U,__m512 __B)3418 __m512 test_mm512_mask2_permutex2var_ps(__m512 __A, __m512i __I, __mmask16 __U, __m512 __B) {
3419   // CHECK-LABEL: @test_mm512_mask2_permutex2var_ps
3420   // CHECK: @llvm.x86.avx512.mask.vpermi2var.ps.512
3421   return _mm512_mask2_permutex2var_ps(__A, __I, __U, __B);
3422 }
3423 
test_mm512_mask2_permutex2var_epi64(__m512i __A,__m512i __I,__mmask8 __U,__m512i __B)3424 __m512i test_mm512_mask2_permutex2var_epi64(__m512i __A, __m512i __I, __mmask8 __U, __m512i __B) {
3425   // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi64
3426   // CHECK: @llvm.x86.avx512.mask.vpermi2var.q.512
3427   return _mm512_mask2_permutex2var_epi64(__A, __I, __U, __B);
3428 }
3429 
test_mm512_permute_pd(__m512d __X)3430 __m512d test_mm512_permute_pd(__m512d __X) {
3431   // CHECK-LABEL: @test_mm512_permute_pd
3432   // 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   return _mm512_permute_pd(__X, 2);
3434 }
3435 
test_mm512_mask_permute_pd(__m512d __W,__mmask8 __U,__m512d __X)3436 __m512d test_mm512_mask_permute_pd(__m512d __W, __mmask8 __U, __m512d __X) {
3437   // CHECK-LABEL: @test_mm512_mask_permute_pd
3438   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3440   return _mm512_mask_permute_pd(__W, __U, __X, 2);
3441 }
3442 
test_mm512_maskz_permute_pd(__mmask8 __U,__m512d __X)3443 __m512d test_mm512_maskz_permute_pd(__mmask8 __U, __m512d __X) {
3444   // CHECK-LABEL: @test_mm512_maskz_permute_pd
3445   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3447   return _mm512_maskz_permute_pd(__U, __X, 2);
3448 }
3449 
test_mm512_permute_ps(__m512 __X)3450 __m512 test_mm512_permute_ps(__m512 __X) {
3451   // CHECK-LABEL: @test_mm512_permute_ps
3452   // 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   return _mm512_permute_ps(__X, 2);
3454 }
3455 
test_mm512_mask_permute_ps(__m512 __W,__mmask16 __U,__m512 __X)3456 __m512 test_mm512_mask_permute_ps(__m512 __W, __mmask16 __U, __m512 __X) {
3457   // CHECK-LABEL: @test_mm512_mask_permute_ps
3458   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3460   return _mm512_mask_permute_ps(__W, __U, __X, 2);
3461 }
3462 
test_mm512_maskz_permute_ps(__mmask16 __U,__m512 __X)3463 __m512 test_mm512_maskz_permute_ps(__mmask16 __U, __m512 __X) {
3464   // CHECK-LABEL: @test_mm512_maskz_permute_ps
3465   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3467   return _mm512_maskz_permute_ps(__U, __X, 2);
3468 }
3469 
test_mm512_permutevar_pd(__m512d __A,__m512i __C)3470 __m512d test_mm512_permutevar_pd(__m512d __A, __m512i __C) {
3471   // CHECK-LABEL: @test_mm512_permutevar_pd
3472   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.512
3473   return _mm512_permutevar_pd(__A, __C);
3474 }
3475 
test_mm512_mask_permutevar_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512i __C)3476 __m512d test_mm512_mask_permutevar_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512i __C) {
3477   // CHECK-LABEL: @test_mm512_mask_permutevar_pd
3478   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.512
3479   return _mm512_mask_permutevar_pd(__W, __U, __A, __C);
3480 }
3481 
test_mm512_maskz_permutevar_pd(__mmask8 __U,__m512d __A,__m512i __C)3482 __m512d test_mm512_maskz_permutevar_pd(__mmask8 __U, __m512d __A, __m512i __C) {
3483   // CHECK-LABEL: @test_mm512_maskz_permutevar_pd
3484   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.512
3485   return _mm512_maskz_permutevar_pd(__U, __A, __C);
3486 }
3487 
test_mm512_permutevar_ps(__m512 __A,__m512i __C)3488 __m512 test_mm512_permutevar_ps(__m512 __A, __m512i __C) {
3489   // CHECK-LABEL: @test_mm512_permutevar_ps
3490   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.512
3491   return _mm512_permutevar_ps(__A, __C);
3492 }
3493 
test_mm512_mask_permutevar_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512i __C)3494 __m512 test_mm512_mask_permutevar_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512i __C) {
3495   // CHECK-LABEL: @test_mm512_mask_permutevar_ps
3496   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.512
3497   return _mm512_mask_permutevar_ps(__W, __U, __A, __C);
3498 }
3499 
test_mm512_maskz_permutevar_ps(__mmask16 __U,__m512 __A,__m512i __C)3500 __m512 test_mm512_maskz_permutevar_ps(__mmask16 __U, __m512 __A, __m512i __C) {
3501   // CHECK-LABEL: @test_mm512_maskz_permutevar_ps
3502   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.512
3503   return _mm512_maskz_permutevar_ps(__U, __A, __C);
3504 }
3505 
test_mm512_maskz_permutex2var_epi32(__mmask16 __U,__m512i __A,__m512i __I,__m512i __B)3506 __m512i test_mm512_maskz_permutex2var_epi32(__mmask16 __U, __m512i __A, __m512i __I, __m512i __B) {
3507   // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi32
3508   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.d.512
3509   return _mm512_maskz_permutex2var_epi32(__U, __A, __I, __B);
3510 }
3511 
test_mm512_mask_permutex2var_epi32(__m512i __A,__mmask16 __U,__m512i __I,__m512i __B)3512 __m512i test_mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U, __m512i __I, __m512i __B)
3513 {
3514   // CHECK-LABEL: @test_mm512_mask_permutex2var_epi32
3515   // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.512
3516   return _mm512_mask_permutex2var_epi32 (__A,__U,__I,__B);
3517 }
3518 
test_mm512_permutex2var_pd(__m512d __A,__m512i __I,__m512d __B)3519 __m512d test_mm512_permutex2var_pd (__m512d __A, __m512i __I, __m512d __B)
3520 {
3521   // CHECK-LABEL: @test_mm512_permutex2var_pd
3522   // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.512
3523   return _mm512_permutex2var_pd (__A, __I,__B);
3524 }
3525 
test_mm512_mask_permutex2var_pd(__m512d __A,__mmask8 __U,__m512i __I,__m512d __B)3526 __m512d test_mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I, __m512d __B)
3527 {
3528   // CHECK-LABEL: @test_mm512_mask_permutex2var_pd
3529   // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.512
3530   return _mm512_mask_permutex2var_pd (__A,__U,__I,__B);
3531 }
3532 
test_mm512_maskz_permutex2var_pd(__mmask8 __U,__m512d __A,__m512i __I,__m512d __B)3533 __m512d test_mm512_maskz_permutex2var_pd(__mmask8 __U, __m512d __A, __m512i __I, __m512d __B) {
3534   // CHECK-LABEL: @test_mm512_maskz_permutex2var_pd
3535   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.pd.512
3536   return _mm512_maskz_permutex2var_pd(__U, __A, __I, __B);
3537 }
3538 
test_mm512_permutex2var_ps(__m512 __A,__m512i __I,__m512 __B)3539 __m512 test_mm512_permutex2var_ps (__m512 __A, __m512i __I, __m512 __B)
3540 {
3541   // CHECK-LABEL: @test_mm512_permutex2var_ps
3542   // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.512
3543   return _mm512_permutex2var_ps (__A, __I, __B);
3544 }
3545 
test_mm512_mask_permutex2var_ps(__m512 __A,__mmask16 __U,__m512i __I,__m512 __B)3546 __m512 test_mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B)
3547 {
3548   // CHECK-LABEL: @test_mm512_mask_permutex2var_ps
3549   // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.512
3550   return _mm512_mask_permutex2var_ps (__A,__U,__I,__B);
3551 }
3552 
test_mm512_maskz_permutex2var_ps(__mmask16 __U,__m512 __A,__m512i __I,__m512 __B)3553 __m512 test_mm512_maskz_permutex2var_ps(__mmask16 __U, __m512 __A, __m512i __I, __m512 __B) {
3554   // CHECK-LABEL: @test_mm512_maskz_permutex2var_ps
3555   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.ps.512
3556   return _mm512_maskz_permutex2var_ps(__U, __A, __I, __B);
3557 }
3558 
test_mm512_mask_permutex2var_epi64(__m512i __A,__mmask8 __U,__m512i __I,__m512i __B)3559 __m512i test_mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I, __m512i __B){
3560   // CHECK-LABEL: @test_mm512_mask_permutex2var_epi64
3561   // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.512
3562   return _mm512_mask_permutex2var_epi64(__A, __U, __I, __B);
3563 }
3564 
test_mm512_maskz_permutex2var_epi64(__mmask8 __U,__m512i __A,__m512i __I,__m512i __B)3565 __m512i test_mm512_maskz_permutex2var_epi64(__mmask8 __U, __m512i __A, __m512i __I, __m512i __B) {
3566   // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi64
3567   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.q.512
3568   return _mm512_maskz_permutex2var_epi64(__U, __A, __I, __B);
3569 }
test_mm512_testn_epi32_mask(__m512i __A,__m512i __B)3570 __mmask16 test_mm512_testn_epi32_mask(__m512i __A, __m512i __B) {
3571   // CHECK-LABEL: @test_mm512_testn_epi32_mask
3572   // CHECK: @llvm.x86.avx512.ptestnm.d.512
3573   return _mm512_testn_epi32_mask(__A, __B);
3574 }
3575 
test_mm512_mask_testn_epi32_mask(__mmask16 __U,__m512i __A,__m512i __B)3576 __mmask16 test_mm512_mask_testn_epi32_mask(__mmask16 __U, __m512i __A, __m512i __B) {
3577   // CHECK-LABEL: @test_mm512_mask_testn_epi32_mask
3578   // CHECK: @llvm.x86.avx512.ptestnm.d.512
3579   return _mm512_mask_testn_epi32_mask(__U, __A, __B);
3580 }
3581 
test_mm512_testn_epi64_mask(__m512i __A,__m512i __B)3582 __mmask8 test_mm512_testn_epi64_mask(__m512i __A, __m512i __B) {
3583   // CHECK-LABEL: @test_mm512_testn_epi64_mask
3584   // CHECK: @llvm.x86.avx512.ptestnm.q.512
3585   return _mm512_testn_epi64_mask(__A, __B);
3586 }
3587 
test_mm512_mask_testn_epi64_mask(__mmask8 __U,__m512i __A,__m512i __B)3588 __mmask8 test_mm512_mask_testn_epi64_mask(__mmask8 __U, __m512i __A, __m512i __B) {
3589   // CHECK-LABEL: @test_mm512_mask_testn_epi64_mask
3590   // CHECK: @llvm.x86.avx512.ptestnm.q.512
3591   return _mm512_mask_testn_epi64_mask(__U, __A, __B);
3592 }
3593 
test_mm512_mask_test_epi32_mask(__mmask16 __U,__m512i __A,__m512i __B)3594 __mmask16 test_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
3595 {
3596   // CHECK-LABEL: @test_mm512_mask_test_epi32_mask
3597   // CHECK: @llvm.x86.avx512.ptestm.d.512
3598   return _mm512_mask_test_epi32_mask (__U,__A,__B);
3599 }
3600 
test_mm512_mask_test_epi64_mask(__mmask8 __U,__m512i __A,__m512i __B)3601 __mmask8 test_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
3602 {
3603   // CHECK-LABEL: @test_mm512_mask_test_epi64_mask
3604   // CHECK: @llvm.x86.avx512.ptestm.q.512
3605   return _mm512_mask_test_epi64_mask (__U,__A,__B);
3606 }
3607 
test_mm512_maskz_unpackhi_epi32(__mmask16 __U,__m512i __A,__m512i __B)3608 __m512i test_mm512_maskz_unpackhi_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
3609   // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi32
3610   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3612   return _mm512_maskz_unpackhi_epi32(__U, __A, __B);
3613 }
3614 
test_mm512_unpackhi_epi64(__m512i __A,__m512i __B)3615 __m512i test_mm512_unpackhi_epi64(__m512i __A, __m512i __B) {
3616   // CHECK-LABEL: @test_mm512_unpackhi_epi64
3617   // 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   return _mm512_unpackhi_epi64(__A, __B);
3619 }
3620 
test_mm512_mask_unpackhi_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)3621 __m512i test_mm512_mask_unpackhi_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
3622   // CHECK-LABEL: @test_mm512_mask_unpackhi_epi64
3623   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3625   return _mm512_mask_unpackhi_epi64(__W, __U, __A, __B);
3626 }
3627 
test_mm512_maskz_unpackhi_epi64(__mmask8 __U,__m512i __A,__m512i __B)3628 __m512i test_mm512_maskz_unpackhi_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
3629   // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi64
3630   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3632   return _mm512_maskz_unpackhi_epi64(__U, __A, __B);
3633 }
3634 
test_mm512_unpacklo_epi32(__m512i __A,__m512i __B)3635 __m512i test_mm512_unpacklo_epi32(__m512i __A, __m512i __B) {
3636   // CHECK-LABEL: @test_mm512_unpacklo_epi32
3637   // 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   return _mm512_unpacklo_epi32(__A, __B);
3639 }
3640 
test_mm512_mask_unpacklo_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)3641 __m512i test_mm512_mask_unpacklo_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
3642   // CHECK-LABEL: @test_mm512_mask_unpacklo_epi32
3643   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3645   return _mm512_mask_unpacklo_epi32(__W, __U, __A, __B);
3646 }
3647 
test_mm512_maskz_unpacklo_epi32(__mmask16 __U,__m512i __A,__m512i __B)3648 __m512i test_mm512_maskz_unpacklo_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
3649   // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi32
3650   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3652   return _mm512_maskz_unpacklo_epi32(__U, __A, __B);
3653 }
3654 
test_mm512_unpacklo_epi64(__m512i __A,__m512i __B)3655 __m512i test_mm512_unpacklo_epi64(__m512i __A, __m512i __B) {
3656   // CHECK-LABEL: @test_mm512_unpacklo_epi64
3657   // 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   return _mm512_unpacklo_epi64(__A, __B);
3659 }
3660 
test_mm512_mask_unpacklo_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)3661 __m512i test_mm512_mask_unpacklo_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
3662   // CHECK-LABEL: @test_mm512_mask_unpacklo_epi64
3663   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3665   return _mm512_mask_unpacklo_epi64(__W, __U, __A, __B);
3666 }
3667 
test_mm512_maskz_unpacklo_epi64(__mmask8 __U,__m512i __A,__m512i __B)3668 __m512i test_mm512_maskz_unpacklo_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
3669   // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi64
3670   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3672   return _mm512_maskz_unpacklo_epi64(__U, __A, __B);
3673 }
3674 
test_mm_roundscale_round_sd(__m128d __A,__m128d __B)3675 __m128d test_mm_roundscale_round_sd(__m128d __A, __m128d __B) {
3676   // CHECK-LABEL: @test_mm_roundscale_round_sd
3677   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3678   return _mm_roundscale_round_sd(__A, __B, 3, _MM_FROUND_CUR_DIRECTION);
3679 }
3680 
test_mm_roundscale_sd(__m128d __A,__m128d __B)3681 __m128d test_mm_roundscale_sd(__m128d __A, __m128d __B) {
3682   // CHECK-LABEL: @test_mm_roundscale_sd
3683   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3684   return _mm_roundscale_sd(__A, __B, 3);
3685 }
3686 
test_mm_mask_roundscale_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3687 __m128d test_mm_mask_roundscale_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3688   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3689     return _mm_mask_roundscale_sd(__W,__U,__A,__B,3);
3690 }
3691 
test_mm_mask_roundscale_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3692 __m128d test_mm_mask_roundscale_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3693   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3694     return _mm_mask_roundscale_round_sd(__W,__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION);
3695 }
3696 
test_mm_maskz_roundscale_sd(__mmask8 __U,__m128d __A,__m128d __B)3697 __m128d test_mm_maskz_roundscale_sd(__mmask8 __U, __m128d __A, __m128d __B){
3698   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3699     return _mm_maskz_roundscale_sd(__U,__A,__B,3);
3700 }
3701 
test_mm_maskz_roundscale_round_sd(__mmask8 __U,__m128d __A,__m128d __B)3702 __m128d test_mm_maskz_roundscale_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
3703   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3704     return _mm_maskz_roundscale_round_sd(__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION );
3705 }
3706 
test_mm_roundscale_round_ss(__m128 __A,__m128 __B)3707 __m128 test_mm_roundscale_round_ss(__m128 __A, __m128 __B) {
3708   // CHECK-LABEL: @test_mm_roundscale_round_ss
3709   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
3710   return _mm_roundscale_round_ss(__A, __B, 3, _MM_FROUND_CUR_DIRECTION);
3711 }
3712 
test_mm_roundscale_ss(__m128 __A,__m128 __B)3713 __m128 test_mm_roundscale_ss(__m128 __A, __m128 __B) {
3714   // CHECK-LABEL: @test_mm_roundscale_ss
3715   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
3716   return _mm_roundscale_ss(__A, __B, 3);
3717 }
3718 
test_mm_mask_roundscale_ss(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3719 __m128 test_mm_mask_roundscale_ss(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3720   // CHECK-LABEL: @test_mm_mask_roundscale_ss
3721   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
3722     return _mm_mask_roundscale_ss(__W,__U,__A,__B,3);
3723 }
3724 
test_mm_maskz_roundscale_round_ss(__mmask8 __U,__m128d __A,__m128d __B)3725 __m128 test_mm_maskz_roundscale_round_ss( __mmask8 __U, __m128d __A, __m128d __B){
3726   // CHECK-LABEL: @test_mm_maskz_roundscale_round_ss
3727   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
3728     return _mm_maskz_roundscale_round_ss(__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION);
3729 }
3730 
test_mm_maskz_roundscale_ss(__mmask8 __U,__m128d __A,__m128d __B)3731 __m128 test_mm_maskz_roundscale_ss(__mmask8 __U, __m128d __A, __m128d __B){
3732   // CHECK-LABEL: @test_mm_maskz_roundscale_ss
3733   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
3734     return _mm_maskz_roundscale_ss(__U,__A,__B,3);
3735 }
3736 
test_mm512_scalef_round_pd(__m512d __A,__m512d __B)3737 __m512d test_mm512_scalef_round_pd(__m512d __A, __m512d __B) {
3738   // CHECK-LABEL: @test_mm512_scalef_round_pd
3739   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3740   return _mm512_scalef_round_pd(__A, __B, _MM_FROUND_CUR_DIRECTION);
3741 }
3742 
test_mm512_mask_scalef_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)3743 __m512d test_mm512_mask_scalef_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
3744   // CHECK-LABEL: @test_mm512_mask_scalef_round_pd
3745   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3746   return _mm512_mask_scalef_round_pd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3747 }
3748 
test_mm512_maskz_scalef_round_pd(__mmask8 __U,__m512d __A,__m512d __B)3749 __m512d test_mm512_maskz_scalef_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
3750   // CHECK-LABEL: @test_mm512_maskz_scalef_round_pd
3751   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3752   return _mm512_maskz_scalef_round_pd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3753 }
3754 
test_mm512_scalef_pd(__m512d __A,__m512d __B)3755 __m512d test_mm512_scalef_pd(__m512d __A, __m512d __B) {
3756   // CHECK-LABEL: @test_mm512_scalef_pd
3757   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3758   return _mm512_scalef_pd(__A, __B);
3759 }
3760 
test_mm512_mask_scalef_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)3761 __m512d test_mm512_mask_scalef_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
3762   // CHECK-LABEL: @test_mm512_mask_scalef_pd
3763   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3764   return _mm512_mask_scalef_pd(__W, __U, __A, __B);
3765 }
3766 
test_mm512_maskz_scalef_pd(__mmask8 __U,__m512d __A,__m512d __B)3767 __m512d test_mm512_maskz_scalef_pd(__mmask8 __U, __m512d __A, __m512d __B) {
3768   // CHECK-LABEL: @test_mm512_maskz_scalef_pd
3769   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
3770   return _mm512_maskz_scalef_pd(__U, __A, __B);
3771 }
3772 
test_mm512_scalef_round_ps(__m512 __A,__m512 __B)3773 __m512 test_mm512_scalef_round_ps(__m512 __A, __m512 __B) {
3774   // CHECK-LABEL: @test_mm512_scalef_round_ps
3775   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3776   return _mm512_scalef_round_ps(__A, __B, _MM_FROUND_CUR_DIRECTION);
3777 }
3778 
test_mm512_mask_scalef_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)3779 __m512 test_mm512_mask_scalef_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
3780   // CHECK-LABEL: @test_mm512_mask_scalef_round_ps
3781   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3782   return _mm512_mask_scalef_round_ps(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3783 }
3784 
test_mm512_maskz_scalef_round_ps(__mmask16 __U,__m512 __A,__m512 __B)3785 __m512 test_mm512_maskz_scalef_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
3786   // CHECK-LABEL: @test_mm512_maskz_scalef_round_ps
3787   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3788   return _mm512_maskz_scalef_round_ps(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3789 }
3790 
test_mm512_scalef_ps(__m512 __A,__m512 __B)3791 __m512 test_mm512_scalef_ps(__m512 __A, __m512 __B) {
3792   // CHECK-LABEL: @test_mm512_scalef_ps
3793   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3794   return _mm512_scalef_ps(__A, __B);
3795 }
3796 
test_mm512_mask_scalef_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)3797 __m512 test_mm512_mask_scalef_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
3798   // CHECK-LABEL: @test_mm512_mask_scalef_ps
3799   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3800   return _mm512_mask_scalef_ps(__W, __U, __A, __B);
3801 }
3802 
test_mm512_maskz_scalef_ps(__mmask16 __U,__m512 __A,__m512 __B)3803 __m512 test_mm512_maskz_scalef_ps(__mmask16 __U, __m512 __A, __m512 __B) {
3804   // CHECK-LABEL: @test_mm512_maskz_scalef_ps
3805   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
3806   return _mm512_maskz_scalef_ps(__U, __A, __B);
3807 }
3808 
test_mm_scalef_round_sd(__m128d __A,__m128d __B)3809 __m128d test_mm_scalef_round_sd(__m128d __A, __m128d __B) {
3810   // CHECK-LABEL: @test_mm_scalef_round_sd
3811   // CHECK: @llvm.x86.avx512.mask.scalef
3812   return _mm_scalef_round_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
3813 }
3814 
test_mm_scalef_sd(__m128d __A,__m128d __B)3815 __m128d test_mm_scalef_sd(__m128d __A, __m128d __B) {
3816   // CHECK-LABEL: @test_mm_scalef_sd
3817   // CHECK: @llvm.x86.avx512.mask.scalef
3818   return _mm_scalef_sd(__A, __B);
3819 }
3820 
test_mm_mask_scalef_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3821 __m128d test_mm_mask_scalef_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3822   // CHECK-LABEL: @test_mm_mask_scalef_sd
3823   // CHECK: @llvm.x86.avx512.mask.scalef.sd
3824   return _mm_mask_scalef_sd(__W, __U, __A, __B);
3825 }
3826 
test_mm_mask_scalef_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3827 __m128d test_mm_mask_scalef_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3828   // CHECK-LABEL: @test_mm_mask_scalef_round_sd
3829   // CHECK: @llvm.x86.avx512.mask.scalef.sd
3830     return _mm_mask_scalef_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3831 }
3832 
test_mm_maskz_scalef_sd(__mmask8 __U,__m128d __A,__m128d __B)3833 __m128d test_mm_maskz_scalef_sd(__mmask8 __U, __m128d __A, __m128d __B){
3834   // CHECK-LABEL: @test_mm_maskz_scalef_sd
3835   // CHECK: @llvm.x86.avx512.mask.scalef.sd
3836     return _mm_maskz_scalef_sd(__U, __A, __B);
3837 }
3838 
test_mm_maskz_scalef_round_sd(__mmask8 __U,__m128d __A,__m128d __B)3839 __m128d test_mm_maskz_scalef_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
3840   // CHECK-LABEL: @test_mm_maskz_scalef_round_sd
3841   // CHECK: @llvm.x86.avx512.mask.scalef.sd
3842     return _mm_maskz_scalef_round_sd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3843 }
3844 
test_mm_scalef_round_ss(__m128 __A,__m128 __B)3845 __m128 test_mm_scalef_round_ss(__m128 __A, __m128 __B) {
3846   // CHECK-LABEL: @test_mm_scalef_round_ss
3847   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3848   return _mm_scalef_round_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
3849 }
3850 
test_mm_scalef_ss(__m128 __A,__m128 __B)3851 __m128 test_mm_scalef_ss(__m128 __A, __m128 __B) {
3852   // CHECK-LABEL: @test_mm_scalef_ss
3853   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3854   return _mm_scalef_ss(__A, __B);
3855 }
3856 
test_mm_mask_scalef_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)3857 __m128 test_mm_mask_scalef_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
3858   // CHECK-LABEL: @test_mm_mask_scalef_ss
3859   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3860     return _mm_mask_scalef_ss(__W, __U, __A, __B);
3861 }
3862 
test_mm_mask_scalef_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)3863 __m128 test_mm_mask_scalef_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
3864   // CHECK-LABEL: @test_mm_mask_scalef_round_ss
3865   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3866     return _mm_mask_scalef_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3867 }
3868 
test_mm_maskz_scalef_ss(__mmask8 __U,__m128 __A,__m128 __B)3869 __m128 test_mm_maskz_scalef_ss(__mmask8 __U, __m128 __A, __m128 __B){
3870   // CHECK-LABEL: @test_mm_maskz_scalef_ss
3871   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3872     return _mm_maskz_scalef_ss(__U, __A, __B);
3873 }
3874 
test_mm_maskz_scalef_round_ss(__mmask8 __U,__m128 __A,__m128 __B)3875 __m128 test_mm_maskz_scalef_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
3876   // CHECK-LABEL: @test_mm_maskz_scalef_round_ss
3877   // CHECK: @llvm.x86.avx512.mask.scalef.ss
3878     return _mm_maskz_scalef_round_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
3879 }
3880 
test_mm512_srai_epi32(__m512i __A)3881 __m512i test_mm512_srai_epi32(__m512i __A) {
3882   // CHECK-LABEL: @test_mm512_srai_epi32
3883   // CHECK: @llvm.x86.avx512.mask.psra.di.512
3884   return _mm512_srai_epi32(__A, 5);
3885 }
3886 
test_mm512_mask_srai_epi32(__m512i __W,__mmask16 __U,__m512i __A)3887 __m512i test_mm512_mask_srai_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
3888   // CHECK-LABEL: @test_mm512_mask_srai_epi32
3889   // CHECK: @llvm.x86.avx512.mask.psra.di.512
3890   return _mm512_mask_srai_epi32(__W, __U, __A, 5);
3891 }
3892 
test_mm512_maskz_srai_epi32(__mmask16 __U,__m512i __A)3893 __m512i test_mm512_maskz_srai_epi32(__mmask16 __U, __m512i __A) {
3894   // CHECK-LABEL: @test_mm512_maskz_srai_epi32
3895   // CHECK: @llvm.x86.avx512.mask.psra.di.512
3896   return _mm512_maskz_srai_epi32(__U, __A, 5);
3897 }
3898 
test_mm512_srai_epi64(__m512i __A)3899 __m512i test_mm512_srai_epi64(__m512i __A) {
3900   // CHECK-LABEL: @test_mm512_srai_epi64
3901   // CHECK: @llvm.x86.avx512.mask.psra.qi.512
3902   return _mm512_srai_epi64(__A, 5);
3903 }
3904 
test_mm512_mask_srai_epi64(__m512i __W,__mmask8 __U,__m512i __A)3905 __m512i test_mm512_mask_srai_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
3906   // CHECK-LABEL: @test_mm512_mask_srai_epi64
3907   // CHECK: @llvm.x86.avx512.mask.psra.qi.512
3908   return _mm512_mask_srai_epi64(__W, __U, __A, 5);
3909 }
3910 
test_mm512_maskz_srai_epi64(__mmask8 __U,__m512i __A)3911 __m512i test_mm512_maskz_srai_epi64(__mmask8 __U, __m512i __A) {
3912   // CHECK-LABEL: @test_mm512_maskz_srai_epi64
3913   // CHECK: @llvm.x86.avx512.mask.psra.qi.512
3914   return _mm512_maskz_srai_epi64(__U, __A, 5);
3915 }
3916 
test_mm512_sll_epi32(__m512i __A,__m128i __B)3917 __m512i test_mm512_sll_epi32(__m512i __A, __m128i __B) {
3918   // CHECK-LABEL: @test_mm512_sll_epi32
3919   // CHECK: @llvm.x86.avx512.mask.psll.d
3920   return _mm512_sll_epi32(__A, __B);
3921 }
3922 
test_mm512_mask_sll_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)3923 __m512i test_mm512_mask_sll_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
3924   // CHECK-LABEL: @test_mm512_mask_sll_epi32
3925   // CHECK: @llvm.x86.avx512.mask.psll.d
3926   return _mm512_mask_sll_epi32(__W, __U, __A, __B);
3927 }
3928 
test_mm512_maskz_sll_epi32(__mmask16 __U,__m512i __A,__m128i __B)3929 __m512i test_mm512_maskz_sll_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
3930   // CHECK-LABEL: @test_mm512_maskz_sll_epi32
3931   // CHECK: @llvm.x86.avx512.mask.psll.d
3932   return _mm512_maskz_sll_epi32(__U, __A, __B);
3933 }
3934 
test_mm512_sll_epi64(__m512i __A,__m128i __B)3935 __m512i test_mm512_sll_epi64(__m512i __A, __m128i __B) {
3936   // CHECK-LABEL: @test_mm512_sll_epi64
3937   // CHECK: @llvm.x86.avx512.mask.psll.q
3938   return _mm512_sll_epi64(__A, __B);
3939 }
3940 
test_mm512_mask_sll_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)3941 __m512i test_mm512_mask_sll_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
3942   // CHECK-LABEL: @test_mm512_mask_sll_epi64
3943   // CHECK: @llvm.x86.avx512.mask.psll.q
3944   return _mm512_mask_sll_epi64(__W, __U, __A, __B);
3945 }
3946 
test_mm512_maskz_sll_epi64(__mmask8 __U,__m512i __A,__m128i __B)3947 __m512i test_mm512_maskz_sll_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
3948   // CHECK-LABEL: @test_mm512_maskz_sll_epi64
3949   // CHECK: @llvm.x86.avx512.mask.psll.q
3950   return _mm512_maskz_sll_epi64(__U, __A, __B);
3951 }
3952 
test_mm512_sllv_epi32(__m512i __X,__m512i __Y)3953 __m512i test_mm512_sllv_epi32(__m512i __X, __m512i __Y) {
3954   // CHECK-LABEL: @test_mm512_sllv_epi32
3955   // CHECK: @llvm.x86.avx512.mask.psllv.d
3956   return _mm512_sllv_epi32(__X, __Y);
3957 }
3958 
test_mm512_mask_sllv_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)3959 __m512i test_mm512_mask_sllv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
3960   // CHECK-LABEL: @test_mm512_mask_sllv_epi32
3961   // CHECK: @llvm.x86.avx512.mask.psllv.d
3962   return _mm512_mask_sllv_epi32(__W, __U, __X, __Y);
3963 }
3964 
test_mm512_maskz_sllv_epi32(__mmask16 __U,__m512i __X,__m512i __Y)3965 __m512i test_mm512_maskz_sllv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
3966   // CHECK-LABEL: @test_mm512_maskz_sllv_epi32
3967   // CHECK: @llvm.x86.avx512.mask.psllv.d
3968   return _mm512_maskz_sllv_epi32(__U, __X, __Y);
3969 }
3970 
test_mm512_sllv_epi64(__m512i __X,__m512i __Y)3971 __m512i test_mm512_sllv_epi64(__m512i __X, __m512i __Y) {
3972   // CHECK-LABEL: @test_mm512_sllv_epi64
3973   // CHECK: @llvm.x86.avx512.mask.psllv.q
3974   return _mm512_sllv_epi64(__X, __Y);
3975 }
3976 
test_mm512_mask_sllv_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)3977 __m512i test_mm512_mask_sllv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
3978   // CHECK-LABEL: @test_mm512_mask_sllv_epi64
3979   // CHECK: @llvm.x86.avx512.mask.psllv.q
3980   return _mm512_mask_sllv_epi64(__W, __U, __X, __Y);
3981 }
3982 
test_mm512_maskz_sllv_epi64(__mmask8 __U,__m512i __X,__m512i __Y)3983 __m512i test_mm512_maskz_sllv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
3984   // CHECK-LABEL: @test_mm512_maskz_sllv_epi64
3985   // CHECK: @llvm.x86.avx512.mask.psllv.q
3986   return _mm512_maskz_sllv_epi64(__U, __X, __Y);
3987 }
3988 
test_mm512_sra_epi32(__m512i __A,__m128i __B)3989 __m512i test_mm512_sra_epi32(__m512i __A, __m128i __B) {
3990   // CHECK-LABEL: @test_mm512_sra_epi32
3991   // CHECK: @llvm.x86.avx512.mask.psra.d
3992   return _mm512_sra_epi32(__A, __B);
3993 }
3994 
test_mm512_mask_sra_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)3995 __m512i test_mm512_mask_sra_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
3996   // CHECK-LABEL: @test_mm512_mask_sra_epi32
3997   // CHECK: @llvm.x86.avx512.mask.psra.d
3998   return _mm512_mask_sra_epi32(__W, __U, __A, __B);
3999 }
4000 
test_mm512_maskz_sra_epi32(__mmask16 __U,__m512i __A,__m128i __B)4001 __m512i test_mm512_maskz_sra_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
4002   // CHECK-LABEL: @test_mm512_maskz_sra_epi32
4003   // CHECK: @llvm.x86.avx512.mask.psra.d
4004   return _mm512_maskz_sra_epi32(__U, __A, __B);
4005 }
4006 
test_mm512_sra_epi64(__m512i __A,__m128i __B)4007 __m512i test_mm512_sra_epi64(__m512i __A, __m128i __B) {
4008   // CHECK-LABEL: @test_mm512_sra_epi64
4009   // CHECK: @llvm.x86.avx512.mask.psra.q
4010   return _mm512_sra_epi64(__A, __B);
4011 }
4012 
test_mm512_mask_sra_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)4013 __m512i test_mm512_mask_sra_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
4014   // CHECK-LABEL: @test_mm512_mask_sra_epi64
4015   // CHECK: @llvm.x86.avx512.mask.psra.q
4016   return _mm512_mask_sra_epi64(__W, __U, __A, __B);
4017 }
4018 
test_mm512_maskz_sra_epi64(__mmask8 __U,__m512i __A,__m128i __B)4019 __m512i test_mm512_maskz_sra_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
4020   // CHECK-LABEL: @test_mm512_maskz_sra_epi64
4021   // CHECK: @llvm.x86.avx512.mask.psra.q
4022   return _mm512_maskz_sra_epi64(__U, __A, __B);
4023 }
4024 
test_mm512_srav_epi32(__m512i __X,__m512i __Y)4025 __m512i test_mm512_srav_epi32(__m512i __X, __m512i __Y) {
4026   // CHECK-LABEL: @test_mm512_srav_epi32
4027   // CHECK: @llvm.x86.avx512.mask.psrav.d
4028   return _mm512_srav_epi32(__X, __Y);
4029 }
4030 
test_mm512_mask_srav_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)4031 __m512i test_mm512_mask_srav_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
4032   // CHECK-LABEL: @test_mm512_mask_srav_epi32
4033   // CHECK: @llvm.x86.avx512.mask.psrav.d
4034   return _mm512_mask_srav_epi32(__W, __U, __X, __Y);
4035 }
4036 
test_mm512_maskz_srav_epi32(__mmask16 __U,__m512i __X,__m512i __Y)4037 __m512i test_mm512_maskz_srav_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
4038   // CHECK-LABEL: @test_mm512_maskz_srav_epi32
4039   // CHECK: @llvm.x86.avx512.mask.psrav.d
4040   return _mm512_maskz_srav_epi32(__U, __X, __Y);
4041 }
4042 
test_mm512_srav_epi64(__m512i __X,__m512i __Y)4043 __m512i test_mm512_srav_epi64(__m512i __X, __m512i __Y) {
4044   // CHECK-LABEL: @test_mm512_srav_epi64
4045   // CHECK: @llvm.x86.avx512.mask.psrav.q
4046   return _mm512_srav_epi64(__X, __Y);
4047 }
4048 
test_mm512_mask_srav_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)4049 __m512i test_mm512_mask_srav_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
4050   // CHECK-LABEL: @test_mm512_mask_srav_epi64
4051   // CHECK: @llvm.x86.avx512.mask.psrav.q
4052   return _mm512_mask_srav_epi64(__W, __U, __X, __Y);
4053 }
4054 
test_mm512_maskz_srav_epi64(__mmask8 __U,__m512i __X,__m512i __Y)4055 __m512i test_mm512_maskz_srav_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
4056   // CHECK-LABEL: @test_mm512_maskz_srav_epi64
4057   // CHECK: @llvm.x86.avx512.mask.psrav.q
4058   return _mm512_maskz_srav_epi64(__U, __X, __Y);
4059 }
4060 
test_mm512_srl_epi32(__m512i __A,__m128i __B)4061 __m512i test_mm512_srl_epi32(__m512i __A, __m128i __B) {
4062   // CHECK-LABEL: @test_mm512_srl_epi32
4063   // CHECK: @llvm.x86.avx512.mask.psrl.d
4064   return _mm512_srl_epi32(__A, __B);
4065 }
4066 
test_mm512_mask_srl_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)4067 __m512i test_mm512_mask_srl_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
4068   // CHECK-LABEL: @test_mm512_mask_srl_epi32
4069   // CHECK: @llvm.x86.avx512.mask.psrl.d
4070   return _mm512_mask_srl_epi32(__W, __U, __A, __B);
4071 }
4072 
test_mm512_maskz_srl_epi32(__mmask16 __U,__m512i __A,__m128i __B)4073 __m512i test_mm512_maskz_srl_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
4074   // CHECK-LABEL: @test_mm512_maskz_srl_epi32
4075   // CHECK: @llvm.x86.avx512.mask.psrl.d
4076   return _mm512_maskz_srl_epi32(__U, __A, __B);
4077 }
4078 
test_mm512_srl_epi64(__m512i __A,__m128i __B)4079 __m512i test_mm512_srl_epi64(__m512i __A, __m128i __B) {
4080   // CHECK-LABEL: @test_mm512_srl_epi64
4081   // CHECK: @llvm.x86.avx512.mask.psrl.q
4082   return _mm512_srl_epi64(__A, __B);
4083 }
4084 
test_mm512_mask_srl_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)4085 __m512i test_mm512_mask_srl_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
4086   // CHECK-LABEL: @test_mm512_mask_srl_epi64
4087   // CHECK: @llvm.x86.avx512.mask.psrl.q
4088   return _mm512_mask_srl_epi64(__W, __U, __A, __B);
4089 }
4090 
test_mm512_maskz_srl_epi64(__mmask8 __U,__m512i __A,__m128i __B)4091 __m512i test_mm512_maskz_srl_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
4092   // CHECK-LABEL: @test_mm512_maskz_srl_epi64
4093   // CHECK: @llvm.x86.avx512.mask.psrl.q
4094   return _mm512_maskz_srl_epi64(__U, __A, __B);
4095 }
4096 
test_mm512_srlv_epi32(__m512i __X,__m512i __Y)4097 __m512i test_mm512_srlv_epi32(__m512i __X, __m512i __Y) {
4098   // CHECK-LABEL: @test_mm512_srlv_epi32
4099   // CHECK: @llvm.x86.avx512.mask.psrlv.d
4100   return _mm512_srlv_epi32(__X, __Y);
4101 }
4102 
test_mm512_mask_srlv_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)4103 __m512i test_mm512_mask_srlv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
4104   // CHECK-LABEL: @test_mm512_mask_srlv_epi32
4105   // CHECK: @llvm.x86.avx512.mask.psrlv.d
4106   return _mm512_mask_srlv_epi32(__W, __U, __X, __Y);
4107 }
4108 
test_mm512_maskz_srlv_epi32(__mmask16 __U,__m512i __X,__m512i __Y)4109 __m512i test_mm512_maskz_srlv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
4110   // CHECK-LABEL: @test_mm512_maskz_srlv_epi32
4111   // CHECK: @llvm.x86.avx512.mask.psrlv.d
4112   return _mm512_maskz_srlv_epi32(__U, __X, __Y);
4113 }
4114 
test_mm512_srlv_epi64(__m512i __X,__m512i __Y)4115 __m512i test_mm512_srlv_epi64(__m512i __X, __m512i __Y) {
4116   // CHECK-LABEL: @test_mm512_srlv_epi64
4117   // CHECK: @llvm.x86.avx512.mask.psrlv.q
4118   return _mm512_srlv_epi64(__X, __Y);
4119 }
4120 
test_mm512_mask_srlv_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)4121 __m512i test_mm512_mask_srlv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
4122   // CHECK-LABEL: @test_mm512_mask_srlv_epi64
4123   // CHECK: @llvm.x86.avx512.mask.psrlv.q
4124   return _mm512_mask_srlv_epi64(__W, __U, __X, __Y);
4125 }
4126 
test_mm512_maskz_srlv_epi64(__mmask8 __U,__m512i __X,__m512i __Y)4127 __m512i test_mm512_maskz_srlv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
4128   // CHECK-LABEL: @test_mm512_maskz_srlv_epi64
4129   // CHECK: @llvm.x86.avx512.mask.psrlv.q
4130   return _mm512_maskz_srlv_epi64(__U, __X, __Y);
4131 }
4132 
test_mm512_ternarylogic_epi32(__m512i __A,__m512i __B,__m512i __C)4133 __m512i test_mm512_ternarylogic_epi32(__m512i __A, __m512i __B, __m512i __C) {
4134   // CHECK-LABEL: @test_mm512_ternarylogic_epi32
4135   // CHECK: @llvm.x86.avx512.mask.pternlog.d.512
4136   return _mm512_ternarylogic_epi32(__A, __B, __C, 4);
4137 }
4138 
test_mm512_mask_ternarylogic_epi32(__m512i __A,__mmask16 __U,__m512i __B,__m512i __C)4139 __m512i test_mm512_mask_ternarylogic_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
4140   // CHECK-LABEL: @test_mm512_mask_ternarylogic_epi32
4141   // CHECK: @llvm.x86.avx512.mask.pternlog.d.512
4142   return _mm512_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
4143 }
4144 
test_mm512_maskz_ternarylogic_epi32(__mmask16 __U,__m512i __A,__m512i __B,__m512i __C)4145 __m512i test_mm512_maskz_ternarylogic_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) {
4146   // CHECK-LABEL: @test_mm512_maskz_ternarylogic_epi32
4147   // CHECK: @llvm.x86.avx512.maskz.pternlog.d.512
4148   return _mm512_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
4149 }
4150 
test_mm512_ternarylogic_epi64(__m512i __A,__m512i __B,__m512i __C)4151 __m512i test_mm512_ternarylogic_epi64(__m512i __A, __m512i __B, __m512i __C) {
4152   // CHECK-LABEL: @test_mm512_ternarylogic_epi64
4153   // CHECK: @llvm.x86.avx512.mask.pternlog.q.512
4154   return _mm512_ternarylogic_epi64(__A, __B, __C, 4);
4155 }
4156 
test_mm512_mask_ternarylogic_epi64(__m512i __A,__mmask8 __U,__m512i __B,__m512i __C)4157 __m512i test_mm512_mask_ternarylogic_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) {
4158   // CHECK-LABEL: @test_mm512_mask_ternarylogic_epi64
4159   // CHECK: @llvm.x86.avx512.mask.pternlog.q.512
4160   return _mm512_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
4161 }
4162 
test_mm512_maskz_ternarylogic_epi64(__mmask8 __U,__m512i __A,__m512i __B,__m512i __C)4163 __m512i test_mm512_maskz_ternarylogic_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) {
4164   // CHECK-LABEL: @test_mm512_maskz_ternarylogic_epi64
4165   // CHECK: @llvm.x86.avx512.maskz.pternlog.q.512
4166   return _mm512_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
4167 }
4168 
test_mm512_shuffle_f32x4(__m512 __A,__m512 __B)4169 __m512 test_mm512_shuffle_f32x4(__m512 __A, __m512 __B) {
4170   // CHECK-LABEL: @test_mm512_shuffle_f32x4
4171   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
4172   return _mm512_shuffle_f32x4(__A, __B, 4);
4173 }
4174 
test_mm512_mask_shuffle_f32x4(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)4175 __m512 test_mm512_mask_shuffle_f32x4(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
4176   // CHECK-LABEL: @test_mm512_mask_shuffle_f32x4
4177   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
4178   return _mm512_mask_shuffle_f32x4(__W, __U, __A, __B, 4);
4179 }
4180 
test_mm512_maskz_shuffle_f32x4(__mmask16 __U,__m512 __A,__m512 __B)4181 __m512 test_mm512_maskz_shuffle_f32x4(__mmask16 __U, __m512 __A, __m512 __B) {
4182   // CHECK-LABEL: @test_mm512_maskz_shuffle_f32x4
4183   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
4184   return _mm512_maskz_shuffle_f32x4(__U, __A, __B, 4);
4185 }
4186 
test_mm512_shuffle_f64x2(__m512d __A,__m512d __B)4187 __m512d test_mm512_shuffle_f64x2(__m512d __A, __m512d __B) {
4188   // CHECK-LABEL: @test_mm512_shuffle_f64x2
4189   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
4190   return _mm512_shuffle_f64x2(__A, __B, 4);
4191 }
4192 
test_mm512_mask_shuffle_f64x2(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)4193 __m512d test_mm512_mask_shuffle_f64x2(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
4194   // CHECK-LABEL: @test_mm512_mask_shuffle_f64x2
4195   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
4196   return _mm512_mask_shuffle_f64x2(__W, __U, __A, __B, 4);
4197 }
4198 
test_mm512_maskz_shuffle_f64x2(__mmask8 __U,__m512d __A,__m512d __B)4199 __m512d test_mm512_maskz_shuffle_f64x2(__mmask8 __U, __m512d __A, __m512d __B) {
4200   // CHECK-LABEL: @test_mm512_maskz_shuffle_f64x2
4201   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
4202   return _mm512_maskz_shuffle_f64x2(__U, __A, __B, 4);
4203 }
4204 
test_mm512_shuffle_i32x4(__m512i __A,__m512i __B)4205 __m512i test_mm512_shuffle_i32x4(__m512i __A, __m512i __B) {
4206   // CHECK-LABEL: @test_mm512_shuffle_i32x4
4207   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
4208   return _mm512_shuffle_i32x4(__A, __B, 4);
4209 }
4210 
test_mm512_mask_shuffle_i32x4(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)4211 __m512i test_mm512_mask_shuffle_i32x4(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
4212   // CHECK-LABEL: @test_mm512_mask_shuffle_i32x4
4213   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
4214   return _mm512_mask_shuffle_i32x4(__W, __U, __A, __B, 4);
4215 }
4216 
test_mm512_maskz_shuffle_i32x4(__mmask16 __U,__m512i __A,__m512i __B)4217 __m512i test_mm512_maskz_shuffle_i32x4(__mmask16 __U, __m512i __A, __m512i __B) {
4218   // CHECK-LABEL: @test_mm512_maskz_shuffle_i32x4
4219   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
4220   return _mm512_maskz_shuffle_i32x4(__U, __A, __B, 4);
4221 }
4222 
test_mm512_shuffle_i64x2(__m512i __A,__m512i __B)4223 __m512i test_mm512_shuffle_i64x2(__m512i __A, __m512i __B) {
4224   // CHECK-LABEL: @test_mm512_shuffle_i64x2
4225   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
4226   return _mm512_shuffle_i64x2(__A, __B, 4);
4227 }
4228 
test_mm512_mask_shuffle_i64x2(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)4229 __m512i test_mm512_mask_shuffle_i64x2(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
4230   // CHECK-LABEL: @test_mm512_mask_shuffle_i64x2
4231   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
4232   return _mm512_mask_shuffle_i64x2(__W, __U, __A, __B, 4);
4233 }
4234 
test_mm512_maskz_shuffle_i64x2(__mmask8 __U,__m512i __A,__m512i __B)4235 __m512i test_mm512_maskz_shuffle_i64x2(__mmask8 __U, __m512i __A, __m512i __B) {
4236   // CHECK-LABEL: @test_mm512_maskz_shuffle_i64x2
4237   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
4238   return _mm512_maskz_shuffle_i64x2(__U, __A, __B, 4);
4239 }
4240 
test_mm512_shuffle_pd(__m512d __M,__m512d __V)4241 __m512d test_mm512_shuffle_pd(__m512d __M, __m512d __V) {
4242   // CHECK-LABEL: @test_mm512_shuffle_pd
4243   // 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   return _mm512_shuffle_pd(__M, __V, 4);
4245 }
4246 
test_mm512_mask_shuffle_pd(__m512d __W,__mmask8 __U,__m512d __M,__m512d __V)4247 __m512d test_mm512_mask_shuffle_pd(__m512d __W, __mmask8 __U, __m512d __M, __m512d __V) {
4248   // CHECK-LABEL: @test_mm512_mask_shuffle_pd
4249   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4251   return _mm512_mask_shuffle_pd(__W, __U, __M, __V, 4);
4252 }
4253 
test_mm512_maskz_shuffle_pd(__mmask8 __U,__m512d __M,__m512d __V)4254 __m512d test_mm512_maskz_shuffle_pd(__mmask8 __U, __m512d __M, __m512d __V) {
4255   // CHECK-LABEL: @test_mm512_maskz_shuffle_pd
4256   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4258   return _mm512_maskz_shuffle_pd(__U, __M, __V, 4);
4259 }
4260 
test_mm512_shuffle_ps(__m512 __M,__m512 __V)4261 __m512 test_mm512_shuffle_ps(__m512 __M, __m512 __V) {
4262   // CHECK-LABEL: @test_mm512_shuffle_ps
4263   // 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   return _mm512_shuffle_ps(__M, __V, 4);
4265 }
4266 
test_mm512_mask_shuffle_ps(__m512 __W,__mmask16 __U,__m512 __M,__m512 __V)4267 __m512 test_mm512_mask_shuffle_ps(__m512 __W, __mmask16 __U, __m512 __M, __m512 __V) {
4268   // CHECK-LABEL: @test_mm512_mask_shuffle_ps
4269   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4271   return _mm512_mask_shuffle_ps(__W, __U, __M, __V, 4);
4272 }
4273 
test_mm512_maskz_shuffle_ps(__mmask16 __U,__m512 __M,__m512 __V)4274 __m512 test_mm512_maskz_shuffle_ps(__mmask16 __U, __m512 __M, __m512 __V) {
4275   // CHECK-LABEL: @test_mm512_maskz_shuffle_ps
4276   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4278   return _mm512_maskz_shuffle_ps(__U, __M, __V, 4);
4279 }
4280 
test_mm_sqrt_round_sd(__m128d __A,__m128d __B)4281 __m128d test_mm_sqrt_round_sd(__m128d __A, __m128d __B) {
4282   // CHECK-LABEL: @test_mm_sqrt_round_sd
4283   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4284   return _mm_sqrt_round_sd(__A, __B, 4);
4285 }
4286 
test_mm_mask_sqrt_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4287 __m128d test_mm_mask_sqrt_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
4288   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4289     return _mm_mask_sqrt_sd(__W,__U,__A,__B);
4290 }
4291 
test_mm_mask_sqrt_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4292 __m128d test_mm_mask_sqrt_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
4293   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4294     return _mm_mask_sqrt_round_sd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4295 }
4296 
test_mm_maskz_sqrt_sd(__mmask8 __U,__m128d __A,__m128d __B)4297 __m128d test_mm_maskz_sqrt_sd(__mmask8 __U, __m128d __A, __m128d __B){
4298   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4299     return _mm_maskz_sqrt_sd(__U,__A,__B);
4300 }
4301 
test_mm_maskz_sqrt_round_sd(__mmask8 __U,__m128d __A,__m128d __B)4302 __m128d test_mm_maskz_sqrt_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
4303   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4304     return _mm_maskz_sqrt_round_sd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4305 }
4306 
test_mm_sqrt_round_ss(__m128 __A,__m128 __B)4307 __m128 test_mm_sqrt_round_ss(__m128 __A, __m128 __B) {
4308   // CHECK-LABEL: @test_mm_sqrt_round_ss
4309   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4310   return _mm_sqrt_round_ss(__A, __B, 4);
4311 }
4312 
test_mm_mask_sqrt_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4313 __m128 test_mm_mask_sqrt_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
4314   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4315     return _mm_mask_sqrt_ss(__W,__U,__A,__B);
4316 }
4317 
test_mm_mask_sqrt_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4318 __m128 test_mm_mask_sqrt_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
4319   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4320     return _mm_mask_sqrt_round_ss(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4321 }
4322 
test_mm_maskz_sqrt_ss(__mmask8 __U,__m128 __A,__m128 __B)4323 __m128 test_mm_maskz_sqrt_ss(__mmask8 __U, __m128 __A, __m128 __B){
4324   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4325     return _mm_maskz_sqrt_ss(__U,__A,__B);
4326 }
4327 
test_mm_maskz_sqrt_round_ss(__mmask8 __U,__m128 __A,__m128 __B)4328 __m128 test_mm_maskz_sqrt_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
4329   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4330     return _mm_maskz_sqrt_round_ss(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4331 }
4332 
test_mm512_broadcast_f32x4(__m128 __A)4333 __m512 test_mm512_broadcast_f32x4(__m128 __A) {
4334   // CHECK-LABEL: @test_mm512_broadcast_f32x4
4335   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
4336   return _mm512_broadcast_f32x4(__A);
4337 }
4338 
test_mm512_mask_broadcast_f32x4(__m512 __O,__mmask16 __M,__m128 __A)4339 __m512 test_mm512_mask_broadcast_f32x4(__m512 __O, __mmask16 __M, __m128 __A) {
4340   // CHECK-LABEL: @test_mm512_mask_broadcast_f32x4
4341   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
4342   return _mm512_mask_broadcast_f32x4(__O, __M, __A);
4343 }
4344 
test_mm512_maskz_broadcast_f32x4(__mmask16 __M,__m128 __A)4345 __m512 test_mm512_maskz_broadcast_f32x4(__mmask16 __M, __m128 __A) {
4346   // CHECK-LABEL: @test_mm512_maskz_broadcast_f32x4
4347   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
4348   return _mm512_maskz_broadcast_f32x4(__M, __A);
4349 }
4350 
test_mm512_broadcast_f64x4(__m256d __A)4351 __m512d test_mm512_broadcast_f64x4(__m256d __A) {
4352   // CHECK-LABEL: @test_mm512_broadcast_f64x4
4353   // CHECK: @llvm.x86.avx512.mask.broadcastf64x4
4354   return _mm512_broadcast_f64x4(__A);
4355 }
4356 
test_mm512_mask_broadcast_f64x4(__m512d __O,__mmask8 __M,__m256d __A)4357 __m512d test_mm512_mask_broadcast_f64x4(__m512d __O, __mmask8 __M, __m256d __A) {
4358   // CHECK-LABEL: @test_mm512_mask_broadcast_f64x4
4359   // CHECK: @llvm.x86.avx512.mask.broadcastf64x4
4360   return _mm512_mask_broadcast_f64x4(__O, __M, __A);
4361 }
4362 
test_mm512_maskz_broadcast_f64x4(__mmask8 __M,__m256d __A)4363 __m512d test_mm512_maskz_broadcast_f64x4(__mmask8 __M, __m256d __A) {
4364   // CHECK-LABEL: @test_mm512_maskz_broadcast_f64x4
4365   // CHECK: @llvm.x86.avx512.mask.broadcastf64x4
4366   return _mm512_maskz_broadcast_f64x4(__M, __A);
4367 }
4368 
test_mm512_broadcast_i32x4(__m128i __A)4369 __m512i test_mm512_broadcast_i32x4(__m128i __A) {
4370   // CHECK-LABEL: @test_mm512_broadcast_i32x4
4371   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
4372   return _mm512_broadcast_i32x4(__A);
4373 }
4374 
test_mm512_mask_broadcast_i32x4(__m512i __O,__mmask16 __M,__m128i __A)4375 __m512i test_mm512_mask_broadcast_i32x4(__m512i __O, __mmask16 __M, __m128i __A) {
4376   // CHECK-LABEL: @test_mm512_mask_broadcast_i32x4
4377   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
4378   return _mm512_mask_broadcast_i32x4(__O, __M, __A);
4379 }
4380 
test_mm512_maskz_broadcast_i32x4(__mmask16 __M,__m128i __A)4381 __m512i test_mm512_maskz_broadcast_i32x4(__mmask16 __M, __m128i __A) {
4382   // CHECK-LABEL: @test_mm512_maskz_broadcast_i32x4
4383   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
4384   return _mm512_maskz_broadcast_i32x4(__M, __A);
4385 }
4386 
test_mm512_broadcast_i64x4(__m256i __A)4387 __m512i test_mm512_broadcast_i64x4(__m256i __A) {
4388   // CHECK-LABEL: @test_mm512_broadcast_i64x4
4389   // CHECK: @llvm.x86.avx512.mask.broadcasti64x4
4390   return _mm512_broadcast_i64x4(__A);
4391 }
4392 
test_mm512_mask_broadcast_i64x4(__m512i __O,__mmask8 __M,__m256i __A)4393 __m512i test_mm512_mask_broadcast_i64x4(__m512i __O, __mmask8 __M, __m256i __A) {
4394   // CHECK-LABEL: @test_mm512_mask_broadcast_i64x4
4395   // CHECK: @llvm.x86.avx512.mask.broadcasti64x4
4396   return _mm512_mask_broadcast_i64x4(__O, __M, __A);
4397 }
4398 
test_mm512_maskz_broadcast_i64x4(__mmask8 __M,__m256i __A)4399 __m512i test_mm512_maskz_broadcast_i64x4(__mmask8 __M, __m256i __A) {
4400   // CHECK-LABEL: @test_mm512_maskz_broadcast_i64x4
4401   // CHECK: @llvm.x86.avx512.mask.broadcasti64x4
4402   return _mm512_maskz_broadcast_i64x4(__M, __A);
4403 }
4404 
test_mm512_broadcastsd_pd(__m128d __A)4405 __m512d test_mm512_broadcastsd_pd(__m128d __A) {
4406   // CHECK-LABEL: @test_mm512_broadcastsd_pd
4407   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer
4408   return _mm512_broadcastsd_pd(__A);
4409 }
4410 
test_mm512_mask_broadcastsd_pd(__m512d __O,__mmask8 __M,__m128d __A)4411 __m512d test_mm512_mask_broadcastsd_pd(__m512d __O, __mmask8 __M, __m128d __A) {
4412   // CHECK-LABEL: @test_mm512_mask_broadcastsd_pd
4413   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer
4414   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4415   return _mm512_mask_broadcastsd_pd(__O, __M, __A);
4416 }
4417 
test_mm512_maskz_broadcastsd_pd(__mmask8 __M,__m128d __A)4418 __m512d test_mm512_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) {
4419   // CHECK-LABEL: @test_mm512_maskz_broadcastsd_pd
4420   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer
4421   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4422   return _mm512_maskz_broadcastsd_pd(__M, __A);
4423 }
4424 
test_mm512_broadcastss_ps(__m128 __A)4425 __m512 test_mm512_broadcastss_ps(__m128 __A) {
4426   // CHECK-LABEL: @test_mm512_broadcastss_ps
4427   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer
4428   return _mm512_broadcastss_ps(__A);
4429 }
4430 
test_mm512_mask_broadcastss_ps(__m512 __O,__mmask16 __M,__m128 __A)4431 __m512 test_mm512_mask_broadcastss_ps(__m512 __O, __mmask16 __M, __m128 __A) {
4432   // CHECK-LABEL: @test_mm512_mask_broadcastss_ps
4433   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer
4434   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4435   return _mm512_mask_broadcastss_ps(__O, __M, __A);
4436 }
4437 
test_mm512_maskz_broadcastss_ps(__mmask16 __M,__m128 __A)4438 __m512 test_mm512_maskz_broadcastss_ps(__mmask16 __M, __m128 __A) {
4439   // CHECK-LABEL: @test_mm512_maskz_broadcastss_ps
4440   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer
4441   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4442   return _mm512_maskz_broadcastss_ps(__M, __A);
4443 }
4444 
test_mm512_broadcastd_epi32(__m128i __A)4445 __m512i test_mm512_broadcastd_epi32(__m128i __A) {
4446   // CHECK-LABEL: @test_mm512_broadcastd_epi32
4447   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer
4448   return _mm512_broadcastd_epi32(__A);
4449 }
4450 
test_mm512_mask_broadcastd_epi32(__m512i __O,__mmask16 __M,__m128i __A)4451 __m512i test_mm512_mask_broadcastd_epi32(__m512i __O, __mmask16 __M, __m128i __A) {
4452   // CHECK-LABEL: @test_mm512_mask_broadcastd_epi32
4453   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer
4454   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4455   return _mm512_mask_broadcastd_epi32(__O, __M, __A);
4456 }
4457 
test_mm512_maskz_broadcastd_epi32(__mmask16 __M,__m128i __A)4458 __m512i test_mm512_maskz_broadcastd_epi32(__mmask16 __M, __m128i __A) {
4459   // CHECK-LABEL: @test_mm512_maskz_broadcastd_epi32
4460   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer
4461   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4462   return _mm512_maskz_broadcastd_epi32(__M, __A);
4463 }
4464 
test_mm512_broadcastq_epi64(__m128i __A)4465 __m512i test_mm512_broadcastq_epi64(__m128i __A) {
4466   // CHECK-LABEL: @test_mm512_broadcastq_epi64
4467   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer
4468   return _mm512_broadcastq_epi64(__A);
4469 }
4470 
test_mm512_mask_broadcastq_epi64(__m512i __O,__mmask8 __M,__m128i __A)4471 __m512i test_mm512_mask_broadcastq_epi64(__m512i __O, __mmask8 __M, __m128i __A) {
4472   // CHECK-LABEL: @test_mm512_mask_broadcastq_epi64
4473   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer
4474   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4475   return _mm512_mask_broadcastq_epi64(__O, __M, __A);
4476 }
4477 
test_mm512_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)4478 __m512i test_mm512_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
4479   // CHECK-LABEL: @test_mm512_maskz_broadcastq_epi64
4480   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer
4481   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4482   return _mm512_maskz_broadcastq_epi64(__M, __A);
4483 }
4484 
test_mm512_cvtsepi32_epi8(__m512i __A)4485 __m128i test_mm512_cvtsepi32_epi8(__m512i __A) {
4486   // CHECK-LABEL: @test_mm512_cvtsepi32_epi8
4487   // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
4488   return _mm512_cvtsepi32_epi8(__A);
4489 }
4490 
test_mm512_mask_cvtsepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)4491 __m128i test_mm512_mask_cvtsepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
4492   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_epi8
4493   // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
4494   return _mm512_mask_cvtsepi32_epi8(__O, __M, __A);
4495 }
4496 
test_mm512_maskz_cvtsepi32_epi8(__mmask16 __M,__m512i __A)4497 __m128i test_mm512_maskz_cvtsepi32_epi8(__mmask16 __M, __m512i __A) {
4498   // CHECK-LABEL: @test_mm512_maskz_cvtsepi32_epi8
4499   // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
4500   return _mm512_maskz_cvtsepi32_epi8(__M, __A);
4501 }
4502 
test_mm512_mask_cvtsepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)4503 void test_mm512_mask_cvtsepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
4504   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_storeu_epi8
4505   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.512
4506   return _mm512_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
4507 }
4508 
test_mm512_cvtsepi32_epi16(__m512i __A)4509 __m256i test_mm512_cvtsepi32_epi16(__m512i __A) {
4510   // CHECK-LABEL: @test_mm512_cvtsepi32_epi16
4511   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
4512   return _mm512_cvtsepi32_epi16(__A);
4513 }
4514 
test_mm512_mask_cvtsepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)4515 __m256i test_mm512_mask_cvtsepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
4516   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_epi16
4517   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
4518   return _mm512_mask_cvtsepi32_epi16(__O, __M, __A);
4519 }
4520 
test_mm512_maskz_cvtsepi32_epi16(__mmask16 __M,__m512i __A)4521 __m256i test_mm512_maskz_cvtsepi32_epi16(__mmask16 __M, __m512i __A) {
4522   // CHECK-LABEL: @test_mm512_maskz_cvtsepi32_epi16
4523   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
4524   return _mm512_maskz_cvtsepi32_epi16(__M, __A);
4525 }
4526 
test_mm512_mask_cvtsepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)4527 void test_mm512_mask_cvtsepi32_storeu_epi16(void *__P, __mmask16 __M, __m512i __A) {
4528   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_storeu_epi16
4529   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.512
4530   return _mm512_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
4531 }
4532 
test_mm512_cvtsepi64_epi8(__m512i __A)4533 __m128i test_mm512_cvtsepi64_epi8(__m512i __A) {
4534   // CHECK-LABEL: @test_mm512_cvtsepi64_epi8
4535   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
4536   return _mm512_cvtsepi64_epi8(__A);
4537 }
4538 
test_mm512_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)4539 __m128i test_mm512_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
4540   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi8
4541   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
4542   return _mm512_mask_cvtsepi64_epi8(__O, __M, __A);
4543 }
4544 
test_mm512_maskz_cvtsepi64_epi8(__mmask8 __M,__m512i __A)4545 __m128i test_mm512_maskz_cvtsepi64_epi8(__mmask8 __M, __m512i __A) {
4546   // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi8
4547   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
4548   return _mm512_maskz_cvtsepi64_epi8(__M, __A);
4549 }
4550 
test_mm512_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)4551 void test_mm512_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
4552   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi8
4553   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.512
4554   return _mm512_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
4555 }
4556 
test_mm512_cvtsepi64_epi32(__m512i __A)4557 __m256i test_mm512_cvtsepi64_epi32(__m512i __A) {
4558   // CHECK-LABEL: @test_mm512_cvtsepi64_epi32
4559   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
4560   return _mm512_cvtsepi64_epi32(__A);
4561 }
4562 
test_mm512_mask_cvtsepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)4563 __m256i test_mm512_mask_cvtsepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
4564   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi32
4565   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
4566   return _mm512_mask_cvtsepi64_epi32(__O, __M, __A);
4567 }
4568 
test_mm512_maskz_cvtsepi64_epi32(__mmask8 __M,__m512i __A)4569 __m256i test_mm512_maskz_cvtsepi64_epi32(__mmask8 __M, __m512i __A) {
4570   // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi32
4571   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
4572   return _mm512_maskz_cvtsepi64_epi32(__M, __A);
4573 }
4574 
test_mm512_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)4575 void test_mm512_mask_cvtsepi64_storeu_epi32(void *__P, __mmask8 __M, __m512i __A) {
4576   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi32
4577   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.512
4578   return _mm512_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
4579 }
4580 
test_mm512_cvtsepi64_epi16(__m512i __A)4581 __m128i test_mm512_cvtsepi64_epi16(__m512i __A) {
4582   // CHECK-LABEL: @test_mm512_cvtsepi64_epi16
4583   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
4584   return _mm512_cvtsepi64_epi16(__A);
4585 }
4586 
test_mm512_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)4587 __m128i test_mm512_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
4588   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi16
4589   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
4590   return _mm512_mask_cvtsepi64_epi16(__O, __M, __A);
4591 }
4592 
test_mm512_maskz_cvtsepi64_epi16(__mmask8 __M,__m512i __A)4593 __m128i test_mm512_maskz_cvtsepi64_epi16(__mmask8 __M, __m512i __A) {
4594   // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi16
4595   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
4596   return _mm512_maskz_cvtsepi64_epi16(__M, __A);
4597 }
4598 
test_mm512_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)4599 void test_mm512_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m512i __A) {
4600   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi16
4601   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.512
4602   return _mm512_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
4603 }
4604 
test_mm512_cvtusepi32_epi8(__m512i __A)4605 __m128i test_mm512_cvtusepi32_epi8(__m512i __A) {
4606   // CHECK-LABEL: @test_mm512_cvtusepi32_epi8
4607   // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
4608   return _mm512_cvtusepi32_epi8(__A);
4609 }
4610 
test_mm512_mask_cvtusepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)4611 __m128i test_mm512_mask_cvtusepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
4612   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_epi8
4613   // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
4614   return _mm512_mask_cvtusepi32_epi8(__O, __M, __A);
4615 }
4616 
test_mm512_maskz_cvtusepi32_epi8(__mmask16 __M,__m512i __A)4617 __m128i test_mm512_maskz_cvtusepi32_epi8(__mmask16 __M, __m512i __A) {
4618   // CHECK-LABEL: @test_mm512_maskz_cvtusepi32_epi8
4619   // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
4620   return _mm512_maskz_cvtusepi32_epi8(__M, __A);
4621 }
4622 
test_mm512_mask_cvtusepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)4623 void test_mm512_mask_cvtusepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
4624   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_storeu_epi8
4625   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.512
4626   return _mm512_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
4627 }
4628 
test_mm512_cvtusepi32_epi16(__m512i __A)4629 __m256i test_mm512_cvtusepi32_epi16(__m512i __A) {
4630   // CHECK-LABEL: @test_mm512_cvtusepi32_epi16
4631   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
4632   return _mm512_cvtusepi32_epi16(__A);
4633 }
4634 
test_mm512_mask_cvtusepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)4635 __m256i test_mm512_mask_cvtusepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
4636   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_epi16
4637   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
4638   return _mm512_mask_cvtusepi32_epi16(__O, __M, __A);
4639 }
4640 
test_mm512_maskz_cvtusepi32_epi16(__mmask16 __M,__m512i __A)4641 __m256i test_mm512_maskz_cvtusepi32_epi16(__mmask16 __M, __m512i __A) {
4642   // CHECK-LABEL: @test_mm512_maskz_cvtusepi32_epi16
4643   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
4644   return _mm512_maskz_cvtusepi32_epi16(__M, __A);
4645 }
4646 
test_mm512_mask_cvtusepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)4647 void test_mm512_mask_cvtusepi32_storeu_epi16(void *__P, __mmask16 __M, __m512i __A) {
4648   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_storeu_epi16
4649   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.512
4650   return _mm512_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
4651 }
4652 
test_mm512_cvtusepi64_epi8(__m512i __A)4653 __m128i test_mm512_cvtusepi64_epi8(__m512i __A) {
4654   // CHECK-LABEL: @test_mm512_cvtusepi64_epi8
4655   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
4656   return _mm512_cvtusepi64_epi8(__A);
4657 }
4658 
test_mm512_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)4659 __m128i test_mm512_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
4660   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi8
4661   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
4662   return _mm512_mask_cvtusepi64_epi8(__O, __M, __A);
4663 }
4664 
test_mm512_maskz_cvtusepi64_epi8(__mmask8 __M,__m512i __A)4665 __m128i test_mm512_maskz_cvtusepi64_epi8(__mmask8 __M, __m512i __A) {
4666   // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi8
4667   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
4668   return _mm512_maskz_cvtusepi64_epi8(__M, __A);
4669 }
4670 
test_mm512_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)4671 void test_mm512_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
4672   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi8
4673   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.512
4674   return _mm512_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
4675 }
4676 
test_mm512_cvtusepi64_epi32(__m512i __A)4677 __m256i test_mm512_cvtusepi64_epi32(__m512i __A) {
4678   // CHECK-LABEL: @test_mm512_cvtusepi64_epi32
4679   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
4680   return _mm512_cvtusepi64_epi32(__A);
4681 }
4682 
test_mm512_mask_cvtusepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)4683 __m256i test_mm512_mask_cvtusepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
4684   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi32
4685   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
4686   return _mm512_mask_cvtusepi64_epi32(__O, __M, __A);
4687 }
4688 
test_mm512_maskz_cvtusepi64_epi32(__mmask8 __M,__m512i __A)4689 __m256i test_mm512_maskz_cvtusepi64_epi32(__mmask8 __M, __m512i __A) {
4690   // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi32
4691   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
4692   return _mm512_maskz_cvtusepi64_epi32(__M, __A);
4693 }
4694 
test_mm512_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)4695 void test_mm512_mask_cvtusepi64_storeu_epi32(void* __P, __mmask8 __M, __m512i __A) {
4696   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi32
4697   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.512
4698   return _mm512_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
4699 }
4700 
test_mm512_cvtusepi64_epi16(__m512i __A)4701 __m128i test_mm512_cvtusepi64_epi16(__m512i __A) {
4702   // CHECK-LABEL: @test_mm512_cvtusepi64_epi16
4703   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
4704   return _mm512_cvtusepi64_epi16(__A);
4705 }
4706 
test_mm512_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)4707 __m128i test_mm512_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
4708   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi16
4709   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
4710   return _mm512_mask_cvtusepi64_epi16(__O, __M, __A);
4711 }
4712 
test_mm512_maskz_cvtusepi64_epi16(__mmask8 __M,__m512i __A)4713 __m128i test_mm512_maskz_cvtusepi64_epi16(__mmask8 __M, __m512i __A) {
4714   // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi16
4715   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
4716   return _mm512_maskz_cvtusepi64_epi16(__M, __A);
4717 }
4718 
test_mm512_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)4719 void test_mm512_mask_cvtusepi64_storeu_epi16(void *__P, __mmask8 __M, __m512i __A) {
4720   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi16
4721   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.512
4722   return _mm512_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
4723 }
4724 
test_mm512_cvtepi32_epi8(__m512i __A)4725 __m128i test_mm512_cvtepi32_epi8(__m512i __A) {
4726   // CHECK-LABEL: @test_mm512_cvtepi32_epi8
4727   // CHECK: @llvm.x86.avx512.mask.pmov.db.512
4728   return _mm512_cvtepi32_epi8(__A);
4729 }
4730 
test_mm512_mask_cvtepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)4731 __m128i test_mm512_mask_cvtepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
4732   // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi8
4733   // CHECK: @llvm.x86.avx512.mask.pmov.db.512
4734   return _mm512_mask_cvtepi32_epi8(__O, __M, __A);
4735 }
4736 
test_mm512_maskz_cvtepi32_epi8(__mmask16 __M,__m512i __A)4737 __m128i test_mm512_maskz_cvtepi32_epi8(__mmask16 __M, __m512i __A) {
4738   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi8
4739   // CHECK: @llvm.x86.avx512.mask.pmov.db.512
4740   return _mm512_maskz_cvtepi32_epi8(__M, __A);
4741 }
4742 
test_mm512_mask_cvtepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)4743 void test_mm512_mask_cvtepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
4744   // CHECK-LABEL: @test_mm512_mask_cvtepi32_storeu_epi8
4745   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.512
4746   return _mm512_mask_cvtepi32_storeu_epi8(__P, __M, __A);
4747 }
4748 
test_mm512_cvtepi32_epi16(__m512i __A)4749 __m256i test_mm512_cvtepi32_epi16(__m512i __A) {
4750   // CHECK-LABEL: @test_mm512_cvtepi32_epi16
4751   // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
4752   return _mm512_cvtepi32_epi16(__A);
4753 }
4754 
test_mm512_mask_cvtepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)4755 __m256i test_mm512_mask_cvtepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
4756   // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi16
4757   // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
4758   return _mm512_mask_cvtepi32_epi16(__O, __M, __A);
4759 }
4760 
test_mm512_maskz_cvtepi32_epi16(__mmask16 __M,__m512i __A)4761 __m256i test_mm512_maskz_cvtepi32_epi16(__mmask16 __M, __m512i __A) {
4762   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi16
4763   // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
4764   return _mm512_maskz_cvtepi32_epi16(__M, __A);
4765 }
4766 
test_mm512_mask_cvtepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)4767 void test_mm512_mask_cvtepi32_storeu_epi16(void * __P, __mmask16 __M, __m512i __A) {
4768   // CHECK-LABEL: @test_mm512_mask_cvtepi32_storeu_epi16
4769   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.512
4770   return _mm512_mask_cvtepi32_storeu_epi16(__P, __M, __A);
4771 }
4772 
test_mm512_cvtepi64_epi8(__m512i __A)4773 __m128i test_mm512_cvtepi64_epi8(__m512i __A) {
4774   // CHECK-LABEL: @test_mm512_cvtepi64_epi8
4775   // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
4776   return _mm512_cvtepi64_epi8(__A);
4777 }
4778 
test_mm512_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)4779 __m128i test_mm512_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
4780   // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi8
4781   // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
4782   return _mm512_mask_cvtepi64_epi8(__O, __M, __A);
4783 }
4784 
test_mm512_maskz_cvtepi64_epi8(__mmask8 __M,__m512i __A)4785 __m128i test_mm512_maskz_cvtepi64_epi8(__mmask8 __M, __m512i __A) {
4786   // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi8
4787   // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
4788   return _mm512_maskz_cvtepi64_epi8(__M, __A);
4789 }
4790 
test_mm512_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)4791 void test_mm512_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
4792   // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi8
4793   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.512
4794   return _mm512_mask_cvtepi64_storeu_epi8(__P, __M, __A);
4795 }
4796 
test_mm512_cvtepi64_epi32(__m512i __A)4797 __m256i test_mm512_cvtepi64_epi32(__m512i __A) {
4798   // CHECK-LABEL: @test_mm512_cvtepi64_epi32
4799   // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
4800   return _mm512_cvtepi64_epi32(__A);
4801 }
4802 
test_mm512_mask_cvtepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)4803 __m256i test_mm512_mask_cvtepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
4804   // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi32
4805   // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
4806   return _mm512_mask_cvtepi64_epi32(__O, __M, __A);
4807 }
4808 
test_mm512_maskz_cvtepi64_epi32(__mmask8 __M,__m512i __A)4809 __m256i test_mm512_maskz_cvtepi64_epi32(__mmask8 __M, __m512i __A) {
4810   // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi32
4811   // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
4812   return _mm512_maskz_cvtepi64_epi32(__M, __A);
4813 }
4814 
test_mm512_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)4815 void test_mm512_mask_cvtepi64_storeu_epi32(void* __P, __mmask8 __M, __m512i __A) {
4816   // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi32
4817   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.512
4818   return _mm512_mask_cvtepi64_storeu_epi32(__P, __M, __A);
4819 }
4820 
test_mm512_cvtepi64_epi16(__m512i __A)4821 __m128i test_mm512_cvtepi64_epi16(__m512i __A) {
4822   // CHECK-LABEL: @test_mm512_cvtepi64_epi16
4823   // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
4824   return _mm512_cvtepi64_epi16(__A);
4825 }
4826 
test_mm512_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)4827 __m128i test_mm512_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
4828   // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi16
4829   // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
4830   return _mm512_mask_cvtepi64_epi16(__O, __M, __A);
4831 }
4832 
test_mm512_maskz_cvtepi64_epi16(__mmask8 __M,__m512i __A)4833 __m128i test_mm512_maskz_cvtepi64_epi16(__mmask8 __M, __m512i __A) {
4834   // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi16
4835   // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
4836   return _mm512_maskz_cvtepi64_epi16(__M, __A);
4837 }
4838 
test_mm512_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)4839 void test_mm512_mask_cvtepi64_storeu_epi16(void *__P, __mmask8 __M, __m512i __A) {
4840   // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi16
4841   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.512
4842   return _mm512_mask_cvtepi64_storeu_epi16(__P, __M, __A);
4843 }
4844 
test_mm512_extracti32x4_epi32(__m512i __A)4845 __m128i test_mm512_extracti32x4_epi32(__m512i __A) {
4846   // CHECK-LABEL: @test_mm512_extracti32x4_epi32
4847   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
4848   return _mm512_extracti32x4_epi32(__A, 3);
4849 }
4850 
test_mm512_mask_extracti32x4_epi32(__m128i __W,__mmask8 __U,__m512i __A)4851 __m128i test_mm512_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m512i __A) {
4852   // CHECK-LABEL: @test_mm512_mask_extracti32x4_epi32
4853   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
4854   return _mm512_mask_extracti32x4_epi32(__W, __U, __A, 3);
4855 }
4856 
test_mm512_maskz_extracti32x4_epi32(__mmask8 __U,__m512i __A)4857 __m128i test_mm512_maskz_extracti32x4_epi32(__mmask8 __U, __m512i __A) {
4858   // CHECK-LABEL: @test_mm512_maskz_extracti32x4_epi32
4859   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
4860   return _mm512_maskz_extracti32x4_epi32(__U, __A, 3);
4861 }
4862 
test_mm512_extracti64x4_epi64(__m512i __A)4863 __m256i test_mm512_extracti64x4_epi64(__m512i __A) {
4864   // CHECK-LABEL: @test_mm512_extracti64x4_epi64
4865   // CHECK: @llvm.x86.avx512.mask.vextracti64x4
4866   return _mm512_extracti64x4_epi64(__A, 1);
4867 }
4868 
test_mm512_mask_extracti64x4_epi64(__m256i __W,__mmask8 __U,__m512i __A)4869 __m256i test_mm512_mask_extracti64x4_epi64(__m256i __W, __mmask8 __U, __m512i __A) {
4870   // CHECK-LABEL: @test_mm512_mask_extracti64x4_epi64
4871   // CHECK: @llvm.x86.avx512.mask.vextracti64x4
4872   return _mm512_mask_extracti64x4_epi64(__W, __U, __A, 1);
4873 }
4874 
test_mm512_maskz_extracti64x4_epi64(__mmask8 __U,__m512i __A)4875 __m256i test_mm512_maskz_extracti64x4_epi64(__mmask8 __U, __m512i __A) {
4876   // CHECK-LABEL: @test_mm512_maskz_extracti64x4_epi64
4877   // CHECK: @llvm.x86.avx512.mask.vextracti64x4
4878   return _mm512_maskz_extracti64x4_epi64(__U, __A, 1);
4879 }
4880 
test_mm512_insertf64x4(__m512d __A,__m256d __B)4881 __m512d test_mm512_insertf64x4(__m512d __A, __m256d __B) {
4882   // CHECK-LABEL: @test_mm512_insertf64x4
4883   // CHECK: @llvm.x86.avx512.mask.insertf64x4
4884   return _mm512_insertf64x4(__A, __B, 1);
4885 }
4886 
test_mm512_mask_insertf64x4(__m512d __W,__mmask8 __U,__m512d __A,__m256d __B)4887 __m512d test_mm512_mask_insertf64x4(__m512d __W, __mmask8 __U, __m512d __A, __m256d __B) {
4888   // CHECK-LABEL: @test_mm512_mask_insertf64x4
4889   // CHECK: @llvm.x86.avx512.mask.insertf64x4
4890   return _mm512_mask_insertf64x4(__W, __U, __A, __B, 1);
4891 }
4892 
test_mm512_maskz_insertf64x4(__mmask8 __U,__m512d __A,__m256d __B)4893 __m512d test_mm512_maskz_insertf64x4(__mmask8 __U, __m512d __A, __m256d __B) {
4894   // CHECK-LABEL: @test_mm512_maskz_insertf64x4
4895   // CHECK: @llvm.x86.avx512.mask.insertf64x4
4896   return _mm512_maskz_insertf64x4(__U, __A, __B, 1);
4897 }
4898 
test_mm512_inserti64x4(__m512i __A,__m256i __B)4899 __m512i test_mm512_inserti64x4(__m512i __A, __m256i __B) {
4900   // CHECK-LABEL: @test_mm512_inserti64x4
4901   // CHECK: @llvm.x86.avx512.mask.inserti64x4
4902   return _mm512_inserti64x4(__A, __B, 1);
4903 }
4904 
test_mm512_mask_inserti64x4(__m512i __W,__mmask8 __U,__m512i __A,__m256i __B)4905 __m512i test_mm512_mask_inserti64x4(__m512i __W, __mmask8 __U, __m512i __A, __m256i __B) {
4906   // CHECK-LABEL: @test_mm512_mask_inserti64x4
4907   // CHECK: @llvm.x86.avx512.mask.inserti64x4
4908   return _mm512_mask_inserti64x4(__W, __U, __A, __B, 1);
4909 }
4910 
test_mm512_maskz_inserti64x4(__mmask8 __U,__m512i __A,__m256i __B)4911 __m512i test_mm512_maskz_inserti64x4(__mmask8 __U, __m512i __A, __m256i __B) {
4912   // CHECK-LABEL: @test_mm512_maskz_inserti64x4
4913   // CHECK: @llvm.x86.avx512.mask.inserti64x4
4914   return _mm512_maskz_inserti64x4(__U, __A, __B, 1);
4915 }
4916 
test_mm512_insertf32x4(__m512 __A,__m128 __B)4917 __m512 test_mm512_insertf32x4(__m512 __A, __m128 __B) {
4918   // CHECK-LABEL: @test_mm512_insertf32x4
4919   // CHECK: @llvm.x86.avx512.mask.insertf32x4
4920   return _mm512_insertf32x4(__A, __B, 1);
4921 }
4922 
test_mm512_mask_insertf32x4(__m512 __W,__mmask16 __U,__m512 __A,__m128 __B)4923 __m512 test_mm512_mask_insertf32x4(__m512 __W, __mmask16 __U, __m512 __A, __m128 __B) {
4924   // CHECK-LABEL: @test_mm512_mask_insertf32x4
4925   // CHECK: @llvm.x86.avx512.mask.insertf32x4
4926   return _mm512_mask_insertf32x4(__W, __U, __A, __B, 1);
4927 }
4928 
test_mm512_maskz_insertf32x4(__mmask16 __U,__m512 __A,__m128 __B)4929 __m512 test_mm512_maskz_insertf32x4(__mmask16 __U, __m512 __A, __m128 __B) {
4930   // CHECK-LABEL: @test_mm512_maskz_insertf32x4
4931   // CHECK: @llvm.x86.avx512.mask.insertf32x4
4932   return _mm512_maskz_insertf32x4(__U, __A, __B, 1);
4933 }
4934 
test_mm512_inserti32x4(__m512i __A,__m128i __B)4935 __m512i test_mm512_inserti32x4(__m512i __A, __m128i __B) {
4936   // CHECK-LABEL: @test_mm512_inserti32x4
4937   // CHECK: @llvm.x86.avx512.mask.inserti32x4
4938   return _mm512_inserti32x4(__A, __B, 1);
4939 }
4940 
test_mm512_mask_inserti32x4(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)4941 __m512i test_mm512_mask_inserti32x4(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
4942   // CHECK-LABEL: @test_mm512_mask_inserti32x4
4943   // CHECK: @llvm.x86.avx512.mask.inserti32x4
4944   return _mm512_mask_inserti32x4(__W, __U, __A, __B, 1);
4945 }
4946 
test_mm512_maskz_inserti32x4(__mmask16 __U,__m512i __A,__m128i __B)4947 __m512i test_mm512_maskz_inserti32x4(__mmask16 __U, __m512i __A, __m128i __B) {
4948   // CHECK-LABEL: @test_mm512_maskz_inserti32x4
4949   // CHECK: @llvm.x86.avx512.mask.inserti32x4
4950   return _mm512_maskz_inserti32x4(__U, __A, __B, 1);
4951 }
4952 
test_mm512_getmant_round_pd(__m512d __A)4953 __m512d test_mm512_getmant_round_pd(__m512d __A) {
4954   // CHECK-LABEL: @test_mm512_getmant_round_pd
4955   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4956   return _mm512_getmant_round_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
4957 }
4958 
test_mm512_mask_getmant_round_pd(__m512d __W,__mmask8 __U,__m512d __A)4959 __m512d test_mm512_mask_getmant_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
4960   // CHECK-LABEL: @test_mm512_mask_getmant_round_pd
4961   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4962   return _mm512_mask_getmant_round_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
4963 }
4964 
test_mm512_maskz_getmant_round_pd(__mmask8 __U,__m512d __A)4965 __m512d test_mm512_maskz_getmant_round_pd(__mmask8 __U, __m512d __A) {
4966   // CHECK-LABEL: @test_mm512_maskz_getmant_round_pd
4967   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4968   return _mm512_maskz_getmant_round_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
4969 }
4970 
test_mm512_getmant_pd(__m512d __A)4971 __m512d test_mm512_getmant_pd(__m512d __A) {
4972   // CHECK-LABEL: @test_mm512_getmant_pd
4973   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4974   return _mm512_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
4975 }
4976 
test_mm512_mask_getmant_pd(__m512d __W,__mmask8 __U,__m512d __A)4977 __m512d test_mm512_mask_getmant_pd(__m512d __W, __mmask8 __U, __m512d __A) {
4978   // CHECK-LABEL: @test_mm512_mask_getmant_pd
4979   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4980   return _mm512_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
4981 }
4982 
test_mm512_maskz_getmant_pd(__mmask8 __U,__m512d __A)4983 __m512d test_mm512_maskz_getmant_pd(__mmask8 __U, __m512d __A) {
4984   // CHECK-LABEL: @test_mm512_maskz_getmant_pd
4985   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
4986   return _mm512_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
4987 }
4988 
test_mm512_getmant_round_ps(__m512 __A)4989 __m512 test_mm512_getmant_round_ps(__m512 __A) {
4990   // CHECK-LABEL: @test_mm512_getmant_round_ps
4991   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
4992   return _mm512_getmant_round_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
4993 }
4994 
test_mm512_mask_getmant_round_ps(__m512 __W,__mmask16 __U,__m512 __A)4995 __m512 test_mm512_mask_getmant_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
4996   // CHECK-LABEL: @test_mm512_mask_getmant_round_ps
4997   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
4998   return _mm512_mask_getmant_round_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
4999 }
5000 
test_mm512_maskz_getmant_round_ps(__mmask16 __U,__m512 __A)5001 __m512 test_mm512_maskz_getmant_round_ps(__mmask16 __U, __m512 __A) {
5002   // CHECK-LABEL: @test_mm512_maskz_getmant_round_ps
5003   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5004   return _mm512_maskz_getmant_round_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
5005 }
5006 
test_mm512_getmant_ps(__m512 __A)5007 __m512 test_mm512_getmant_ps(__m512 __A) {
5008   // CHECK-LABEL: @test_mm512_getmant_ps
5009   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5010   return _mm512_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5011 }
5012 
test_mm512_mask_getmant_ps(__m512 __W,__mmask16 __U,__m512 __A)5013 __m512 test_mm512_mask_getmant_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5014   // CHECK-LABEL: @test_mm512_mask_getmant_ps
5015   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5016   return _mm512_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5017 }
5018 
test_mm512_maskz_getmant_ps(__mmask16 __U,__m512 __A)5019 __m512 test_mm512_maskz_getmant_ps(__mmask16 __U, __m512 __A) {
5020   // CHECK-LABEL: @test_mm512_maskz_getmant_ps
5021   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5022   return _mm512_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5023 }
5024 
test_mm512_getexp_round_pd(__m512d __A)5025 __m512d test_mm512_getexp_round_pd(__m512d __A) {
5026   // CHECK-LABEL: @test_mm512_getexp_round_pd
5027   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5028   return _mm512_getexp_round_pd(__A, _MM_FROUND_CUR_DIRECTION);
5029 }
5030 
test_mm512_mask_getexp_round_pd(__m512d __W,__mmask8 __U,__m512d __A)5031 __m512d test_mm512_mask_getexp_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
5032   // CHECK-LABEL: @test_mm512_mask_getexp_round_pd
5033   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5034   return _mm512_mask_getexp_round_pd(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
5035 }
5036 
test_mm512_maskz_getexp_round_pd(__mmask8 __U,__m512d __A)5037 __m512d test_mm512_maskz_getexp_round_pd(__mmask8 __U, __m512d __A) {
5038   // CHECK-LABEL: @test_mm512_maskz_getexp_round_pd
5039   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5040   return _mm512_maskz_getexp_round_pd(__U, __A, _MM_FROUND_CUR_DIRECTION);
5041 }
5042 
test_mm512_getexp_pd(__m512d __A)5043 __m512d test_mm512_getexp_pd(__m512d __A) {
5044   // CHECK-LABEL: @test_mm512_getexp_pd
5045   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5046   return _mm512_getexp_pd(__A);
5047 }
5048 
test_mm512_mask_getexp_pd(__m512d __W,__mmask8 __U,__m512d __A)5049 __m512d test_mm512_mask_getexp_pd(__m512d __W, __mmask8 __U, __m512d __A) {
5050   // CHECK-LABEL: @test_mm512_mask_getexp_pd
5051   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5052   return _mm512_mask_getexp_pd(__W, __U, __A);
5053 }
5054 
test_mm512_maskz_getexp_pd(__mmask8 __U,__m512d __A)5055 __m512d test_mm512_maskz_getexp_pd(__mmask8 __U, __m512d __A) {
5056   // CHECK-LABEL: @test_mm512_maskz_getexp_pd
5057   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5058   return _mm512_maskz_getexp_pd(__U, __A);
5059 }
5060 
test_mm512_getexp_round_ps(__m512 __A)5061 __m512 test_mm512_getexp_round_ps(__m512 __A) {
5062   // CHECK-LABEL: @test_mm512_getexp_round_ps
5063   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5064   return _mm512_getexp_round_ps(__A, _MM_FROUND_CUR_DIRECTION);
5065 }
5066 
test_mm512_mask_getexp_round_ps(__m512 __W,__mmask16 __U,__m512 __A)5067 __m512 test_mm512_mask_getexp_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5068   // CHECK-LABEL: @test_mm512_mask_getexp_round_ps
5069   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5070   return _mm512_mask_getexp_round_ps(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
5071 }
5072 
test_mm512_maskz_getexp_round_ps(__mmask16 __U,__m512 __A)5073 __m512 test_mm512_maskz_getexp_round_ps(__mmask16 __U, __m512 __A) {
5074   // CHECK-LABEL: @test_mm512_maskz_getexp_round_ps
5075   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5076   return _mm512_maskz_getexp_round_ps(__U, __A, _MM_FROUND_CUR_DIRECTION);
5077 }
5078 
test_mm512_getexp_ps(__m512 __A)5079 __m512 test_mm512_getexp_ps(__m512 __A) {
5080   // CHECK-LABEL: @test_mm512_getexp_ps
5081   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5082   return _mm512_getexp_ps(__A);
5083 }
5084 
test_mm512_mask_getexp_ps(__m512 __W,__mmask16 __U,__m512 __A)5085 __m512 test_mm512_mask_getexp_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5086   // CHECK-LABEL: @test_mm512_mask_getexp_ps
5087   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5088   return _mm512_mask_getexp_ps(__W, __U, __A);
5089 }
5090 
test_mm512_maskz_getexp_ps(__mmask16 __U,__m512 __A)5091 __m512 test_mm512_maskz_getexp_ps(__mmask16 __U, __m512 __A) {
5092   // CHECK-LABEL: @test_mm512_maskz_getexp_ps
5093   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5094   return _mm512_maskz_getexp_ps(__U, __A);
5095 }
5096 
test_mm512_i64gather_ps(__m512i __index,void const * __addr)5097 __m256 test_mm512_i64gather_ps(__m512i __index, void const *__addr) {
5098   // CHECK-LABEL: @test_mm512_i64gather_ps
5099   // CHECK: @llvm.x86.avx512.gather.qps.512
5100   return _mm512_i64gather_ps(__index, __addr, 2);
5101 }
5102 
test_mm512_mask_i64gather_ps(__m256 __v1_old,__mmask8 __mask,__m512i __index,void const * __addr)5103 __m256 test_mm512_mask_i64gather_ps(__m256 __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5104   // CHECK-LABEL: @test_mm512_mask_i64gather_ps
5105   // CHECK: @llvm.x86.avx512.gather.qps.512
5106   return _mm512_mask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
5107 }
5108 
test_mm512_i64gather_epi32(__m512i __index,void const * __addr)5109 __m256i test_mm512_i64gather_epi32(__m512i __index, void const *__addr) {
5110   // CHECK-LABEL: @test_mm512_i64gather_epi32
5111   // CHECK: @llvm.x86.avx512.gather.qpi.512
5112   return _mm512_i64gather_epi32(__index, __addr, 2);
5113 }
5114 
test_mm512_mask_i64gather_epi32(__m256i __v1_old,__mmask8 __mask,__m512i __index,void const * __addr)5115 __m256i test_mm512_mask_i64gather_epi32(__m256i __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5116   // CHECK-LABEL: @test_mm512_mask_i64gather_epi32
5117   // CHECK: @llvm.x86.avx512.gather.qpi.512
5118   return _mm512_mask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
5119 }
5120 
test_mm512_i64gather_pd(__m512i __index,void const * __addr)5121 __m512d test_mm512_i64gather_pd(__m512i __index, void const *__addr) {
5122   // CHECK-LABEL: @test_mm512_i64gather_pd
5123   // CHECK: @llvm.x86.avx512.gather.qpd.512
5124   return _mm512_i64gather_pd(__index, __addr, 2);
5125 }
5126 
test_mm512_mask_i64gather_pd(__m512d __v1_old,__mmask8 __mask,__m512i __index,void const * __addr)5127 __m512d test_mm512_mask_i64gather_pd(__m512d __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5128   // CHECK-LABEL: @test_mm512_mask_i64gather_pd
5129   // CHECK: @llvm.x86.avx512.gather.qpd.512
5130   return _mm512_mask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
5131 }
5132 
test_mm512_i64gather_epi64(__m512i __index,void const * __addr)5133 __m512i test_mm512_i64gather_epi64(__m512i __index, void const *__addr) {
5134   // CHECK-LABEL: @test_mm512_i64gather_epi64
5135   // CHECK: @llvm.x86.avx512.gather.qpq.512
5136   return _mm512_i64gather_epi64(__index, __addr, 2);
5137 }
5138 
test_mm512_mask_i64gather_epi64(__m512i __v1_old,__mmask8 __mask,__m512i __index,void const * __addr)5139 __m512i test_mm512_mask_i64gather_epi64(__m512i __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5140   // CHECK-LABEL: @test_mm512_mask_i64gather_epi64
5141   // CHECK: @llvm.x86.avx512.gather.qpq.512
5142   return _mm512_mask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
5143 }
5144 
test_mm512_i32gather_ps(__m512i __index,void const * __addr)5145 __m512 test_mm512_i32gather_ps(__m512i __index, void const *__addr) {
5146   // CHECK-LABEL: @test_mm512_i32gather_ps
5147   // CHECK: @llvm.x86.avx512.gather.dps.512
5148   return _mm512_i32gather_ps(__index, __addr, 2);
5149 }
5150 
test_mm512_mask_i32gather_ps(__m512 v1_old,__mmask16 __mask,__m512i __index,void const * __addr)5151 __m512 test_mm512_mask_i32gather_ps(__m512 v1_old, __mmask16 __mask, __m512i __index, void const *__addr) {
5152   // CHECK-LABEL: @test_mm512_mask_i32gather_ps
5153   // CHECK: @llvm.x86.avx512.gather.dps.512
5154   return _mm512_mask_i32gather_ps(v1_old, __mask, __index, __addr, 2);
5155 }
5156 
test_mm512_i32gather_epi32(__m512i __index,void const * __addr)5157 __m512i test_mm512_i32gather_epi32(__m512i __index, void const *__addr) {
5158   // CHECK-LABEL: @test_mm512_i32gather_epi32
5159   // CHECK: @llvm.x86.avx512.gather.dpi.512
5160   return _mm512_i32gather_epi32(__index, __addr, 2);
5161 }
5162 
test_mm512_mask_i32gather_epi32(__m512i __v1_old,__mmask16 __mask,__m512i __index,void const * __addr)5163 __m512i test_mm512_mask_i32gather_epi32(__m512i __v1_old, __mmask16 __mask, __m512i __index, void const *__addr) {
5164   // CHECK-LABEL: @test_mm512_mask_i32gather_epi32
5165   // CHECK: @llvm.x86.avx512.gather.dpi.512
5166   return _mm512_mask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
5167 }
5168 
test_mm512_i32gather_pd(__m256i __index,void const * __addr)5169 __m512d test_mm512_i32gather_pd(__m256i __index, void const *__addr) {
5170   // CHECK-LABEL: @test_mm512_i32gather_pd
5171   // CHECK: @llvm.x86.avx512.gather.dpd.512
5172   return _mm512_i32gather_pd(__index, __addr, 2);
5173 }
5174 
test_mm512_mask_i32gather_pd(__m512d __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)5175 __m512d test_mm512_mask_i32gather_pd(__m512d __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
5176   // CHECK-LABEL: @test_mm512_mask_i32gather_pd
5177   // CHECK: @llvm.x86.avx512.gather.dpd.512
5178   return _mm512_mask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
5179 }
5180 
test_mm512_i32gather_epi64(__m256i __index,void const * __addr)5181 __m512i test_mm512_i32gather_epi64(__m256i __index, void const *__addr) {
5182   // CHECK-LABEL: @test_mm512_i32gather_epi64
5183   // CHECK: @llvm.x86.avx512.gather.dpq.512
5184   return _mm512_i32gather_epi64(__index, __addr, 2);
5185 }
5186 
test_mm512_mask_i32gather_epi64(__m512i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)5187 __m512i test_mm512_mask_i32gather_epi64(__m512i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
5188   // CHECK-LABEL: @test_mm512_mask_i32gather_epi64
5189   // CHECK: @llvm.x86.avx512.gather.dpq.512
5190   return _mm512_mask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
5191 }
5192 
test_mm512_i64scatter_ps(void * __addr,__m512i __index,__m256 __v1)5193 void test_mm512_i64scatter_ps(void *__addr, __m512i __index, __m256 __v1) {
5194   // CHECK-LABEL: @test_mm512_i64scatter_ps
5195   // CHECK: @llvm.x86.avx512.scatter.qps.512
5196   return _mm512_i64scatter_ps(__addr, __index, __v1, 2);
5197 }
5198 
test_mm512_mask_i64scatter_ps(void * __addr,__mmask8 __mask,__m512i __index,__m256 __v1)5199 void test_mm512_mask_i64scatter_ps(void *__addr, __mmask8 __mask, __m512i __index, __m256 __v1) {
5200   // CHECK-LABEL: @test_mm512_mask_i64scatter_ps
5201   // CHECK: @llvm.x86.avx512.scatter.qps.512
5202   return _mm512_mask_i64scatter_ps(__addr, __mask, __index, __v1, 2);
5203 }
5204 
test_mm512_i64scatter_epi32(void * __addr,__m512i __index,__m256i __v1)5205 void test_mm512_i64scatter_epi32(void *__addr, __m512i __index, __m256i __v1) {
5206   // CHECK-LABEL: @test_mm512_i64scatter_epi32
5207   // CHECK: @llvm.x86.avx512.scatter.qpi.512
5208   return _mm512_i64scatter_epi32(__addr, __index, __v1, 2);
5209 }
5210 
test_mm512_mask_i64scatter_epi32(void * __addr,__mmask8 __mask,__m512i __index,__m256i __v1)5211 void test_mm512_mask_i64scatter_epi32(void *__addr, __mmask8 __mask, __m512i __index, __m256i __v1) {
5212   // CHECK-LABEL: @test_mm512_mask_i64scatter_epi32
5213   // CHECK: @llvm.x86.avx512.scatter.qpi.512
5214   return _mm512_mask_i64scatter_epi32(__addr, __mask, __index, __v1, 2);
5215 }
5216 
test_mm512_i64scatter_pd(void * __addr,__m512i __index,__m512d __v1)5217 void test_mm512_i64scatter_pd(void *__addr, __m512i __index, __m512d __v1) {
5218   // CHECK-LABEL: @test_mm512_i64scatter_pd
5219   // CHECK: @llvm.x86.avx512.scatter.qpd.512
5220   return _mm512_i64scatter_pd(__addr, __index, __v1, 2);
5221 }
5222 
test_mm512_mask_i64scatter_pd(void * __addr,__mmask8 __mask,__m512i __index,__m512d __v1)5223 void test_mm512_mask_i64scatter_pd(void *__addr, __mmask8 __mask, __m512i __index, __m512d __v1) {
5224   // CHECK-LABEL: @test_mm512_mask_i64scatter_pd
5225   // CHECK: @llvm.x86.avx512.scatter.qpd.512
5226   return _mm512_mask_i64scatter_pd(__addr, __mask, __index, __v1, 2);
5227 }
5228 
test_mm512_i64scatter_epi64(void * __addr,__m512i __index,__m512i __v1)5229 void test_mm512_i64scatter_epi64(void *__addr, __m512i __index, __m512i __v1) {
5230   // CHECK-LABEL: @test_mm512_i64scatter_epi64
5231   // CHECK: @llvm.x86.avx512.scatter.qpq.512
5232   return _mm512_i64scatter_epi64(__addr, __index, __v1, 2);
5233 }
5234 
test_mm512_mask_i64scatter_epi64(void * __addr,__mmask8 __mask,__m512i __index,__m512i __v1)5235 void test_mm512_mask_i64scatter_epi64(void *__addr, __mmask8 __mask, __m512i __index, __m512i __v1) {
5236   // CHECK-LABEL: @test_mm512_mask_i64scatter_epi64
5237   // CHECK: @llvm.x86.avx512.scatter.qpq.512
5238   return _mm512_mask_i64scatter_epi64(__addr, __mask, __index, __v1, 2);
5239 }
5240 
test_mm512_i32scatter_ps(void * __addr,__m512i __index,__m512 __v1)5241 void test_mm512_i32scatter_ps(void *__addr, __m512i __index, __m512 __v1) {
5242   // CHECK-LABEL: @test_mm512_i32scatter_ps
5243   // CHECK: @llvm.x86.avx512.scatter.dps.512
5244   return _mm512_i32scatter_ps(__addr, __index, __v1, 2);
5245 }
5246 
test_mm512_mask_i32scatter_ps(void * __addr,__mmask16 __mask,__m512i __index,__m512 __v1)5247 void test_mm512_mask_i32scatter_ps(void *__addr, __mmask16 __mask, __m512i __index, __m512 __v1) {
5248   // CHECK-LABEL: @test_mm512_mask_i32scatter_ps
5249   // CHECK: @llvm.x86.avx512.scatter.dps.512
5250   return _mm512_mask_i32scatter_ps(__addr, __mask, __index, __v1, 2);
5251 }
5252 
test_mm512_i32scatter_epi32(void * __addr,__m512i __index,__m512i __v1)5253 void test_mm512_i32scatter_epi32(void *__addr, __m512i __index, __m512i __v1) {
5254   // CHECK-LABEL: @test_mm512_i32scatter_epi32
5255   // CHECK: @llvm.x86.avx512.scatter.dpi.512
5256   return _mm512_i32scatter_epi32(__addr, __index, __v1, 2);
5257 }
5258 
test_mm512_mask_i32scatter_epi32(void * __addr,__mmask16 __mask,__m512i __index,__m512i __v1)5259 void test_mm512_mask_i32scatter_epi32(void *__addr, __mmask16 __mask, __m512i __index, __m512i __v1) {
5260   // CHECK-LABEL: @test_mm512_mask_i32scatter_epi32
5261   // CHECK: @llvm.x86.avx512.scatter.dpi.512
5262   return _mm512_mask_i32scatter_epi32(__addr, __mask, __index, __v1, 2);
5263 }
5264 
test_mm512_i32scatter_pd(void * __addr,__m256i __index,__m512d __v1)5265 void test_mm512_i32scatter_pd(void *__addr, __m256i __index, __m512d __v1) {
5266   // CHECK-LABEL: @test_mm512_i32scatter_pd
5267   // CHECK: @llvm.x86.avx512.scatter.dpd.512
5268   return _mm512_i32scatter_pd(__addr, __index, __v1, 2);
5269 }
5270 
test_mm512_mask_i32scatter_pd(void * __addr,__mmask8 __mask,__m256i __index,__m512d __v1)5271 void test_mm512_mask_i32scatter_pd(void *__addr, __mmask8 __mask, __m256i __index, __m512d __v1) {
5272   // CHECK-LABEL: @test_mm512_mask_i32scatter_pd
5273   // CHECK: @llvm.x86.avx512.scatter.dpd.512
5274   return _mm512_mask_i32scatter_pd(__addr, __mask, __index, __v1, 2);
5275 }
5276 
test_mm512_i32scatter_epi64(void * __addr,__m256i __index,__m512i __v1)5277 void test_mm512_i32scatter_epi64(void *__addr, __m256i __index, __m512i __v1) {
5278   // CHECK-LABEL: @test_mm512_i32scatter_epi64
5279   // CHECK: @llvm.x86.avx512.scatter.dpq.512
5280   return _mm512_i32scatter_epi64(__addr, __index, __v1, 2);
5281 }
5282 
test_mm512_mask_i32scatter_epi64(void * __addr,__mmask8 __mask,__m256i __index,__m512i __v1)5283 void test_mm512_mask_i32scatter_epi64(void *__addr, __mmask8 __mask, __m256i __index, __m512i __v1) {
5284   // CHECK-LABEL: @test_mm512_mask_i32scatter_epi64
5285   // CHECK: @llvm.x86.avx512.scatter.dpq.512
5286   return _mm512_mask_i32scatter_epi64(__addr, __mask, __index, __v1, 2);
5287 }
5288 
test_mm_mask_rsqrt14_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5289 __m128d test_mm_mask_rsqrt14_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5290   // CHECK-LABEL: @test_mm_mask_rsqrt14_sd
5291   // CHECK: @llvm.x86.avx512.rsqrt14.sd
5292   return _mm_mask_rsqrt14_sd(__W, __U, __A, __B);
5293 }
5294 
test_mm_maskz_rsqrt14_sd(__mmask8 __U,__m128d __A,__m128d __B)5295 __m128d test_mm_maskz_rsqrt14_sd(__mmask8 __U, __m128d __A, __m128d __B){
5296   // CHECK-LABEL: @test_mm_maskz_rsqrt14_sd
5297   // CHECK: @llvm.x86.avx512.rsqrt14.sd
5298   return _mm_maskz_rsqrt14_sd(__U, __A, __B);
5299 }
5300 
test_mm_mask_rsqrt14_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5301 __m128 test_mm_mask_rsqrt14_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5302   // CHECK-LABEL: @test_mm_mask_rsqrt14_ss
5303   // CHECK: @llvm.x86.avx512.rsqrt14.ss
5304   return _mm_mask_rsqrt14_ss(__W, __U, __A, __B);
5305 }
5306 
test_mm_maskz_rsqrt14_ss(__mmask8 __U,__m128 __A,__m128 __B)5307 __m128 test_mm_maskz_rsqrt14_ss(__mmask8 __U, __m128 __A, __m128 __B){
5308   // CHECK-LABEL: @test_mm_maskz_rsqrt14_ss
5309   // CHECK: @llvm.x86.avx512.rsqrt14.ss
5310   return _mm_maskz_rsqrt14_ss(__U, __A, __B);
5311 }
5312 
test_mm512_mask_rcp14_pd(__m512d __W,__mmask8 __U,__m512d __A)5313 __m512d test_mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A)
5314 {
5315   // CHECK-LABEL: @test_mm512_mask_rcp14_pd
5316   // CHECK: @llvm.x86.avx512.rcp14.pd.512
5317   return _mm512_mask_rcp14_pd (__W,__U,__A);
5318 }
5319 
test_mm512_maskz_rcp14_pd(__mmask8 __U,__m512d __A)5320 __m512d test_mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A)
5321 {
5322   // CHECK-LABEL: @test_mm512_maskz_rcp14_pd
5323   // CHECK: @llvm.x86.avx512.rcp14.pd.512
5324   return _mm512_maskz_rcp14_pd (__U,__A);
5325 }
5326 
test_mm512_mask_rcp14_ps(__m512 __W,__mmask16 __U,__m512 __A)5327 __m512 test_mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A)
5328 {
5329   // CHECK-LABEL: @test_mm512_mask_rcp14_ps
5330   // CHECK: @llvm.x86.avx512.rcp14.ps.512
5331   return _mm512_mask_rcp14_ps (__W,__U,__A);
5332 }
5333 
test_mm512_maskz_rcp14_ps(__mmask16 __U,__m512 __A)5334 __m512 test_mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A)
5335 {
5336   // CHECK-LABEL: @test_mm512_maskz_rcp14_ps
5337   // CHECK: @llvm.x86.avx512.rcp14.ps.512
5338   return _mm512_maskz_rcp14_ps (__U,__A);
5339 }
5340 
test_mm_mask_rcp14_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5341 __m128d test_mm_mask_rcp14_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5342   // CHECK-LABEL: @test_mm_mask_rcp14_sd
5343   // CHECK: @llvm.x86.avx512.rcp14.sd
5344   return _mm_mask_rcp14_sd(__W, __U, __A, __B);
5345 }
5346 
test_mm_maskz_rcp14_sd(__mmask8 __U,__m128d __A,__m128d __B)5347 __m128d test_mm_maskz_rcp14_sd(__mmask8 __U, __m128d __A, __m128d __B){
5348   // CHECK-LABEL: @test_mm_maskz_rcp14_sd
5349   // CHECK: @llvm.x86.avx512.rcp14.sd
5350   return _mm_maskz_rcp14_sd(__U, __A, __B);
5351 }
5352 
test_mm_mask_rcp14_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5353 __m128 test_mm_mask_rcp14_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5354   // CHECK-LABEL: @test_mm_mask_rcp14_ss
5355   // CHECK: @llvm.x86.avx512.rcp14.ss
5356   return _mm_mask_rcp14_ss(__W, __U, __A, __B);
5357 }
5358 
test_mm_maskz_rcp14_ss(__mmask8 __U,__m128 __A,__m128 __B)5359 __m128 test_mm_maskz_rcp14_ss(__mmask8 __U, __m128 __A, __m128 __B){
5360   // CHECK-LABEL: @test_mm_maskz_rcp14_ss
5361   // CHECK: @llvm.x86.avx512.rcp14.ss
5362   return _mm_maskz_rcp14_ss(__U, __A, __B);
5363 }
5364 
test_mm_mask_getexp_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5365 __m128d test_mm_mask_getexp_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5366   // CHECK-LABEL: @test_mm_mask_getexp_sd
5367   // CHECK: @llvm.x86.avx512.mask.getexp.sd
5368   return _mm_mask_getexp_sd(__W, __U, __A, __B);
5369 }
5370 
test_mm_mask_getexp_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5371 __m128d test_mm_mask_getexp_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5372   // CHECK-LABEL: @test_mm_mask_getexp_round_sd
5373   // CHECK: @llvm.x86.avx512.mask.getexp.sd
5374   return _mm_mask_getexp_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5375 }
5376 
test_mm_maskz_getexp_sd(__mmask8 __U,__m128d __A,__m128d __B)5377 __m128d test_mm_maskz_getexp_sd(__mmask8 __U, __m128d __A, __m128d __B){
5378   // CHECK-LABEL: @test_mm_maskz_getexp_sd
5379   // CHECK: @llvm.x86.avx512.mask.getexp.sd
5380   return _mm_maskz_getexp_sd(__U, __A, __B);
5381 }
5382 
test_mm_maskz_getexp_round_sd(__mmask8 __U,__m128d __A,__m128d __B)5383 __m128d test_mm_maskz_getexp_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
5384   // CHECK-LABEL: @test_mm_maskz_getexp_round_sd
5385   // CHECK: @llvm.x86.avx512.mask.getexp.sd
5386   return _mm_maskz_getexp_round_sd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5387 }
5388 
test_mm_mask_getexp_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5389 __m128 test_mm_mask_getexp_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5390   // CHECK-LABEL: @test_mm_mask_getexp_ss
5391   // CHECK: @llvm.x86.avx512.mask.getexp.ss
5392   return _mm_mask_getexp_ss(__W, __U, __A, __B);
5393 }
5394 
test_mm_mask_getexp_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5395 __m128 test_mm_mask_getexp_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5396   // CHECK-LABEL: @test_mm_mask_getexp_round_ss
5397   // CHECK: @llvm.x86.avx512.mask.getexp.ss
5398   return _mm_mask_getexp_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5399 }
5400 
test_mm_maskz_getexp_ss(__mmask8 __U,__m128 __A,__m128 __B)5401 __m128 test_mm_maskz_getexp_ss(__mmask8 __U, __m128 __A, __m128 __B){
5402   // CHECK-LABEL: @test_mm_maskz_getexp_ss
5403   // CHECK: @llvm.x86.avx512.mask.getexp.ss
5404   return _mm_maskz_getexp_ss(__U, __A, __B);
5405 }
5406 
test_mm_maskz_getexp_round_ss(__mmask8 __U,__m128 __A,__m128 __B)5407 __m128 test_mm_maskz_getexp_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
5408   // CHECK-LABEL: @test_mm_maskz_getexp_round_ss
5409   // CHECK: @llvm.x86.avx512.mask.getexp.ss
5410   return _mm_maskz_getexp_round_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5411 }
5412 
test_mm_mask_getmant_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5413 __m128d test_mm_mask_getmant_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5414   // CHECK-LABEL: @test_mm_mask_getmant_sd
5415   // CHECK: @llvm.x86.avx512.mask.getmant.sd
5416   return _mm_mask_getmant_sd(__W, __U, __A, __B, 1, 2);
5417 }
5418 
test_mm_mask_getmant_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5419 __m128d test_mm_mask_getmant_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5420   // CHECK-LABEL: @test_mm_mask_getmant_round_sd
5421   // CHECK: @llvm.x86.avx512.mask.getmant.sd
5422   return _mm_mask_getmant_round_sd(__W, __U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5423 }
5424 
test_mm_maskz_getmant_sd(__mmask8 __U,__m128d __A,__m128d __B)5425 __m128d test_mm_maskz_getmant_sd(__mmask8 __U, __m128d __A, __m128d __B){
5426   // CHECK-LABEL: @test_mm_maskz_getmant_sd
5427   // CHECK: @llvm.x86.avx512.mask.getmant.sd
5428   return _mm_maskz_getmant_sd(__U, __A, __B, 1, 2);
5429 }
5430 
test_mm_maskz_getmant_round_sd(__mmask8 __U,__m128d __A,__m128d __B)5431 __m128d test_mm_maskz_getmant_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
5432   // CHECK-LABEL: @test_mm_maskz_getmant_round_sd
5433   // CHECK: @llvm.x86.avx512.mask.getmant.sd
5434   return _mm_maskz_getmant_round_sd(__U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5435 }
5436 
test_mm_mask_getmant_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5437 __m128 test_mm_mask_getmant_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5438   // CHECK-LABEL: @test_mm_mask_getmant_ss
5439   // CHECK: @llvm.x86.avx512.mask.getmant.ss
5440   return _mm_mask_getmant_ss(__W, __U, __A, __B, 1, 2);
5441 }
5442 
test_mm_mask_getmant_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5443 __m128 test_mm_mask_getmant_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5444   // CHECK-LABEL: @test_mm_mask_getmant_round_ss
5445   // CHECK: @llvm.x86.avx512.mask.getmant.ss
5446   return _mm_mask_getmant_round_ss(__W, __U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5447 }
5448 
test_mm_maskz_getmant_ss(__mmask8 __U,__m128 __A,__m128 __B)5449 __m128 test_mm_maskz_getmant_ss(__mmask8 __U, __m128 __A, __m128 __B){
5450   // CHECK-LABEL: @test_mm_maskz_getmant_ss
5451   // CHECK: @llvm.x86.avx512.mask.getmant.ss
5452   return _mm_maskz_getmant_ss(__U, __A, __B, 1, 2);
5453 }
5454 
test_mm_maskz_getmant_round_ss(__mmask8 __U,__m128 __A,__m128 __B)5455 __m128 test_mm_maskz_getmant_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
5456   // CHECK-LABEL: @test_mm_maskz_getmant_round_ss
5457   // CHECK: @llvm.x86.avx512.mask.getmant.ss
5458   return _mm_maskz_getmant_round_ss(__U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5459 }
5460 
test_mm_mask_fmadd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5461 __m128 test_mm_mask_fmadd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5462   // CHECK-LABEL: @test_mm_mask_fmadd_ss
5463   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5464   return _mm_mask_fmadd_ss(__W, __U, __A, __B);
5465 }
5466 
test_mm_mask_fmadd_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5467 __m128 test_mm_mask_fmadd_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5468   // CHECK-LABEL: @test_mm_mask_fmadd_round_ss
5469   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5470   return _mm_mask_fmadd_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5471 }
5472 
test_mm_maskz_fmadd_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5473 __m128 test_mm_maskz_fmadd_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5474   // CHECK-LABEL: @test_mm_maskz_fmadd_ss
5475   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5476   return _mm_maskz_fmadd_ss(__U, __A, __B, __C);
5477 }
5478 
test_mm_maskz_fmadd_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5479 __m128 test_mm_maskz_fmadd_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5480   // CHECK-LABEL: @test_mm_maskz_fmadd_round_ss
5481   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5482   return _mm_maskz_fmadd_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5483 }
5484 
test_mm_mask3_fmadd_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5485 __m128 test_mm_mask3_fmadd_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5486   // CHECK-LABEL: @test_mm_mask3_fmadd_ss
5487   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5488   return _mm_mask3_fmadd_ss(__W, __X, __Y, __U);
5489 }
5490 
test_mm_mask3_fmadd_round_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5491 __m128 test_mm_mask3_fmadd_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5492   // CHECK-LABEL: @test_mm_mask3_fmadd_round_ss
5493   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5494   return _mm_mask3_fmadd_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5495 }
5496 
test_mm_mask_fmsub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5497 __m128 test_mm_mask_fmsub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5498   // CHECK-LABEL: @test_mm_mask_fmsub_ss
5499   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5500   return _mm_mask_fmsub_ss(__W, __U, __A, __B);
5501 }
5502 
test_mm_mask_fmsub_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5503 __m128 test_mm_mask_fmsub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5504   // CHECK-LABEL: @test_mm_mask_fmsub_round_ss
5505   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5506   return _mm_mask_fmsub_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5507 }
5508 
test_mm_maskz_fmsub_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5509 __m128 test_mm_maskz_fmsub_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5510   // CHECK-LABEL: @test_mm_maskz_fmsub_ss
5511   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5512   return _mm_maskz_fmsub_ss(__U, __A, __B, __C);
5513 }
5514 
test_mm_maskz_fmsub_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5515 __m128 test_mm_maskz_fmsub_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5516   // CHECK-LABEL: @test_mm_maskz_fmsub_round_ss
5517   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5518   return _mm_maskz_fmsub_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5519 }
5520 
test_mm_mask3_fmsub_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5521 __m128 test_mm_mask3_fmsub_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5522   // CHECK-LABEL: @test_mm_mask3_fmsub_ss
5523   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5524   return _mm_mask3_fmsub_ss(__W, __X, __Y, __U);
5525 }
5526 
test_mm_mask3_fmsub_round_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5527 __m128 test_mm_mask3_fmsub_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5528   // CHECK-LABEL: @test_mm_mask3_fmsub_round_ss
5529   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5530   return _mm_mask3_fmsub_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5531 }
5532 
test_mm_mask_fnmadd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5533 __m128 test_mm_mask_fnmadd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5534   // CHECK-LABEL: @test_mm_mask_fnmadd_ss
5535   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5536   return _mm_mask_fnmadd_ss(__W, __U, __A, __B);
5537 }
5538 
test_mm_mask_fnmadd_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5539 __m128 test_mm_mask_fnmadd_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5540   // CHECK-LABEL: @test_mm_mask_fnmadd_round_ss
5541   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5542   return _mm_mask_fnmadd_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5543 }
5544 
test_mm_maskz_fnmadd_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5545 __m128 test_mm_maskz_fnmadd_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5546   // CHECK-LABEL: @test_mm_maskz_fnmadd_ss
5547   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5548   return _mm_maskz_fnmadd_ss(__U, __A, __B, __C);
5549 }
5550 
test_mm_maskz_fnmadd_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5551 __m128 test_mm_maskz_fnmadd_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5552   // CHECK-LABEL: @test_mm_maskz_fnmadd_round_ss
5553   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5554   return _mm_maskz_fnmadd_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5555 }
5556 
test_mm_mask3_fnmadd_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5557 __m128 test_mm_mask3_fnmadd_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5558   // CHECK-LABEL: @test_mm_mask3_fnmadd_ss
5559   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5560   return _mm_mask3_fnmadd_ss(__W, __X, __Y, __U);
5561 }
5562 
test_mm_mask3_fnmadd_round_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5563 __m128 test_mm_mask3_fnmadd_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5564   // CHECK-LABEL: @test_mm_mask3_fnmadd_round_ss
5565   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5566   return _mm_mask3_fnmadd_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5567 }
5568 
test_mm_mask_fnmsub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5569 __m128 test_mm_mask_fnmsub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5570   // CHECK-LABEL: @test_mm_mask_fnmsub_ss
5571   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5572   return _mm_mask_fnmsub_ss(__W, __U, __A, __B);
5573 }
5574 
test_mm_mask_fnmsub_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5575 __m128 test_mm_mask_fnmsub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5576   // CHECK-LABEL: @test_mm_mask_fnmsub_round_ss
5577   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5578   return _mm_mask_fnmsub_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5579 }
5580 
test_mm_maskz_fnmsub_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5581 __m128 test_mm_maskz_fnmsub_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5582   // CHECK-LABEL: @test_mm_maskz_fnmsub_ss
5583   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5584   return _mm_maskz_fnmsub_ss(__U, __A, __B, __C);
5585 }
5586 
test_mm_maskz_fnmsub_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)5587 __m128 test_mm_maskz_fnmsub_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5588   // CHECK-LABEL: @test_mm_maskz_fnmsub_round_ss
5589   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5590   return _mm_maskz_fnmsub_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5591 }
5592 
test_mm_mask3_fnmsub_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5593 __m128 test_mm_mask3_fnmsub_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5594   // CHECK-LABEL: @test_mm_mask3_fnmsub_ss
5595   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5596   return _mm_mask3_fnmsub_ss(__W, __X, __Y, __U);
5597 }
5598 
test_mm_mask3_fnmsub_round_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)5599 __m128 test_mm_mask3_fnmsub_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5600   // CHECK-LABEL: @test_mm_mask3_fnmsub_round_ss
5601   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5602   return _mm_mask3_fnmsub_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5603 }
5604 
test_mm_mask_fmadd_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5605 __m128d test_mm_mask_fmadd_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5606   // CHECK-LABEL: @test_mm_mask_fmadd_sd
5607   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5608   return _mm_mask_fmadd_sd(__W, __U, __A, __B);
5609 }
5610 
test_mm_mask_fmadd_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5611 __m128d test_mm_mask_fmadd_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5612   // CHECK-LABEL: @test_mm_mask_fmadd_round_sd
5613   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5614   return _mm_mask_fmadd_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5615 }
5616 
test_mm_maskz_fmadd_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5617 __m128d test_mm_maskz_fmadd_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5618   // CHECK-LABEL: @test_mm_maskz_fmadd_sd
5619   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5620   return _mm_maskz_fmadd_sd(__U, __A, __B, __C);
5621 }
5622 
test_mm_maskz_fmadd_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5623 __m128d test_mm_maskz_fmadd_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5624   // CHECK-LABEL: @test_mm_maskz_fmadd_round_sd
5625   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5626   return _mm_maskz_fmadd_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5627 }
5628 
test_mm_mask3_fmadd_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5629 __m128d test_mm_mask3_fmadd_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5630   // CHECK-LABEL: @test_mm_mask3_fmadd_sd
5631   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5632   return _mm_mask3_fmadd_sd(__W, __X, __Y, __U);
5633 }
5634 
test_mm_mask3_fmadd_round_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5635 __m128d test_mm_mask3_fmadd_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5636   // CHECK-LABEL: @test_mm_mask3_fmadd_round_sd
5637   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5638   return _mm_mask3_fmadd_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5639 }
5640 
test_mm_mask_fmsub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5641 __m128d test_mm_mask_fmsub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5642   // CHECK-LABEL: @test_mm_mask_fmsub_sd
5643   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5644   return _mm_mask_fmsub_sd(__W, __U, __A, __B);
5645 }
5646 
test_mm_mask_fmsub_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5647 __m128d test_mm_mask_fmsub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5648   // CHECK-LABEL: @test_mm_mask_fmsub_round_sd
5649   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5650   return _mm_mask_fmsub_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5651 }
5652 
test_mm_maskz_fmsub_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5653 __m128d test_mm_maskz_fmsub_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5654   // CHECK-LABEL: @test_mm_maskz_fmsub_sd
5655   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5656   return _mm_maskz_fmsub_sd(__U, __A, __B, __C);
5657 }
5658 
test_mm_maskz_fmsub_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5659 __m128d test_mm_maskz_fmsub_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5660   // CHECK-LABEL: @test_mm_maskz_fmsub_round_sd
5661   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5662   return _mm_maskz_fmsub_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5663 }
5664 
test_mm_mask3_fmsub_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5665 __m128d test_mm_mask3_fmsub_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5666   // CHECK-LABEL: @test_mm_mask3_fmsub_sd
5667   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5668   return _mm_mask3_fmsub_sd(__W, __X, __Y, __U);
5669 }
5670 
test_mm_mask3_fmsub_round_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5671 __m128d test_mm_mask3_fmsub_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5672   // CHECK-LABEL: @test_mm_mask3_fmsub_round_sd
5673   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5674   return _mm_mask3_fmsub_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5675 }
5676 
test_mm_mask_fnmadd_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5677 __m128d test_mm_mask_fnmadd_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5678   // CHECK-LABEL: @test_mm_mask_fnmadd_sd
5679   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5680   return _mm_mask_fnmadd_sd(__W, __U, __A, __B);
5681 }
5682 
test_mm_mask_fnmadd_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5683 __m128d test_mm_mask_fnmadd_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5684   // CHECK-LABEL: @test_mm_mask_fnmadd_round_sd
5685   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5686   return _mm_mask_fnmadd_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5687 }
5688 
test_mm_maskz_fnmadd_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5689 __m128d test_mm_maskz_fnmadd_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5690   // CHECK-LABEL: @test_mm_maskz_fnmadd_sd
5691   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5692   return _mm_maskz_fnmadd_sd(__U, __A, __B, __C);
5693 }
5694 
test_mm_maskz_fnmadd_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5695 __m128d test_mm_maskz_fnmadd_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5696   // CHECK-LABEL: @test_mm_maskz_fnmadd_round_sd
5697   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5698   return _mm_maskz_fnmadd_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5699 }
5700 
test_mm_mask3_fnmadd_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5701 __m128d test_mm_mask3_fnmadd_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5702   // CHECK-LABEL: @test_mm_mask3_fnmadd_sd
5703   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5704   return _mm_mask3_fnmadd_sd(__W, __X, __Y, __U);
5705 }
5706 
test_mm_mask3_fnmadd_round_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5707 __m128d test_mm_mask3_fnmadd_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5708   // CHECK-LABEL: @test_mm_mask3_fnmadd_round_sd
5709   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5710   return _mm_mask3_fnmadd_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5711 }
5712 
test_mm_mask_fnmsub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5713 __m128d test_mm_mask_fnmsub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5714   // CHECK-LABEL: @test_mm_mask_fnmsub_sd
5715   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5716   return _mm_mask_fnmsub_sd(__W, __U, __A, __B);
5717 }
5718 
test_mm_mask_fnmsub_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5719 __m128d test_mm_mask_fnmsub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5720   // CHECK-LABEL: @test_mm_mask_fnmsub_round_sd
5721   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5722   return _mm_mask_fnmsub_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5723 }
5724 
test_mm_maskz_fnmsub_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5725 __m128d test_mm_maskz_fnmsub_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5726   // CHECK-LABEL: @test_mm_maskz_fnmsub_sd
5727   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5728   return _mm_maskz_fnmsub_sd(__U, __A, __B, __C);
5729 }
5730 
test_mm_maskz_fnmsub_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)5731 __m128d test_mm_maskz_fnmsub_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5732   // CHECK-LABEL: @test_mm_maskz_fnmsub_round_sd
5733   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5734   return _mm_maskz_fnmsub_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5735 }
5736 
test_mm_mask3_fnmsub_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5737 __m128d test_mm_mask3_fnmsub_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5738   // CHECK-LABEL: @test_mm_mask3_fnmsub_sd
5739   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5740   return _mm_mask3_fnmsub_sd(__W, __X, __Y, __U);
5741 }
5742 
test_mm_mask3_fnmsub_round_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)5743 __m128d test_mm_mask3_fnmsub_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5744   // CHECK-LABEL: @test_mm_mask3_fnmsub_round_sd
5745   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5746   return _mm_mask3_fnmsub_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5747 }
5748 
test_mm512_permutex_pd(__m512d __X)5749 __m512d test_mm512_permutex_pd(__m512d __X) {
5750   // CHECK-LABEL: @test_mm512_permutex_pd
5751   // 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   return _mm512_permutex_pd(__X, 0);
5753 }
5754 
test_mm512_mask_permutex_pd(__m512d __W,__mmask8 __U,__m512d __X)5755 __m512d test_mm512_mask_permutex_pd(__m512d __W, __mmask8 __U, __m512d __X) {
5756   // CHECK-LABEL: @test_mm512_mask_permutex_pd
5757   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
5759   return _mm512_mask_permutex_pd(__W, __U, __X, 0);
5760 }
5761 
test_mm512_maskz_permutex_pd(__mmask8 __U,__m512d __X)5762 __m512d test_mm512_maskz_permutex_pd(__mmask8 __U, __m512d __X) {
5763   // CHECK-LABEL: @test_mm512_maskz_permutex_pd
5764   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
5766   return _mm512_maskz_permutex_pd(__U, __X, 0);
5767 }
5768 
test_mm512_permutex_epi64(__m512i __X)5769 __m512i test_mm512_permutex_epi64(__m512i __X) {
5770   // CHECK-LABEL: @test_mm512_permutex_epi64
5771   // 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   return _mm512_permutex_epi64(__X, 0);
5773 }
5774 
test_mm512_mask_permutex_epi64(__m512i __W,__mmask8 __M,__m512i __X)5775 __m512i test_mm512_mask_permutex_epi64(__m512i __W, __mmask8 __M, __m512i __X) {
5776   // CHECK-LABEL: @test_mm512_mask_permutex_epi64
5777   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
5779   return _mm512_mask_permutex_epi64(__W, __M, __X, 0);
5780 }
5781 
test_mm512_maskz_permutex_epi64(__mmask8 __M,__m512i __X)5782 __m512i test_mm512_maskz_permutex_epi64(__mmask8 __M, __m512i __X) {
5783   // CHECK-LABEL: @test_mm512_maskz_permutex_epi64
5784   // 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   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
5786   return _mm512_maskz_permutex_epi64(__M, __X, 0);
5787 }
5788 
test_mm512_permutexvar_pd(__m512i __X,__m512d __Y)5789 __m512d test_mm512_permutexvar_pd(__m512i __X, __m512d __Y) {
5790   // CHECK-LABEL: @test_mm512_permutexvar_pd
5791   // CHECK: @llvm.x86.avx512.mask.permvar.df.512
5792   return _mm512_permutexvar_pd(__X, __Y);
5793 }
5794 
test_mm512_mask_permutexvar_pd(__m512d __W,__mmask8 __U,__m512i __X,__m512d __Y)5795 __m512d test_mm512_mask_permutexvar_pd(__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y) {
5796   // CHECK-LABEL: @test_mm512_mask_permutexvar_pd
5797   // CHECK: @llvm.x86.avx512.mask.permvar.df.512
5798   return _mm512_mask_permutexvar_pd(__W, __U, __X, __Y);
5799 }
5800 
test_mm512_maskz_permutexvar_pd(__mmask8 __U,__m512i __X,__m512d __Y)5801 __m512d test_mm512_maskz_permutexvar_pd(__mmask8 __U, __m512i __X, __m512d __Y) {
5802   // CHECK-LABEL: @test_mm512_maskz_permutexvar_pd
5803   // CHECK: @llvm.x86.avx512.mask.permvar.df.512
5804   return _mm512_maskz_permutexvar_pd(__U, __X, __Y);
5805 }
5806 
test_mm512_maskz_permutexvar_epi64(__mmask8 __M,__m512i __X,__m512i __Y)5807 __m512i test_mm512_maskz_permutexvar_epi64(__mmask8 __M, __m512i __X, __m512i __Y) {
5808   // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi64
5809   // CHECK: @llvm.x86.avx512.mask.permvar.di.512
5810   return _mm512_maskz_permutexvar_epi64(__M, __X, __Y);
5811 }
5812 
test_mm512_permutexvar_epi64(__m512i __X,__m512i __Y)5813 __m512i test_mm512_permutexvar_epi64(__m512i __X, __m512i __Y) {
5814   // CHECK-LABEL: @test_mm512_permutexvar_epi64
5815   // CHECK: @llvm.x86.avx512.mask.permvar.di.512
5816   return _mm512_permutexvar_epi64(__X, __Y);
5817 }
5818 
test_mm512_mask_permutexvar_epi64(__m512i __W,__mmask8 __M,__m512i __X,__m512i __Y)5819 __m512i test_mm512_mask_permutexvar_epi64(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) {
5820   // CHECK-LABEL: @test_mm512_mask_permutexvar_epi64
5821   // CHECK: @llvm.x86.avx512.mask.permvar.di.512
5822   return _mm512_mask_permutexvar_epi64(__W, __M, __X, __Y);
5823 }
5824 
test_mm512_permutexvar_ps(__m512i __X,__m512 __Y)5825 __m512 test_mm512_permutexvar_ps(__m512i __X, __m512 __Y) {
5826   // CHECK-LABEL: @test_mm512_permutexvar_ps
5827   // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
5828   return _mm512_permutexvar_ps(__X, __Y);
5829 }
5830 
test_mm512_mask_permutexvar_ps(__m512 __W,__mmask16 __U,__m512i __X,__m512 __Y)5831 __m512 test_mm512_mask_permutexvar_ps(__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y) {
5832   // CHECK-LABEL: @test_mm512_mask_permutexvar_ps
5833   // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
5834   return _mm512_mask_permutexvar_ps(__W, __U, __X, __Y);
5835 }
5836 
test_mm512_maskz_permutexvar_ps(__mmask16 __U,__m512i __X,__m512 __Y)5837 __m512 test_mm512_maskz_permutexvar_ps(__mmask16 __U, __m512i __X, __m512 __Y) {
5838   // CHECK-LABEL: @test_mm512_maskz_permutexvar_ps
5839   // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
5840   return _mm512_maskz_permutexvar_ps(__U, __X, __Y);
5841 }
5842 
test_mm512_maskz_permutexvar_epi32(__mmask16 __M,__m512i __X,__m512i __Y)5843 __m512i test_mm512_maskz_permutexvar_epi32(__mmask16 __M, __m512i __X, __m512i __Y) {
5844   // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi32
5845   // CHECK: @llvm.x86.avx512.mask.permvar.si.512
5846   return _mm512_maskz_permutexvar_epi32(__M, __X, __Y);
5847 }
5848 
test_mm512_permutexvar_epi32(__m512i __X,__m512i __Y)5849 __m512i test_mm512_permutexvar_epi32(__m512i __X, __m512i __Y) {
5850   // CHECK-LABEL: @test_mm512_permutexvar_epi32
5851   // CHECK: @llvm.x86.avx512.mask.permvar.si.512
5852   return _mm512_permutexvar_epi32(__X, __Y);
5853 }
5854 
test_mm512_mask_permutexvar_epi32(__m512i __W,__mmask16 __M,__m512i __X,__m512i __Y)5855 __m512i test_mm512_mask_permutexvar_epi32(__m512i __W, __mmask16 __M, __m512i __X, __m512i __Y) {
5856   // CHECK-LABEL: @test_mm512_mask_permutexvar_epi32
5857   // CHECK: @llvm.x86.avx512.mask.permvar.si.512
5858   return _mm512_mask_permutexvar_epi32(__W, __M, __X, __Y);
5859 }
5860 
test_mm512_kand(__mmask16 __A,__mmask16 __B)5861 __mmask16 test_mm512_kand(__mmask16 __A, __mmask16 __B) {
5862   // CHECK-LABEL: @test_mm512_kand
5863   // CHECK: @llvm.x86.avx512.kand.w
5864   return _mm512_kand(__A, __B);
5865 }
5866 
test_mm512_kandn(__mmask16 __A,__mmask16 __B)5867 __mmask16 test_mm512_kandn(__mmask16 __A, __mmask16 __B) {
5868   // CHECK-LABEL: @test_mm512_kandn
5869   // CHECK: @llvm.x86.avx512.kandn.w
5870   return _mm512_kandn(__A, __B);
5871 }
5872 
test_mm512_kor(__mmask16 __A,__mmask16 __B)5873 __mmask16 test_mm512_kor(__mmask16 __A, __mmask16 __B) {
5874   // CHECK-LABEL: @test_mm512_kor
5875   // CHECK: @llvm.x86.avx512.kor.w
5876   return _mm512_kor(__A, __B);
5877 }
5878 
test_mm512_kortestc(__mmask16 __A,__mmask16 __B)5879 int test_mm512_kortestc(__mmask16 __A, __mmask16 __B) {
5880   // CHECK-LABEL: @test_mm512_kortestc
5881   // CHECK: @llvm.x86.avx512.kortestc.w
5882   return _mm512_kortestc(__A, __B);
5883 }
5884 
test_mm512_kortestz(__mmask16 __A,__mmask16 __B)5885 int test_mm512_kortestz(__mmask16 __A, __mmask16 __B) {
5886   // CHECK-LABEL: @test_mm512_kortestz
5887   // CHECK: @llvm.x86.avx512.kortestz.w
5888   return _mm512_kortestz(__A, __B);
5889 }
5890 
test_mm512_kunpackb(__mmask16 __A,__mmask16 __B)5891 __mmask16 test_mm512_kunpackb(__mmask16 __A, __mmask16 __B) {
5892   // CHECK-LABEL: @test_mm512_kunpackb
5893   // CHECK: @llvm.x86.avx512.kunpck.bw
5894   return _mm512_kunpackb(__A, __B);
5895 }
5896 
test_mm512_kxnor(__mmask16 __A,__mmask16 __B)5897 __mmask16 test_mm512_kxnor(__mmask16 __A, __mmask16 __B) {
5898   // CHECK-LABEL: @test_mm512_kxnor
5899   // CHECK: @llvm.x86.avx512.kxnor.w
5900   return _mm512_kxnor(__A, __B);
5901 }
5902 
test_mm512_kxor(__mmask16 __A,__mmask16 __B)5903 __mmask16 test_mm512_kxor(__mmask16 __A, __mmask16 __B) {
5904   // CHECK-LABEL: @test_mm512_kxor
5905   // CHECK: @llvm.x86.avx512.kxor.w
5906   return _mm512_kxor(__A, __B);
5907 }
5908 
test_mm512_stream_si512(__m512i * __P,__m512i __A)5909 void test_mm512_stream_si512(__m512i * __P, __m512i __A) {
5910   // CHECK-LABEL: @test_mm512_stream_si512
5911   // CHECK: store <8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, align 64, !nontemporal
5912   _mm512_stream_si512(__P, __A);
5913 }
5914 
test_mm512_stream_load_si512(void * __P)5915 __m512i test_mm512_stream_load_si512(void *__P) {
5916   // CHECK-LABEL: @test_mm512_stream_load_si512
5917   // CHECK: @llvm.x86.avx512.movntdqa
5918   return _mm512_stream_load_si512(__P);
5919 }
5920 
test_mm512_stream_pd(double * __P,__m512d __A)5921 void test_mm512_stream_pd(double *__P, __m512d __A) {
5922   // CHECK-LABEL: @test_mm512_stream_pd
5923   // CHECK: store <8 x double> %{{.*}}, <8 x double>* %{{.*}}, align 64, !nontemporal
5924   return _mm512_stream_pd(__P, __A);
5925 }
5926 
test_mm512_stream_ps(float * __P,__m512 __A)5927 void test_mm512_stream_ps(float *__P, __m512 __A) {
5928   // CHECK-LABEL: @test_mm512_stream_ps
5929   // CHECK: store <16 x float> %{{.*}}, <16 x float>* %{{.*}}, align 64, !nontemporal
5930   _mm512_stream_ps(__P, __A);
5931 }
5932 
test_mm512_mask_compress_pd(__m512d __W,__mmask8 __U,__m512d __A)5933 __m512d test_mm512_mask_compress_pd(__m512d __W, __mmask8 __U, __m512d __A) {
5934   // CHECK-LABEL: @test_mm512_mask_compress_pd
5935   // CHECK: @llvm.x86.avx512.mask.compress.pd.512
5936   return _mm512_mask_compress_pd(__W, __U, __A);
5937 }
5938 
test_mm512_maskz_compress_pd(__mmask8 __U,__m512d __A)5939 __m512d test_mm512_maskz_compress_pd(__mmask8 __U, __m512d __A) {
5940   // CHECK-LABEL: @test_mm512_maskz_compress_pd
5941   // CHECK: @llvm.x86.avx512.mask.compress.pd.512
5942   return _mm512_maskz_compress_pd(__U, __A);
5943 }
5944 
test_mm512_mask_compress_epi64(__m512i __W,__mmask8 __U,__m512i __A)5945 __m512i test_mm512_mask_compress_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
5946   // CHECK-LABEL: @test_mm512_mask_compress_epi64
5947   // CHECK: @llvm.x86.avx512.mask.compress.q.512
5948   return _mm512_mask_compress_epi64(__W, __U, __A);
5949 }
5950 
test_mm512_maskz_compress_epi64(__mmask8 __U,__m512i __A)5951 __m512i test_mm512_maskz_compress_epi64(__mmask8 __U, __m512i __A) {
5952   // CHECK-LABEL: @test_mm512_maskz_compress_epi64
5953   // CHECK: @llvm.x86.avx512.mask.compress.q.512
5954   return _mm512_maskz_compress_epi64(__U, __A);
5955 }
5956 
test_mm512_mask_compress_ps(__m512 __W,__mmask16 __U,__m512 __A)5957 __m512 test_mm512_mask_compress_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5958   // CHECK-LABEL: @test_mm512_mask_compress_ps
5959   // CHECK: @llvm.x86.avx512.mask.compress.ps.512
5960   return _mm512_mask_compress_ps(__W, __U, __A);
5961 }
5962 
test_mm512_maskz_compress_ps(__mmask16 __U,__m512 __A)5963 __m512 test_mm512_maskz_compress_ps(__mmask16 __U, __m512 __A) {
5964   // CHECK-LABEL: @test_mm512_maskz_compress_ps
5965   // CHECK: @llvm.x86.avx512.mask.compress.ps.512
5966   return _mm512_maskz_compress_ps(__U, __A);
5967 }
5968 
test_mm512_mask_compress_epi32(__m512i __W,__mmask16 __U,__m512i __A)5969 __m512i test_mm512_mask_compress_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
5970   // CHECK-LABEL: @test_mm512_mask_compress_epi32
5971   // CHECK: @llvm.x86.avx512.mask.compress.d.512
5972   return _mm512_mask_compress_epi32(__W, __U, __A);
5973 }
5974 
test_mm512_maskz_compress_epi32(__mmask16 __U,__m512i __A)5975 __m512i test_mm512_maskz_compress_epi32(__mmask16 __U, __m512i __A) {
5976   // CHECK-LABEL: @test_mm512_maskz_compress_epi32
5977   // CHECK: @llvm.x86.avx512.mask.compress.d.512
5978   return _mm512_maskz_compress_epi32(__U, __A);
5979 }
5980 
test_mm_cmp_round_ss_mask(__m128 __X,__m128 __Y)5981 __mmask8 test_mm_cmp_round_ss_mask(__m128 __X, __m128 __Y) {
5982   // CHECK-LABEL: @test_mm_cmp_round_ss_mask
5983   // CHECK: @llvm.x86.avx512.mask.cmp
5984   return _mm_cmp_round_ss_mask(__X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
5985 }
5986 
test_mm_mask_cmp_round_ss_mask(__mmask8 __M,__m128 __X,__m128 __Y)5987 __mmask8 test_mm_mask_cmp_round_ss_mask(__mmask8 __M, __m128 __X, __m128 __Y) {
5988   // CHECK-LABEL: @test_mm_mask_cmp_round_ss_mask
5989   // CHECK: @llvm.x86.avx512.mask.cmp
5990   return _mm_mask_cmp_round_ss_mask(__M, __X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
5991 }
5992 
test_mm_cmp_ss_mask(__m128 __X,__m128 __Y)5993 __mmask8 test_mm_cmp_ss_mask(__m128 __X, __m128 __Y) {
5994   // CHECK-LABEL: @test_mm_cmp_ss_mask
5995   // CHECK: @llvm.x86.avx512.mask.cmp
5996   return _mm_cmp_ss_mask(__X, __Y, 5);
5997 }
5998 
test_mm_mask_cmp_ss_mask(__mmask8 __M,__m128 __X,__m128 __Y)5999 __mmask8 test_mm_mask_cmp_ss_mask(__mmask8 __M, __m128 __X, __m128 __Y) {
6000   // CHECK-LABEL: @test_mm_mask_cmp_ss_mask
6001   // CHECK: @llvm.x86.avx512.mask.cmp
6002   return _mm_mask_cmp_ss_mask(__M, __X, __Y, 5);
6003 }
6004 
test_mm_cmp_round_sd_mask(__m128d __X,__m128d __Y)6005 __mmask8 test_mm_cmp_round_sd_mask(__m128d __X, __m128d __Y) {
6006   // CHECK-LABEL: @test_mm_cmp_round_sd_mask
6007   // CHECK: @llvm.x86.avx512.mask.cmp
6008   return _mm_cmp_round_sd_mask(__X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
6009 }
6010 
test_mm_mask_cmp_round_sd_mask(__mmask8 __M,__m128d __X,__m128d __Y)6011 __mmask8 test_mm_mask_cmp_round_sd_mask(__mmask8 __M, __m128d __X, __m128d __Y) {
6012   // CHECK-LABEL: @test_mm_mask_cmp_round_sd_mask
6013   // CHECK: @llvm.x86.avx512.mask.cmp
6014   return _mm_mask_cmp_round_sd_mask(__M, __X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
6015 }
6016 
test_mm_cmp_sd_mask(__m128d __X,__m128d __Y)6017 __mmask8 test_mm_cmp_sd_mask(__m128d __X, __m128d __Y) {
6018   // CHECK-LABEL: @test_mm_cmp_sd_mask
6019   // CHECK: @llvm.x86.avx512.mask.cmp
6020   return _mm_cmp_sd_mask(__X, __Y, 5);
6021 }
6022 
test_mm_mask_cmp_sd_mask(__mmask8 __M,__m128d __X,__m128d __Y)6023 __mmask8 test_mm_mask_cmp_sd_mask(__mmask8 __M, __m128d __X, __m128d __Y) {
6024   // CHECK-LABEL: @test_mm_mask_cmp_sd_mask
6025   // CHECK: @llvm.x86.avx512.mask.cmp
6026   return _mm_mask_cmp_sd_mask(__M, __X, __Y, 5);
6027 }
6028 
test_mm512_movehdup_ps(__m512 __A)6029 __m512 test_mm512_movehdup_ps(__m512 __A) {
6030   // CHECK-LABEL: @test_mm512_movehdup_ps
6031   // 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   return _mm512_movehdup_ps(__A);
6033 }
6034 
test_mm512_mask_movehdup_ps(__m512 __W,__mmask16 __U,__m512 __A)6035 __m512 test_mm512_mask_movehdup_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6036   // CHECK-LABEL: @test_mm512_mask_movehdup_ps
6037   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6039   return _mm512_mask_movehdup_ps(__W, __U, __A);
6040 }
6041 
test_mm512_maskz_movehdup_ps(__mmask16 __U,__m512 __A)6042 __m512 test_mm512_maskz_movehdup_ps(__mmask16 __U, __m512 __A) {
6043   // CHECK-LABEL: @test_mm512_maskz_movehdup_ps
6044   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6046   return _mm512_maskz_movehdup_ps(__U, __A);
6047 }
6048 
test_mm512_moveldup_ps(__m512 __A)6049 __m512 test_mm512_moveldup_ps(__m512 __A) {
6050   // CHECK-LABEL: @test_mm512_moveldup_ps
6051   // 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   return _mm512_moveldup_ps(__A);
6053 }
6054 
test_mm512_mask_moveldup_ps(__m512 __W,__mmask16 __U,__m512 __A)6055 __m512 test_mm512_mask_moveldup_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6056   // CHECK-LABEL: @test_mm512_mask_moveldup_ps
6057   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6059   return _mm512_mask_moveldup_ps(__W, __U, __A);
6060 }
6061 
test_mm512_maskz_moveldup_ps(__mmask16 __U,__m512 __A)6062 __m512 test_mm512_maskz_moveldup_ps(__mmask16 __U, __m512 __A) {
6063   // CHECK-LABEL: @test_mm512_maskz_moveldup_ps
6064   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6066   return _mm512_maskz_moveldup_ps(__U, __A);
6067 }
6068 
test_mm512_shuffle_epi32(__m512i __A)6069 __m512i test_mm512_shuffle_epi32(__m512i __A) {
6070   // CHECK-LABEL: @test_mm512_shuffle_epi32
6071   // 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   return _mm512_shuffle_epi32(__A, 1);
6073 }
6074 
test_mm512_mask_shuffle_epi32(__m512i __W,__mmask16 __U,__m512i __A)6075 __m512i test_mm512_mask_shuffle_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
6076   // CHECK-LABEL: @test_mm512_mask_shuffle_epi32
6077   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
6079   return _mm512_mask_shuffle_epi32(__W, __U, __A, 1);
6080 }
6081 
test_mm512_maskz_shuffle_epi32(__mmask16 __U,__m512i __A)6082 __m512i test_mm512_maskz_shuffle_epi32(__mmask16 __U, __m512i __A) {
6083   // CHECK-LABEL: @test_mm512_maskz_shuffle_epi32
6084   // 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   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
6086   return _mm512_maskz_shuffle_epi32(__U, __A, 1);
6087 }
6088 
test_mm512_mask_expand_pd(__m512d __W,__mmask8 __U,__m512d __A)6089 __m512d test_mm512_mask_expand_pd(__m512d __W, __mmask8 __U, __m512d __A) {
6090   // CHECK-LABEL: @test_mm512_mask_expand_pd
6091   // CHECK: @llvm.x86.avx512.mask.expand.pd.512
6092   return _mm512_mask_expand_pd(__W, __U, __A);
6093 }
6094 
test_mm512_maskz_expand_pd(__mmask8 __U,__m512d __A)6095 __m512d test_mm512_maskz_expand_pd(__mmask8 __U, __m512d __A) {
6096   // CHECK-LABEL: @test_mm512_maskz_expand_pd
6097   // CHECK: @llvm.x86.avx512.mask.expand.pd.512
6098   return _mm512_maskz_expand_pd(__U, __A);
6099 }
6100 
test_mm512_mask_expand_epi64(__m512i __W,__mmask8 __U,__m512i __A)6101 __m512i test_mm512_mask_expand_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
6102   // CHECK-LABEL: @test_mm512_mask_expand_epi64
6103   // CHECK: @llvm.x86.avx512.mask.expand.q.512
6104   return _mm512_mask_expand_epi64(__W, __U, __A);
6105 }
6106 
test_mm512_maskz_expand_epi64(__mmask8 __U,__m512i __A)6107 __m512i test_mm512_maskz_expand_epi64(__mmask8 __U, __m512i __A) {
6108   // CHECK-LABEL: @test_mm512_maskz_expand_epi64
6109   // CHECK: @llvm.x86.avx512.mask.expand.q.512
6110   return _mm512_maskz_expand_epi64(__U, __A);
6111 }
test_mm512_mask_expandloadu_epi64(__m512i __W,__mmask8 __U,void const * __P)6112 __m512i test_mm512_mask_expandloadu_epi64(__m512i __W, __mmask8 __U, void const *__P) {
6113   // CHECK-LABEL: @test_mm512_mask_expandloadu_epi64
6114   // CHECK: @llvm.x86.avx512.mask.expand.load.q.512
6115   return _mm512_mask_expandloadu_epi64(__W, __U, __P);
6116 }
6117 
test_mm512_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)6118 __m512i test_mm512_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
6119   // CHECK-LABEL: @test_mm512_maskz_expandloadu_epi64
6120   // CHECK: @llvm.x86.avx512.mask.expand.load.q.512
6121   return _mm512_maskz_expandloadu_epi64(__U, __P);
6122 }
6123 
test_mm512_mask_expandloadu_pd(__m512d __W,__mmask8 __U,void const * __P)6124 __m512d test_mm512_mask_expandloadu_pd(__m512d __W, __mmask8 __U, void const *__P) {
6125   // CHECK-LABEL: @test_mm512_mask_expandloadu_pd
6126   // CHECK: @llvm.x86.avx512.mask.expand.load.pd.512
6127   return _mm512_mask_expandloadu_pd(__W, __U, __P);
6128 }
6129 
test_mm512_maskz_expandloadu_pd(__mmask8 __U,void const * __P)6130 __m512d test_mm512_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
6131   // CHECK-LABEL: @test_mm512_maskz_expandloadu_pd
6132   // CHECK: @llvm.x86.avx512.mask.expand.load.pd.512
6133   return _mm512_maskz_expandloadu_pd(__U, __P);
6134 }
6135 
test_mm512_mask_expandloadu_epi32(__m512i __W,__mmask16 __U,void const * __P)6136 __m512i test_mm512_mask_expandloadu_epi32(__m512i __W, __mmask16 __U, void const *__P) {
6137   // CHECK-LABEL: @test_mm512_mask_expandloadu_epi32
6138   // CHECK: @llvm.x86.avx512.mask.expand.load.d.512
6139   return _mm512_mask_expandloadu_epi32(__W, __U, __P);
6140 }
6141 
test_mm512_maskz_expandloadu_epi32(__mmask16 __U,void const * __P)6142 __m512i test_mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P) {
6143   // CHECK-LABEL: @test_mm512_maskz_expandloadu_epi32
6144   // CHECK: @llvm.x86.avx512.mask.expand.load.d.512
6145   return _mm512_maskz_expandloadu_epi32(__U, __P);
6146 }
6147 
test_mm512_mask_expand_ps(__m512 __W,__mmask16 __U,__m512 __A)6148 __m512 test_mm512_mask_expand_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6149   // CHECK-LABEL: @test_mm512_mask_expand_ps
6150   // CHECK: @llvm.x86.avx512.mask.expand.ps.512
6151   return _mm512_mask_expand_ps(__W, __U, __A);
6152 }
6153 
test_mm512_maskz_expand_ps(__mmask16 __U,__m512 __A)6154 __m512 test_mm512_maskz_expand_ps(__mmask16 __U, __m512 __A) {
6155   // CHECK-LABEL: @test_mm512_maskz_expand_ps
6156   // CHECK: @llvm.x86.avx512.mask.expand.ps.512
6157   return _mm512_maskz_expand_ps(__U, __A);
6158 }
6159 
test_mm512_mask_expand_epi32(__m512i __W,__mmask16 __U,__m512i __A)6160 __m512i test_mm512_mask_expand_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
6161   // CHECK-LABEL: @test_mm512_mask_expand_epi32
6162   // CHECK: @llvm.x86.avx512.mask.expand.d.512
6163   return _mm512_mask_expand_epi32(__W, __U, __A);
6164 }
6165 
test_mm512_maskz_expand_epi32(__mmask16 __U,__m512i __A)6166 __m512i test_mm512_maskz_expand_epi32(__mmask16 __U, __m512i __A) {
6167   // CHECK-LABEL: @test_mm512_maskz_expand_epi32
6168   // CHECK: @llvm.x86.avx512.mask.expand.d.512
6169   return _mm512_maskz_expand_epi32(__U, __A);
6170 }
test_mm512_cvt_roundps_pd(__m256 __A)6171 __m512d test_mm512_cvt_roundps_pd(__m256 __A) {
6172   // CHECK-LABEL: @test_mm512_cvt_roundps_pd
6173   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6174   return _mm512_cvt_roundps_pd(__A, _MM_FROUND_CUR_DIRECTION);
6175 }
6176 
test_mm512_mask_cvt_roundps_pd(__m512d __W,__mmask8 __U,__m256 __A)6177 __m512d test_mm512_mask_cvt_roundps_pd(__m512d __W, __mmask8 __U, __m256 __A) {
6178   // CHECK-LABEL: @test_mm512_mask_cvt_roundps_pd
6179   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6180   return _mm512_mask_cvt_roundps_pd(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
6181 }
6182 
test_mm512_maskz_cvt_roundps_pd(__mmask8 __U,__m256 __A)6183 __m512d test_mm512_maskz_cvt_roundps_pd(__mmask8 __U, __m256 __A) {
6184   // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_pd
6185   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6186   return _mm512_maskz_cvt_roundps_pd(__U, __A, _MM_FROUND_CUR_DIRECTION);
6187 }
6188 
test_mm512_cvtps_pd(__m256 __A)6189 __m512d test_mm512_cvtps_pd(__m256 __A) {
6190   // CHECK-LABEL: @test_mm512_cvtps_pd
6191   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6192   return _mm512_cvtps_pd(__A);
6193 }
6194 
test_mm512_mask_cvtps_pd(__m512d __W,__mmask8 __U,__m256 __A)6195 __m512d test_mm512_mask_cvtps_pd(__m512d __W, __mmask8 __U, __m256 __A) {
6196   // CHECK-LABEL: @test_mm512_mask_cvtps_pd
6197   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6198   return _mm512_mask_cvtps_pd(__W, __U, __A);
6199 }
6200 
test_mm512_maskz_cvtps_pd(__mmask8 __U,__m256 __A)6201 __m512d test_mm512_maskz_cvtps_pd(__mmask8 __U, __m256 __A) {
6202   // CHECK-LABEL: @test_mm512_maskz_cvtps_pd
6203   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6204   return _mm512_maskz_cvtps_pd(__U, __A);
6205 }
test_mm512_mask_mov_pd(__m512d __W,__mmask8 __U,__m512d __A)6206 __m512d test_mm512_mask_mov_pd(__m512d __W, __mmask8 __U, __m512d __A) {
6207   // CHECK-LABEL: @test_mm512_mask_mov_pd
6208   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
6209   return _mm512_mask_mov_pd(__W, __U, __A);
6210 }
6211 
test_mm512_maskz_mov_pd(__mmask8 __U,__m512d __A)6212 __m512d test_mm512_maskz_mov_pd(__mmask8 __U, __m512d __A) {
6213   // CHECK-LABEL: @test_mm512_maskz_mov_pd
6214   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
6215   return _mm512_maskz_mov_pd(__U, __A);
6216 }
6217 
test_mm512_mask_mov_ps(__m512 __W,__mmask16 __U,__m512 __A)6218 __m512 test_mm512_mask_mov_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6219   // CHECK-LABEL: @test_mm512_mask_mov_ps
6220   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6221   return _mm512_mask_mov_ps(__W, __U, __A);
6222 }
6223 
test_mm512_maskz_mov_ps(__mmask16 __U,__m512 __A)6224 __m512 test_mm512_maskz_mov_ps(__mmask16 __U, __m512 __A) {
6225   // CHECK-LABEL: @test_mm512_maskz_mov_ps
6226   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6227   return _mm512_maskz_mov_ps(__U, __A);
6228 }
6229 
test_mm512_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m512d __A)6230 void test_mm512_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m512d __A) {
6231   // CHECK-LABEL: @test_mm512_mask_compressstoreu_pd
6232   // CHECK: @llvm.x86.avx512.mask.compress.store.pd.512
6233   return _mm512_mask_compressstoreu_pd(__P, __U, __A);
6234 }
6235 
test_mm512_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m512i __A)6236 void test_mm512_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m512i __A) {
6237   // CHECK-LABEL: @test_mm512_mask_compressstoreu_epi64
6238   // CHECK: @llvm.x86.avx512.mask.compress.store.q.512
6239   return _mm512_mask_compressstoreu_epi64(__P, __U, __A);
6240 }
6241 
test_mm512_mask_compressstoreu_ps(void * __P,__mmask16 __U,__m512 __A)6242 void test_mm512_mask_compressstoreu_ps(void *__P, __mmask16 __U, __m512 __A) {
6243   // CHECK-LABEL: @test_mm512_mask_compressstoreu_ps
6244   // CHECK: @llvm.x86.avx512.mask.compress.store.ps.512
6245   return _mm512_mask_compressstoreu_ps(__P, __U, __A);
6246 }
6247 
test_mm512_mask_compressstoreu_epi32(void * __P,__mmask16 __U,__m512i __A)6248 void test_mm512_mask_compressstoreu_epi32(void *__P, __mmask16 __U, __m512i __A) {
6249   // CHECK-LABEL: @test_mm512_mask_compressstoreu_epi32
6250   // CHECK: @llvm.x86.avx512.mask.compress.store.d.512
6251   return _mm512_mask_compressstoreu_epi32(__P, __U, __A);
6252 }
6253 
test_mm512_cvtt_roundpd_epu32(__m512d __A)6254 __m256i test_mm512_cvtt_roundpd_epu32(__m512d __A) {
6255   // CHECK-LABEL: @test_mm512_cvtt_roundpd_epu32
6256   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6257   return _mm512_cvtt_roundpd_epu32(__A, _MM_FROUND_CUR_DIRECTION);
6258 }
6259 
test_mm512_mask_cvtt_roundpd_epu32(__m256i __W,__mmask8 __U,__m512d __A)6260 __m256i test_mm512_mask_cvtt_roundpd_epu32(__m256i __W, __mmask8 __U, __m512d __A) {
6261   // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epu32
6262   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6263   return _mm512_mask_cvtt_roundpd_epu32(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
6264 }
6265 
test_mm512_maskz_cvtt_roundpd_epu32(__mmask8 __U,__m512d __A)6266 __m256i test_mm512_maskz_cvtt_roundpd_epu32(__mmask8 __U, __m512d __A) {
6267   // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epu32
6268   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6269   return _mm512_maskz_cvtt_roundpd_epu32(__U, __A, _MM_FROUND_CUR_DIRECTION);
6270 }
6271 
test_mm512_cvttpd_epu32(__m512d __A)6272 __m256i test_mm512_cvttpd_epu32(__m512d __A) {
6273   // CHECK-LABEL: @test_mm512_cvttpd_epu32
6274   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6275   return _mm512_cvttpd_epu32(__A);
6276 }
6277 
test_mm512_mask_cvttpd_epu32(__m256i __W,__mmask8 __U,__m512d __A)6278 __m256i test_mm512_mask_cvttpd_epu32(__m256i __W, __mmask8 __U, __m512d __A) {
6279   // CHECK-LABEL: @test_mm512_mask_cvttpd_epu32
6280   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6281   return _mm512_mask_cvttpd_epu32(__W, __U, __A);
6282 }
6283 
test_mm512_maskz_cvttpd_epu32(__mmask8 __U,__m512d __A)6284 __m256i test_mm512_maskz_cvttpd_epu32(__mmask8 __U, __m512d __A) {
6285   // CHECK-LABEL: @test_mm512_maskz_cvttpd_epu32
6286   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6287   return _mm512_maskz_cvttpd_epu32(__U, __A);
6288 }
6289 
test_mm512_castpd_ps(__m512d __A)6290 __m512 test_mm512_castpd_ps (__m512d __A)
6291 {
6292   // CHECK-LABEL: @test_mm512_castpd_ps
6293   // CHECK: bitcast <8 x double> %{{.}} to <16 x float>
6294   return _mm512_castpd_ps (__A);
6295 }
6296 
test_mm512_castps_pd(__m512 __A)6297 __m512d test_mm512_castps_pd (__m512 __A)
6298 {
6299   // CHECK-LABEL: @test_mm512_castps_pd
6300   // CHECK: bitcast <16 x float> %{{.}} to <8 x double>
6301   return _mm512_castps_pd (__A);
6302 }
6303 
test_mm512_castpd_si512(__m512d __A)6304 __m512i test_mm512_castpd_si512 (__m512d __A)
6305 {
6306   // CHECK-LABEL: @test_mm512_castpd_si512
6307   // CHECK: bitcast <8 x double> %{{.}} to <8 x i64>
6308   return _mm512_castpd_si512 (__A);
6309 }
6310 
test_mm512_castps128_ps512(__m128 __A)6311 __m512 test_mm512_castps128_ps512(__m128 __A) {
6312   // CHECK-LABEL: @test_mm512_castps128_ps512
6313   // 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   return _mm512_castps128_ps512(__A);
6315 }
6316 
test_mm512_castpd128_pd512(__m128d __A)6317 __m512d test_mm512_castpd128_pd512(__m128d __A) {
6318   // CHECK-LABEL: @test_mm512_castpd128_pd512
6319   // 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   return _mm512_castpd128_pd512(__A);
6321 }
6322 
test_mm512_set1_epi8(char d)6323 __m512d test_mm512_set1_epi8(char d)
6324 {
6325   // CHECK-LABEL: @test_mm512_set1_epi8
6326   // CHECK: insertelement <64 x i8> {{.*}}, i32 0
6327   // CHECK: insertelement <64 x i8> {{.*}}, i32 1
6328   // CHECK: insertelement <64 x i8> {{.*}}, i32 2
6329   // CHECK: insertelement <64 x i8> {{.*}}, i32 3
6330   // CHECK: insertelement <64 x i8> {{.*}}, i32 4
6331   // CHECK: insertelement <64 x i8> {{.*}}, i32 5
6332   // CHECK: insertelement <64 x i8> {{.*}}, i32 6
6333   // CHECK: insertelement <64 x i8> {{.*}}, i32 7
6334   // CHECK: insertelement <64 x i8> {{.*}}, i32 63
6335   return _mm512_set1_epi8(d);
6336 }
6337 
test_mm512_set1_epi16(short d)6338 __m512d test_mm512_set1_epi16(short d)
6339 {
6340   // CHECK-LABEL: @test_mm512_set1_epi16
6341   // CHECK: insertelement <32 x i16> {{.*}}, i32 0
6342   // CHECK: insertelement <32 x i16> {{.*}}, i32 1
6343   // CHECK: insertelement <32 x i16> {{.*}}, i32 2
6344   // CHECK: insertelement <32 x i16> {{.*}}, i32 3
6345   // CHECK: insertelement <32 x i16> {{.*}}, i32 4
6346   // CHECK: insertelement <32 x i16> {{.*}}, i32 5
6347   // CHECK: insertelement <32 x i16> {{.*}}, i32 6
6348   // CHECK: insertelement <32 x i16> {{.*}}, i32 7
6349   // CHECK: insertelement <32 x i16> {{.*}}, i32 31
6350   return _mm512_set1_epi16(d);
6351 }
6352 
test_mm512_set4_epi32(int __A,int __B,int __C,int __D)6353 __m512i test_mm512_set4_epi32 (int __A, int __B, int __C, int __D)
6354 {
6355   // CHECK-LABEL: @test_mm512_set4_epi32
6356   // CHECK: insertelement <16 x i32> {{.*}}, i32 15
6357   return _mm512_set4_epi32 (__A,__B,__C,__D);
6358 }
6359 
test_mm512_set4_epi64(long long __A,long long __B,long long __C,long long __D)6360 __m512i test_mm512_set4_epi64 (long long __A, long long __B, long long __C, long long __D)
6361 {
6362   // CHECK-LABEL: @test_mm512_set4_epi64
6363   // CHECK: insertelement <8 x i64> {{.*}}, i32 7
6364   return _mm512_set4_epi64 (__A,__B,__C,__D);
6365 }
6366 
test_mm512_set4_pd(double __A,double __B,double __C,double __D)6367 __m512d test_mm512_set4_pd (double __A, double __B, double __C, double __D)
6368 {
6369   // CHECK-LABEL: @test_mm512_set4_pd
6370   // CHECK: insertelement <8 x double> {{.*}}, i32 7
6371   return _mm512_set4_pd (__A,__B,__C,__D);
6372 }
6373 
test_mm512_set4_ps(float __A,float __B,float __C,float __D)6374 __m512 test_mm512_set4_ps (float __A, float __B, float __C, float __D)
6375 {
6376   // CHECK-LABEL: @test_mm512_set4_ps
6377   // CHECK: insertelement <16 x float> {{.*}}, i32 15
6378   return _mm512_set4_ps (__A,__B,__C,__D);
6379 }
6380 
test_mm512_setr4_epi32(int e0,int e1,int e2,int e3)6381 __m512i test_mm512_setr4_epi32(int e0, int e1, int e2, int e3)
6382 {
6383   // CHECK-LABEL: @test_mm512_setr4_epi32
6384   // CHECK: insertelement <16 x i32> {{.*}}, i32 15
6385   return _mm512_setr4_epi32(e0, e1, e2, e3);
6386 }
6387 
test_mm512_setr4_epi64(long long e0,long long e1,long long e2,long long e3)6388  __m512i test_mm512_setr4_epi64(long long e0, long long e1, long long e2, long long e3)
6389 {
6390   // CHECK-LABEL: @test_mm512_setr4_epi64
6391   // CHECK: insertelement <8 x i64> {{.*}}, i32 7
6392   return _mm512_setr4_epi64(e0, e1, e2, e3);
6393 }
6394 
test_mm512_setr4_pd(double e0,double e1,double e2,double e3)6395 __m512i test_mm512_setr4_pd(double e0, double e1, double e2, double e3)
6396 {
6397   // CHECK-LABEL: @test_mm512_setr4_pd
6398   // CHECK: insertelement <8 x double> {{.*}}, i32 7
6399   return _mm512_setr4_pd(e0,e1,e2,e3);
6400 }
6401 
test_mm512_setr4_ps(float e0,float e1,float e2,float e3)6402  __m512i test_mm512_setr4_ps(float e0, float e1, float e2, float e3)
6403 {
6404   // CHECK-LABEL: @test_mm512_setr4_ps
6405   // CHECK: insertelement <16 x float> {{.*}}, i32 15
6406   return _mm512_setr4_ps(e0,e1,e2,e3);
6407 }
6408 
test_mm512_castpd256_pd512(__m256d a)6409 __m512d test_mm512_castpd256_pd512(__m256d a)
6410 {
6411   // CHECK-LABEL: @test_mm512_castpd256_pd512
6412   // CHECK: shufflevector <4 x double> {{.*}} <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
6413   return _mm512_castpd256_pd512(a);
6414 }
6415 
test_mm512_castpd512_pd256(__m512d __A)6416 __m256d test_mm512_castpd512_pd256 (__m512d __A)
6417 {
6418   // CHECK-LABEL: @test_mm512_castpd512_pd256
6419   // CHECK: shufflevector <8 x double> %{{.}}, <8 x double> %{{.}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6420   return _mm512_castpd512_pd256 (__A);
6421 }
6422 
test_mm512_castps512_ps256(__m512 __A)6423 __m256 test_mm512_castps512_ps256 (__m512 __A)
6424 {
6425   // CHECK-LABEL: @test_mm512_castps512_ps256
6426   // 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   return _mm512_castps512_ps256 (__A);
6428 }
6429 
test_mm512_castps_si512(__m512 __A)6430 __m512i test_mm512_castps_si512 (__m512 __A)
6431 {
6432   // CHECK-LABEL: @test_mm512_castps_si512
6433   // CHECK: bitcast <16 x float> %{{.}} to <8 x i64>
6434   return _mm512_castps_si512 (__A);
6435 }
test_mm512_castsi128_si512(__m128i __A)6436 __m512i test_mm512_castsi128_si512(__m128i __A) {
6437   // CHECK-LABEL: @test_mm512_castsi128_si512
6438   // 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   return _mm512_castsi128_si512(__A);
6440 }
6441 
test_mm512_castsi256_si512(__m256i __A)6442 __m512i test_mm512_castsi256_si512(__m256i __A) {
6443   // CHECK-LABEL: @test_mm512_castsi256_si512
6444   // 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   return _mm512_castsi256_si512(__A);
6446 }
6447 
test_mm512_castsi512_ps(__m512i __A)6448 __m512 test_mm512_castsi512_ps (__m512i __A)
6449 {
6450   // CHECK-LABEL: @test_mm512_castsi512_ps
6451   // CHECK: bitcast <8 x i64> %{{.}} to <16 x float>
6452   return _mm512_castsi512_ps (__A);
6453 }
6454 
test_mm512_castsi512_pd(__m512i __A)6455 __m512d test_mm512_castsi512_pd (__m512i __A)
6456 {
6457   // CHECK-LABEL: @test_mm512_castsi512_pd
6458   // CHECK: bitcast <8 x i64> %{{.}} to <8 x double>
6459   return _mm512_castsi512_pd (__A);
6460 }
6461 
test_mm512_castsi512_si128(__m512i __A)6462 __m128i test_mm512_castsi512_si128 (__m512i __A)
6463 {
6464   // CHECK-LABEL: @test_mm512_castsi512_si128
6465   // CHECK: shufflevector <8 x i64> %{{.}}, <8 x i64> %{{.}}, <2 x i32> <i32 0, i32 1>
6466   return _mm512_castsi512_si128 (__A);
6467 }
6468 
test_mm512_castsi512_si256(__m512i __A)6469 __m256i test_mm512_castsi512_si256 (__m512i __A)
6470 {
6471   // CHECK-LABEL: @test_mm512_castsi512_si256
6472   // CHECK: shufflevector <8 x i64> %{{.}}, <8 x i64> %{{.}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6473   return _mm512_castsi512_si256 (__A);
6474 }
6475 
test_mm_cvt_roundsd_ss(__m128 __A,__m128d __B)6476 __m128 test_mm_cvt_roundsd_ss(__m128 __A, __m128d __B) {
6477   // CHECK-LABEL: @test_mm_cvt_roundsd_ss
6478   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
6479   return _mm_cvt_roundsd_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6480 }
6481 
test_mm_mask_cvt_roundsd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128d __B)6482 __m128 test_mm_mask_cvt_roundsd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128d __B) {
6483   // CHECK-LABEL: @test_mm_mask_cvt_roundsd_ss
6484   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
6485   return _mm_mask_cvt_roundsd_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6486 }
6487 
test_mm_maskz_cvt_roundsd_ss(__mmask8 __U,__m128 __A,__m128d __B)6488 __m128 test_mm_maskz_cvt_roundsd_ss(__mmask8 __U, __m128 __A, __m128d __B) {
6489   // CHECK-LABEL: @test_mm_maskz_cvt_roundsd_ss
6490   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
6491   return _mm_maskz_cvt_roundsd_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6492 }
6493 
test_mm_cvt_roundi64_sd(__m128d __A,long long __B)6494 __m128d test_mm_cvt_roundi64_sd(__m128d __A, long long __B) {
6495   // CHECK-LABEL: @test_mm_cvt_roundi64_sd
6496   // CHECK: @llvm.x86.avx512.cvtsi2sd64
6497   return _mm_cvt_roundi64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6498 }
6499 
test_mm_cvt_roundsi64_sd(__m128d __A,long long __B)6500 __m128d test_mm_cvt_roundsi64_sd(__m128d __A, long long __B) {
6501   // CHECK-LABEL: @test_mm_cvt_roundsi64_sd
6502   // CHECK: @llvm.x86.avx512.cvtsi2sd64
6503   return _mm_cvt_roundsi64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6504 }
6505 
test_mm_cvt_roundsi32_ss(__m128 __A,int __B)6506 __m128 test_mm_cvt_roundsi32_ss(__m128 __A, int __B) {
6507   // CHECK-LABEL: @test_mm_cvt_roundsi32_ss
6508   // CHECK: @llvm.x86.avx512.cvtsi2ss32
6509   return _mm_cvt_roundsi32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6510 }
6511 
test_mm_cvt_roundi32_ss(__m128 __A,int __B)6512 __m128 test_mm_cvt_roundi32_ss(__m128 __A, int __B) {
6513   // CHECK-LABEL: @test_mm_cvt_roundi32_ss
6514   // CHECK: @llvm.x86.avx512.cvtsi2ss32
6515   return _mm_cvt_roundi32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6516 }
6517 
test_mm_cvt_roundsi64_ss(__m128 __A,long long __B)6518 __m128 test_mm_cvt_roundsi64_ss(__m128 __A, long long __B) {
6519   // CHECK-LABEL: @test_mm_cvt_roundsi64_ss
6520   // CHECK: @llvm.x86.avx512.cvtsi2ss64
6521   return _mm_cvt_roundsi64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6522 }
6523 
test_mm_cvt_roundi64_ss(__m128 __A,long long __B)6524 __m128 test_mm_cvt_roundi64_ss(__m128 __A, long long __B) {
6525   // CHECK-LABEL: @test_mm_cvt_roundi64_ss
6526   // CHECK: @llvm.x86.avx512.cvtsi2ss64
6527   return _mm_cvt_roundi64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6528 }
6529 
test_mm_cvt_roundss_sd(__m128d __A,__m128 __B)6530 __m128d test_mm_cvt_roundss_sd(__m128d __A, __m128 __B) {
6531   // CHECK-LABEL: @test_mm_cvt_roundss_sd
6532   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
6533   return _mm_cvt_roundss_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6534 }
6535 
test_mm_mask_cvt_roundss_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128 __B)6536 __m128d test_mm_mask_cvt_roundss_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128 __B) {
6537   // CHECK-LABEL: @test_mm_mask_cvt_roundss_sd
6538   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
6539   return _mm_mask_cvt_roundss_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6540 }
6541 
test_mm_maskz_cvt_roundss_sd(__mmask8 __U,__m128d __A,__m128 __B)6542 __m128d test_mm_maskz_cvt_roundss_sd( __mmask8 __U, __m128d __A, __m128 __B) {
6543   // CHECK-LABEL: @test_mm_maskz_cvt_roundss_sd
6544   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
6545   return _mm_maskz_cvt_roundss_sd( __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6546 }
6547 
test_mm_cvtu32_sd(__m128d __A,unsigned __B)6548 __m128d test_mm_cvtu32_sd(__m128d __A, unsigned __B) {
6549   // CHECK-LABEL: @test_mm_cvtu32_sd
6550   // CHECK: @llvm.x86.avx512.cvtusi2sd
6551   return _mm_cvtu32_sd(__A, __B);
6552 }
6553 
test_mm_cvt_roundu64_sd(__m128d __A,unsigned long long __B)6554 __m128d test_mm_cvt_roundu64_sd(__m128d __A, unsigned long long __B) {
6555   // CHECK-LABEL: @test_mm_cvt_roundu64_sd
6556   // CHECK: @llvm.x86.avx512.cvtusi642sd
6557   return _mm_cvt_roundu64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6558 }
6559 
test_mm_cvtu64_sd(__m128d __A,unsigned long long __B)6560 __m128d test_mm_cvtu64_sd(__m128d __A, unsigned long long __B) {
6561   // CHECK-LABEL: @test_mm_cvtu64_sd
6562   // CHECK: @llvm.x86.avx512.cvtusi642sd
6563   return _mm_cvtu64_sd(__A, __B);
6564 }
6565 
test_mm_cvt_roundu32_ss(__m128 __A,unsigned __B)6566 __m128 test_mm_cvt_roundu32_ss(__m128 __A, unsigned __B) {
6567   // CHECK-LABEL: @test_mm_cvt_roundu32_ss
6568   // CHECK: @llvm.x86.avx512.cvtusi2ss
6569   return _mm_cvt_roundu32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6570 }
6571 
test_mm_cvtu32_ss(__m128 __A,unsigned __B)6572 __m128 test_mm_cvtu32_ss(__m128 __A, unsigned __B) {
6573   // CHECK-LABEL: @test_mm_cvtu32_ss
6574   // CHECK: @llvm.x86.avx512.cvtusi2ss
6575   return _mm_cvtu32_ss(__A, __B);
6576 }
6577 
test_mm_cvt_roundu64_ss(__m128 __A,unsigned long long __B)6578 __m128 test_mm_cvt_roundu64_ss(__m128 __A, unsigned long long __B) {
6579   // CHECK-LABEL: @test_mm_cvt_roundu64_ss
6580   // CHECK: @llvm.x86.avx512.cvtusi642ss
6581     return _mm_cvt_roundu64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6582 }
6583 
test_mm_cvtu64_ss(__m128 __A,unsigned long long __B)6584 __m128 test_mm_cvtu64_ss(__m128 __A, unsigned long long __B) {
6585   // CHECK-LABEL: @test_mm_cvtu64_ss
6586   // CHECK: @llvm.x86.avx512.cvtusi642ss
6587   return _mm_cvtu64_ss(__A, __B);
6588 }
6589 
test_mm512_mask_cvttps_epu32(__m512i __W,__mmask16 __U,__m512 __A)6590 __m512i test_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
6591 {
6592   // CHECK-LABEL: @test_mm512_mask_cvttps_epu32
6593   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
6594   return _mm512_mask_cvttps_epu32 (__W,__U,__A);
6595 }
6596 
test_mm512_maskz_cvttps_epu32(__mmask16 __U,__m512 __A)6597 __m512i test_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A)
6598 {
6599   // CHECK-LABEL: @test_mm512_maskz_cvttps_epu32
6600   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
6601   return _mm512_maskz_cvttps_epu32 (__U,__A);
6602 }
6603 
test_mm512_cvtepu32_ps(__m512i __A)6604 __m512 test_mm512_cvtepu32_ps (__m512i __A)
6605 {
6606   // CHECK-LABEL: @test_mm512_cvtepu32_ps
6607   // CHECK:  @llvm.x86.avx512.mask.cvtudq2ps.512
6608   return _mm512_cvtepu32_ps (__A);
6609 }
6610 
test_mm512_mask_cvtepu32_ps(__m512 __W,__mmask16 __U,__m512i __A)6611 __m512 test_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A)
6612 {
6613   // CHECK-LABEL: @test_mm512_mask_cvtepu32_ps
6614   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
6615   return _mm512_mask_cvtepu32_ps (__W,__U,__A);
6616 }
6617 
test_mm512_maskz_cvtepu32_ps(__mmask16 __U,__m512i __A)6618 __m512 test_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A)
6619 {
6620   // CHECK-LABEL: @test_mm512_maskz_cvtepu32_ps
6621   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
6622   return _mm512_maskz_cvtepu32_ps (__U,__A);
6623 }
6624 
test_mm512_mask_cvtepi32_pd(__m512d __W,__mmask8 __U,__m256i __A)6625 __m512d test_mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A)
6626 {
6627   // CHECK-LABEL: @test_mm512_mask_cvtepi32_pd
6628   // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.512
6629   return _mm512_mask_cvtepi32_pd (__W,__U,__A);
6630 }
6631 
test_mm512_maskz_cvtepi32_pd(__mmask8 __U,__m256i __A)6632 __m512d test_mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A)
6633 {
6634   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_pd
6635   // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.512
6636   return _mm512_maskz_cvtepi32_pd (__U,__A);
6637 }
6638 
test_mm512_cvtepi32_ps(__m512i __A)6639 __m512 test_mm512_cvtepi32_ps (__m512i __A)
6640 {
6641   // CHECK-LABEL: @test_mm512_cvtepi32_ps
6642   // CHECK:  @llvm.x86.avx512.mask.cvtdq2ps.512
6643   return _mm512_cvtepi32_ps (__A);
6644 }
6645 
test_mm512_mask_cvtepi32_ps(__m512 __W,__mmask16 __U,__m512i __A)6646 __m512 test_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A)
6647 {
6648   // CHECK-LABEL: @test_mm512_mask_cvtepi32_ps
6649   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
6650   return _mm512_mask_cvtepi32_ps (__W,__U,__A);
6651 }
6652 
test_mm512_maskz_cvtepi32_ps(__mmask16 __U,__m512i __A)6653 __m512 test_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A)
6654 {
6655   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_ps
6656   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
6657   return _mm512_maskz_cvtepi32_ps (__U,__A);
6658 }
6659 
test_mm512_mask_cvtepu32_pd(__m512d __W,__mmask8 __U,__m256i __A)6660 __m512d test_mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A)
6661 {
6662   // CHECK-LABEL: @test_mm512_mask_cvtepu32_pd
6663   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.512
6664   return _mm512_mask_cvtepu32_pd (__W,__U,__A);
6665 }
6666 
test_mm512_maskz_cvtepu32_pd(__mmask8 __U,__m256i __A)6667 __m512d test_mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A)
6668 {
6669   // CHECK-LABEL: @test_mm512_maskz_cvtepu32_pd
6670   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.512
6671   return _mm512_maskz_cvtepu32_pd (__U,__A);
6672 }
6673 
test_mm512_cvtpd_ps(__m512d __A)6674 __m256 test_mm512_cvtpd_ps (__m512d __A)
6675 {
6676   // CHECK-LABEL: @test_mm512_cvtpd_ps
6677   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
6678   return _mm512_cvtpd_ps (__A);
6679 }
6680 
test_mm512_mask_cvtpd_ps(__m256 __W,__mmask8 __U,__m512d __A)6681 __m256 test_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A)
6682 {
6683   // CHECK-LABEL: @test_mm512_mask_cvtpd_ps
6684   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
6685   return _mm512_mask_cvtpd_ps (__W,__U,__A);
6686 }
6687 
test_mm512_maskz_cvtpd_ps(__mmask8 __U,__m512d __A)6688 __m256 test_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A)
6689 {
6690   // CHECK-LABEL: @test_mm512_maskz_cvtpd_ps
6691   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
6692   return _mm512_maskz_cvtpd_ps (__U,__A);
6693 }
6694 
test_mm512_mask_cvtph_ps(__m512 __W,__mmask16 __U,__m256i __A)6695 __m512 test_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A)
6696 {
6697   // CHECK-LABEL: @test_mm512_mask_cvtph_ps
6698   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
6699   return _mm512_mask_cvtph_ps (__W,__U,__A);
6700 }
6701 
test_mm512_maskz_cvtph_ps(__mmask16 __U,__m256i __A)6702 __m512 test_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A)
6703 {
6704   // CHECK-LABEL: @test_mm512_maskz_cvtph_ps
6705   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
6706   return _mm512_maskz_cvtph_ps (__U,__A);
6707 }
6708 
test_mm512_mask_cvttpd_epi32(__m256i __W,__mmask8 __U,__m512d __A)6709 __m256i test_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
6710 {
6711   // CHECK-LABEL: @test_mm512_mask_cvttpd_epi32
6712   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
6713   return _mm512_mask_cvttpd_epi32 (__W,__U,__A);
6714 }
6715 
test_mm512_maskz_cvttpd_epi32(__mmask8 __U,__m512d __A)6716 __m256i test_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A)
6717 {
6718   // CHECK-LABEL: @test_mm512_maskz_cvttpd_epi32
6719   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
6720   return _mm512_maskz_cvttpd_epi32 (__U,__A);
6721 }
6722 
test_mm512_mask_cvttps_epi32(__m512i __W,__mmask16 __U,__m512 __A)6723 __m512i test_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
6724 {
6725   // CHECK-LABEL: @test_mm512_mask_cvttps_epi32
6726   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
6727   return _mm512_mask_cvttps_epi32 (__W,__U,__A);
6728 }
6729 
test_mm512_maskz_cvttps_epi32(__mmask16 __U,__m512 __A)6730 __m512i test_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A)
6731 {
6732   // CHECK-LABEL: @test_mm512_maskz_cvttps_epi32
6733   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
6734   return _mm512_maskz_cvttps_epi32 (__U,__A);
6735 }
6736 
test_mm512_cvtps_epi32(__m512 __A)6737 __m512i test_mm512_cvtps_epi32 (__m512 __A)
6738 {
6739   // CHECK-LABEL: @test_mm512_cvtps_epi32
6740   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
6741   return _mm512_cvtps_epi32 (__A);
6742 }
6743 
test_mm512_mask_cvtps_epi32(__m512i __W,__mmask16 __U,__m512 __A)6744 __m512i test_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
6745 {
6746   // CHECK-LABEL: @test_mm512_mask_cvtps_epi32
6747   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
6748   return _mm512_mask_cvtps_epi32 (__W,__U,__A);
6749 }
6750 
test_mm512_maskz_cvtps_epi32(__mmask16 __U,__m512 __A)6751 __m512i test_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A)
6752 {
6753   // CHECK-LABEL: @test_mm512_maskz_cvtps_epi32
6754   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
6755   return _mm512_maskz_cvtps_epi32 (__U,__A);
6756 }
6757 
test_mm512_cvtpd_epi32(__m512d __A)6758 __m256i test_mm512_cvtpd_epi32 (__m512d __A)
6759 {
6760   // CHECK-LABEL: @test_mm512_cvtpd_epi32
6761   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
6762   return _mm512_cvtpd_epi32 (__A);
6763 }
6764 
test_mm512_mask_cvtpd_epi32(__m256i __W,__mmask8 __U,__m512d __A)6765 __m256i test_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
6766 {
6767   // CHECK-LABEL: @test_mm512_mask_cvtpd_epi32
6768   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
6769   return _mm512_mask_cvtpd_epi32 (__W,__U,__A);
6770 }
6771 
test_mm512_maskz_cvtpd_epi32(__mmask8 __U,__m512d __A)6772 __m256i test_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A)
6773 {
6774   // CHECK-LABEL: @test_mm512_maskz_cvtpd_epi32
6775   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
6776   return _mm512_maskz_cvtpd_epi32 (__U,__A);
6777 }
6778 
test_mm512_cvtpd_epu32(__m512d __A)6779 __m256i test_mm512_cvtpd_epu32 (__m512d __A)
6780 {
6781   // CHECK-LABEL: @test_mm512_cvtpd_epu32
6782   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
6783   return _mm512_cvtpd_epu32 (__A);
6784 }
6785 
test_mm512_mask_cvtpd_epu32(__m256i __W,__mmask8 __U,__m512d __A)6786 __m256i test_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
6787 {
6788   // CHECK-LABEL: @test_mm512_mask_cvtpd_epu32
6789   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
6790   return _mm512_mask_cvtpd_epu32 (__W,__U,__A);
6791 }
6792 
test_mm512_maskz_cvtpd_epu32(__mmask8 __U,__m512d __A)6793 __m256i test_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A)
6794 {
6795   // CHECK-LABEL: @test_mm512_maskz_cvtpd_epu32
6796   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
6797   return _mm512_maskz_cvtpd_epu32 (__U,__A);
6798 }
6799 
test_mm512_mask_cvtps_ph(__m256i src,__mmask16 k,__m512 a)6800 __m256i test_mm512_mask_cvtps_ph(__m256i src, __mmask16 k, __m512 a)
6801 {
6802   // CHECK-LABEL: @test_mm512_mask_cvtps_ph
6803   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
6804   return _mm512_mask_cvtps_ph(src, k, a,_MM_FROUND_CUR_DIRECTION);
6805 }
6806 
test_mm512_maskz_cvtps_ph(__mmask16 k,__m512 a)6807 __m256i test_mm512_maskz_cvtps_ph (__mmask16 k, __m512 a)
6808 {
6809   // CHECK-LABEL: @test_mm512_maskz_cvtps_ph
6810   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
6811   return _mm512_maskz_cvtps_ph( k, a,_MM_FROUND_CUR_DIRECTION);
6812 }
6813 
test_mm512_cvtps_epu32(__m512 __A)6814 __m512i test_mm512_cvtps_epu32 ( __m512 __A)
6815 {
6816   // CHECK-LABEL: @test_mm512_cvtps_epu32
6817   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
6818   return _mm512_cvtps_epu32(__A);
6819 }
6820 
test_mm512_mask_cvtps_epu32(__m512i __W,__mmask16 __U,__m512 __A)6821 __m512i test_mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
6822 {
6823   // CHECK-LABEL: @test_mm512_mask_cvtps_epu32
6824   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
6825   return _mm512_mask_cvtps_epu32( __W, __U, __A);
6826 }
test_mm512_maskz_cvtps_epu32(__mmask16 __U,__m512 __A)6827 __m512i test_mm512_maskz_cvtps_epu32 (__mmask16 __U, __m512 __A)
6828 {
6829   // CHECK-LABEL: @test_mm512_maskz_cvtps_epu32
6830   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
6831   return _mm512_maskz_cvtps_epu32( __U, __A);
6832 }
6833 
test_mm512_mask_max_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)6834 __m512d test_mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
6835 {
6836   // CHECK-LABEL: @test_mm512_mask_max_pd
6837   // CHECK: @llvm.x86.avx512.mask.max.pd.512
6838   return _mm512_mask_max_pd (__W,__U,__A,__B);
6839 }
6840 
test_mm512_maskz_max_pd(__mmask8 __U,__m512d __A,__m512d __B)6841 __m512d test_mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B)
6842 {
6843   // CHECK-LABEL: @test_mm512_maskz_max_pd
6844   // CHECK: @llvm.x86.avx512.mask.max.pd.512
6845   return _mm512_maskz_max_pd (__U,__A,__B);
6846 }
6847 
test_mm512_mask_max_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)6848 __m512 test_mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
6849 {
6850   // CHECK-LABEL: @test_mm512_mask_max_ps
6851   // CHECK: @llvm.x86.avx512.mask.max.ps.512
6852   return _mm512_mask_max_ps (__W,__U,__A,__B);
6853 }
6854 
test_mm512_mask_max_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)6855 __m512d test_mm512_mask_max_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)
6856 {
6857   // CHECK-LABEL: @test_mm512_mask_max_round_pd
6858   // CHECK: @llvm.x86.avx512.mask.max.pd.512
6859   return _mm512_mask_max_round_pd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6860 }
6861 
test_mm512_maskz_max_round_pd(__mmask8 __U,__m512d __A,__m512d __B)6862 __m512d test_mm512_maskz_max_round_pd(__mmask8 __U,__m512d __A,__m512d __B)
6863 {
6864   // CHECK-LABEL: @test_mm512_maskz_max_round_pd
6865   // CHECK: @llvm.x86.avx512.mask.max.pd.512
6866   return _mm512_maskz_max_round_pd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6867 }
6868 
test_mm512_max_round_pd(__m512d __A,__m512d __B)6869 __m512d test_mm512_max_round_pd(__m512d __A,__m512d __B)
6870 {
6871   // CHECK-LABEL: @test_mm512_max_round_pd
6872   // CHECK: @llvm.x86.avx512.mask.max.pd.512
6873   return _mm512_max_round_pd(__A,__B,_MM_FROUND_CUR_DIRECTION);
6874 }
6875 
test_mm512_maskz_max_ps(__mmask16 __U,__m512 __A,__m512 __B)6876 __m512 test_mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B)
6877 {
6878   // CHECK-LABEL: @test_mm512_maskz_max_ps
6879   // CHECK: @llvm.x86.avx512.mask.max.ps.512
6880   return _mm512_maskz_max_ps (__U,__A,__B);
6881 }
6882 
test_mm512_mask_max_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)6883 __m512 test_mm512_mask_max_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)
6884 {
6885   // CHECK-LABEL: @test_mm512_mask_max_round_ps
6886   // CHECK: @llvm.x86.avx512.mask.max.ps.512
6887   return _mm512_mask_max_round_ps(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6888 }
6889 
test_mm512_maskz_max_round_ps(__mmask16 __U,__m512 __A,__m512 __B)6890 __m512 test_mm512_maskz_max_round_ps(__mmask16 __U,__m512 __A,__m512 __B)
6891 {
6892   // CHECK-LABEL: @test_mm512_maskz_max_round_ps
6893   // CHECK: @llvm.x86.avx512.mask.max.ps.512
6894   return _mm512_maskz_max_round_ps(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6895 }
6896 
test_mm512_max_round_ps(__m512 __A,__m512 __B)6897 __m512 test_mm512_max_round_ps(__m512 __A,__m512 __B)
6898 {
6899   // CHECK-LABEL: @test_mm512_max_round_ps
6900   // CHECK: @llvm.x86.avx512.mask.max.ps.512
6901   return _mm512_max_round_ps(__A,__B,_MM_FROUND_CUR_DIRECTION);
6902 }
6903 
test_mm512_mask_min_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)6904 __m512d test_mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
6905 {
6906   // CHECK-LABEL: @test_mm512_mask_min_pd
6907   // CHECK: @llvm.x86.avx512.mask.min.pd.512
6908   return _mm512_mask_min_pd (__W,__U,__A,__B);
6909 }
6910 
test_mm512_maskz_min_pd(__mmask8 __U,__m512d __A,__m512d __B)6911 __m512d test_mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B)
6912 {
6913   // CHECK-LABEL: @test_mm512_maskz_min_pd
6914   // CHECK: @llvm.x86.avx512.mask.min.pd.512
6915   return _mm512_maskz_min_pd (__U,__A,__B);
6916 }
6917 
test_mm512_mask_min_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)6918 __m512d test_mm512_mask_min_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)
6919 {
6920   // CHECK-LABEL: @test_mm512_mask_min_round_pd
6921   // CHECK: @llvm.x86.avx512.mask.min.pd.512
6922   return _mm512_mask_min_round_pd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6923 }
6924 
test_mm512_maskz_min_round_pd(__mmask8 __U,__m512d __A,__m512d __B)6925 __m512d test_mm512_maskz_min_round_pd(__mmask8 __U,__m512d __A,__m512d __B)
6926 {
6927   // CHECK-LABEL: @test_mm512_maskz_min_round_pd
6928   // CHECK: @llvm.x86.avx512.mask.min.pd.512
6929   return _mm512_maskz_min_round_pd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6930 }
6931 
test_mm512_min_round_pd(__m512d __A,__m512d __B)6932 __m512d test_mm512_min_round_pd( __m512d __A,__m512d __B)
6933 {
6934   // CHECK-LABEL: @test_mm512_min_round_pd
6935   // CHECK: @llvm.x86.avx512.mask.min.pd.512
6936   return _mm512_min_round_pd(__A,__B,_MM_FROUND_CUR_DIRECTION);
6937 }
6938 
test_mm512_mask_min_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)6939 __m512 test_mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
6940 {
6941   // CHECK-LABEL: @test_mm512_mask_min_ps
6942   // CHECK: @llvm.x86.avx512.mask.min.ps.512
6943   return _mm512_mask_min_ps (__W,__U,__A,__B);
6944 }
6945 
test_mm512_maskz_min_ps(__mmask16 __U,__m512 __A,__m512 __B)6946 __m512 test_mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B)
6947 {
6948   // CHECK-LABEL: @test_mm512_maskz_min_ps
6949   // CHECK: @llvm.x86.avx512.mask.min.ps.512
6950   return _mm512_maskz_min_ps (__U,__A,__B);
6951 }
6952 
test_mm512_mask_min_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)6953 __m512 test_mm512_mask_min_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)
6954 {
6955   // CHECK-LABEL: @test_mm512_mask_min_round_ps
6956   // CHECK: @llvm.x86.avx512.mask.min.ps.512
6957   return _mm512_mask_min_round_ps(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6958 }
6959 
test_mm512_maskz_min_round_ps(__mmask16 __U,__m512 __A,__m512 __B)6960 __m512 test_mm512_maskz_min_round_ps(__mmask16 __U,__m512 __A,__m512 __B)
6961 {
6962   // CHECK-LABEL: @test_mm512_maskz_min_round_ps
6963   // CHECK: @llvm.x86.avx512.mask.min.ps.512
6964   return _mm512_maskz_min_round_ps(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
6965 }
6966 
test_mm512_min_round_ps(__m512 __A,__m512 __B)6967 __m512 test_mm512_min_round_ps(__m512 __A,__m512 __B)
6968 {
6969   // CHECK-LABEL: @test_mm512_min_round_ps
6970   // CHECK: @llvm.x86.avx512.mask.min.ps.512
6971   return _mm512_min_round_ps(__A,__B,_MM_FROUND_CUR_DIRECTION);
6972 }
6973 
test_mm512_mask_floor_ps(__m512 __W,__mmask16 __U,__m512 __A)6974 __m512 test_mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A)
6975 {
6976   // CHECK-LABEL: @test_mm512_mask_floor_ps
6977   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
6978   return _mm512_mask_floor_ps (__W,__U,__A);
6979 }
6980 
test_mm512_mask_floor_pd(__m512d __W,__mmask8 __U,__m512d __A)6981 __m512d test_mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A)
6982 {
6983   // CHECK-LABEL: @test_mm512_mask_floor_pd
6984   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
6985   return _mm512_mask_floor_pd (__W,__U,__A);
6986 }
6987 
test_mm512_mask_ceil_ps(__m512 __W,__mmask16 __U,__m512 __A)6988 __m512 test_mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A)
6989 {
6990   // CHECK-LABEL: @test_mm512_mask_ceil_ps
6991   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
6992   return _mm512_mask_ceil_ps (__W,__U,__A);
6993 }
6994 
test_mm512_mask_ceil_pd(__m512d __W,__mmask8 __U,__m512d __A)6995 __m512d test_mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A)
6996 {
6997   // CHECK-LABEL: @test_mm512_mask_ceil_pd
6998   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
6999   return _mm512_mask_ceil_pd (__W,__U,__A);
7000 }
7001 
test_mm512_mask_roundscale_ps(__m512 __W,__mmask16 __U,__m512 __A)7002 __m512 test_mm512_mask_roundscale_ps(__m512 __W, __mmask16 __U, __m512 __A)
7003 {
7004   // CHECK-LABEL: @test_mm512_mask_roundscale_ps
7005   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7006   return _mm512_mask_roundscale_ps(__W,__U,__A, 1);
7007 }
7008 
test_mm512_maskz_roundscale_ps(__mmask16 __U,__m512 __A)7009 __m512 test_mm512_maskz_roundscale_ps(__mmask16 __U, __m512 __A)
7010 {
7011   // CHECK-LABEL: @test_mm512_maskz_roundscale_ps
7012   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7013   return _mm512_maskz_roundscale_ps(__U,__A, 1);
7014 }
7015 
test_mm512_mask_roundscale_round_ps(__m512 __A,__mmask16 __U,__m512 __C)7016 __m512 test_mm512_mask_roundscale_round_ps(__m512 __A,__mmask16 __U,__m512 __C)
7017 {
7018   // CHECK-LABEL: @test_mm512_mask_roundscale_round_ps
7019   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7020   return _mm512_mask_roundscale_round_ps(__A,__U,__C,3,_MM_FROUND_CUR_DIRECTION);
7021 }
7022 
test_mm512_maskz_roundscale_round_ps(__m512 __A,__mmask16 __U)7023 __m512 test_mm512_maskz_roundscale_round_ps(__m512 __A,__mmask16 __U)
7024 {
7025   // CHECK-LABEL: @test_mm512_maskz_roundscale_round_ps
7026   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7027   return _mm512_maskz_roundscale_round_ps(__U,__A,3,_MM_FROUND_CUR_DIRECTION);
7028 }
7029 
test_mm512_roundscale_round_ps(__m512 __A)7030 __m512 test_mm512_roundscale_round_ps(__m512 __A)
7031 {
7032   // CHECK-LABEL: @test_mm512_roundscale_round_ps
7033   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7034   return _mm512_roundscale_round_ps(__A,3,_MM_FROUND_CUR_DIRECTION);
7035 }
7036 
test_mm512_mask_roundscale_pd(__m512d __W,__mmask8 __U,__m512d __A)7037 __m512d test_mm512_mask_roundscale_pd(__m512d __W, __mmask8 __U, __m512d __A)
7038 {
7039   // CHECK-LABEL: @test_mm512_mask_roundscale_pd
7040   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7041   return _mm512_mask_roundscale_pd(__W,__U,__A, 1);
7042 }
7043 
test_mm512_maskz_roundscale_pd(__mmask8 __U,__m512d __A)7044 __m512d test_mm512_maskz_roundscale_pd(__mmask8 __U, __m512d __A)
7045 {
7046   // CHECK-LABEL: @test_mm512_maskz_roundscale_pd
7047   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7048   return _mm512_maskz_roundscale_pd(__U,__A, 1);
7049 }
7050 
test_mm512_mask_roundscale_round_pd(__m512d __A,__mmask8 __U,__m512d __C)7051 __m512d test_mm512_mask_roundscale_round_pd(__m512d __A,__mmask8 __U,__m512d __C)
7052 {
7053   // CHECK-LABEL: @test_mm512_mask_roundscale_round_pd
7054   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7055   return _mm512_mask_roundscale_round_pd(__A,__U,__C,3,_MM_FROUND_CUR_DIRECTION);
7056 }
7057 
test_mm512_maskz_roundscale_round_pd(__m512d __A,__mmask8 __U)7058 __m512d test_mm512_maskz_roundscale_round_pd(__m512d __A,__mmask8 __U)
7059 {
7060   // CHECK-LABEL: @test_mm512_maskz_roundscale_round_pd
7061   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7062   return _mm512_maskz_roundscale_round_pd(__U,__A,3,_MM_FROUND_CUR_DIRECTION);
7063 }
7064 
test_mm512_roundscale_round_pd(__m512d __A)7065 __m512d test_mm512_roundscale_round_pd(__m512d __A)
7066 {
7067   // CHECK-LABEL: @test_mm512_roundscale_round_pd
7068   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7069   return _mm512_roundscale_round_pd(__A,3,_MM_FROUND_CUR_DIRECTION);
7070 }
7071 
test_mm512_mask_max_epi32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)7072 __m512i test_mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7073 {
7074   // CHECK-LABEL: @test_mm512_mask_max_epi32
7075   // CHECK: @llvm.x86.avx512.mask.pmaxs.d.512
7076   return _mm512_mask_max_epi32 (__W,__M,__A,__B);
7077 }
7078 
test_mm512_maskz_max_epi32(__mmask16 __M,__m512i __A,__m512i __B)7079 __m512i test_mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
7080 {
7081   // CHECK-LABEL: @test_mm512_maskz_max_epi32
7082   // CHECK: @llvm.x86.avx512.mask.pmaxs.d.512
7083   return _mm512_maskz_max_epi32 (__M,__A,__B);
7084 }
7085 
test_mm512_mask_max_epi64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)7086 __m512i test_mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7087 {
7088   // CHECK-LABEL: @test_mm512_mask_max_epi64
7089   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.512
7090   return _mm512_mask_max_epi64 (__W,__M,__A,__B);
7091 }
7092 
test_mm512_maskz_max_epi64(__mmask8 __M,__m512i __A,__m512i __B)7093 __m512i test_mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
7094 {
7095   // CHECK-LABEL: @test_mm512_maskz_max_epi64
7096   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.512
7097   return _mm512_maskz_max_epi64 (__M,__A,__B);
7098 }
7099 
test_mm512_mask_max_epu64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)7100 __m512i test_mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7101 {
7102   // CHECK-LABEL: @test_mm512_mask_max_epu64
7103   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.512
7104   return _mm512_mask_max_epu64 (__W,__M,__A,__B);
7105 }
7106 
test_mm512_maskz_max_epu64(__mmask8 __M,__m512i __A,__m512i __B)7107 __m512i test_mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
7108 {
7109   // CHECK-LABEL: @test_mm512_maskz_max_epu64
7110   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.512
7111   return _mm512_maskz_max_epu64 (__M,__A,__B);
7112 }
7113 
test_mm512_mask_max_epu32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)7114 __m512i test_mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7115 {
7116   // CHECK-LABEL: @test_mm512_mask_max_epu32
7117   // CHECK: @llvm.x86.avx512.mask.pmaxu.d.512
7118   return _mm512_mask_max_epu32 (__W,__M,__A,__B);
7119 }
7120 
test_mm512_maskz_max_epu32(__mmask16 __M,__m512i __A,__m512i __B)7121 __m512i test_mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
7122 {
7123   // CHECK-LABEL: @test_mm512_maskz_max_epu32
7124   // CHECK: @llvm.x86.avx512.mask.pmaxu.d.512
7125   return _mm512_maskz_max_epu32 (__M,__A,__B);
7126 }
7127 
test_mm512_mask_min_epi32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)7128 __m512i test_mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7129 {
7130   // CHECK-LABEL: @test_mm512_mask_min_epi32
7131   // CHECK: @llvm.x86.avx512.mask.pmins.d.512
7132   return _mm512_mask_min_epi32 (__W,__M,__A,__B);
7133 }
7134 
test_mm512_maskz_min_epi32(__mmask16 __M,__m512i __A,__m512i __B)7135 __m512i test_mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
7136 {
7137   // CHECK-LABEL: @test_mm512_maskz_min_epi32
7138   // CHECK: @llvm.x86.avx512.mask.pmins.d.512
7139   return _mm512_maskz_min_epi32 (__M,__A,__B);
7140 }
7141 
test_mm512_mask_min_epu32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)7142 __m512i test_mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7143 {
7144   // CHECK-LABEL: @test_mm512_mask_min_epu32
7145   // CHECK: @llvm.x86.avx512.mask.pminu.d.512
7146   return _mm512_mask_min_epu32 (__W,__M,__A,__B);
7147 }
7148 
test_mm512_maskz_min_epu32(__mmask16 __M,__m512i __A,__m512i __B)7149 __m512i test_mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
7150 {
7151   // CHECK-LABEL: @test_mm512_maskz_min_epu32
7152   // CHECK: @llvm.x86.avx512.mask.pminu.d.512
7153   return _mm512_maskz_min_epu32 (__M,__A,__B);
7154 }
7155 
test_mm512_mask_min_epi64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)7156 __m512i test_mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7157 {
7158   // CHECK-LABEL: @test_mm512_mask_min_epi64
7159   // CHECK: @llvm.x86.avx512.mask.pmins.q.512
7160   return _mm512_mask_min_epi64 (__W,__M,__A,__B);
7161 }
7162 
test_mm512_maskz_min_epi64(__mmask8 __M,__m512i __A,__m512i __B)7163 __m512i test_mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
7164 {
7165   // CHECK-LABEL: @test_mm512_maskz_min_epi64
7166   // CHECK: @llvm.x86.avx512.mask.pmins.q.512
7167   return _mm512_maskz_min_epi64 (__M,__A,__B);
7168 }
7169 
test_mm512_mask_min_epu64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)7170 __m512i test_mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7171 {
7172   // CHECK-LABEL: @test_mm512_mask_min_epu64
7173   // CHECK: @llvm.x86.avx512.mask.pminu.q.512
7174   return _mm512_mask_min_epu64 (__W,__M,__A,__B);
7175 }
7176 
test_mm512_maskz_min_epu64(__mmask8 __M,__m512i __A,__m512i __B)7177 __m512i test_mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
7178 {
7179   // CHECK-LABEL: @test_mm512_maskz_min_epu64
7180   // CHECK: @llvm.x86.avx512.mask.pminu.q.512
7181   return _mm512_maskz_min_epu64 (__M,__A,__B);
7182 }
7183 
test_mm512_mask_set1_epi32(__m512i __O,__mmask16 __M,int __A)7184 __m512i test_mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A)
7185 {
7186     //CHECK-LABEL: @test_mm512_mask_set1_epi32
7187     //CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.512
7188   return _mm512_mask_set1_epi32 ( __O, __M, __A);
7189 }
7190 
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 __m512i test_mm512_set_epi32 (int __A, int __B, int __C, int __D,
7192                int __E, int __F, int __G, int __H,
7193                int __I, int __J, int __K, int __L,
7194                int __M, int __N, int __O, int __P)
7195 {
7196  //CHECK-LABEL: @test_mm512_set_epi32
7197  //CHECK: insertelement{{.*}}i32 0
7198     //CHECK: insertelement{{.*}}i32 1
7199     //CHECK: insertelement{{.*}}i32 2
7200     //CHECK: insertelement{{.*}}i32 3
7201     //CHECK: insertelement{{.*}}i32 4
7202     //CHECK: insertelement{{.*}}i32 5
7203     //CHECK: insertelement{{.*}}i32 6
7204     //CHECK: insertelement{{.*}}i32 7
7205     //CHECK: insertelement{{.*}}i32 8
7206     //CHECK: insertelement{{.*}}i32 9
7207     //CHECK: insertelement{{.*}}i32 10
7208     //CHECK: insertelement{{.*}}i32 11
7209     //CHECK: insertelement{{.*}}i32 12
7210     //CHECK: insertelement{{.*}}i32 13
7211     //CHECK: insertelement{{.*}}i32 14
7212     //CHECK: insertelement{{.*}}i32 15
7213  return _mm512_set_epi32( __A, __B, __C, __D,__E, __F, __G, __H,
7214               __I, __J, __K, __L,__M, __N, __O, __P);
7215 }
7216 
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 __m512i test_mm512_setr_epi32 (int __A, int __B, int __C, int __D,
7218                int __E, int __F, int __G, int __H,
7219                int __I, int __J, int __K, int __L,
7220                int __M, int __N, int __O, int __P)
7221 {
7222     //CHECK-LABEL: @test_mm512_setr_epi32
7223     //CHECK: load{{.*}}%__P.addr, align 4
7224     //CHECK: load{{.*}}%__O.addr, align 4
7225     //CHECK: load{{.*}}%__N.addr, align 4
7226     //CHECK: load{{.*}}%__M.addr, align 4
7227     //CHECK: load{{.*}}%__L.addr, align 4
7228     //CHECK: load{{.*}}%__K.addr, align 4
7229     //CHECK: load{{.*}}%__J.addr, align 4
7230     //CHECK: load{{.*}}%__I.addr, align 4
7231     //CHECK: load{{.*}}%__H.addr, align 4
7232     //CHECK: load{{.*}}%__G.addr, align 4
7233     //CHECK: load{{.*}}%__F.addr, align 4
7234     //CHECK: load{{.*}}%__E.addr, align 4
7235     //CHECK: load{{.*}}%__D.addr, align 4
7236     //CHECK: load{{.*}}%__C.addr, align 4
7237     //CHECK: load{{.*}}%__B.addr, align 4
7238     //CHECK: load{{.*}}%__A.addr, align 4
7239     //CHECK: insertelement{{.*}}i32 0
7240     //CHECK: insertelement{{.*}}i32 1
7241     //CHECK: insertelement{{.*}}i32 2
7242     //CHECK: insertelement{{.*}}i32 3
7243     //CHECK: insertelement{{.*}}i32 4
7244     //CHECK: insertelement{{.*}}i32 5
7245     //CHECK: insertelement{{.*}}i32 6
7246     //CHECK: insertelement{{.*}}i32 7
7247     //CHECK: insertelement{{.*}}i32 8
7248     //CHECK: insertelement{{.*}}i32 9
7249     //CHECK: insertelement{{.*}}i32 10
7250     //CHECK: insertelement{{.*}}i32 11
7251     //CHECK: insertelement{{.*}}i32 12
7252     //CHECK: insertelement{{.*}}i32 13
7253     //CHECK: insertelement{{.*}}i32 14
7254     //CHECK: insertelement{{.*}}i32 15
7255  return _mm512_setr_epi32( __A, __B, __C, __D,__E, __F, __G, __H,
7256               __I, __J, __K, __L,__M, __N, __O, __P);
7257 }
7258 
test_mm512_mask_set1_epi64(__m512i __O,__mmask8 __M,long long __A)7259 __m512i test_mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A)
7260 {
7261     //CHECK-LABEL: @test_mm512_mask_set1_epi64
7262     //CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.512
7263   return _mm512_mask_set1_epi64 (__O, __M, __A);
7264 }
7265 
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 __m512i test_mm512_set_epi64 (long long __A, long long __B, long long __C,
7267                               long long __D, long long __E, long long __F,
7268                               long long __G, long long __H)
7269 {
7270     //CHECK-LABEL: @test_mm512_set_epi64
7271     //CHECK: insertelement{{.*}}i32 0
7272     //CHECK: insertelement{{.*}}i32 1
7273     //CHECK: insertelement{{.*}}i32 2
7274     //CHECK: insertelement{{.*}}i32 3
7275     //CHECK: insertelement{{.*}}i32 4
7276     //CHECK: insertelement{{.*}}i32 5
7277     //CHECK: insertelement{{.*}}i32 6
7278     //CHECK: insertelement{{.*}}i32 7
7279   return _mm512_set_epi64(__A, __B, __C, __D, __E, __F, __G, __H );
7280 }
7281 
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 __m512i test_mm512_setr_epi64 (long long __A, long long __B, long long __C,
7283                               long long __D, long long __E, long long __F,
7284                               long long __G, long long __H)
7285 {
7286     //CHECK-LABEL: @test_mm512_setr_epi64
7287     //CHECK: load{{.*}}%__H.addr, align 8
7288     //CHECK: load{{.*}}%__G.addr, align 8
7289     //CHECK: load{{.*}}%__F.addr, align 8
7290     //CHECK: load{{.*}}%__E.addr, align 8
7291     //CHECK: load{{.*}}%__D.addr, align 8
7292     //CHECK: load{{.*}}%__C.addr, align 8
7293     //CHECK: load{{.*}}%__B.addr, align 8
7294     //CHECK: load{{.*}}%__A.addr, align 8
7295     //CHECK: insertelement{{.*}}i32 0
7296     //CHECK: insertelement{{.*}}i32 1
7297     //CHECK: insertelement{{.*}}i32 2
7298     //CHECK: insertelement{{.*}}i32 3
7299     //CHECK: insertelement{{.*}}i32 4
7300     //CHECK: insertelement{{.*}}i32 5
7301     //CHECK: insertelement{{.*}}i32 6
7302     //CHECK: insertelement{{.*}}i32 7
7303   return _mm512_setr_epi64(__A, __B, __C, __D, __E, __F, __G, __H );
7304 }
7305 
test_mm512_set_pd(double __A,double __B,double __C,double __D,double __E,double __F,double __G,double __H)7306 __m512d test_mm512_set_pd (double __A, double __B, double __C, double __D,
7307                            double __E, double __F, double __G, double __H)
7308 {
7309     //CHECK-LABEL: @test_mm512_set_pd
7310     //CHECK: insertelement{{.*}}i32 0
7311     //CHECK: insertelement{{.*}}i32 1
7312     //CHECK: insertelement{{.*}}i32 2
7313     //CHECK: insertelement{{.*}}i32 3
7314     //CHECK: insertelement{{.*}}i32 4
7315     //CHECK: insertelement{{.*}}i32 5
7316     //CHECK: insertelement{{.*}}i32 6
7317     //CHECK: insertelement{{.*}}i32 7
7318   return _mm512_set_pd( __A, __B, __C, __D, __E, __F, __G, __H);
7319 }
7320 
test_mm512_setr_pd(double __A,double __B,double __C,double __D,double __E,double __F,double __G,double __H)7321 __m512d test_mm512_setr_pd (double __A, double __B, double __C, double __D,
7322                            double __E, double __F, double __G, double __H)
7323 {
7324     //CHECK-LABEL: @test_mm512_setr_pd
7325     //CHECK: load{{.*}}%__H.addr, align 8
7326     //CHECK: load{{.*}}%__G.addr, align 8
7327     //CHECK: load{{.*}}%__F.addr, align 8
7328     //CHECK: load{{.*}}%__E.addr, align 8
7329     //CHECK: load{{.*}}%__D.addr, align 8
7330     //CHECK: load{{.*}}%__C.addr, align 8
7331     //CHECK: load{{.*}}%__B.addr, align 8
7332     //CHECK: load{{.*}}%__A.addr, align 8
7333     //CHECK: insertelement{{.*}}i32 0
7334     //CHECK: insertelement{{.*}}i32 1
7335     //CHECK: insertelement{{.*}}i32 2
7336     //CHECK: insertelement{{.*}}i32 3
7337     //CHECK: insertelement{{.*}}i32 4
7338     //CHECK: insertelement{{.*}}i32 5
7339     //CHECK: insertelement{{.*}}i32 6
7340     //CHECK: insertelement{{.*}}i32 7
7341   return _mm512_setr_pd( __A, __B, __C, __D, __E, __F, __G, __H);
7342 }
7343 
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 __m512 test_mm512_set_ps (float __A, float __B, float __C, float __D,
7345                           float __E, float __F, float __G, float __H,
7346                           float __I, float __J, float __K, float __L,
7347                           float __M, float __N, float __O, float __P)
7348 {
7349     //CHECK-LABEL: @test_mm512_set_ps
7350     //CHECK: insertelement{{.*}}i32 0
7351     //CHECK: insertelement{{.*}}i32 1
7352     //CHECK: insertelement{{.*}}i32 2
7353     //CHECK: insertelement{{.*}}i32 3
7354     //CHECK: insertelement{{.*}}i32 4
7355     //CHECK: insertelement{{.*}}i32 5
7356     //CHECK: insertelement{{.*}}i32 6
7357     //CHECK: insertelement{{.*}}i32 7
7358     //CHECK: insertelement{{.*}}i32 8
7359     //CHECK: insertelement{{.*}}i32 9
7360     //CHECK: insertelement{{.*}}i32 10
7361     //CHECK: insertelement{{.*}}i32 11
7362     //CHECK: insertelement{{.*}}i32 12
7363     //CHECK: insertelement{{.*}}i32 13
7364     //CHECK: insertelement{{.*}}i32 14
7365     //CHECK: insertelement{{.*}}i32 15
7366     return _mm512_set_ps( __A, __B, __C, __D, __E, __F, __G, __H,
7367                           __I, __J, __K, __L, __M, __N, __O, __P);
7368 }
7369 
test_mm512_mask_abs_epi64(__m512i __W,__mmask8 __U,__m512i __A)7370 __m512i test_mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
7371 {
7372   // CHECK-LABEL: @test_mm512_mask_abs_epi64
7373   // CHECK: @llvm.x86.avx512.mask.pabs.q.512
7374   return _mm512_mask_abs_epi64 (__W,__U,__A);
7375 }
7376 
test_mm512_maskz_abs_epi64(__mmask8 __U,__m512i __A)7377 __m512i test_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
7378 {
7379   // CHECK-LABEL: @test_mm512_maskz_abs_epi64
7380   // CHECK: @llvm.x86.avx512.mask.pabs.q.512
7381   return _mm512_maskz_abs_epi64 (__U,__A);
7382 }
7383 
test_mm512_mask_abs_epi32(__m512i __W,__mmask16 __U,__m512i __A)7384 __m512i test_mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
7385 {
7386   // CHECK-LABEL: @test_mm512_mask_abs_epi32
7387   // CHECK: @llvm.x86.avx512.mask.pabs.d.512
7388   return _mm512_mask_abs_epi32 (__W,__U,__A);
7389 }
7390 
test_mm512_maskz_abs_epi32(__mmask16 __U,__m512i __A)7391 __m512i test_mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)
7392 {
7393   // CHECK-LABEL: @test_mm512_maskz_abs_epi32
7394   // CHECK: @llvm.x86.avx512.mask.pabs.d.512
7395   return _mm512_maskz_abs_epi32 (__U,__A);
7396 }
7397 
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 __m512 test_mm512_setr_ps (float __A, float __B, float __C, float __D,
7399                           float __E, float __F, float __G, float __H,
7400                           float __I, float __J, float __K, float __L,
7401                           float __M, float __N, float __O, float __P)
7402 {
7403     //CHECK-LABEL: @test_mm512_setr_ps
7404     //CHECK: load{{.*}}%__P.addr, align 4
7405     //CHECK: load{{.*}}%__O.addr, align 4
7406     //CHECK: load{{.*}}%__N.addr, align 4
7407     //CHECK: load{{.*}}%__M.addr, align 4
7408     //CHECK: load{{.*}}%__L.addr, align 4
7409     //CHECK: load{{.*}}%__K.addr, align 4
7410     //CHECK: load{{.*}}%__J.addr, align 4
7411     //CHECK: load{{.*}}%__I.addr, align 4
7412     //CHECK: load{{.*}}%__H.addr, align 4
7413     //CHECK: load{{.*}}%__G.addr, align 4
7414     //CHECK: load{{.*}}%__F.addr, align 4
7415     //CHECK: load{{.*}}%__E.addr, align 4
7416     //CHECK: load{{.*}}%__D.addr, align 4
7417     //CHECK: load{{.*}}%__C.addr, align 4
7418     //CHECK: load{{.*}}%__B.addr, align 4
7419     //CHECK: load{{.*}}%__A.addr, align 4
7420     //CHECK: insertelement{{.*}}i32 0
7421     //CHECK: insertelement{{.*}}i32 1
7422     //CHECK: insertelement{{.*}}i32 2
7423     //CHECK: insertelement{{.*}}i32 3
7424     //CHECK: insertelement{{.*}}i32 4
7425     //CHECK: insertelement{{.*}}i32 5
7426     //CHECK: insertelement{{.*}}i32 6
7427     //CHECK: insertelement{{.*}}i32 7
7428     //CHECK: insertelement{{.*}}i32 8
7429     //CHECK: insertelement{{.*}}i32 9
7430     //CHECK: insertelement{{.*}}i32 10
7431     //CHECK: insertelement{{.*}}i32 11
7432     //CHECK: insertelement{{.*}}i32 12
7433     //CHECK: insertelement{{.*}}i32 13
7434     //CHECK: insertelement{{.*}}i32 14
7435     //CHECK: insertelement{{.*}}i32 15
7436     return _mm512_setr_ps( __A, __B, __C, __D, __E, __F, __G, __H,
7437                           __I, __J, __K, __L, __M, __N, __O, __P);
7438 }
7439 
test_mm_cvtss_i32(__m128 A)7440 int test_mm_cvtss_i32(__m128 A) {
7441   // CHECK-LABEL: test_mm_cvtss_i32
7442   // CHECK: call i32 @llvm.x86.sse.cvtss2si(<4 x float> %{{.*}})
7443   return _mm_cvtss_i32(A);
7444 }
7445 
test_mm_cvtss_i64(__m128 A)7446 long long test_mm_cvtss_i64(__m128 A) {
7447   // CHECK-LABEL: test_mm_cvtss_i64
7448   // CHECK: call i64 @llvm.x86.sse.cvtss2si64(<4 x float> %{{.*}})
7449   return _mm_cvtss_i64(A);
7450 }
7451 
test_mm_cvti32_sd(__m128d A,int B)7452 __m128d test_mm_cvti32_sd(__m128d A, int B) {
7453   // CHECK-LABEL: test_mm_cvti32_sd
7454   // CHECK: sitofp i32 %{{.*}} to double
7455   // CHECK: insertelement <2 x double> %{{.*}}, double %{{.*}}, i32 0
7456   return _mm_cvti32_sd(A, B);
7457 }
7458 
test_mm_cvti64_sd(__m128d A,long long B)7459 __m128d test_mm_cvti64_sd(__m128d A, long long B) {
7460   // CHECK-LABEL: test_mm_cvti64_sd
7461   // CHECK: sitofp i64 %{{.*}} to double
7462   // CHECK: insertelement <2 x double> %{{.*}}, double %{{.*}}, i32 0
7463   return _mm_cvti64_sd(A, B);
7464 }
7465 
test_mm_cvti32_ss(__m128 A,int B)7466 __m128 test_mm_cvti32_ss(__m128 A, int B) {
7467   // CHECK-LABEL: test_mm_cvti32_ss
7468   // CHECK: sitofp i32 %{{.*}} to float
7469   // CHECK: insertelement <4 x float> %{{.*}}, float %{{.*}}, i32 0
7470   return _mm_cvti32_ss(A, B);
7471 }
7472 
test_mm_cvti64_ss(__m128 A,long long B)7473 __m128 test_mm_cvti64_ss(__m128 A, long long B) {
7474   // CHECK-LABEL: test_mm_cvti64_ss
7475   // CHECK: sitofp i64 %{{.*}} to float
7476   // CHECK: insertelement <4 x float> %{{.*}}, float %{{.*}}, i32 0
7477   return _mm_cvti64_ss(A, B);
7478 }
7479 
test_mm_cvtsd_i32(__m128d A)7480 int test_mm_cvtsd_i32(__m128d A) {
7481   // CHECK-LABEL: test_mm_cvtsd_i32
7482   // CHECK: call i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %{{.*}})
7483   return _mm_cvtsd_i32(A);
7484 }
7485 
test_mm_cvtsd_i64(__m128d A)7486 long long test_mm_cvtsd_i64(__m128d A) {
7487   // CHECK-LABEL: test_mm_cvtsd_i64
7488   // CHECK: call i64 @llvm.x86.sse2.cvtsd2si64(<2 x double> %{{.*}})
7489   return _mm_cvtsd_i64(A);
7490 }
7491 
test_mm_mask_cvtss_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128 __B)7492 __m128d test_mm_mask_cvtss_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128 __B) {
7493   // CHECK-LABEL: @test_mm_mask_cvtss_sd
7494   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
7495   return _mm_mask_cvtss_sd(__W, __U, __A, __B);
7496 }
7497 
test_mm_maskz_cvtss_sd(__mmask8 __U,__m128d __A,__m128 __B)7498 __m128d test_mm_maskz_cvtss_sd( __mmask8 __U, __m128d __A, __m128 __B) {
7499   // CHECK-LABEL: @test_mm_maskz_cvtss_sd
7500   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
7501   return _mm_maskz_cvtss_sd( __U, __A, __B);
7502 }
7503 
test_mm_mask_cvtsd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128d __B)7504 __m128 test_mm_mask_cvtsd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128d __B) {
7505   // CHECK-LABEL: @test_mm_mask_cvtsd_ss
7506   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
7507   return _mm_mask_cvtsd_ss(__W, __U, __A, __B);
7508 }
7509 
test_mm_maskz_cvtsd_ss(__mmask8 __U,__m128 __A,__m128d __B)7510 __m128 test_mm_maskz_cvtsd_ss(__mmask8 __U, __m128 __A, __m128d __B) {
7511   // CHECK-LABEL: @test_mm_maskz_cvtsd_ss
7512   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
7513   return _mm_maskz_cvtsd_ss(__U, __A, __B);
7514 }
7515 
7516 
test_mm512_setzero_epi32()7517 __m512i test_mm512_setzero_epi32()
7518 {
7519   // CHECK-LABEL: @test_mm512_setzero_epi32
7520   // CHECK: zeroinitializer
7521   return _mm512_setzero_epi32();
7522 }
7523 
test_mm512_setzero()7524 __m512i test_mm512_setzero()
7525 {
7526   // CHECK-LABEL: @test_mm512_setzero
7527   // CHECK: zeroinitializer
7528   return _mm512_setzero();
7529 }
7530 
test_mm512_setzero_si512()7531 __m512i test_mm512_setzero_si512()
7532 {
7533   // CHECK-LABEL: @test_mm512_setzero_si512
7534   // CHECK: zeroinitializer
7535   return _mm512_setzero_si512();
7536 }
7537 
test_mm512_setzero_ps()7538 __m512i test_mm512_setzero_ps()
7539 {
7540   // CHECK-LABEL: @test_mm512_setzero_ps
7541   // CHECK: zeroinitializer
7542   return _mm512_setzero_ps();
7543 }
7544 
test_mm512_setzero_pd()7545 __m512d test_mm512_setzero_pd()
7546 {
7547   // CHECK-LABEL: @test_mm512_setzero_pd
7548   // CHECK: zeroinitializer
7549   return _mm512_setzero_pd();
7550 }
7551 
test_mm512_abs_pd(__m512d a)7552 __m512d test_mm512_abs_pd(__m512d a){
7553   // CHECK-LABEL: @test_mm512_abs_pd
7554   // CHECK: and <8 x i64>
7555   return _mm512_abs_pd(a);
7556 }
7557 
test_mm512_mask_abs_pd(__m512d __W,__mmask8 __U,__m512d __A)7558 __m512d test_mm512_mask_abs_pd (__m512d __W, __mmask8 __U, __m512d __A){
7559   // CHECK-LABEL: @test_mm512_mask_abs_pd
7560   // CHECK: %[[AND_RES:.*]] = and <8 x i64>
7561   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
7562   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
7563   return _mm512_mask_abs_pd (__W,__U,__A);
7564 }
7565 
test_mm512_abs_ps(__m512 a)7566 __m512 test_mm512_abs_ps(__m512 a){
7567   // CHECK-LABEL: @test_mm512_abs_ps
7568   // CHECK: and <16 x i32>
7569   return _mm512_abs_ps(a);
7570 }
7571 
test_mm512_mask_abs_ps(__m512 __W,__mmask16 __U,__m512 __A)7572 __m512 test_mm512_mask_abs_ps(__m512 __W, __mmask16 __U, __m512 __A){
7573   // CHECK-LABEL: @test_mm512_mask_abs_ps
7574   // CHECK: and <16 x i32>
7575   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
7576   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
7577   return _mm512_mask_abs_ps( __W, __U, __A);
7578 }
7579 
7580