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