1 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512f -emit-llvm -o - -Wall -Werror | FileCheck %s
3 // FIXME: It's wrong to check LLVM IR transformations from clang. This run should be removed and tests added to the appropriate LLVM pass.
5 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512f -O2 -emit-llvm -o - -Wall -Werror | FileCheck %s -check-prefix=O2
9 __m512d test_mm512_sqrt_pd(__m512d a)
11 // CHECK-LABEL: @test_mm512_sqrt_pd
12 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
13 return _mm512_sqrt_pd(a);
16 __m512d test_mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)
18 // CHECK-LABEL: @test_mm512_mask_sqrt_pd
19 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
20 return _mm512_mask_sqrt_pd (__W,__U,__A);
23 __m512d test_mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
25 // CHECK-LABEL: @test_mm512_maskz_sqrt_pd
26 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
27 return _mm512_maskz_sqrt_pd (__U,__A);
30 __m512d test_mm512_mask_sqrt_round_pd(__m512d __W,__mmask8 __U,__m512d __A)
32 // CHECK-LABEL: @test_mm512_mask_sqrt_round_pd
33 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
34 return _mm512_mask_sqrt_round_pd(__W,__U,__A,_MM_FROUND_CUR_DIRECTION);
37 __m512d test_mm512_maskz_sqrt_round_pd(__mmask8 __U,__m512d __A)
39 // CHECK-LABEL: @test_mm512_maskz_sqrt_round_pd
40 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
41 return _mm512_maskz_sqrt_round_pd(__U,__A,_MM_FROUND_CUR_DIRECTION);
44 __m512d test_mm512_sqrt_round_pd(__m512d __A)
46 // CHECK-LABEL: @test_mm512_sqrt_round_pd
47 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
48 return _mm512_sqrt_round_pd(__A,_MM_FROUND_CUR_DIRECTION);
51 __m512 test_mm512_sqrt_ps(__m512 a)
53 // CHECK-LABEL: @test_mm512_sqrt_ps
54 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
55 return _mm512_sqrt_ps(a);
58 __m512 test_mm512_mask_sqrt_ps(__m512 __W, __mmask16 __U, __m512 __A)
60 // CHECK-LABEL: @test_mm512_mask_sqrt_ps
61 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
62 return _mm512_mask_sqrt_ps( __W, __U, __A);
65 __m512 test_mm512_maskz_sqrt_ps( __mmask16 __U, __m512 __A)
67 // CHECK-LABEL: @test_mm512_maskz_sqrt_ps
68 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
69 return _mm512_maskz_sqrt_ps(__U ,__A);
72 __m512 test_mm512_mask_sqrt_round_ps(__m512 __W,__mmask16 __U,__m512 __A)
74 // CHECK-LABEL: @test_mm512_mask_sqrt_round_ps
75 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
76 return _mm512_mask_sqrt_round_ps(__W,__U,__A,_MM_FROUND_CUR_DIRECTION);
79 __m512 test_mm512_maskz_sqrt_round_ps(__mmask16 __U,__m512 __A)
81 // CHECK-LABEL: @test_mm512_maskz_sqrt_round_ps
82 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
83 return _mm512_maskz_sqrt_round_ps(__U,__A,_MM_FROUND_CUR_DIRECTION);
86 __m512 test_mm512_sqrt_round_ps(__m512 __A)
88 // CHECK-LABEL: @test_mm512_sqrt_round_ps
89 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
90 return _mm512_sqrt_round_ps(__A,_MM_FROUND_CUR_DIRECTION);
93 __m512d test_mm512_rsqrt14_pd(__m512d a)
95 // CHECK-LABEL: @test_mm512_rsqrt14_pd
96 // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
97 return _mm512_rsqrt14_pd(a);
100 __m512d test_mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A)
102 // CHECK-LABEL: @test_mm512_mask_rsqrt14_pd
103 // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
104 return _mm512_mask_rsqrt14_pd (__W,__U,__A);
107 __m512d test_mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A)
109 // CHECK-LABEL: @test_mm512_maskz_rsqrt14_pd
110 // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
111 return _mm512_maskz_rsqrt14_pd (__U,__A);
114 __m512 test_mm512_rsqrt14_ps(__m512 a)
116 // CHECK-LABEL: @test_mm512_rsqrt14_ps
117 // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
118 return _mm512_rsqrt14_ps(a);
121 __m512 test_mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A)
123 // CHECK-LABEL: @test_mm512_mask_rsqrt14_ps
124 // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
125 return _mm512_mask_rsqrt14_ps (__W,__U,__A);
128 __m512 test_mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A)
130 // CHECK-LABEL: @test_mm512_maskz_rsqrt14_ps
131 // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
132 return _mm512_maskz_rsqrt14_ps (__U,__A);
135 __m512 test_mm512_add_ps(__m512 a, __m512 b)
137 // CHECK-LABEL: @test_mm512_add_ps
138 // CHECK: fadd <16 x float>
139 return _mm512_add_ps(a, b);
142 __m512d test_mm512_add_pd(__m512d a, __m512d b)
144 // CHECK-LABEL: @test_mm512_add_pd
145 // CHECK: fadd <8 x double>
146 return _mm512_add_pd(a, b);
149 __m512 test_mm512_mul_ps(__m512 a, __m512 b)
151 // CHECK-LABEL: @test_mm512_mul_ps
152 // CHECK: fmul <16 x float>
153 return _mm512_mul_ps(a, b);
156 __m512d test_mm512_mul_pd(__m512d a, __m512d b)
158 // CHECK-LABEL: @test_mm512_mul_pd
159 // CHECK: fmul <8 x double>
160 return _mm512_mul_pd(a, b);
163 void test_mm512_storeu_si512 (void *__P, __m512i __A)
165 // CHECK-LABEL: @test_mm512_storeu_si512
166 // CHECK: store <16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, align 1{{$}}
167 // CHECK-NEXT: ret void
168 _mm512_storeu_si512 ( __P,__A);
171 void test_mm512_storeu_ps(void *p, __m512 a)
173 // CHECK-LABEL: @test_mm512_storeu_ps
174 // CHECK: store <16 x float> %{{.*}}, <16 x float>* %{{.*}}, align 1{{$}}
175 // CHECK-NEXT: ret void
176 _mm512_storeu_ps(p, a);
179 void test_mm512_storeu_pd(void *p, __m512d a)
181 // CHECK-LABEL: @test_mm512_storeu_pd
182 // CHECK: store <8 x double> %{{.*}}, <8 x double>* %{{.*}}, align 1{{$}}
183 // CHECK-NEXT: ret void
184 _mm512_storeu_pd(p, a);
187 void test_mm512_mask_store_ps(void *p, __m512 a, __mmask16 m)
189 // CHECK-LABEL: @test_mm512_mask_store_ps
190 // CHECK: @llvm.masked.store.v16f32.p0v16f32(<16 x float> %{{.*}}, <16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}})
191 _mm512_mask_store_ps(p, m, a);
194 void test_mm512_store_si512 (void *__P, __m512i __A)
196 // CHECK-LABEL: @test_mm512_store_si512
197 // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
198 // CHECK: [[SI512_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
199 // CHECK: bitcast i8* [[SI512_3]] to <8 x i64>*
200 // CHECK: store <8 x i64>
201 _mm512_store_si512 ( __P,__A);
204 void test_mm512_store_epi32 (void *__P, __m512i __A)
206 // CHECK-LABEL: @test_mm512_store_epi32
207 // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
208 // CHECK: [[Si32_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
209 // CHECK: bitcast i8* [[Si32_3]] to <8 x i64>*
210 // CHECK: store <8 x i64>
211 _mm512_store_epi32 ( __P,__A);
214 void test_mm512_store_epi64 (void *__P, __m512i __A)
216 // CHECK-LABEL: @test_mm512_store_epi64
217 // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
218 // CHECK: [[SI64_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
219 // CHECK: bitcast i8* [[SI64_3]] to <8 x i64>*
220 // CHECK: store <8 x i64>
221 _mm512_store_epi64 ( __P,__A);
224 void test_mm512_store_ps(void *p, __m512 a)
226 // CHECK-LABEL: @test_mm512_store_ps
227 // CHECK: store <16 x float>
228 _mm512_store_ps(p, a);
231 void test_mm512_store_pd(void *p, __m512d a)
233 // CHECK-LABEL: @test_mm512_store_pd
234 // CHECK: store <8 x double>
235 _mm512_store_pd(p, a);
238 void test_mm512_mask_store_pd(void *p, __m512d a, __mmask8 m)
240 // CHECK-LABEL: @test_mm512_mask_store_pd
241 // CHECK: @llvm.masked.store.v8f64.p0v8f64(<8 x double> %{{.*}}, <8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}})
242 _mm512_mask_store_pd(p, m, a);
245 void test_mm512_mask_storeu_epi32(void *__P, __mmask16 __U, __m512i __A) {
246 // CHECK-LABEL: @test_mm512_mask_storeu_epi32
247 // CHECK: @llvm.masked.store.v16i32.p0v16i32(<16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, i32 1, <16 x i1> %{{.*}})
248 return _mm512_mask_storeu_epi32(__P, __U, __A);
251 void test_mm512_mask_storeu_epi64(void *__P, __mmask8 __U, __m512i __A) {
252 // CHECK-LABEL: @test_mm512_mask_storeu_epi64
253 // CHECK: @llvm.masked.store.v8i64.p0v8i64(<8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
254 return _mm512_mask_storeu_epi64(__P, __U, __A);
257 __m512i test_mm512_loadu_si512 (void *__P)
259 // CHECK-LABEL: @test_mm512_loadu_si512
260 // CHECK: load <16 x i32>, <16 x i32>* %{{.*}}, align 1{{$}}
261 return _mm512_loadu_si512 ( __P);
264 __m512i test_mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void *__P)
266 // CHECK-LABEL: @test_mm512_mask_loadu_epi32
267 // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
268 return _mm512_mask_loadu_epi32 (__W,__U, __P);
271 __m512i test_mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void *__P)
273 // CHECK-LABEL: @test_mm512_mask_loadu_epi64
274 // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
275 return _mm512_mask_loadu_epi64 (__W,__U, __P);
278 __m512 test_mm512_loadu_ps(void *p)
280 // CHECK-LABEL: @test_mm512_loadu_ps
281 // CHECK: load <16 x float>, <16 x float>* {{.*}}, align 1{{$}}
282 return _mm512_loadu_ps(p);
285 __m512 test_mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void *__P)
287 // CHECK-LABEL: @test_mm512_mask_loadu_ps
288 // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
289 return _mm512_mask_loadu_ps (__W,__U, __P);
292 __m512d test_mm512_loadu_pd(void *p)
294 // CHECK-LABEL: @test_mm512_loadu_pd
295 // CHECK: load <8 x double>, <8 x double>* {{.*}}, align 1{{$}}
296 return _mm512_loadu_pd(p);
299 __m512d test_mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void *__P)
301 // CHECK-LABEL: @test_mm512_mask_loadu_pd
302 // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
303 return _mm512_mask_loadu_pd (__W,__U, __P);
306 __m512i test_mm512_load_si512 (void *__P)
308 // CHECK-LABEL: @test_mm512_load_si512
309 // CHECK: [[LI512_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
310 // CHECK: [[LI512_2:%.+]] = bitcast i8* [[LI512_1]] to <8 x i64>*
311 // CHECK: load <8 x i64>, <8 x i64>* [[LI512_2]], align 64
312 return _mm512_load_si512 ( __P);
315 __m512i test_mm512_load_epi32 (void *__P)
317 // CHECK-LABEL: @test_mm512_load_epi32
318 // CHECK: [[LI32_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
319 // CHECK: [[LI32_2:%.+]] = bitcast i8* [[LI32_1]] to <8 x i64>*
320 // CHECK: load <8 x i64>, <8 x i64>* [[LI32_2]], align 64
321 return _mm512_load_epi32 ( __P);
324 __m512i test_mm512_load_epi64 (void *__P)
326 // CHECK-LABEL: @test_mm512_load_epi64
327 // CHECK: [[LI64_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
328 // CHECK: [[LI64_2:%.+]] = bitcast i8* [[LI64_1]] to <8 x i64>*
329 // CHECK: load <8 x i64>, <8 x i64>* [[LI64_2]], align 64
330 return _mm512_load_epi64 ( __P);
333 __m512 test_mm512_load_ps(void *p)
335 // CHECK-LABEL: @test_mm512_load_ps
336 // CHECK: load <16 x float>, <16 x float>* %{{.*}}, align 64
337 return _mm512_load_ps(p);
340 __m512 test_mm512_mask_load_ps (__m512 __W, __mmask16 __U, void *__P)
342 // CHECK-LABEL: @test_mm512_mask_load_ps
343 // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
344 return _mm512_mask_load_ps (__W,__U, __P);
347 __m512 test_mm512_maskz_load_ps(__mmask16 __U, void *__P)
349 // CHECK-LABEL: @test_mm512_maskz_load_ps
350 // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
351 return _mm512_maskz_load_ps(__U, __P);
354 __m512d test_mm512_load_pd(void *p)
356 // CHECK-LABEL: @test_mm512_load_pd
357 // CHECK: load <8 x double>, <8 x double>* %{{.*}}, align 64
358 return _mm512_load_pd(p);
361 __m512d test_mm512_mask_load_pd (__m512d __W, __mmask8 __U, void *__P)
363 // CHECK-LABEL: @test_mm512_mask_load_pd
364 // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
365 return _mm512_mask_load_pd (__W,__U, __P);
368 __m512d test_mm512_maskz_load_pd(__mmask8 __U, void *__P)
370 // CHECK-LABEL: @test_mm512_maskz_load_pd
371 // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
372 return _mm512_maskz_load_pd(__U, __P);
375 __m512d test_mm512_set1_pd(double d)
377 // CHECK-LABEL: @test_mm512_set1_pd
378 // CHECK: insertelement <8 x double> {{.*}}, i32 0
379 // CHECK: insertelement <8 x double> {{.*}}, i32 1
380 // CHECK: insertelement <8 x double> {{.*}}, i32 2
381 // CHECK: insertelement <8 x double> {{.*}}, i32 3
382 // CHECK: insertelement <8 x double> {{.*}}, i32 4
383 // CHECK: insertelement <8 x double> {{.*}}, i32 5
384 // CHECK: insertelement <8 x double> {{.*}}, i32 6
385 // CHECK: insertelement <8 x double> {{.*}}, i32 7
386 return _mm512_set1_pd(d);
389 __mmask16 test_mm512_knot(__mmask16 a)
391 // CHECK-LABEL: @test_mm512_knot
392 // CHECK: @llvm.x86.avx512.knot.w
393 return _mm512_knot(a);
396 __m512i test_mm512_alignr_epi32(__m512i a, __m512i b)
398 // CHECK-LABEL: @test_mm512_alignr_epi32
399 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17>
400 return _mm512_alignr_epi32(a, b, 2);
403 __m512i test_mm512_mask_alignr_epi32(__m512i w, __mmask16 u, __m512i a, __m512i b)
405 // CHECK-LABEL: @test_mm512_mask_alignr_epi32
406 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17>
407 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> {{.*}}
408 return _mm512_mask_alignr_epi32(w, u, a, b, 2);
411 __m512i test_mm512_maskz_alignr_epi32( __mmask16 u, __m512i a, __m512i b)
413 // CHECK-LABEL: @test_mm512_maskz_alignr_epi32
414 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17>
415 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> {{.*}}
416 return _mm512_maskz_alignr_epi32(u, a, b, 2);
419 __m512i test_mm512_alignr_epi64(__m512i a, __m512i b)
421 // CHECK-LABEL: @test_mm512_alignr_epi64
422 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9>
423 return _mm512_alignr_epi64(a, b, 2);
426 __m512i test_mm512_mask_alignr_epi64(__m512i w, __mmask8 u, __m512i a, __m512i b)
428 // CHECK-LABEL: @test_mm512_mask_alignr_epi64
429 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9>
430 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> {{.*}}
431 return _mm512_mask_alignr_epi64(w, u, a, b, 2);
434 __m512i test_mm512_maskz_alignr_epi64( __mmask8 u, __m512i a, __m512i b)
436 // CHECK-LABEL: @test_mm512_maskz_alignr_epi64
437 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9>
438 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> {{.*}}
439 return _mm512_maskz_alignr_epi64(u, a, b, 2);
442 __m512d test_mm512_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
443 // CHECK-LABEL: @test_mm512_fmadd_round_pd
444 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
445 return _mm512_fmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
448 __m512d test_mm512_mask_fmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
449 // CHECK-LABEL: @test_mm512_mask_fmadd_round_pd
450 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
451 return _mm512_mask_fmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
453 __m512d test_mm512_mask3_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
454 // CHECK-LABEL: @test_mm512_mask3_fmadd_round_pd
455 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
456 return _mm512_mask3_fmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
458 __m512d test_mm512_maskz_fmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
459 // CHECK-LABEL: @test_mm512_maskz_fmadd_round_pd
460 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
461 return _mm512_maskz_fmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
463 __m512d test_mm512_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
464 // CHECK-LABEL: @test_mm512_fmsub_round_pd
465 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
466 return _mm512_fmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
468 __m512d test_mm512_mask_fmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
469 // CHECK-LABEL: @test_mm512_mask_fmsub_round_pd
470 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
471 return _mm512_mask_fmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
473 __m512d test_mm512_maskz_fmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
474 // CHECK-LABEL: @test_mm512_maskz_fmsub_round_pd
475 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
476 return _mm512_maskz_fmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
478 __m512d test_mm512_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
479 // CHECK-LABEL: @test_mm512_fnmadd_round_pd
480 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
481 return _mm512_fnmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
483 __m512d test_mm512_mask3_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
484 // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_pd
485 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
486 return _mm512_mask3_fnmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
488 __m512d test_mm512_maskz_fnmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
489 // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_pd
490 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
491 return _mm512_maskz_fnmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
493 __m512d test_mm512_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
494 // CHECK-LABEL: @test_mm512_fnmsub_round_pd
495 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
496 return _mm512_fnmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
498 __m512d test_mm512_maskz_fnmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
499 // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_pd
500 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
501 return _mm512_maskz_fnmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
503 __m512d test_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
504 // CHECK-LABEL: @test_mm512_fmadd_pd
505 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
506 return _mm512_fmadd_pd(__A, __B, __C);
508 __m512d test_mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
509 // CHECK-LABEL: @test_mm512_mask_fmadd_pd
510 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
511 return _mm512_mask_fmadd_pd(__A, __U, __B, __C);
513 __m512d test_mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
514 // CHECK-LABEL: @test_mm512_mask3_fmadd_pd
515 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
516 return _mm512_mask3_fmadd_pd(__A, __B, __C, __U);
518 __m512d test_mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
519 // CHECK-LABEL: @test_mm512_maskz_fmadd_pd
520 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
521 return _mm512_maskz_fmadd_pd(__U, __A, __B, __C);
523 __m512d test_mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
524 // CHECK-LABEL: @test_mm512_fmsub_pd
525 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
526 return _mm512_fmsub_pd(__A, __B, __C);
528 __m512d test_mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
529 // CHECK-LABEL: @test_mm512_mask_fmsub_pd
530 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
531 return _mm512_mask_fmsub_pd(__A, __U, __B, __C);
533 __m512d test_mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
534 // CHECK-LABEL: @test_mm512_maskz_fmsub_pd
535 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
536 return _mm512_maskz_fmsub_pd(__U, __A, __B, __C);
538 __m512d test_mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
539 // CHECK-LABEL: @test_mm512_fnmadd_pd
540 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
541 return _mm512_fnmadd_pd(__A, __B, __C);
543 __m512d test_mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
544 // CHECK-LABEL: @test_mm512_mask3_fnmadd_pd
545 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
546 return _mm512_mask3_fnmadd_pd(__A, __B, __C, __U);
548 __m512d test_mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
549 // CHECK-LABEL: @test_mm512_maskz_fnmadd_pd
550 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
551 return _mm512_maskz_fnmadd_pd(__U, __A, __B, __C);
553 __m512d test_mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
554 // CHECK-LABEL: @test_mm512_fnmsub_pd
555 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
556 return _mm512_fnmsub_pd(__A, __B, __C);
558 __m512d test_mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
559 // CHECK-LABEL: @test_mm512_maskz_fnmsub_pd
560 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
561 return _mm512_maskz_fnmsub_pd(__U, __A, __B, __C);
563 __m512 test_mm512_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
564 // CHECK-LABEL: @test_mm512_fmadd_round_ps
565 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
566 return _mm512_fmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
568 __m512 test_mm512_mask_fmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
569 // CHECK-LABEL: @test_mm512_mask_fmadd_round_ps
570 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
571 return _mm512_mask_fmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
573 __m512 test_mm512_mask3_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
574 // CHECK-LABEL: @test_mm512_mask3_fmadd_round_ps
575 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
576 return _mm512_mask3_fmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
578 __m512 test_mm512_maskz_fmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
579 // CHECK-LABEL: @test_mm512_maskz_fmadd_round_ps
580 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
581 return _mm512_maskz_fmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
583 __m512 test_mm512_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
584 // CHECK-LABEL: @test_mm512_fmsub_round_ps
585 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
586 return _mm512_fmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
588 __m512 test_mm512_mask_fmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
589 // CHECK-LABEL: @test_mm512_mask_fmsub_round_ps
590 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
591 return _mm512_mask_fmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
593 __m512 test_mm512_maskz_fmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
594 // CHECK-LABEL: @test_mm512_maskz_fmsub_round_ps
595 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
596 return _mm512_maskz_fmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
598 __m512 test_mm512_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
599 // CHECK-LABEL: @test_mm512_fnmadd_round_ps
600 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
601 return _mm512_fnmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
603 __m512 test_mm512_mask3_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
604 // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_ps
605 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
606 return _mm512_mask3_fnmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
608 __m512 test_mm512_maskz_fnmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
609 // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_ps
610 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
611 return _mm512_maskz_fnmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
613 __m512 test_mm512_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
614 // CHECK-LABEL: @test_mm512_fnmsub_round_ps
615 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
616 return _mm512_fnmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
618 __m512 test_mm512_maskz_fnmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
619 // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_ps
620 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
621 return _mm512_maskz_fnmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
623 __m512 test_mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
624 // CHECK-LABEL: @test_mm512_fmadd_ps
625 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
626 return _mm512_fmadd_ps(__A, __B, __C);
628 __m512 test_mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
629 // CHECK-LABEL: @test_mm512_mask_fmadd_ps
630 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
631 return _mm512_mask_fmadd_ps(__A, __U, __B, __C);
633 __m512 test_mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
634 // CHECK-LABEL: @test_mm512_mask3_fmadd_ps
635 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
636 return _mm512_mask3_fmadd_ps(__A, __B, __C, __U);
638 __m512 test_mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
639 // CHECK-LABEL: @test_mm512_maskz_fmadd_ps
640 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
641 return _mm512_maskz_fmadd_ps(__U, __A, __B, __C);
643 __m512 test_mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
644 // CHECK-LABEL: @test_mm512_fmsub_ps
645 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
646 return _mm512_fmsub_ps(__A, __B, __C);
648 __m512 test_mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
649 // CHECK-LABEL: @test_mm512_mask_fmsub_ps
650 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
651 return _mm512_mask_fmsub_ps(__A, __U, __B, __C);
653 __m512 test_mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
654 // CHECK-LABEL: @test_mm512_maskz_fmsub_ps
655 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
656 return _mm512_maskz_fmsub_ps(__U, __A, __B, __C);
658 __m512 test_mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
659 // CHECK-LABEL: @test_mm512_fnmadd_ps
660 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
661 return _mm512_fnmadd_ps(__A, __B, __C);
663 __m512 test_mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
664 // CHECK-LABEL: @test_mm512_mask3_fnmadd_ps
665 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
666 return _mm512_mask3_fnmadd_ps(__A, __B, __C, __U);
668 __m512 test_mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
669 // CHECK-LABEL: @test_mm512_maskz_fnmadd_ps
670 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
671 return _mm512_maskz_fnmadd_ps(__U, __A, __B, __C);
673 __m512 test_mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
674 // CHECK-LABEL: @test_mm512_fnmsub_ps
675 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
676 return _mm512_fnmsub_ps(__A, __B, __C);
678 __m512 test_mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
679 // CHECK-LABEL: @test_mm512_maskz_fnmsub_ps
680 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
681 return _mm512_maskz_fnmsub_ps(__U, __A, __B, __C);
683 __m512d test_mm512_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
684 // CHECK-LABEL: @test_mm512_fmaddsub_round_pd
685 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
686 return _mm512_fmaddsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
688 __m512d test_mm512_mask_fmaddsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
689 // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_pd
690 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
691 return _mm512_mask_fmaddsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
693 __m512d test_mm512_mask3_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
694 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_pd
695 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
696 return _mm512_mask3_fmaddsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
698 __m512d test_mm512_maskz_fmaddsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
699 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_pd
700 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
701 return _mm512_maskz_fmaddsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
703 __m512d test_mm512_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
704 // CHECK-LABEL: @test_mm512_fmsubadd_round_pd
705 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
706 return _mm512_fmsubadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
708 __m512d test_mm512_mask_fmsubadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
709 // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_pd
710 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
711 return _mm512_mask_fmsubadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
713 __m512d test_mm512_maskz_fmsubadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
714 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_pd
715 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
716 return _mm512_maskz_fmsubadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
718 __m512d test_mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C) {
719 // CHECK-LABEL: @test_mm512_fmaddsub_pd
720 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
721 return _mm512_fmaddsub_pd(__A, __B, __C);
723 __m512d test_mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
724 // CHECK-LABEL: @test_mm512_mask_fmaddsub_pd
725 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
726 return _mm512_mask_fmaddsub_pd(__A, __U, __B, __C);
728 __m512d test_mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
729 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_pd
730 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
731 return _mm512_mask3_fmaddsub_pd(__A, __B, __C, __U);
733 __m512d test_mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
734 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_pd
735 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
736 return _mm512_maskz_fmaddsub_pd(__U, __A, __B, __C);
738 __m512d test_mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C) {
739 // CHECK-LABEL: @test_mm512_fmsubadd_pd
740 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
741 return _mm512_fmsubadd_pd(__A, __B, __C);
743 __m512d test_mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
744 // CHECK-LABEL: @test_mm512_mask_fmsubadd_pd
745 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
746 return _mm512_mask_fmsubadd_pd(__A, __U, __B, __C);
748 __m512d test_mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
749 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_pd
750 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
751 return _mm512_maskz_fmsubadd_pd(__U, __A, __B, __C);
753 __m512 test_mm512_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
754 // CHECK-LABEL: @test_mm512_fmaddsub_round_ps
755 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
756 return _mm512_fmaddsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
758 __m512 test_mm512_mask_fmaddsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
759 // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_ps
760 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
761 return _mm512_mask_fmaddsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
763 __m512 test_mm512_mask3_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
764 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_ps
765 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
766 return _mm512_mask3_fmaddsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
768 __m512 test_mm512_maskz_fmaddsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
769 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_ps
770 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
771 return _mm512_maskz_fmaddsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
773 __m512 test_mm512_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
774 // CHECK-LABEL: @test_mm512_fmsubadd_round_ps
775 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
776 return _mm512_fmsubadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
778 __m512 test_mm512_mask_fmsubadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
779 // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_ps
780 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
781 return _mm512_mask_fmsubadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
783 __m512 test_mm512_maskz_fmsubadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
784 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_ps
785 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
786 return _mm512_maskz_fmsubadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
788 __m512 test_mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C) {
789 // CHECK-LABEL: @test_mm512_fmaddsub_ps
790 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
791 return _mm512_fmaddsub_ps(__A, __B, __C);
793 __m512 test_mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
794 // CHECK-LABEL: @test_mm512_mask_fmaddsub_ps
795 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
796 return _mm512_mask_fmaddsub_ps(__A, __U, __B, __C);
798 __m512 test_mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
799 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_ps
800 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
801 return _mm512_mask3_fmaddsub_ps(__A, __B, __C, __U);
803 __m512 test_mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
804 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_ps
805 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
806 return _mm512_maskz_fmaddsub_ps(__U, __A, __B, __C);
808 __m512 test_mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C) {
809 // CHECK-LABEL: @test_mm512_fmsubadd_ps
810 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
811 return _mm512_fmsubadd_ps(__A, __B, __C);
813 __m512 test_mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
814 // CHECK-LABEL: @test_mm512_mask_fmsubadd_ps
815 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
816 return _mm512_mask_fmsubadd_ps(__A, __U, __B, __C);
818 __m512 test_mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
819 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_ps
820 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
821 return _mm512_maskz_fmsubadd_ps(__U, __A, __B, __C);
823 __m512d test_mm512_mask3_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
824 // CHECK-LABEL: @test_mm512_mask3_fmsub_round_pd
825 // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
826 return _mm512_mask3_fmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
828 __m512d test_mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
829 // CHECK-LABEL: @test_mm512_mask3_fmsub_pd
830 // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
831 return _mm512_mask3_fmsub_pd(__A, __B, __C, __U);
833 __m512 test_mm512_mask3_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
834 // CHECK-LABEL: @test_mm512_mask3_fmsub_round_ps
835 // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
836 return _mm512_mask3_fmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
838 __m512 test_mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
839 // CHECK-LABEL: @test_mm512_mask3_fmsub_ps
840 // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
841 return _mm512_mask3_fmsub_ps(__A, __B, __C, __U);
843 __m512d test_mm512_mask3_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
844 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_pd
845 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
846 return _mm512_mask3_fmsubadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
848 __m512d test_mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
849 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_pd
850 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
851 return _mm512_mask3_fmsubadd_pd(__A, __B, __C, __U);
853 __m512 test_mm512_mask3_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
854 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_ps
855 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
856 return _mm512_mask3_fmsubadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
858 __m512 test_mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
859 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_ps
860 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
861 return _mm512_mask3_fmsubadd_ps(__A, __B, __C, __U);
863 __m512d test_mm512_mask_fnmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
864 // CHECK-LABEL: @test_mm512_mask_fnmadd_round_pd
865 // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
866 return _mm512_mask_fnmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
868 __m512d test_mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
869 // CHECK-LABEL: @test_mm512_mask_fnmadd_pd
870 // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
871 return _mm512_mask_fnmadd_pd(__A, __U, __B, __C);
873 __m512 test_mm512_mask_fnmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
874 // CHECK-LABEL: @test_mm512_mask_fnmadd_round_ps
875 // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
876 return _mm512_mask_fnmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
878 __m512 test_mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
879 // CHECK-LABEL: @test_mm512_mask_fnmadd_ps
880 // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
881 return _mm512_mask_fnmadd_ps(__A, __U, __B, __C);
883 __m512d test_mm512_mask_fnmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
884 // CHECK-LABEL: @test_mm512_mask_fnmsub_round_pd
885 // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
886 return _mm512_mask_fnmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
888 __m512d test_mm512_mask3_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
889 // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_pd
890 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
891 return _mm512_mask3_fnmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
893 __m512d test_mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
894 // CHECK-LABEL: @test_mm512_mask_fnmsub_pd
895 // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
896 return _mm512_mask_fnmsub_pd(__A, __U, __B, __C);
898 __m512d test_mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
899 // CHECK-LABEL: @test_mm512_mask3_fnmsub_pd
900 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
901 return _mm512_mask3_fnmsub_pd(__A, __B, __C, __U);
903 __m512 test_mm512_mask_fnmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
904 // CHECK-LABEL: @test_mm512_mask_fnmsub_round_ps
905 // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
906 return _mm512_mask_fnmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
908 __m512 test_mm512_mask3_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
909 // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_ps
910 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
911 return _mm512_mask3_fnmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
913 __m512 test_mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
914 // CHECK-LABEL: @test_mm512_mask_fnmsub_ps
915 // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
916 return _mm512_mask_fnmsub_ps(__A, __U, __B, __C);
918 __m512 test_mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
919 // CHECK-LABEL: @test_mm512_mask3_fnmsub_ps
920 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
921 return _mm512_mask3_fnmsub_ps(__A, __B, __C, __U);
924 __mmask16 test_mm512_cmpeq_epi32_mask(__m512i __a, __m512i __b) {
925 // CHECK-LABEL: @test_mm512_cmpeq_epi32_mask
926 // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
927 return (__mmask16)_mm512_cmpeq_epi32_mask(__a, __b);
930 __mmask16 test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
931 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi32_mask
932 // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
933 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
934 return (__mmask16)_mm512_mask_cmpeq_epi32_mask(__u, __a, __b);
937 __mmask8 test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
938 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi64_mask
939 // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
940 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
941 return (__mmask8)_mm512_mask_cmpeq_epi64_mask(__u, __a, __b);
944 __mmask8 test_mm512_cmpeq_epi64_mask(__m512i __a, __m512i __b) {
945 // CHECK-LABEL: @test_mm512_cmpeq_epi64_mask
946 // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
947 return (__mmask8)_mm512_cmpeq_epi64_mask(__a, __b);
950 __mmask16 test_mm512_cmpgt_epi32_mask(__m512i __a, __m512i __b) {
951 // CHECK-LABEL: @test_mm512_cmpgt_epi32_mask
952 // CHECK: icmp sgt <16 x i32> %{{.*}}, %{{.*}}
953 return (__mmask16)_mm512_cmpgt_epi32_mask(__a, __b);
956 __mmask16 test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
957 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi32_mask
958 // CHECK: icmp sgt <16 x i32> %{{.*}}, %{{.*}}
959 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
960 return (__mmask16)_mm512_mask_cmpgt_epi32_mask(__u, __a, __b);
963 __mmask8 test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
964 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi64_mask
965 // CHECK: icmp sgt <8 x i64> %{{.*}}, %{{.*}}
966 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
967 return (__mmask8)_mm512_mask_cmpgt_epi64_mask(__u, __a, __b);
970 __mmask8 test_mm512_cmpgt_epi64_mask(__m512i __a, __m512i __b) {
971 // CHECK-LABEL: @test_mm512_cmpgt_epi64_mask
972 // CHECK: icmp sgt <8 x i64> %{{.*}}, %{{.*}}
973 return (__mmask8)_mm512_cmpgt_epi64_mask(__a, __b);
976 __m512d test_mm512_unpackhi_pd(__m512d a, __m512d b)
978 // CHECK-LABEL: @test_mm512_unpackhi_pd
979 // CHECK: shufflevector <8 x double> {{.*}} <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
980 return _mm512_unpackhi_pd(a, b);
983 __m512d test_mm512_unpacklo_pd(__m512d a, __m512d b)
985 // CHECK-LABEL: @test_mm512_unpacklo_pd
986 // CHECK: shufflevector <8 x double> {{.*}} <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
987 return _mm512_unpacklo_pd(a, b);
990 __m512 test_mm512_unpackhi_ps(__m512 a, __m512 b)
992 // CHECK-LABEL: @test_mm512_unpackhi_ps
993 // 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>
994 return _mm512_unpackhi_ps(a, b);
997 __m512 test_mm512_unpacklo_ps(__m512 a, __m512 b)
999 // CHECK-LABEL: @test_mm512_unpacklo_ps
1000 // 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>
1001 return _mm512_unpacklo_ps(a, b);
1004 __mmask16 test_mm512_cmp_round_ps_mask(__m512 a, __m512 b) {
1005 // CHECK-LABEL: @test_mm512_cmp_round_ps_mask
1006 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1007 return _mm512_cmp_round_ps_mask(a, b, 0, _MM_FROUND_CUR_DIRECTION);
1010 __mmask16 test_mm512_mask_cmp_round_ps_mask(__mmask16 m, __m512 a, __m512 b) {
1011 // CHECK-LABEL: @test_mm512_mask_cmp_round_ps_mask
1012 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1013 return _mm512_mask_cmp_round_ps_mask(m, a, b, 0, _MM_FROUND_CUR_DIRECTION);
1016 __mmask16 test_mm512_cmp_ps_mask(__m512 a, __m512 b) {
1017 // CHECK-LABEL: @test_mm512_cmp_ps_mask
1018 // CHECKn: @llvm.x86.avx512.mask.cmp.ps.512
1019 return _mm512_cmp_ps_mask(a, b, 0);
1022 __mmask16 test_mm512_mask_cmp_ps_mask(__mmask16 m, __m512 a, __m512 b) {
1023 // CHECK-LABEL: @test_mm512_mask_cmp_ps_mask
1024 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1025 return _mm512_mask_cmp_ps_mask(m, a, b, 0);
1028 __mmask8 test_mm512_cmp_round_pd_mask(__m512d a, __m512d b) {
1029 // CHECK-LABEL: @test_mm512_cmp_round_pd_mask
1030 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1031 return _mm512_cmp_round_pd_mask(a, b, 0, _MM_FROUND_CUR_DIRECTION);
1034 __mmask8 test_mm512_mask_cmp_round_pd_mask(__mmask8 m, __m512d a, __m512d b) {
1035 // CHECK-LABEL: @test_mm512_mask_cmp_round_pd_mask
1036 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1037 return _mm512_mask_cmp_round_pd_mask(m, a, b, 0, _MM_FROUND_CUR_DIRECTION);
1040 __mmask8 test_mm512_cmp_pd_mask(__m512d a, __m512d b) {
1041 // CHECK-LABEL: @test_mm512_cmp_pd_mask
1042 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1043 return _mm512_cmp_pd_mask(a, b, 0);
1046 __mmask8 test_mm512_mask_cmp_pd_mask(__mmask8 m, __m512d a, __m512d b) {
1047 // CHECK-LABEL: @test_mm512_mask_cmp_pd_mask
1048 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1049 return _mm512_mask_cmp_pd_mask(m, a, b, 0);
1052 __mmask8 test_mm512_cmpeq_pd_mask(__m512d a, __m512d b) {
1053 // CHECK-LABEL: @test_mm512_cmpeq_pd_mask
1054 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1055 return _mm512_cmpeq_pd_mask(a, b);
1058 __mmask8 test_mm512_cmpeq_ps_mask(__m512 a, __m512 b) {
1059 // CHECK-LABEL: @test_mm512_cmpeq_ps_mask
1060 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1061 return _mm512_cmpeq_ps_mask(a, b);
1064 __mmask8 test_mm512_mask_cmpeq_pd_mask(__mmask8 k, __m512d a, __m512d b) {
1065 // CHECK-LABEL: @test_mm512_mask_cmpeq_pd_mask
1066 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1067 return _mm512_mask_cmpeq_pd_mask(k, a, b);
1070 __mmask8 test_mm512_mask_cmpeq_ps_mask(__mmask8 k, __m512 a, __m512 b) {
1071 // CHECK-LABEL: @test_mm512_mask_cmpeq_ps_mask
1072 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1073 return _mm512_mask_cmpeq_ps_mask(k, a, b);
1076 __mmask8 test_mm512_cmple_pd_mask(__m512d a, __m512d b) {
1077 // CHECK-LABEL: @test_mm512_cmple_pd_mask
1078 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1079 return _mm512_cmpeq_pd_mask(a, b);
1082 __mmask8 test_mm512_cmple_ps_mask(__m512 a, __m512 b) {
1083 // CHECK-LABEL: @test_mm512_cmple_ps_mask
1084 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1085 return _mm512_cmpeq_ps_mask(a, b);
1088 __mmask8 test_mm512_mask_cmple_pd_mask(__mmask8 k, __m512d a, __m512d b) {
1089 // CHECK-LABEL: @test_mm512_mask_cmple_pd_mask
1090 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1091 return _mm512_mask_cmple_pd_mask(k, a, b);
1094 __mmask8 test_mm512_mask_cmple_ps_mask(__mmask8 k, __m512 a, __m512 b) {
1095 // CHECK-LABEL: @test_mm512_mask_cmple_ps_mask
1096 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1097 return _mm512_mask_cmple_ps_mask(k, a, b);
1100 __mmask8 test_mm512_cmplt_pd_mask(__m512d a, __m512d b) {
1101 // CHECK-LABEL: @test_mm512_cmplt_pd_mask
1102 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1103 return _mm512_cmplt_pd_mask(a, b);
1106 __mmask8 test_mm512_cmplt_ps_mask(__m512 a, __m512 b) {
1107 // CHECK-LABEL: @test_mm512_cmplt_ps_mask
1108 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1109 return _mm512_cmplt_ps_mask(a, b);
1112 __mmask8 test_mm512_mask_cmplt_pd_mask(__mmask8 k, __m512d a, __m512d b) {
1113 // CHECK-LABEL: @test_mm512_mask_cmplt_pd_mask
1114 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1115 return _mm512_mask_cmplt_pd_mask(k, a, b);
1118 __mmask8 test_mm512_mask_cmplt_ps_mask(__mmask8 k, __m512 a, __m512 b) {
1119 // CHECK-LABEL: @test_mm512_mask_cmplt_ps_mask
1120 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1121 return _mm512_mask_cmplt_ps_mask(k, a, b);
1124 __mmask8 test_mm512_cmpneq_pd_mask(__m512d a, __m512d b) {
1125 // CHECK-LABEL: @test_mm512_cmpneq_pd_mask
1126 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1127 return _mm512_cmpneq_pd_mask(a, b);
1130 __mmask8 test_mm512_cmpneq_ps_mask(__m512 a, __m512 b) {
1131 // CHECK-LABEL: @test_mm512_cmpneq_ps_mask
1132 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1133 return _mm512_cmpneq_ps_mask(a, b);
1136 __mmask8 test_mm512_mask_cmpneq_pd_mask(__mmask8 k, __m512d a, __m512d b) {
1137 // CHECK-LABEL: @test_mm512_mask_cmpneq_pd_mask
1138 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1139 return _mm512_mask_cmpneq_pd_mask(k, a, b);
1142 __mmask8 test_mm512_mask_cmpneq_ps_mask(__mmask8 k, __m512 a, __m512 b) {
1143 // CHECK-LABEL: @test_mm512_mask_cmpneq_ps_mask
1144 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1145 return _mm512_mask_cmpneq_ps_mask(k, a, b);
1148 __mmask8 test_mm512_cmpnle_pd_mask(__m512d a, __m512d b) {
1149 // CHECK-LABEL: @test_mm512_cmpnle_pd_mask
1150 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1151 return _mm512_cmpnle_pd_mask(a, b);
1154 __mmask8 test_mm512_cmpnle_ps_mask(__m512 a, __m512 b) {
1155 // CHECK-LABEL: @test_mm512_cmpnle_ps_mask
1156 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1157 return _mm512_cmpnle_ps_mask(a, b);
1160 __mmask8 test_mm512_mask_cmpnle_pd_mask(__mmask8 k, __m512d a, __m512d b) {
1161 // CHECK-LABEL: @test_mm512_mask_cmpnle_pd_mask
1162 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1163 return _mm512_mask_cmpnle_pd_mask(k, a, b);
1166 __mmask8 test_mm512_mask_cmpnle_ps_mask(__mmask8 k, __m512 a, __m512 b) {
1167 // CHECK-LABEL: @test_mm512_mask_cmpnle_ps_mask
1168 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1169 return _mm512_mask_cmpnle_ps_mask(k, a, b);
1172 __mmask8 test_mm512_cmpnlt_pd_mask(__m512d a, __m512d b) {
1173 // CHECK-LABEL: @test_mm512_cmpnlt_pd_mask
1174 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1175 return _mm512_cmpnlt_pd_mask(a, b);
1178 __mmask8 test_mm512_cmpnlt_ps_mask(__m512 a, __m512 b) {
1179 // CHECK-LABEL: @test_mm512_cmpnlt_ps_mask
1180 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1181 return _mm512_cmpnlt_ps_mask(a, b);
1184 __mmask8 test_mm512_mask_cmpnlt_pd_mask(__mmask8 k, __m512d a, __m512d b) {
1185 // CHECK-LABEL: @test_mm512_mask_cmpnlt_pd_mask
1186 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1187 return _mm512_mask_cmpnlt_pd_mask(k, a, b);
1190 __mmask8 test_mm512_mask_cmpnlt_ps_mask(__mmask8 k, __m512 a, __m512 b) {
1191 // CHECK-LABEL: @test_mm512_mask_cmpnlt_ps_mask
1192 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1193 return _mm512_mask_cmpnlt_ps_mask(k, a, b);
1196 __mmask8 test_mm512_cmpord_pd_mask(__m512d a, __m512d b) {
1197 // CHECK-LABEL: @test_mm512_cmpord_pd_mask
1198 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1199 return _mm512_cmpord_pd_mask(a, b);
1202 __mmask8 test_mm512_cmpord_ps_mask(__m512 a, __m512 b) {
1203 // CHECK-LABEL: @test_mm512_cmpord_ps_mask
1204 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1205 return _mm512_cmpord_ps_mask(a, b);
1208 __mmask8 test_mm512_mask_cmpord_pd_mask(__mmask8 k, __m512d a, __m512d b) {
1209 // CHECK-LABEL: @test_mm512_mask_cmpord_pd_mask
1210 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1211 return _mm512_mask_cmpord_pd_mask(k, a, b);
1214 __mmask8 test_mm512_mask_cmpord_ps_mask(__mmask8 k, __m512 a, __m512 b) {
1215 // CHECK-LABEL: @test_mm512_mask_cmpord_ps_mask
1216 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1217 return _mm512_mask_cmpord_ps_mask(k, a, b);
1220 __mmask8 test_mm512_cmpunord_pd_mask(__m512d a, __m512d b) {
1221 // CHECK-LABEL: @test_mm512_cmpunord_pd_mask
1222 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1223 return _mm512_cmpunord_pd_mask(a, b);
1226 __mmask8 test_mm512_cmpunord_ps_mask(__m512 a, __m512 b) {
1227 // CHECK-LABEL: @test_mm512_cmpunord_ps_mask
1228 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1229 return _mm512_cmpunord_ps_mask(a, b);
1232 __mmask8 test_mm512_mask_cmpunord_pd_mask(__mmask8 k, __m512d a, __m512d b) {
1233 // CHECK-LABEL: @test_mm512_mask_cmpunord_pd_mask
1234 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
1235 return _mm512_mask_cmpunord_pd_mask(k, a, b);
1238 __mmask8 test_mm512_mask_cmpunord_ps_mask(__mmask8 k, __m512 a, __m512 b) {
1239 // CHECK-LABEL: @test_mm512_mask_cmpunord_ps_mask
1240 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
1241 return _mm512_mask_cmpunord_ps_mask(k, a, b);
1244 __m256d test_mm512_extractf64x4_pd(__m512d a)
1246 // CHECK-LABEL: @test_mm512_extractf64x4_pd
1247 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> zeroinitializer, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
1248 return _mm512_extractf64x4_pd(a, 1);
1251 __m256d test_mm512_mask_extractf64x4_pd(__m256d __W,__mmask8 __U,__m512d __A){
1252 // CHECK-LABEL:@test_mm512_mask_extractf64x4_pd
1253 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> zeroinitializer, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
1254 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1255 return _mm512_mask_extractf64x4_pd( __W, __U, __A, 1);
1258 __m256d test_mm512_maskz_extractf64x4_pd(__mmask8 __U,__m512d __A){
1259 // CHECK-LABEL:@test_mm512_maskz_extractf64x4_pd
1260 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> zeroinitializer, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
1261 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1262 return _mm512_maskz_extractf64x4_pd( __U, __A, 1);
1265 __m128 test_mm512_extractf32x4_ps(__m512 a)
1267 // CHECK-LABEL: @test_mm512_extractf32x4_ps
1268 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> zeroinitializer, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
1269 return _mm512_extractf32x4_ps(a, 1);
1272 __m128 test_mm512_mask_extractf32x4_ps(__m128 __W, __mmask8 __U,__m512d __A){
1273 // CHECK-LABEL:@test_mm512_mask_extractf32x4_ps
1274 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> zeroinitializer, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
1275 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
1276 return _mm512_mask_extractf32x4_ps( __W, __U, __A, 1);
1279 __m128 test_mm512_maskz_extractf32x4_ps( __mmask8 __U,__m512d __A){
1280 // CHECK-LABEL:@test_mm512_maskz_extractf32x4_ps
1281 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> zeroinitializer, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
1282 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
1283 return _mm512_maskz_extractf32x4_ps( __U, __A, 1);
1286 __mmask16 test_mm512_cmpeq_epu32_mask(__m512i __a, __m512i __b) {
1287 // CHECK-LABEL: @test_mm512_cmpeq_epu32_mask
1288 // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1289 return (__mmask16)_mm512_cmpeq_epu32_mask(__a, __b);
1292 __mmask16 test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1293 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu32_mask
1294 // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1295 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1296 return (__mmask16)_mm512_mask_cmpeq_epu32_mask(__u, __a, __b);
1299 __mmask8 test_mm512_cmpeq_epu64_mask(__m512i __a, __m512i __b) {
1300 // CHECK-LABEL: @test_mm512_cmpeq_epu64_mask
1301 // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1302 return (__mmask8)_mm512_cmpeq_epu64_mask(__a, __b);
1305 __mmask8 test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1306 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu64_mask
1307 // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1308 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1309 return (__mmask8)_mm512_mask_cmpeq_epu64_mask(__u, __a, __b);
1312 __mmask16 test_mm512_cmpge_epi32_mask(__m512i __a, __m512i __b) {
1313 // CHECK-LABEL: @test_mm512_cmpge_epi32_mask
1314 // CHECK: icmp sge <16 x i32> %{{.*}}, %{{.*}}
1315 return (__mmask16)_mm512_cmpge_epi32_mask(__a, __b);
1318 __mmask16 test_mm512_mask_cmpge_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1319 // CHECK-LABEL: @test_mm512_mask_cmpge_epi32_mask
1320 // CHECK: icmp sge <16 x i32> %{{.*}}, %{{.*}}
1321 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1322 return (__mmask16)_mm512_mask_cmpge_epi32_mask(__u, __a, __b);
1325 __mmask8 test_mm512_cmpge_epi64_mask(__m512i __a, __m512i __b) {
1326 // CHECK-LABEL: @test_mm512_cmpge_epi64_mask
1327 // CHECK: icmp sge <8 x i64> %{{.*}}, %{{.*}}
1328 return (__mmask8)_mm512_cmpge_epi64_mask(__a, __b);
1331 __mmask8 test_mm512_mask_cmpge_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1332 // CHECK-LABEL: @test_mm512_mask_cmpge_epi64_mask
1333 // CHECK: icmp sge <8 x i64> %{{.*}}, %{{.*}}
1334 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1335 return (__mmask8)_mm512_mask_cmpge_epi64_mask(__u, __a, __b);
1338 __mmask16 test_mm512_cmpge_epu32_mask(__m512i __a, __m512i __b) {
1339 // CHECK-LABEL: @test_mm512_cmpge_epu32_mask
1340 // CHECK: icmp uge <16 x i32> %{{.*}}, %{{.*}}
1341 return (__mmask16)_mm512_cmpge_epu32_mask(__a, __b);
1344 __mmask16 test_mm512_mask_cmpge_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1345 // CHECK-LABEL: @test_mm512_mask_cmpge_epu32_mask
1346 // CHECK: icmp uge <16 x i32> %{{.*}}, %{{.*}}
1347 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1348 return (__mmask16)_mm512_mask_cmpge_epu32_mask(__u, __a, __b);
1351 __mmask8 test_mm512_cmpge_epu64_mask(__m512i __a, __m512i __b) {
1352 // CHECK-LABEL: @test_mm512_cmpge_epu64_mask
1353 // CHECK: icmp uge <8 x i64> %{{.*}}, %{{.*}}
1354 return (__mmask8)_mm512_cmpge_epu64_mask(__a, __b);
1357 __mmask8 test_mm512_mask_cmpge_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1358 // CHECK-LABEL: @test_mm512_mask_cmpge_epu64_mask
1359 // CHECK: icmp uge <8 x i64> %{{.*}}, %{{.*}}
1360 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1361 return (__mmask8)_mm512_mask_cmpge_epu64_mask(__u, __a, __b);
1364 __mmask16 test_mm512_cmpgt_epu32_mask(__m512i __a, __m512i __b) {
1365 // CHECK-LABEL: @test_mm512_cmpgt_epu32_mask
1366 // CHECK: icmp ugt <16 x i32> %{{.*}}, %{{.*}}
1367 return (__mmask16)_mm512_cmpgt_epu32_mask(__a, __b);
1370 __mmask16 test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1371 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu32_mask
1372 // CHECK: icmp ugt <16 x i32> %{{.*}}, %{{.*}}
1373 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1374 return (__mmask16)_mm512_mask_cmpgt_epu32_mask(__u, __a, __b);
1377 __mmask8 test_mm512_cmpgt_epu64_mask(__m512i __a, __m512i __b) {
1378 // CHECK-LABEL: @test_mm512_cmpgt_epu64_mask
1379 // CHECK: icmp ugt <8 x i64> %{{.*}}, %{{.*}}
1380 return (__mmask8)_mm512_cmpgt_epu64_mask(__a, __b);
1383 __mmask8 test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1384 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu64_mask
1385 // CHECK: icmp ugt <8 x i64> %{{.*}}, %{{.*}}
1386 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1387 return (__mmask8)_mm512_mask_cmpgt_epu64_mask(__u, __a, __b);
1390 __mmask16 test_mm512_cmple_epi32_mask(__m512i __a, __m512i __b) {
1391 // CHECK-LABEL: @test_mm512_cmple_epi32_mask
1392 // CHECK: icmp sle <16 x i32> %{{.*}}, %{{.*}}
1393 return (__mmask16)_mm512_cmple_epi32_mask(__a, __b);
1396 __mmask16 test_mm512_mask_cmple_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1397 // CHECK-LABEL: @test_mm512_mask_cmple_epi32_mask
1398 // CHECK: icmp sle <16 x i32> %{{.*}}, %{{.*}}
1399 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1400 return (__mmask16)_mm512_mask_cmple_epi32_mask(__u, __a, __b);
1403 __mmask8 test_mm512_cmple_epi64_mask(__m512i __a, __m512i __b) {
1404 // CHECK-LABEL: @test_mm512_cmple_epi64_mask
1405 // CHECK: icmp sle <8 x i64> %{{.*}}, %{{.*}}
1406 return (__mmask8)_mm512_cmple_epi64_mask(__a, __b);
1409 __mmask8 test_mm512_mask_cmple_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1410 // CHECK-LABEL: @test_mm512_mask_cmple_epi64_mask
1411 // CHECK: icmp sle <8 x i64> %{{.*}}, %{{.*}}
1412 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1413 return (__mmask8)_mm512_mask_cmple_epi64_mask(__u, __a, __b);
1416 __mmask16 test_mm512_cmple_epu32_mask(__m512i __a, __m512i __b) {
1417 // CHECK-LABEL: @test_mm512_cmple_epu32_mask
1418 // CHECK: icmp ule <16 x i32> %{{.*}}, %{{.*}}
1419 return (__mmask16)_mm512_cmple_epu32_mask(__a, __b);
1422 __mmask16 test_mm512_mask_cmple_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1423 // CHECK-LABEL: @test_mm512_mask_cmple_epu32_mask
1424 // CHECK: icmp ule <16 x i32> %{{.*}}, %{{.*}}
1425 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1426 return (__mmask16)_mm512_mask_cmple_epu32_mask(__u, __a, __b);
1429 __mmask8 test_mm512_cmple_epu64_mask(__m512i __a, __m512i __b) {
1430 // CHECK-LABEL: @test_mm512_cmple_epu64_mask
1431 // CHECK: icmp ule <8 x i64> %{{.*}}, %{{.*}}
1432 return (__mmask8)_mm512_cmple_epu64_mask(__a, __b);
1435 __mmask8 test_mm512_mask_cmple_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1436 // CHECK-LABEL: @test_mm512_mask_cmple_epu64_mask
1437 // CHECK: icmp ule <8 x i64> %{{.*}}, %{{.*}}
1438 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1439 return (__mmask8)_mm512_mask_cmple_epu64_mask(__u, __a, __b);
1442 __mmask16 test_mm512_cmplt_epi32_mask(__m512i __a, __m512i __b) {
1443 // CHECK-LABEL: @test_mm512_cmplt_epi32_mask
1444 // CHECK: icmp slt <16 x i32> %{{.*}}, %{{.*}}
1445 return (__mmask16)_mm512_cmplt_epi32_mask(__a, __b);
1448 __mmask16 test_mm512_mask_cmplt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1449 // CHECK-LABEL: @test_mm512_mask_cmplt_epi32_mask
1450 // CHECK: icmp slt <16 x i32> %{{.*}}, %{{.*}}
1451 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1452 return (__mmask16)_mm512_mask_cmplt_epi32_mask(__u, __a, __b);
1455 __mmask8 test_mm512_cmplt_epi64_mask(__m512i __a, __m512i __b) {
1456 // CHECK-LABEL: @test_mm512_cmplt_epi64_mask
1457 // CHECK: icmp slt <8 x i64> %{{.*}}, %{{.*}}
1458 return (__mmask8)_mm512_cmplt_epi64_mask(__a, __b);
1461 __mmask8 test_mm512_mask_cmplt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1462 // CHECK-LABEL: @test_mm512_mask_cmplt_epi64_mask
1463 // CHECK: icmp slt <8 x i64> %{{.*}}, %{{.*}}
1464 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1465 return (__mmask8)_mm512_mask_cmplt_epi64_mask(__u, __a, __b);
1468 __mmask16 test_mm512_cmplt_epu32_mask(__m512i __a, __m512i __b) {
1469 // CHECK-LABEL: @test_mm512_cmplt_epu32_mask
1470 // CHECK: icmp ult <16 x i32> %{{.*}}, %{{.*}}
1471 return (__mmask16)_mm512_cmplt_epu32_mask(__a, __b);
1474 __mmask16 test_mm512_mask_cmplt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1475 // CHECK-LABEL: @test_mm512_mask_cmplt_epu32_mask
1476 // CHECK: icmp ult <16 x i32> %{{.*}}, %{{.*}}
1477 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1478 return (__mmask16)_mm512_mask_cmplt_epu32_mask(__u, __a, __b);
1481 __mmask8 test_mm512_cmplt_epu64_mask(__m512i __a, __m512i __b) {
1482 // CHECK-LABEL: @test_mm512_cmplt_epu64_mask
1483 // CHECK: icmp ult <8 x i64> %{{.*}}, %{{.*}}
1484 return (__mmask8)_mm512_cmplt_epu64_mask(__a, __b);
1487 __mmask8 test_mm512_mask_cmplt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1488 // CHECK-LABEL: @test_mm512_mask_cmplt_epu64_mask
1489 // CHECK: icmp ult <8 x i64> %{{.*}}, %{{.*}}
1490 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1491 return (__mmask8)_mm512_mask_cmplt_epu64_mask(__u, __a, __b);
1494 __mmask16 test_mm512_cmpneq_epi32_mask(__m512i __a, __m512i __b) {
1495 // CHECK-LABEL: @test_mm512_cmpneq_epi32_mask
1496 // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1497 return (__mmask16)_mm512_cmpneq_epi32_mask(__a, __b);
1500 __mmask16 test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1501 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi32_mask
1502 // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1503 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1504 return (__mmask16)_mm512_mask_cmpneq_epi32_mask(__u, __a, __b);
1507 __mmask8 test_mm512_cmpneq_epi64_mask(__m512i __a, __m512i __b) {
1508 // CHECK-LABEL: @test_mm512_cmpneq_epi64_mask
1509 // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1510 return (__mmask8)_mm512_cmpneq_epi64_mask(__a, __b);
1513 __mmask8 test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1514 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi64_mask
1515 // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1516 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1517 return (__mmask8)_mm512_mask_cmpneq_epi64_mask(__u, __a, __b);
1520 __mmask16 test_mm512_cmpneq_epu32_mask(__m512i __a, __m512i __b) {
1521 // CHECK-LABEL: @test_mm512_cmpneq_epu32_mask
1522 // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1523 return (__mmask16)_mm512_cmpneq_epu32_mask(__a, __b);
1526 __mmask16 test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1527 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu32_mask
1528 // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
1529 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1530 return (__mmask16)_mm512_mask_cmpneq_epu32_mask(__u, __a, __b);
1533 __mmask8 test_mm512_cmpneq_epu64_mask(__m512i __a, __m512i __b) {
1534 // CHECK-LABEL: @test_mm512_cmpneq_epu64_mask
1535 // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1536 return (__mmask8)_mm512_cmpneq_epu64_mask(__a, __b);
1539 __mmask8 test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1540 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu64_mask
1541 // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
1542 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1543 return (__mmask8)_mm512_mask_cmpneq_epu64_mask(__u, __a, __b);
1546 __mmask16 test_mm512_cmp_eq_epi32_mask(__m512i __a, __m512i __b) {
1547 // CHECK-LABEL: @test_mm512_cmp_eq_epi32_mask
1548 // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1549 return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, _MM_CMPINT_EQ);
1552 __mmask16 test_mm512_mask_cmp_eq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1553 // CHECK-LABEL: @test_mm512_mask_cmp_eq_epi32_mask
1554 // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1555 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1556 return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, _MM_CMPINT_EQ);
1559 __mmask8 test_mm512_cmp_eq_epi64_mask(__m512i __a, __m512i __b) {
1560 // CHECK-LABEL: @test_mm512_cmp_eq_epi64_mask
1561 // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1562 return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, _MM_CMPINT_EQ);
1565 __mmask8 test_mm512_mask_cmp_eq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1566 // CHECK-LABEL: @test_mm512_mask_cmp_eq_epi64_mask
1567 // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1568 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1569 return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, _MM_CMPINT_EQ);
1572 __mmask16 test_mm512_cmp_epu32_mask(__m512i __a, __m512i __b) {
1573 // CHECK-LABEL: @test_mm512_cmp_epu32_mask
1574 // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1575 return (__mmask16)_mm512_cmp_epu32_mask(__a, __b, 0);
1578 __mmask16 test_mm512_mask_cmp_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1579 // CHECK-LABEL: @test_mm512_mask_cmp_epu32_mask
1580 // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
1581 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
1582 return (__mmask16)_mm512_mask_cmp_epu32_mask(__u, __a, __b, 0);
1585 __mmask8 test_mm512_cmp_epu64_mask(__m512i __a, __m512i __b) {
1586 // CHECK-LABEL: @test_mm512_cmp_epu64_mask
1587 // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1588 return (__mmask8)_mm512_cmp_epu64_mask(__a, __b, 0);
1591 __mmask8 test_mm512_mask_cmp_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1592 // CHECK-LABEL: @test_mm512_mask_cmp_epu64_mask
1593 // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
1594 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
1595 return (__mmask8)_mm512_mask_cmp_epu64_mask(__u, __a, __b, 0);
1598 __m512i test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1599 // CHECK-LABEL: @test_mm512_mask_and_epi32
1600 // CHECK: and <16 x i32>
1601 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1602 // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1603 return _mm512_mask_and_epi32(__src, __k,__a, __b);
1606 __m512i test_mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1607 // CHECK-LABEL: @test_mm512_maskz_and_epi32
1608 // CHECK: and <16 x i32>
1609 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1610 // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1611 return _mm512_maskz_and_epi32(__k,__a, __b);
1614 __m512i test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1615 // CHECK-LABEL: @test_mm512_mask_and_epi64
1616 // CHECK: %[[AND_RES:.*]] = and <8 x i64>
1617 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1618 // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
1619 return _mm512_mask_and_epi64(__src, __k,__a, __b);
1622 __m512i test_mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1623 // CHECK-LABEL: @test_mm512_maskz_and_epi64
1624 // CHECK: %[[AND_RES:.*]] = and <8 x i64>
1625 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1626 // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
1627 return _mm512_maskz_and_epi64(__k,__a, __b);
1630 __m512i test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1631 // CHECK-LABEL: @test_mm512_mask_or_epi32
1632 // CHECK: or <16 x i32>
1633 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1634 // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1635 return _mm512_mask_or_epi32(__src, __k,__a, __b);
1638 __m512i test_mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1639 // CHECK-LABEL: @test_mm512_maskz_or_epi32
1640 // CHECK: or <16 x i32>
1641 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1642 // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1643 return _mm512_maskz_or_epi32(__k,__a, __b);
1646 __m512i test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1647 // CHECK-LABEL: @test_mm512_mask_or_epi64
1648 // CHECK: %[[OR_RES:.*]] = or <8 x i64>
1649 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1650 // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[OR_RES]], <8 x i64> %{{.*}}
1651 return _mm512_mask_or_epi64(__src, __k,__a, __b);
1654 __m512i test_mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1655 // CHECK-LABEL: @test_mm512_maskz_or_epi64
1656 // CHECK: %[[OR_RES:.*]] = or <8 x i64>
1657 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1658 // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[OR_RES]], <8 x i64> %{{.*}}
1659 return _mm512_maskz_or_epi64(__k,__a, __b);
1662 __m512i test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1663 // CHECK-LABEL: @test_mm512_mask_xor_epi32
1664 // CHECK: xor <16 x i32>
1665 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1666 // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1667 return _mm512_mask_xor_epi32(__src, __k,__a, __b);
1670 __m512i test_mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1671 // CHECK-LABEL: @test_mm512_maskz_xor_epi32
1672 // CHECK: xor <16 x i32>
1673 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
1674 // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1675 return _mm512_maskz_xor_epi32(__k,__a, __b);
1678 __m512i test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1679 // CHECK-LABEL: @test_mm512_mask_xor_epi64
1680 // CHECK: %[[XOR_RES:.*]] = xor <8 x i64>
1681 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1682 // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[XOR_RES]], <8 x i64> %{{.*}}
1683 return _mm512_mask_xor_epi64(__src, __k,__a, __b);
1686 __m512i test_mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1687 // CHECK-LABEL: @test_mm512_maskz_xor_epi64
1688 // CHECK: %[[XOR_RES:.*]] = xor <8 x i64>
1689 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
1690 // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[XOR_RES]], <8 x i64> %{{.*}}
1691 return _mm512_maskz_xor_epi64(__k,__a, __b);
1694 __m512i test_mm512_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1695 // CHECK-LABEL: @test_mm512_and_epi32
1696 // CHECK: and <16 x i32>
1697 return _mm512_and_epi32(__a, __b);
1700 __m512i test_mm512_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1701 // CHECK-LABEL: @test_mm512_and_epi64
1702 // CHECK: and <8 x i64>
1703 return _mm512_and_epi64(__a, __b);
1706 __m512i test_mm512_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1707 // CHECK-LABEL: @test_mm512_or_epi32
1708 // CHECK: or <16 x i32>
1709 return _mm512_or_epi32(__a, __b);
1712 __m512i test_mm512_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1713 // CHECK-LABEL: @test_mm512_or_epi64
1714 // CHECK: or <8 x i64>
1715 return _mm512_or_epi64(__a, __b);
1718 __m512i test_mm512_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1719 // CHECK-LABEL: @test_mm512_xor_epi32
1720 // CHECK: xor <16 x i32>
1721 return _mm512_xor_epi32(__a, __b);
1724 __m512i test_mm512_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1725 // CHECK-LABEL: @test_mm512_xor_epi64
1726 // CHECK: xor <8 x i64>
1727 return _mm512_xor_epi64(__a, __b);
1730 __m512i test_mm512_maskz_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B){
1731 // CHECK-LABEL: @test_mm512_maskz_andnot_epi32
1732 // 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>
1733 // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
1734 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1735 return _mm512_maskz_andnot_epi32(__k,__A,__B);
1738 __m512i test_mm512_mask_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1740 // CHECK-LABEL: @test_mm512_mask_andnot_epi32
1741 // 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>
1742 // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
1743 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1744 return _mm512_mask_andnot_epi32(__src,__k,__A,__B);
1747 __m512i test_mm512_andnot_si512(__m512i __A, __m512i __B)
1749 //CHECK-LABEL: @test_mm512_andnot_si512
1750 //CHECK: load {{.*}}%__A.addr.i, align 64
1751 //CHECK: %neg.i = xor{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1752 //CHECK: load {{.*}}%__B.addr.i, align 64
1753 //CHECK: and <8 x i64> %neg.i,{{.*}}
1755 return _mm512_andnot_si512(__A, __B);
1758 __m512i test_mm512_andnot_epi32(__m512i __A, __m512i __B) {
1759 // CHECK-LABEL: @test_mm512_andnot_epi32
1760 // 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>
1761 // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
1762 return _mm512_andnot_epi32(__A,__B);
1765 __m512i test_mm512_maskz_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1766 // CHECK-LABEL: @test_mm512_maskz_andnot_epi64
1767 // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1768 // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
1769 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1770 return _mm512_maskz_andnot_epi64(__k,__A,__B);
1773 __m512i test_mm512_mask_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1775 //CHECK-LABEL: @test_mm512_mask_andnot_epi64
1776 // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1777 // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
1778 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1779 return _mm512_mask_andnot_epi64(__src,__k,__A,__B);
1782 __m512i test_mm512_andnot_epi64(__m512i __A, __m512i __B) {
1783 //CHECK-LABEL: @test_mm512_andnot_epi64
1784 // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
1785 // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
1786 return _mm512_andnot_epi64(__A,__B);
1789 __m512i test_mm512_maskz_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1790 //CHECK-LABEL: @test_mm512_maskz_sub_epi32
1791 //CHECK: sub <16 x i32> %{{.*}}, %{{.*}}
1792 //CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1793 return _mm512_maskz_sub_epi32(__k,__A,__B);
1796 __m512i test_mm512_mask_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1798 //CHECK-LABEL: @test_mm512_mask_sub_epi32
1799 //CHECK: sub <16 x i32> %{{.*}}, %{{.*}}
1800 //CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1801 return _mm512_mask_sub_epi32(__src,__k,__A,__B);
1804 __m512i test_mm512_sub_epi32(__m512i __A, __m512i __B) {
1805 //CHECK-LABEL: @test_mm512_sub_epi32
1806 //CHECK: sub <16 x i32>
1807 return _mm512_sub_epi32(__A,__B);
1810 __m512i test_mm512_maskz_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1811 //CHECK-LABEL: @test_mm512_maskz_sub_epi64
1812 //CHECK: sub <8 x i64> %{{.*}}, %{{.*}}
1813 //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1814 return _mm512_maskz_sub_epi64(__k,__A,__B);
1817 __m512i test_mm512_mask_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1819 //CHECK-LABEL: @test_mm512_mask_sub_epi64
1820 //CHECK: sub <8 x i64> %{{.*}}, %{{.*}}
1821 //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1822 return _mm512_mask_sub_epi64(__src,__k,__A,__B);
1825 __m512i test_mm512_sub_epi64(__m512i __A, __m512i __B) {
1826 //CHECK-LABEL: @test_mm512_sub_epi64
1827 //CHECK: sub <8 x i64>
1828 return _mm512_sub_epi64(__A,__B);
1831 __m512i test_mm512_maskz_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1832 //CHECK-LABEL: @test_mm512_maskz_add_epi32
1833 //CHECK: add <16 x i32> %{{.*}}, %{{.*}}
1834 //CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1835 return _mm512_maskz_add_epi32(__k,__A,__B);
1838 __m512i test_mm512_mask_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1840 //CHECK-LABEL: @test_mm512_mask_add_epi32
1841 //CHECK: add <16 x i32> %{{.*}}, %{{.*}}
1842 //CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1843 return _mm512_mask_add_epi32(__src,__k,__A,__B);
1846 __m512i test_mm512_add_epi32(__m512i __A, __m512i __B) {
1847 //CHECK-LABEL: @test_mm512_add_epi32
1848 //CHECK: add <16 x i32>
1849 return _mm512_add_epi32(__A,__B);
1852 __m512i test_mm512_maskz_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1853 //CHECK-LABEL: @test_mm512_maskz_add_epi64
1854 //CHECK: add <8 x i64> %{{.*}}, %{{.*}}
1855 //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1856 return _mm512_maskz_add_epi64(__k,__A,__B);
1859 __m512i test_mm512_mask_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1861 //CHECK-LABEL: @test_mm512_mask_add_epi64
1862 //CHECK: add <8 x i64> %{{.*}}, %{{.*}}
1863 //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1864 return _mm512_mask_add_epi64(__src,__k,__A,__B);
1867 __m512i test_mm512_add_epi64(__m512i __A, __m512i __B) {
1868 //CHECK-LABEL: @test_mm512_add_epi64
1869 //CHECK: add <8 x i64>
1870 return _mm512_add_epi64(__A,__B);
1873 __m512i test_mm512_mul_epi32(__m512i __A, __m512i __B) {
1874 //CHECK-LABEL: @test_mm512_mul_epi32
1875 //CHECK: @llvm.x86.avx512.pmul.dq.512
1876 return _mm512_mul_epi32(__A,__B);
1879 __m512i test_mm512_maskz_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1880 //CHECK-LABEL: @test_mm512_maskz_mul_epi32
1881 //CHECK: @llvm.x86.avx512.pmul.dq.512
1882 //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1883 return _mm512_maskz_mul_epi32(__k,__A,__B);
1886 __m512i test_mm512_mask_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1888 //CHECK-LABEL: @test_mm512_mask_mul_epi32
1889 //CHECK: @llvm.x86.avx512.pmul.dq.512
1890 //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1891 return _mm512_mask_mul_epi32(__src,__k,__A,__B);
1894 __m512i test_mm512_mul_epu32 (__m512i __A, __m512i __B) {
1895 //CHECK-LABEL: @test_mm512_mul_epu32
1896 //CHECK: @llvm.x86.avx512.pmulu.dq.512
1897 return _mm512_mul_epu32(__A,__B);
1900 __m512i test_mm512_maskz_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B) {
1901 //CHECK-LABEL: @test_mm512_maskz_mul_epu32
1902 //CHECK: @llvm.x86.avx512.pmulu.dq.512
1903 //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1904 return _mm512_maskz_mul_epu32(__k,__A,__B);
1907 __m512i test_mm512_mask_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B,
1909 //CHECK-LABEL: @test_mm512_mask_mul_epu32
1910 //CHECK: @llvm.x86.avx512.pmulu.dq.512
1911 //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1912 return _mm512_mask_mul_epu32(__src,__k,__A,__B);
1915 __m512i test_mm512_maskz_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1916 //CHECK-LABEL: @test_mm512_maskz_mullo_epi32
1917 //CHECK: mul <16 x i32> %{{.*}}, %{{.*}}
1918 //CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1919 return _mm512_maskz_mullo_epi32(__k,__A,__B);
1922 __m512i test_mm512_mask_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B, __m512i __src) {
1923 //CHECK-LABEL: @test_mm512_mask_mullo_epi32
1924 //CHECK: mul <16 x i32> %{{.*}}, %{{.*}}
1925 //CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1926 return _mm512_mask_mullo_epi32(__src,__k,__A,__B);
1929 __m512i test_mm512_mullo_epi32(__m512i __A, __m512i __B) {
1930 //CHECK-LABEL: @test_mm512_mullo_epi32
1931 //CHECK: mul <16 x i32>
1932 return _mm512_mullo_epi32(__A,__B);
1935 __m512d test_mm512_add_round_pd(__m512d __A, __m512d __B) {
1936 // CHECK-LABEL: @test_mm512_add_round_pd
1937 // CHECK: @llvm.x86.avx512.mask.add.pd.512
1938 return _mm512_add_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1940 __m512d test_mm512_mask_add_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1941 // CHECK-LABEL: @test_mm512_mask_add_round_pd
1942 // CHECK: @llvm.x86.avx512.mask.add.pd.512
1943 return _mm512_mask_add_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1945 __m512d test_mm512_maskz_add_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1946 // CHECK-LABEL: @test_mm512_maskz_add_round_pd
1947 // CHECK: @llvm.x86.avx512.mask.add.pd.512
1948 return _mm512_maskz_add_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1950 __m512d test_mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1951 // CHECK-LABEL: @test_mm512_mask_add_pd
1952 // CHECK: fadd <8 x double> %{{.*}}, %{{.*}}
1953 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
1954 return _mm512_mask_add_pd(__W,__U,__A,__B);
1956 __m512d test_mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1957 // CHECK-LABEL: @test_mm512_maskz_add_pd
1958 // CHECK: fadd <8 x double> %{{.*}}, %{{.*}}
1959 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
1960 return _mm512_maskz_add_pd(__U,__A,__B);
1962 __m512 test_mm512_add_round_ps(__m512 __A, __m512 __B) {
1963 // CHECK-LABEL: @test_mm512_add_round_ps
1964 // CHECK: @llvm.x86.avx512.mask.add.ps.512
1965 return _mm512_add_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1967 __m512 test_mm512_mask_add_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1968 // CHECK-LABEL: @test_mm512_mask_add_round_ps
1969 // CHECK: @llvm.x86.avx512.mask.add.ps.512
1970 return _mm512_mask_add_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1972 __m512 test_mm512_maskz_add_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1973 // CHECK-LABEL: @test_mm512_maskz_add_round_ps
1974 // CHECK: @llvm.x86.avx512.mask.add.ps.512
1975 return _mm512_maskz_add_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1977 __m512 test_mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1978 // CHECK-LABEL: @test_mm512_mask_add_ps
1979 // CHECK: fadd <16 x float> %{{.*}}, %{{.*}}
1980 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
1981 return _mm512_mask_add_ps(__W,__U,__A,__B);
1983 __m512 test_mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1984 // CHECK-LABEL: @test_mm512_maskz_add_ps
1985 // CHECK: fadd <16 x float> %{{.*}}, %{{.*}}
1986 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
1987 return _mm512_maskz_add_ps(__U,__A,__B);
1989 __m128 test_mm_add_round_ss(__m128 __A, __m128 __B) {
1990 // CHECK-LABEL: @test_mm_add_round_ss
1991 // CHECK: @llvm.x86.avx512.mask.add.ss.round
1992 return _mm_add_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1994 __m128 test_mm_mask_add_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1995 // CHECK-LABEL: @test_mm_mask_add_round_ss
1996 // CHECK: @llvm.x86.avx512.mask.add.ss.round
1997 return _mm_mask_add_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1999 __m128 test_mm_maskz_add_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2000 // CHECK-LABEL: @test_mm_maskz_add_round_ss
2001 // CHECK: @llvm.x86.avx512.mask.add.ss.round
2002 return _mm_maskz_add_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2004 __m128 test_mm_mask_add_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2005 // CHECK-LABEL: @test_mm_mask_add_ss
2006 // CHECK: @llvm.x86.avx512.mask.add.ss.round
2007 return _mm_mask_add_ss(__W,__U,__A,__B);
2009 __m128 test_mm_maskz_add_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2010 // CHECK-LABEL: @test_mm_maskz_add_ss
2011 // CHECK: @llvm.x86.avx512.mask.add.ss.round
2012 return _mm_maskz_add_ss(__U,__A,__B);
2014 __m128d test_mm_add_round_sd(__m128d __A, __m128d __B) {
2015 // CHECK-LABEL: @test_mm_add_round_sd
2016 // CHECK: @llvm.x86.avx512.mask.add.sd.round
2017 return _mm_add_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2019 __m128d test_mm_mask_add_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2020 // CHECK-LABEL: @test_mm_mask_add_round_sd
2021 // CHECK: @llvm.x86.avx512.mask.add.sd.round
2022 return _mm_mask_add_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2024 __m128d test_mm_maskz_add_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2025 // CHECK-LABEL: @test_mm_maskz_add_round_sd
2026 // CHECK: @llvm.x86.avx512.mask.add.sd.round
2027 return _mm_maskz_add_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2029 __m128d test_mm_mask_add_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2030 // CHECK-LABEL: @test_mm_mask_add_sd
2031 // CHECK: @llvm.x86.avx512.mask.add.sd.round
2032 return _mm_mask_add_sd(__W,__U,__A,__B);
2034 __m128d test_mm_maskz_add_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2035 // CHECK-LABEL: @test_mm_maskz_add_sd
2036 // CHECK: @llvm.x86.avx512.mask.add.sd.round
2037 return _mm_maskz_add_sd(__U,__A,__B);
2039 __m512d test_mm512_sub_round_pd(__m512d __A, __m512d __B) {
2040 // CHECK-LABEL: @test_mm512_sub_round_pd
2041 // CHECK: @llvm.x86.avx512.mask.sub.pd.512
2042 return _mm512_sub_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2044 __m512d test_mm512_mask_sub_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2045 // CHECK-LABEL: @test_mm512_mask_sub_round_pd
2046 // CHECK: @llvm.x86.avx512.mask.sub.pd.512
2047 return _mm512_mask_sub_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2049 __m512d test_mm512_maskz_sub_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2050 // CHECK-LABEL: @test_mm512_maskz_sub_round_pd
2051 // CHECK: @llvm.x86.avx512.mask.sub.pd.512
2052 return _mm512_maskz_sub_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2054 __m512d test_mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2055 // CHECK-LABEL: @test_mm512_mask_sub_pd
2056 // CHECK: fsub <8 x double> %{{.*}}, %{{.*}}
2057 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2058 return _mm512_mask_sub_pd(__W,__U,__A,__B);
2060 __m512d test_mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2061 // CHECK-LABEL: @test_mm512_maskz_sub_pd
2062 // CHECK: fsub <8 x double> %{{.*}}, %{{.*}}
2063 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2064 return _mm512_maskz_sub_pd(__U,__A,__B);
2066 __m512 test_mm512_sub_round_ps(__m512 __A, __m512 __B) {
2067 // CHECK-LABEL: @test_mm512_sub_round_ps
2068 // CHECK: @llvm.x86.avx512.mask.sub.ps.512
2069 return _mm512_sub_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2071 __m512 test_mm512_mask_sub_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2072 // CHECK-LABEL: @test_mm512_mask_sub_round_ps
2073 // CHECK: @llvm.x86.avx512.mask.sub.ps.512
2074 return _mm512_mask_sub_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2076 __m512 test_mm512_maskz_sub_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2077 // CHECK-LABEL: @test_mm512_maskz_sub_round_ps
2078 // CHECK: @llvm.x86.avx512.mask.sub.ps.512
2079 return _mm512_maskz_sub_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2081 __m512 test_mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2082 // CHECK-LABEL: @test_mm512_mask_sub_ps
2083 // CHECK: fsub <16 x float> %{{.*}}, %{{.*}}
2084 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
2085 return _mm512_mask_sub_ps(__W,__U,__A,__B);
2087 __m512 test_mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2088 // CHECK-LABEL: @test_mm512_maskz_sub_ps
2089 // CHECK: fsub <16 x float> %{{.*}}, %{{.*}}
2090 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
2091 return _mm512_maskz_sub_ps(__U,__A,__B);
2093 __m128 test_mm_sub_round_ss(__m128 __A, __m128 __B) {
2094 // CHECK-LABEL: @test_mm_sub_round_ss
2095 // CHECK: @llvm.x86.avx512.mask.sub.ss.round
2096 return _mm_sub_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2098 __m128 test_mm_mask_sub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2099 // CHECK-LABEL: @test_mm_mask_sub_round_ss
2100 // CHECK: @llvm.x86.avx512.mask.sub.ss.round
2101 return _mm_mask_sub_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2103 __m128 test_mm_maskz_sub_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2104 // CHECK-LABEL: @test_mm_maskz_sub_round_ss
2105 // CHECK: @llvm.x86.avx512.mask.sub.ss.round
2106 return _mm_maskz_sub_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2108 __m128 test_mm_mask_sub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2109 // CHECK-LABEL: @test_mm_mask_sub_ss
2110 // CHECK: @llvm.x86.avx512.mask.sub.ss.round
2111 return _mm_mask_sub_ss(__W,__U,__A,__B);
2113 __m128 test_mm_maskz_sub_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2114 // CHECK-LABEL: @test_mm_maskz_sub_ss
2115 // CHECK: @llvm.x86.avx512.mask.sub.ss.round
2116 return _mm_maskz_sub_ss(__U,__A,__B);
2118 __m128d test_mm_sub_round_sd(__m128d __A, __m128d __B) {
2119 // CHECK-LABEL: @test_mm_sub_round_sd
2120 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
2121 return _mm_sub_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2123 __m128d test_mm_mask_sub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2124 // CHECK-LABEL: @test_mm_mask_sub_round_sd
2125 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
2126 return _mm_mask_sub_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2128 __m128d test_mm_maskz_sub_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2129 // CHECK-LABEL: @test_mm_maskz_sub_round_sd
2130 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
2131 return _mm_maskz_sub_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2133 __m128d test_mm_mask_sub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2134 // CHECK-LABEL: @test_mm_mask_sub_sd
2135 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
2136 return _mm_mask_sub_sd(__W,__U,__A,__B);
2138 __m128d test_mm_maskz_sub_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2139 // CHECK-LABEL: @test_mm_maskz_sub_sd
2140 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
2141 return _mm_maskz_sub_sd(__U,__A,__B);
2143 __m512d test_mm512_mul_round_pd(__m512d __A, __m512d __B) {
2144 // CHECK-LABEL: @test_mm512_mul_round_pd
2145 // CHECK: @llvm.x86.avx512.mask.mul.pd.512
2146 return _mm512_mul_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2148 __m512d test_mm512_mask_mul_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2149 // CHECK-LABEL: @test_mm512_mask_mul_round_pd
2150 // CHECK: @llvm.x86.avx512.mask.mul.pd.512
2151 return _mm512_mask_mul_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2153 __m512d test_mm512_maskz_mul_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2154 // CHECK-LABEL: @test_mm512_maskz_mul_round_pd
2155 // CHECK: @llvm.x86.avx512.mask.mul.pd.512
2156 return _mm512_maskz_mul_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2158 __m512d test_mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2159 // CHECK-LABEL: @test_mm512_mask_mul_pd
2160 // CHECK: fmul <8 x double> %{{.*}}, %{{.*}}
2161 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2162 return _mm512_mask_mul_pd(__W,__U,__A,__B);
2164 __m512d test_mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2165 // CHECK-LABEL: @test_mm512_maskz_mul_pd
2166 // CHECK: fmul <8 x double> %{{.*}}, %{{.*}}
2167 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2168 return _mm512_maskz_mul_pd(__U,__A,__B);
2170 __m512 test_mm512_mul_round_ps(__m512 __A, __m512 __B) {
2171 // CHECK-LABEL: @test_mm512_mul_round_ps
2172 // CHECK: @llvm.x86.avx512.mask.mul.ps.512
2173 return _mm512_mul_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2175 __m512 test_mm512_mask_mul_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2176 // CHECK-LABEL: @test_mm512_mask_mul_round_ps
2177 // CHECK: @llvm.x86.avx512.mask.mul.ps.512
2178 return _mm512_mask_mul_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2180 __m512 test_mm512_maskz_mul_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2181 // CHECK-LABEL: @test_mm512_maskz_mul_round_ps
2182 // CHECK: @llvm.x86.avx512.mask.mul.ps.512
2183 return _mm512_maskz_mul_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2185 __m512 test_mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2186 // CHECK-LABEL: @test_mm512_mask_mul_ps
2187 // CHECK: fmul <16 x float> %{{.*}}, %{{.*}}
2188 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
2189 return _mm512_mask_mul_ps(__W,__U,__A,__B);
2191 __m512 test_mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2192 // CHECK-LABEL: @test_mm512_maskz_mul_ps
2193 // CHECK: fmul <16 x float> %{{.*}}, %{{.*}}
2194 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
2195 return _mm512_maskz_mul_ps(__U,__A,__B);
2197 __m128 test_mm_mul_round_ss(__m128 __A, __m128 __B) {
2198 // CHECK-LABEL: @test_mm_mul_round_ss
2199 // CHECK: @llvm.x86.avx512.mask.mul.ss.round
2200 return _mm_mul_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2202 __m128 test_mm_mask_mul_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2203 // CHECK-LABEL: @test_mm_mask_mul_round_ss
2204 // CHECK: @llvm.x86.avx512.mask.mul.ss.round
2205 return _mm_mask_mul_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2207 __m128 test_mm_maskz_mul_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2208 // CHECK-LABEL: @test_mm_maskz_mul_round_ss
2209 // CHECK: @llvm.x86.avx512.mask.mul.ss.round
2210 return _mm_maskz_mul_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2212 __m128 test_mm_mask_mul_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2213 // CHECK-LABEL: @test_mm_mask_mul_ss
2214 // CHECK: @llvm.x86.avx512.mask.mul.ss.round
2215 return _mm_mask_mul_ss(__W,__U,__A,__B);
2217 __m128 test_mm_maskz_mul_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2218 // CHECK-LABEL: @test_mm_maskz_mul_ss
2219 // CHECK: @llvm.x86.avx512.mask.mul.ss.round
2220 return _mm_maskz_mul_ss(__U,__A,__B);
2222 __m128d test_mm_mul_round_sd(__m128d __A, __m128d __B) {
2223 // CHECK-LABEL: @test_mm_mul_round_sd
2224 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
2225 return _mm_mul_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2227 __m128d test_mm_mask_mul_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2228 // CHECK-LABEL: @test_mm_mask_mul_round_sd
2229 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
2230 return _mm_mask_mul_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2232 __m128d test_mm_maskz_mul_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2233 // CHECK-LABEL: @test_mm_maskz_mul_round_sd
2234 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
2235 return _mm_maskz_mul_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2237 __m128d test_mm_mask_mul_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2238 // CHECK-LABEL: @test_mm_mask_mul_sd
2239 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
2240 return _mm_mask_mul_sd(__W,__U,__A,__B);
2242 __m128d test_mm_maskz_mul_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2243 // CHECK-LABEL: @test_mm_maskz_mul_sd
2244 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
2245 return _mm_maskz_mul_sd(__U,__A,__B);
2247 __m512d test_mm512_div_round_pd(__m512d __A, __m512d __B) {
2248 // CHECK-LABEL: @test_mm512_div_round_pd
2249 // CHECK: @llvm.x86.avx512.mask.div.pd.512
2250 return _mm512_div_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2252 __m512d test_mm512_mask_div_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2253 // CHECK-LABEL: @test_mm512_mask_div_round_pd
2254 // CHECK: @llvm.x86.avx512.mask.div.pd.512
2255 return _mm512_mask_div_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2257 __m512d test_mm512_maskz_div_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2258 // CHECK-LABEL: @test_mm512_maskz_div_round_pd
2259 // CHECK: @llvm.x86.avx512.mask.div.pd.512
2260 return _mm512_maskz_div_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2262 __m512d test_mm512_div_pd(__m512d __a, __m512d __b) {
2263 // CHECK-LABLE: @test_mm512_div_pd
2264 // CHECK: fdiv <8 x double>
2265 return _mm512_div_pd(__a,__b);
2267 __m512d test_mm512_mask_div_pd(__m512d __w, __mmask8 __u, __m512d __a, __m512d __b) {
2268 // CHECK-LABLE: @test_mm512_mask_div_pd
2269 // CHECK: fdiv <8 x double> %{{.*}}, %{{.*}}
2270 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2271 return _mm512_mask_div_pd(__w,__u,__a,__b);
2273 __m512d test_mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2274 // CHECK-LABEL: @test_mm512_maskz_div_pd
2275 // CHECK: fdiv <8 x double> %{{.*}}, %{{.*}}
2276 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2277 return _mm512_maskz_div_pd(__U,__A,__B);
2279 __m512 test_mm512_div_round_ps(__m512 __A, __m512 __B) {
2280 // CHECK-LABEL: @test_mm512_div_round_ps
2281 // CHECK: @llvm.x86.avx512.mask.div.ps.512
2282 return _mm512_div_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2284 __m512 test_mm512_mask_div_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2285 // CHECK-LABEL: @test_mm512_mask_div_round_ps
2286 // CHECK: @llvm.x86.avx512.mask.div.ps.512
2287 return _mm512_mask_div_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2289 __m512 test_mm512_maskz_div_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2290 // CHECK-LABEL: @test_mm512_maskz_div_round_ps
2291 // CHECK: @llvm.x86.avx512.mask.div.ps.512
2292 return _mm512_maskz_div_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2294 __m512 test_mm512_div_ps(__m512 __A, __m512 __B) {
2295 // CHECK-LABEL: @test_mm512_div_ps
2296 // CHECK: fdiv <16 x float>
2297 return _mm512_div_ps(__A,__B);
2299 __m512 test_mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2300 // CHECK-LABEL: @test_mm512_mask_div_ps
2301 // CHECK: fdiv <16 x float> %{{.*}}, %{{.*}}
2302 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
2303 return _mm512_mask_div_ps(__W,__U,__A,__B);
2305 __m512 test_mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2306 // CHECK-LABEL: @test_mm512_maskz_div_ps
2307 // CHECK: fdiv <16 x float> %{{.*}}, %{{.*}}
2308 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
2309 return _mm512_maskz_div_ps(__U,__A,__B);
2311 __m128 test_mm_div_round_ss(__m128 __A, __m128 __B) {
2312 // CHECK-LABEL: @test_mm_div_round_ss
2313 // CHECK: @llvm.x86.avx512.mask.div.ss.round
2314 return _mm_div_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2316 __m128 test_mm_mask_div_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2317 // CHECK-LABEL: @test_mm_mask_div_round_ss
2318 // CHECK: @llvm.x86.avx512.mask.div.ss.round
2319 return _mm_mask_div_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2321 __m128 test_mm_maskz_div_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2322 // CHECK-LABEL: @test_mm_maskz_div_round_ss
2323 // CHECK: @llvm.x86.avx512.mask.div.ss.round
2324 return _mm_maskz_div_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2326 __m128 test_mm_mask_div_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2327 // CHECK-LABEL: @test_mm_mask_div_ss
2328 // CHECK: @llvm.x86.avx512.mask.div.ss.round
2329 return _mm_mask_div_ss(__W,__U,__A,__B);
2331 __m128 test_mm_maskz_div_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2332 // CHECK-LABEL: @test_mm_maskz_div_ss
2333 // CHECK: @llvm.x86.avx512.mask.div.ss.round
2334 return _mm_maskz_div_ss(__U,__A,__B);
2336 __m128d test_mm_div_round_sd(__m128d __A, __m128d __B) {
2337 // CHECK-LABEL: @test_mm_div_round_sd
2338 // CHECK: @llvm.x86.avx512.mask.div.sd.round
2339 return _mm_div_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2341 __m128d test_mm_mask_div_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2342 // CHECK-LABEL: @test_mm_mask_div_round_sd
2343 // CHECK: @llvm.x86.avx512.mask.div.sd.round
2344 return _mm_mask_div_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2346 __m128d test_mm_maskz_div_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2347 // CHECK-LABEL: @test_mm_maskz_div_round_sd
2348 // CHECK: @llvm.x86.avx512.mask.div.sd.round
2349 return _mm_maskz_div_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
2351 __m128d test_mm_mask_div_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2352 // CHECK-LABEL: @test_mm_mask_div_sd
2353 // CHECK: @llvm.x86.avx512.mask.div.sd.round
2354 return _mm_mask_div_sd(__W,__U,__A,__B);
2356 __m128d test_mm_maskz_div_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2357 // CHECK-LABEL: @test_mm_maskz_div_sd
2358 // CHECK: @llvm.x86.avx512.mask.div.sd.round
2359 return _mm_maskz_div_sd(__U,__A,__B);
2361 __m128 test_mm_max_round_ss(__m128 __A, __m128 __B) {
2362 // CHECK-LABEL: @test_mm_max_round_ss
2363 // CHECK: @llvm.x86.avx512.mask.max.ss.round
2364 return _mm_max_round_ss(__A,__B,0x08);
2366 __m128 test_mm_mask_max_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2367 // CHECK-LABEL: @test_mm_mask_max_round_ss
2368 // CHECK: @llvm.x86.avx512.mask.max.ss.round
2369 return _mm_mask_max_round_ss(__W,__U,__A,__B,0x08);
2371 __m128 test_mm_maskz_max_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2372 // CHECK-LABEL: @test_mm_maskz_max_round_ss
2373 // CHECK: @llvm.x86.avx512.mask.max.ss.round
2374 return _mm_maskz_max_round_ss(__U,__A,__B,0x08);
2376 __m128 test_mm_mask_max_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2377 // CHECK-LABEL: @test_mm_mask_max_ss
2378 // CHECK: @llvm.x86.avx512.mask.max.ss.round
2379 return _mm_mask_max_ss(__W,__U,__A,__B);
2381 __m128 test_mm_maskz_max_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2382 // CHECK-LABEL: @test_mm_maskz_max_ss
2383 // CHECK: @llvm.x86.avx512.mask.max.ss.round
2384 return _mm_maskz_max_ss(__U,__A,__B);
2386 __m128d test_mm_max_round_sd(__m128d __A, __m128d __B) {
2387 // CHECK-LABEL: @test_mm_max_round_sd
2388 // CHECK: @llvm.x86.avx512.mask.max.sd.round
2389 return _mm_max_round_sd(__A,__B,0x08);
2391 __m128d test_mm_mask_max_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2392 // CHECK-LABEL: @test_mm_mask_max_round_sd
2393 // CHECK: @llvm.x86.avx512.mask.max.sd.round
2394 return _mm_mask_max_round_sd(__W,__U,__A,__B,0x08);
2396 __m128d test_mm_maskz_max_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2397 // CHECK-LABEL: @test_mm_maskz_max_round_sd
2398 // CHECK: @llvm.x86.avx512.mask.max.sd.round
2399 return _mm_maskz_max_round_sd(__U,__A,__B,0x08);
2401 __m128d test_mm_mask_max_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2402 // CHECK-LABEL: @test_mm_mask_max_sd
2403 // CHECK: @llvm.x86.avx512.mask.max.sd.round
2404 return _mm_mask_max_sd(__W,__U,__A,__B);
2406 __m128d test_mm_maskz_max_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2407 // CHECK-LABEL: @test_mm_maskz_max_sd
2408 // CHECK: @llvm.x86.avx512.mask.max.sd.round
2409 return _mm_maskz_max_sd(__U,__A,__B);
2411 __m128 test_mm_min_round_ss(__m128 __A, __m128 __B) {
2412 // CHECK-LABEL: @test_mm_min_round_ss
2413 // CHECK: @llvm.x86.avx512.mask.min.ss.round
2414 return _mm_min_round_ss(__A,__B,0x08);
2416 __m128 test_mm_mask_min_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2417 // CHECK-LABEL: @test_mm_mask_min_round_ss
2418 // CHECK: @llvm.x86.avx512.mask.min.ss.round
2419 return _mm_mask_min_round_ss(__W,__U,__A,__B,0x08);
2421 __m128 test_mm_maskz_min_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2422 // CHECK-LABEL: @test_mm_maskz_min_round_ss
2423 // CHECK: @llvm.x86.avx512.mask.min.ss.round
2424 return _mm_maskz_min_round_ss(__U,__A,__B,0x08);
2426 __m128 test_mm_mask_min_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2427 // CHECK-LABEL: @test_mm_mask_min_ss
2428 // CHECK: @llvm.x86.avx512.mask.min.ss.round
2429 return _mm_mask_min_ss(__W,__U,__A,__B);
2431 __m128 test_mm_maskz_min_ss(__mmask8 __U, __m128 __A, __m128 __B) {
2432 // CHECK-LABEL: @test_mm_maskz_min_ss
2433 // CHECK: @llvm.x86.avx512.mask.min.ss.round
2434 return _mm_maskz_min_ss(__U,__A,__B);
2436 __m128d test_mm_min_round_sd(__m128d __A, __m128d __B) {
2437 // CHECK-LABEL: @test_mm_min_round_sd
2438 // CHECK: @llvm.x86.avx512.mask.min.sd.round
2439 return _mm_min_round_sd(__A,__B,0x08);
2441 __m128d test_mm_mask_min_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2442 // CHECK-LABEL: @test_mm_mask_min_round_sd
2443 // CHECK: @llvm.x86.avx512.mask.min.sd.round
2444 return _mm_mask_min_round_sd(__W,__U,__A,__B,0x08);
2446 __m128d test_mm_maskz_min_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2447 // CHECK-LABEL: @test_mm_maskz_min_round_sd
2448 // CHECK: @llvm.x86.avx512.mask.min.sd.round
2449 return _mm_maskz_min_round_sd(__U,__A,__B,0x08);
2451 __m128d test_mm_mask_min_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2452 // CHECK-LABEL: @test_mm_mask_min_sd
2453 // CHECK: @llvm.x86.avx512.mask.min.sd.round
2454 return _mm_mask_min_sd(__W,__U,__A,__B);
2456 __m128d test_mm_maskz_min_sd(__mmask8 __U, __m128d __A, __m128d __B) {
2457 // CHECK-LABEL: @test_mm_maskz_min_sd
2458 // CHECK: @llvm.x86.avx512.mask.min.sd.round
2459 return _mm_maskz_min_sd(__U,__A,__B);
2462 __m512 test_mm512_undefined() {
2463 // CHECK-LABEL: @test_mm512_undefined
2464 // CHECK: ret <16 x float> zeroinitializer
2465 return _mm512_undefined();
2468 __m512 test_mm512_undefined_ps() {
2469 // CHECK-LABEL: @test_mm512_undefined_ps
2470 // CHECK: ret <16 x float> zeroinitializer
2471 return _mm512_undefined_ps();
2474 __m512d test_mm512_undefined_pd() {
2475 // CHECK-LABEL: @test_mm512_undefined_pd
2476 // CHECK: ret <8 x double> zeroinitializer
2477 return _mm512_undefined_pd();
2480 __m512i test_mm512_undefined_epi32() {
2481 // CHECK-LABEL: @test_mm512_undefined_epi32
2482 // CHECK: ret <8 x i64> zeroinitializer
2483 return _mm512_undefined_epi32();
2486 __m512i test_mm512_cvtepi8_epi32(__m128i __A) {
2487 // CHECK-LABEL: @test_mm512_cvtepi8_epi32
2488 // CHECK: sext <16 x i8> %{{.*}} to <16 x i32>
2489 return _mm512_cvtepi8_epi32(__A);
2492 __m512i test_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
2493 // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi32
2494 // CHECK: sext <16 x i8> %{{.*}} to <16 x i32>
2495 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2496 return _mm512_mask_cvtepi8_epi32(__W, __U, __A);
2499 __m512i test_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) {
2500 // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi32
2501 // CHECK: sext <16 x i8> %{{.*}} to <16 x i32>
2502 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2503 return _mm512_maskz_cvtepi8_epi32(__U, __A);
2506 __m512i test_mm512_cvtepi8_epi64(__m128i __A) {
2507 // CHECK-LABEL: @test_mm512_cvtepi8_epi64
2508 // CHECK: sext <8 x i8> %{{.*}} to <8 x i64>
2509 return _mm512_cvtepi8_epi64(__A);
2512 __m512i test_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2513 // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi64
2514 // CHECK: sext <8 x i8> %{{.*}} to <8 x i64>
2515 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2516 return _mm512_mask_cvtepi8_epi64(__W, __U, __A);
2519 __m512i test_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
2520 // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi64
2521 // CHECK: sext <8 x i8> %{{.*}} to <8 x i64>
2522 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2523 return _mm512_maskz_cvtepi8_epi64(__U, __A);
2526 __m512i test_mm512_cvtepi32_epi64(__m256i __X) {
2527 // CHECK-LABEL: @test_mm512_cvtepi32_epi64
2528 // CHECK: sext <8 x i32> %{{.*}} to <8 x i64>
2529 return _mm512_cvtepi32_epi64(__X);
2532 __m512i test_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
2533 // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi64
2534 // CHECK: sext <8 x i32> %{{.*}} to <8 x i64>
2535 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2536 return _mm512_mask_cvtepi32_epi64(__W, __U, __X);
2539 __m512i test_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) {
2540 // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi64
2541 // CHECK: sext <8 x i32> %{{.*}} to <8 x i64>
2542 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2543 return _mm512_maskz_cvtepi32_epi64(__U, __X);
2546 __m512i test_mm512_cvtepi16_epi32(__m256i __A) {
2547 // CHECK-LABEL: @test_mm512_cvtepi16_epi32
2548 // CHECK: sext <16 x i16> %{{.*}} to <16 x i32>
2549 return _mm512_cvtepi16_epi32(__A);
2552 __m512i test_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
2553 // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi32
2554 // CHECK: sext <16 x i16> %{{.*}} to <16 x i32>
2555 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2556 return _mm512_mask_cvtepi16_epi32(__W, __U, __A);
2559 __m512i test_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) {
2560 // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi32
2561 // CHECK: sext <16 x i16> %{{.*}} to <16 x i32>
2562 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2563 return _mm512_maskz_cvtepi16_epi32(__U, __A);
2566 __m512i test_mm512_cvtepi16_epi64(__m128i __A) {
2567 // CHECK-LABEL: @test_mm512_cvtepi16_epi64
2568 // CHECK: sext <8 x i16> %{{.*}} to <8 x i64>
2569 return _mm512_cvtepi16_epi64(__A);
2572 __m512i test_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2573 // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi64
2574 // CHECK: sext <8 x i16> %{{.*}} to <8 x i64>
2575 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2576 return _mm512_mask_cvtepi16_epi64(__W, __U, __A);
2579 __m512i test_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
2580 // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi64
2581 // CHECK: sext <8 x i16> %{{.*}} to <8 x i64>
2582 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2583 return _mm512_maskz_cvtepi16_epi64(__U, __A);
2586 __m512i test_mm512_cvtepu8_epi32(__m128i __A) {
2587 // CHECK-LABEL: @test_mm512_cvtepu8_epi32
2588 // CHECK: zext <16 x i8> %{{.*}} to <16 x i32>
2589 return _mm512_cvtepu8_epi32(__A);
2592 __m512i test_mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
2593 // CHECK-LABEL: @test_mm512_mask_cvtepu8_epi32
2594 // CHECK: zext <16 x i8> %{{.*}} to <16 x i32>
2595 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2596 return _mm512_mask_cvtepu8_epi32(__W, __U, __A);
2599 __m512i test_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A) {
2600 // CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi32
2601 // CHECK: zext <16 x i8> %{{.*}} to <16 x i32>
2602 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2603 return _mm512_maskz_cvtepu8_epi32(__U, __A);
2606 __m512i test_mm512_cvtepu8_epi64(__m128i __A) {
2607 // CHECK-LABEL: @test_mm512_cvtepu8_epi64
2608 // CHECK: zext <8 x i8> %{{.*}} to <8 x i64>
2609 return _mm512_cvtepu8_epi64(__A);
2612 __m512i test_mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2613 // CHECK-LABEL: @test_mm512_mask_cvtepu8_epi64
2614 // CHECK: zext <8 x i8> %{{.*}} to <8 x i64>
2615 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2616 return _mm512_mask_cvtepu8_epi64(__W, __U, __A);
2619 __m512i test_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
2620 // CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi64
2621 // CHECK: zext <8 x i8> %{{.*}} to <8 x i64>
2622 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2623 return _mm512_maskz_cvtepu8_epi64(__U, __A);
2626 __m512i test_mm512_cvtepu32_epi64(__m256i __X) {
2627 // CHECK-LABEL: @test_mm512_cvtepu32_epi64
2628 // CHECK: zext <8 x i32> %{{.*}} to <8 x i64>
2629 return _mm512_cvtepu32_epi64(__X);
2632 __m512i test_mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
2633 // CHECK-LABEL: @test_mm512_mask_cvtepu32_epi64
2634 // CHECK: zext <8 x i32> %{{.*}} to <8 x i64>
2635 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2636 return _mm512_mask_cvtepu32_epi64(__W, __U, __X);
2639 __m512i test_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X) {
2640 // CHECK-LABEL: @test_mm512_maskz_cvtepu32_epi64
2641 // CHECK: zext <8 x i32> %{{.*}} to <8 x i64>
2642 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2643 return _mm512_maskz_cvtepu32_epi64(__U, __X);
2646 __m512i test_mm512_cvtepu16_epi32(__m256i __A) {
2647 // CHECK-LABEL: @test_mm512_cvtepu16_epi32
2648 // CHECK: zext <16 x i16> %{{.*}} to <16 x i32>
2649 return _mm512_cvtepu16_epi32(__A);
2652 __m512i test_mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
2653 // CHECK-LABEL: @test_mm512_mask_cvtepu16_epi32
2654 // CHECK: zext <16 x i16> %{{.*}} to <16 x i32>
2655 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2656 return _mm512_mask_cvtepu16_epi32(__W, __U, __A);
2659 __m512i test_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A) {
2660 // CHECK-LABEL: @test_mm512_maskz_cvtepu16_epi32
2661 // CHECK: zext <16 x i16> %{{.*}} to <16 x i32>
2662 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2663 return _mm512_maskz_cvtepu16_epi32(__U, __A);
2666 __m512i test_mm512_cvtepu16_epi64(__m128i __A) {
2667 // CHECK-LABEL: @test_mm512_cvtepu16_epi64
2668 // CHECK: zext <8 x i16> %{{.*}} to <8 x i64>
2669 return _mm512_cvtepu16_epi64(__A);
2672 __m512i test_mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
2673 // CHECK-LABEL: @test_mm512_mask_cvtepu16_epi64
2674 // CHECK: zext <8 x i16> %{{.*}} to <8 x i64>
2675 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2676 return _mm512_mask_cvtepu16_epi64(__W, __U, __A);
2679 __m512i test_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
2680 // CHECK-LABEL: @test_mm512_maskz_cvtepu16_epi64
2681 // CHECK: zext <8 x i16> %{{.*}} to <8 x i64>
2682 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2683 return _mm512_maskz_cvtepu16_epi64(__U, __A);
2687 __m512i test_mm512_rol_epi32(__m512i __A) {
2688 // CHECK-LABEL: @test_mm512_rol_epi32
2689 // CHECK: @llvm.x86.avx512.mask.prol.d.512
2690 return _mm512_rol_epi32(__A, 5);
2693 __m512i test_mm512_mask_rol_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2694 // CHECK-LABEL: @test_mm512_mask_rol_epi32
2695 // CHECK: @llvm.x86.avx512.mask.prol.d.512
2696 return _mm512_mask_rol_epi32(__W, __U, __A, 5);
2699 __m512i test_mm512_maskz_rol_epi32(__mmask16 __U, __m512i __A) {
2700 // CHECK-LABEL: @test_mm512_maskz_rol_epi32
2701 // CHECK: @llvm.x86.avx512.mask.prol.d.512
2702 return _mm512_maskz_rol_epi32(__U, __A, 5);
2705 __m512i test_mm512_rol_epi64(__m512i __A) {
2706 // CHECK-LABEL: @test_mm512_rol_epi64
2707 // CHECK: @llvm.x86.avx512.mask.prol.q.512
2708 return _mm512_rol_epi64(__A, 5);
2711 __m512i test_mm512_mask_rol_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2712 // CHECK-LABEL: @test_mm512_mask_rol_epi64
2713 // CHECK: @llvm.x86.avx512.mask.prol.q.512
2714 return _mm512_mask_rol_epi64(__W, __U, __A, 5);
2717 __m512i test_mm512_maskz_rol_epi64(__mmask8 __U, __m512i __A) {
2718 // CHECK-LABEL: @test_mm512_maskz_rol_epi64
2719 // CHECK: @llvm.x86.avx512.mask.prol.q.512
2720 return _mm512_maskz_rol_epi64(__U, __A, 5);
2723 __m512i test_mm512_rolv_epi32(__m512i __A, __m512i __B) {
2724 // CHECK-LABEL: @test_mm512_rolv_epi32
2725 // CHECK: @llvm.x86.avx512.mask.prolv.d.512
2726 return _mm512_rolv_epi32(__A, __B);
2729 __m512i test_mm512_mask_rolv_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
2730 // CHECK-LABEL: @test_mm512_mask_rolv_epi32
2731 // CHECK: @llvm.x86.avx512.mask.prolv.d.512
2732 return _mm512_mask_rolv_epi32(__W, __U, __A, __B);
2735 __m512i test_mm512_maskz_rolv_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
2736 // CHECK-LABEL: @test_mm512_maskz_rolv_epi32
2737 // CHECK: @llvm.x86.avx512.mask.prolv.d.512
2738 return _mm512_maskz_rolv_epi32(__U, __A, __B);
2741 __m512i test_mm512_rolv_epi64(__m512i __A, __m512i __B) {
2742 // CHECK-LABEL: @test_mm512_rolv_epi64
2743 // CHECK: @llvm.x86.avx512.mask.prolv.q.512
2744 return _mm512_rolv_epi64(__A, __B);
2747 __m512i test_mm512_mask_rolv_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
2748 // CHECK-LABEL: @test_mm512_mask_rolv_epi64
2749 // CHECK: @llvm.x86.avx512.mask.prolv.q.512
2750 return _mm512_mask_rolv_epi64(__W, __U, __A, __B);
2753 __m512i test_mm512_maskz_rolv_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
2754 // CHECK-LABEL: @test_mm512_maskz_rolv_epi64
2755 // CHECK: @llvm.x86.avx512.mask.prolv.q.512
2756 return _mm512_maskz_rolv_epi64(__U, __A, __B);
2759 __m512i test_mm512_ror_epi32(__m512i __A) {
2760 // CHECK-LABEL: @test_mm512_ror_epi32
2761 // CHECK: @llvm.x86.avx512.mask.pror.d.512
2762 return _mm512_ror_epi32(__A, 5);
2765 __m512i test_mm512_mask_ror_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2766 // CHECK-LABEL: @test_mm512_mask_ror_epi32
2767 // CHECK: @llvm.x86.avx512.mask.pror.d.512
2768 return _mm512_mask_ror_epi32(__W, __U, __A, 5);
2771 __m512i test_mm512_maskz_ror_epi32(__mmask16 __U, __m512i __A) {
2772 // CHECK-LABEL: @test_mm512_maskz_ror_epi32
2773 // CHECK: @llvm.x86.avx512.mask.pror.d.512
2774 return _mm512_maskz_ror_epi32(__U, __A, 5);
2777 __m512i test_mm512_ror_epi64(__m512i __A) {
2778 // CHECK-LABEL: @test_mm512_ror_epi64
2779 // CHECK: @llvm.x86.avx512.mask.pror.q.512
2780 return _mm512_ror_epi64(__A, 5);
2783 __m512i test_mm512_mask_ror_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2784 // CHECK-LABEL: @test_mm512_mask_ror_epi64
2785 // CHECK: @llvm.x86.avx512.mask.pror.q.512
2786 return _mm512_mask_ror_epi64(__W, __U, __A, 5);
2789 __m512i test_mm512_maskz_ror_epi64(__mmask8 __U, __m512i __A) {
2790 // CHECK-LABEL: @test_mm512_maskz_ror_epi64
2791 // CHECK: @llvm.x86.avx512.mask.pror.q.512
2792 return _mm512_maskz_ror_epi64(__U, __A, 5);
2796 __m512i test_mm512_rorv_epi32(__m512i __A, __m512i __B) {
2797 // CHECK-LABEL: @test_mm512_rorv_epi32
2798 // CHECK: @llvm.x86.avx512.mask.prorv.d.512
2799 return _mm512_rorv_epi32(__A, __B);
2802 __m512i test_mm512_mask_rorv_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
2803 // CHECK-LABEL: @test_mm512_mask_rorv_epi32
2804 // CHECK: @llvm.x86.avx512.mask.prorv.d.512
2805 return _mm512_mask_rorv_epi32(__W, __U, __A, __B);
2808 __m512i test_mm512_maskz_rorv_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
2809 // CHECK-LABEL: @test_mm512_maskz_rorv_epi32
2810 // CHECK: @llvm.x86.avx512.mask.prorv.d.512
2811 return _mm512_maskz_rorv_epi32(__U, __A, __B);
2814 __m512i test_mm512_rorv_epi64(__m512i __A, __m512i __B) {
2815 // CHECK-LABEL: @test_mm512_rorv_epi64
2816 // CHECK: @llvm.x86.avx512.mask.prorv.q.512
2817 return _mm512_rorv_epi64(__A, __B);
2820 __m512i test_mm512_mask_rorv_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
2821 // CHECK-LABEL: @test_mm512_mask_rorv_epi64
2822 // CHECK: @llvm.x86.avx512.mask.prorv.q.512
2823 return _mm512_mask_rorv_epi64(__W, __U, __A, __B);
2826 __m512i test_mm512_maskz_rorv_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
2827 // CHECK-LABEL: @test_mm512_maskz_rorv_epi64
2828 // CHECK: @llvm.x86.avx512.mask.prorv.q.512
2829 return _mm512_maskz_rorv_epi64(__U, __A, __B);
2832 __m512i test_mm512_slli_epi32(__m512i __A) {
2833 // CHECK-LABEL: @test_mm512_slli_epi32
2834 // CHECK: @llvm.x86.avx512.pslli.d.512
2835 return _mm512_slli_epi32(__A, 5);
2838 __m512i test_mm512_mask_slli_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2839 // CHECK-LABEL: @test_mm512_mask_slli_epi32
2840 // CHECK: @llvm.x86.avx512.pslli.d.512
2841 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2842 return _mm512_mask_slli_epi32(__W, __U, __A, 5);
2845 __m512i test_mm512_maskz_slli_epi32(__mmask16 __U, __m512i __A) {
2846 // CHECK-LABEL: @test_mm512_maskz_slli_epi32
2847 // CHECK: @llvm.x86.avx512.pslli.d.512
2848 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2849 return _mm512_maskz_slli_epi32(__U, __A, 5);
2852 __m512i test_mm512_slli_epi64(__m512i __A) {
2853 // CHECK-LABEL: @test_mm512_slli_epi64
2854 // CHECK: @llvm.x86.avx512.pslli.q.512
2855 return _mm512_slli_epi64(__A, 5);
2858 __m512i test_mm512_mask_slli_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2859 // CHECK-LABEL: @test_mm512_mask_slli_epi64
2860 // CHECK: @llvm.x86.avx512.pslli.q.512
2861 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2862 return _mm512_mask_slli_epi64(__W, __U, __A, 5);
2865 __m512i test_mm512_maskz_slli_epi64(__mmask8 __U, __m512i __A) {
2866 // CHECK-LABEL: @test_mm512_maskz_slli_epi64
2867 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2868 return _mm512_maskz_slli_epi64(__U, __A, 5);
2871 __m512i test_mm512_srli_epi32(__m512i __A) {
2872 // CHECK-LABEL: @test_mm512_srli_epi32
2873 // CHECK: @llvm.x86.avx512.psrli.d.512
2874 return _mm512_srli_epi32(__A, 5);
2877 __m512i test_mm512_mask_srli_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2878 // CHECK-LABEL: @test_mm512_mask_srli_epi32
2879 // CHECK: @llvm.x86.avx512.psrli.d.512
2880 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2881 return _mm512_mask_srli_epi32(__W, __U, __A, 5);
2884 __m512i test_mm512_maskz_srli_epi32(__mmask16 __U, __m512i __A) {
2885 // CHECK-LABEL: @test_mm512_maskz_srli_epi32
2886 // CHECK: @llvm.x86.avx512.psrli.d.512
2887 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2888 return _mm512_maskz_srli_epi32(__U, __A, 5);
2891 __m512i test_mm512_srli_epi64(__m512i __A) {
2892 // CHECK-LABEL: @test_mm512_srli_epi64
2893 // CHECK: @llvm.x86.avx512.psrli.q.512
2894 return _mm512_srli_epi64(__A, 5);
2897 __m512i test_mm512_mask_srli_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2898 // CHECK-LABEL: @test_mm512_mask_srli_epi64
2899 // CHECK: @llvm.x86.avx512.psrli.q.512
2900 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2901 return _mm512_mask_srli_epi64(__W, __U, __A, 5);
2904 __m512i test_mm512_maskz_srli_epi64(__mmask8 __U, __m512i __A) {
2905 // CHECK-LABEL: @test_mm512_maskz_srli_epi64
2906 // CHECK: @llvm.x86.avx512.psrli.q.512
2907 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2908 return _mm512_maskz_srli_epi64(__U, __A, 5);
2911 __m512i test_mm512_mask_load_epi32(__m512i __W, __mmask16 __U, void const *__P) {
2912 // CHECK-LABEL: @test_mm512_mask_load_epi32
2913 // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
2914 return _mm512_mask_load_epi32(__W, __U, __P);
2917 __m512i test_mm512_maskz_load_epi32(__mmask16 __U, void const *__P) {
2918 // CHECK-LABEL: @test_mm512_maskz_load_epi32
2919 // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
2920 return _mm512_maskz_load_epi32(__U, __P);
2923 __m512i test_mm512_mask_mov_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
2924 // CHECK-LABEL: @test_mm512_mask_mov_epi32
2925 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2926 return _mm512_mask_mov_epi32(__W, __U, __A);
2929 __m512i test_mm512_maskz_mov_epi32(__mmask16 __U, __m512i __A) {
2930 // CHECK-LABEL: @test_mm512_maskz_mov_epi32
2931 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
2932 return _mm512_maskz_mov_epi32(__U, __A);
2935 __m512i test_mm512_mask_mov_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
2936 // CHECK-LABEL: @test_mm512_mask_mov_epi64
2937 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2938 return _mm512_mask_mov_epi64(__W, __U, __A);
2941 __m512i test_mm512_maskz_mov_epi64(__mmask8 __U, __m512i __A) {
2942 // CHECK-LABEL: @test_mm512_maskz_mov_epi64
2943 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2944 return _mm512_maskz_mov_epi64(__U, __A);
2947 __m512i test_mm512_mask_load_epi64(__m512i __W, __mmask8 __U, void const *__P) {
2948 // CHECK-LABEL: @test_mm512_mask_load_epi64
2949 // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
2950 return _mm512_mask_load_epi64(__W, __U, __P);
2953 __m512i test_mm512_maskz_load_epi64(__mmask8 __U, void const *__P) {
2954 // CHECK-LABEL: @test_mm512_maskz_load_epi64
2955 // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
2956 return _mm512_maskz_load_epi64(__U, __P);
2959 void test_mm512_mask_store_epi32(void *__P, __mmask16 __U, __m512i __A) {
2960 // CHECK-LABEL: @test_mm512_mask_store_epi32
2961 // CHECK: @llvm.masked.store.v16i32.p0v16i32(<16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}})
2962 return _mm512_mask_store_epi32(__P, __U, __A);
2965 void test_mm512_mask_store_epi64(void *__P, __mmask8 __U, __m512i __A) {
2966 // CHECK-LABEL: @test_mm512_mask_store_epi64
2967 // CHECK: @llvm.masked.store.v8i64.p0v8i64(<8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}})
2968 return _mm512_mask_store_epi64(__P, __U, __A);
2971 __m512d test_mm512_movedup_pd(__m512d __A) {
2972 // CHECK-LABEL: @test_mm512_movedup_pd
2973 // 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>
2974 return _mm512_movedup_pd(__A);
2977 __m512d test_mm512_mask_movedup_pd(__m512d __W, __mmask8 __U, __m512d __A) {
2978 // CHECK-LABEL: @test_mm512_mask_movedup_pd
2979 // 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>
2980 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2981 return _mm512_mask_movedup_pd(__W, __U, __A);
2984 __m512d test_mm512_maskz_movedup_pd(__mmask8 __U, __m512d __A) {
2985 // CHECK-LABEL: @test_mm512_maskz_movedup_pd
2986 // 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>
2987 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
2988 return _mm512_maskz_movedup_pd(__U, __A);
2991 int test_mm_comi_round_sd(__m128d __A, __m128d __B) {
2992 // CHECK-LABEL: @test_mm_comi_round_sd
2993 // CHECK: @llvm.x86.avx512.vcomi.sd
2994 return _mm_comi_round_sd(__A, __B, 5, _MM_FROUND_NO_EXC);
2997 int test_mm_comi_round_ss(__m128 __A, __m128 __B) {
2998 // CHECK-LABEL: @test_mm_comi_round_ss
2999 // CHECK: @llvm.x86.avx512.vcomi.ss
3000 return _mm_comi_round_ss(__A, __B, 5, _MM_FROUND_NO_EXC);
3003 __m512d test_mm512_fixupimm_round_pd(__m512d __A, __m512d __B, __m512i __C) {
3004 // CHECK-LABEL: @test_mm512_fixupimm_round_pd
3005 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
3006 return _mm512_fixupimm_round_pd(__A, __B, __C, 5, 8);
3009 __m512d test_mm512_mask_fixupimm_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512i __C) {
3010 // CHECK-LABEL: @test_mm512_mask_fixupimm_round_pd
3011 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
3012 return _mm512_mask_fixupimm_round_pd(__A, __U, __B, __C, 5, 8);
3015 __m512d test_mm512_fixupimm_pd(__m512d __A, __m512d __B, __m512i __C) {
3016 // CHECK-LABEL: @test_mm512_fixupimm_pd
3017 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
3018 return _mm512_fixupimm_pd(__A, __B, __C, 5);
3021 __m512d test_mm512_mask_fixupimm_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512i __C) {
3022 // CHECK-LABEL: @test_mm512_mask_fixupimm_pd
3023 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
3024 return _mm512_mask_fixupimm_pd(__A, __U, __B, __C, 5);
3027 __m512d test_mm512_maskz_fixupimm_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512i __C) {
3028 // CHECK-LABEL: @test_mm512_maskz_fixupimm_round_pd
3029 // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.512
3030 return _mm512_maskz_fixupimm_round_pd(__U, __A, __B, __C, 5, 8);
3033 __m512d test_mm512_maskz_fixupimm_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512i __C) {
3034 // CHECK-LABEL: @test_mm512_maskz_fixupimm_pd
3035 // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.512
3036 return _mm512_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
3039 __m512 test_mm512_fixupimm_round_ps(__m512 __A, __m512 __B, __m512i __C) {
3040 // CHECK-LABEL: @test_mm512_fixupimm_round_ps
3041 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
3042 return _mm512_fixupimm_round_ps(__A, __B, __C, 5, 8);
3045 __m512 test_mm512_mask_fixupimm_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512i __C) {
3046 // CHECK-LABEL: @test_mm512_mask_fixupimm_round_ps
3047 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
3048 return _mm512_mask_fixupimm_round_ps(__A, __U, __B, __C, 5, 8);
3051 __m512 test_mm512_fixupimm_ps(__m512 __A, __m512 __B, __m512i __C) {
3052 // CHECK-LABEL: @test_mm512_fixupimm_ps
3053 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
3054 return _mm512_fixupimm_ps(__A, __B, __C, 5);
3057 __m512 test_mm512_mask_fixupimm_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512i __C) {
3058 // CHECK-LABEL: @test_mm512_mask_fixupimm_ps
3059 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
3060 return _mm512_mask_fixupimm_ps(__A, __U, __B, __C, 5);
3063 __m512 test_mm512_maskz_fixupimm_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512i __C) {
3064 // CHECK-LABEL: @test_mm512_maskz_fixupimm_round_ps
3065 // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.512
3066 return _mm512_maskz_fixupimm_round_ps(__U, __A, __B, __C, 5, 8);
3069 __m512 test_mm512_maskz_fixupimm_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512i __C) {
3070 // CHECK-LABEL: @test_mm512_maskz_fixupimm_ps
3071 // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.512
3072 return _mm512_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
3075 __m128d test_mm_fixupimm_round_sd(__m128d __A, __m128d __B, __m128i __C) {
3076 // CHECK-LABEL: @test_mm_fixupimm_round_sd
3077 // CHECK: @llvm.x86.avx512.mask.fixupimm
3078 return _mm_fixupimm_round_sd(__A, __B, __C, 5, 8);
3081 __m128d test_mm_mask_fixupimm_round_sd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
3082 // CHECK-LABEL: @test_mm_mask_fixupimm_round_sd
3083 // CHECK: @llvm.x86.avx512.mask.fixupimm
3084 return _mm_mask_fixupimm_round_sd(__A, __U, __B, __C, 5, 8);
3087 __m128d test_mm_fixupimm_sd(__m128d __A, __m128d __B, __m128i __C) {
3088 // CHECK-LABEL: @test_mm_fixupimm_sd
3089 // CHECK: @llvm.x86.avx512.mask.fixupimm
3090 return _mm_fixupimm_sd(__A, __B, __C, 5);
3093 __m128d test_mm_mask_fixupimm_sd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
3094 // CHECK-LABEL: @test_mm_mask_fixupimm_sd
3095 // CHECK: @llvm.x86.avx512.mask.fixupimm
3096 return _mm_mask_fixupimm_sd(__A, __U, __B, __C, 5);
3099 __m128d test_mm_maskz_fixupimm_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
3100 // CHECK-LABEL: @test_mm_maskz_fixupimm_round_sd
3101 // CHECK: @llvm.x86.avx512.maskz.fixupimm
3102 return _mm_maskz_fixupimm_round_sd(__U, __A, __B, __C, 5, 8);
3105 __m128d test_mm_maskz_fixupimm_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
3106 // CHECK-LABEL: @test_mm_maskz_fixupimm_sd
3107 // CHECK: @llvm.x86.avx512.maskz.fixupimm
3108 return _mm_maskz_fixupimm_sd(__U, __A, __B, __C, 5);
3111 __m128 test_mm_fixupimm_round_ss(__m128 __A, __m128 __B, __m128i __C) {
3112 // CHECK-LABEL: @test_mm_fixupimm_round_ss
3113 // CHECK: @llvm.x86.avx512.mask.fixupimm
3114 return _mm_fixupimm_round_ss(__A, __B, __C, 5, 8);
3117 __m128 test_mm_mask_fixupimm_round_ss(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
3118 // CHECK-LABEL: @test_mm_mask_fixupimm_round_ss
3119 // CHECK: @llvm.x86.avx512.mask.fixupimm
3120 return _mm_mask_fixupimm_round_ss(__A, __U, __B, __C, 5, 8);
3123 __m128 test_mm_fixupimm_ss(__m128 __A, __m128 __B, __m128i __C) {
3124 // CHECK-LABEL: @test_mm_fixupimm_ss
3125 // CHECK: @llvm.x86.avx512.mask.fixupimm
3126 return _mm_fixupimm_ss(__A, __B, __C, 5);
3129 __m128 test_mm_mask_fixupimm_ss(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
3130 // CHECK-LABEL: @test_mm_mask_fixupimm_ss
3131 // CHECK: @llvm.x86.avx512.mask.fixupimm
3132 return _mm_mask_fixupimm_ss(__A, __U, __B, __C, 5);
3135 __m128 test_mm_maskz_fixupimm_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
3136 // CHECK-LABEL: @test_mm_maskz_fixupimm_round_ss
3137 // CHECK: @llvm.x86.avx512.maskz.fixupimm
3138 return _mm_maskz_fixupimm_round_ss(__U, __A, __B, __C, 5, 8);
3141 __m128 test_mm_maskz_fixupimm_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
3142 // CHECK-LABEL: @test_mm_maskz_fixupimm_ss
3143 // CHECK: @llvm.x86.avx512.maskz.fixupimm
3144 return _mm_maskz_fixupimm_ss(__U, __A, __B, __C, 5);
3147 __m128d test_mm_getexp_round_sd(__m128d __A, __m128d __B) {
3148 // CHECK-LABEL: @test_mm_getexp_round_sd
3149 // CHECK: @llvm.x86.avx512.mask.getexp.sd
3150 return _mm_getexp_round_sd(__A, __B, 8);
3153 __m128d test_mm_getexp_sd(__m128d __A, __m128d __B) {
3154 // CHECK-LABEL: @test_mm_getexp_sd
3155 // CHECK: @llvm.x86.avx512.mask.getexp.sd
3156 return _mm_getexp_sd(__A, __B);
3159 __m128 test_mm_getexp_round_ss(__m128 __A, __m128 __B) {
3160 // CHECK-LABEL: @test_mm_getexp_round_ss
3161 // CHECK: @llvm.x86.avx512.mask.getexp.ss
3162 return _mm_getexp_round_ss(__A, __B, 8);
3165 __m128 test_mm_getexp_ss(__m128 __A, __m128 __B) {
3166 // CHECK-LABEL: @test_mm_getexp_ss
3167 // CHECK: @llvm.x86.avx512.mask.getexp.ss
3168 return _mm_getexp_ss(__A, __B);
3171 __m128d test_mm_getmant_round_sd(__m128d __A, __m128d __B) {
3172 // CHECK-LABEL: @test_mm_getmant_round_sd
3173 // CHECK: @llvm.x86.avx512.mask.getmant.sd
3174 return _mm_getmant_round_sd(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src, 8);
3177 __m128d test_mm_getmant_sd(__m128d __A, __m128d __B) {
3178 // CHECK-LABEL: @test_mm_getmant_sd
3179 // CHECK: @llvm.x86.avx512.mask.getmant.sd
3180 return _mm_getmant_sd(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src);
3183 __m128 test_mm_getmant_round_ss(__m128 __A, __m128 __B) {
3184 // CHECK-LABEL: @test_mm_getmant_round_ss
3185 // CHECK: @llvm.x86.avx512.mask.getmant.ss
3186 return _mm_getmant_round_ss(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src, 8);
3189 __m128 test_mm_getmant_ss(__m128 __A, __m128 __B) {
3190 // CHECK-LABEL: @test_mm_getmant_ss
3191 // CHECK: @llvm.x86.avx512.mask.getmant.ss
3192 return _mm_getmant_ss(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src);
3195 __mmask16 test_mm512_kmov(__mmask16 __A) {
3196 // CHECK-LABEL: @test_mm512_kmov
3197 // CHECK: load i16, i16* %__A.addr.i, align 2
3198 return _mm512_kmov(__A);
3201 __m512d test_mm512_mask_unpackhi_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
3202 // CHECK-LABEL: @test_mm512_mask_unpackhi_pd
3203 // 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>
3204 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3205 return _mm512_mask_unpackhi_pd(__W, __U, __A, __B);
3208 unsigned long long test_mm_cvt_roundsd_si64(__m128d __A) {
3209 // CHECK-LABEL: @test_mm_cvt_roundsd_si64
3210 // CHECK: @llvm.x86.avx512.vcvtsd2si64
3211 return _mm_cvt_roundsd_si64(__A, _MM_FROUND_CUR_DIRECTION);
3214 __m512i test_mm512_mask2_permutex2var_epi32(__m512i __A, __m512i __I, __mmask16 __U, __m512i __B) {
3215 // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi32
3216 // CHECK: @llvm.x86.avx512.mask.vpermi2var.d.512
3217 return _mm512_mask2_permutex2var_epi32(__A, __I, __U, __B);
3219 __m512i test_mm512_unpackhi_epi32(__m512i __A, __m512i __B) {
3220 // CHECK-LABEL: @test_mm512_unpackhi_epi32
3221 // 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>
3222 return _mm512_unpackhi_epi32(__A, __B);
3225 __m512d test_mm512_maskz_unpackhi_pd(__mmask8 __U, __m512d __A, __m512d __B) {
3226 // CHECK-LABEL: @test_mm512_maskz_unpackhi_pd
3227 // 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>
3228 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3229 return _mm512_maskz_unpackhi_pd(__U, __A, __B);
3232 long long test_mm_cvt_roundsd_i64(__m128d __A) {
3233 // CHECK-LABEL: @test_mm_cvt_roundsd_i64
3234 // CHECK: @llvm.x86.avx512.vcvtsd2si64
3235 return _mm_cvt_roundsd_i64(__A, _MM_FROUND_CUR_DIRECTION);
3238 __m512d test_mm512_mask2_permutex2var_pd(__m512d __A, __m512i __I, __mmask8 __U, __m512d __B) {
3239 // CHECK-LABEL: @test_mm512_mask2_permutex2var_pd
3240 // CHECK: @llvm.x86.avx512.mask.vpermi2var.pd.512
3241 return _mm512_mask2_permutex2var_pd(__A, __I, __U, __B);
3243 __m512i test_mm512_mask_unpackhi_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
3244 // CHECK-LABEL: @test_mm512_mask_unpackhi_epi32
3245 // 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>
3246 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3247 return _mm512_mask_unpackhi_epi32(__W, __U, __A, __B);
3250 __m512 test_mm512_mask_unpackhi_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
3251 // CHECK-LABEL: @test_mm512_mask_unpackhi_ps
3252 // 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>
3253 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3254 return _mm512_mask_unpackhi_ps(__W, __U, __A, __B);
3257 __m512 test_mm512_maskz_unpackhi_ps(__mmask16 __U, __m512 __A, __m512 __B) {
3258 // CHECK-LABEL: @test_mm512_maskz_unpackhi_ps
3259 // 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>
3260 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3261 return _mm512_maskz_unpackhi_ps(__U, __A, __B);
3264 __m512d test_mm512_mask_unpacklo_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
3265 // CHECK-LABEL: @test_mm512_mask_unpacklo_pd
3266 // 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>
3267 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3268 return _mm512_mask_unpacklo_pd(__W, __U, __A, __B);
3271 __m512d test_mm512_maskz_unpacklo_pd(__mmask8 __U, __m512d __A, __m512d __B) {
3272 // CHECK-LABEL: @test_mm512_maskz_unpacklo_pd
3273 // 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>
3274 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3275 return _mm512_maskz_unpacklo_pd(__U, __A, __B);
3278 __m512 test_mm512_mask_unpacklo_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
3279 // CHECK-LABEL: @test_mm512_mask_unpacklo_ps
3280 // 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>
3281 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3282 return _mm512_mask_unpacklo_ps(__W, __U, __A, __B);
3285 __m512 test_mm512_maskz_unpacklo_ps(__mmask16 __U, __m512 __A, __m512 __B) {
3286 // CHECK-LABEL: @test_mm512_maskz_unpacklo_ps
3287 // 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>
3288 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3289 return _mm512_maskz_unpacklo_ps(__U, __A, __B);
3291 int test_mm_cvt_roundsd_si32(__m128d __A) {
3292 // CHECK-LABEL: @test_mm_cvt_roundsd_si32
3293 // CHECK: @llvm.x86.avx512.vcvtsd2si32
3294 return _mm_cvt_roundsd_si32(__A, _MM_FROUND_CUR_DIRECTION);
3297 int test_mm_cvt_roundsd_i32(__m128d __A) {
3298 // CHECK-LABEL: @test_mm_cvt_roundsd_i32
3299 // CHECK: @llvm.x86.avx512.vcvtsd2si32
3300 return _mm_cvt_roundsd_i32(__A, _MM_FROUND_CUR_DIRECTION);
3303 unsigned test_mm_cvt_roundsd_u32(__m128d __A) {
3304 // CHECK-LABEL: @test_mm_cvt_roundsd_u32
3305 // CHECK: @llvm.x86.avx512.vcvtsd2usi32
3306 return _mm_cvt_roundsd_u32(__A, _MM_FROUND_CUR_DIRECTION);
3309 unsigned test_mm_cvtsd_u32(__m128d __A) {
3310 // CHECK-LABEL: @test_mm_cvtsd_u32
3311 // CHECK: @llvm.x86.avx512.vcvtsd2usi32
3312 return _mm_cvtsd_u32(__A);
3316 unsigned long long test_mm_cvt_roundsd_u64(__m128d __A) {
3317 // CHECK-LABEL: @test_mm_cvt_roundsd_u64
3318 // CHECK: @llvm.x86.avx512.vcvtsd2usi64
3319 return _mm_cvt_roundsd_u64(__A, _MM_FROUND_CUR_DIRECTION);
3322 unsigned long long test_mm_cvtsd_u64(__m128d __A) {
3323 // CHECK-LABEL: @test_mm_cvtsd_u64
3324 // CHECK: @llvm.x86.avx512.vcvtsd2usi64
3325 return _mm_cvtsd_u64(__A);
3329 int test_mm_cvt_roundss_si32(__m128 __A) {
3330 // CHECK-LABEL: @test_mm_cvt_roundss_si32
3331 // CHECK: @llvm.x86.avx512.vcvtss2si32
3332 return _mm_cvt_roundss_si32(__A, _MM_FROUND_CUR_DIRECTION);
3335 int test_mm_cvt_roundss_i32(__m128 __A) {
3336 // CHECK-LABEL: @test_mm_cvt_roundss_i32
3337 // CHECK: @llvm.x86.avx512.vcvtss2si32
3338 return _mm_cvt_roundss_i32(__A, _MM_FROUND_CUR_DIRECTION);
3342 int test_mm_cvt_roundss_si64(__m128 __A) {
3343 // CHECK-LABEL: @test_mm_cvt_roundss_si64
3344 // CHECK: @llvm.x86.avx512.vcvtss2si64
3345 return _mm_cvt_roundss_si64(__A, _MM_FROUND_CUR_DIRECTION);
3348 long long test_mm_cvt_roundss_i64(__m128 __A) {
3349 // CHECK-LABEL: @test_mm_cvt_roundss_i64
3350 // CHECK: @llvm.x86.avx512.vcvtss2si64
3351 return _mm_cvt_roundss_i64(__A, _MM_FROUND_CUR_DIRECTION);
3355 unsigned test_mm_cvt_roundss_u32(__m128 __A) {
3356 // CHECK-LABEL: @test_mm_cvt_roundss_u32
3357 // CHECK: @llvm.x86.avx512.vcvtss2usi32
3358 return _mm_cvt_roundss_u32(__A, _MM_FROUND_CUR_DIRECTION);
3361 unsigned test_mm_cvtss_u32(__m128 __A) {
3362 // CHECK-LABEL: @test_mm_cvtss_u32
3363 // CHECK: @llvm.x86.avx512.vcvtss2usi32
3364 return _mm_cvtss_u32(__A);
3368 unsigned long long test_mm_cvt_roundss_u64(__m128 __A) {
3369 // CHECK-LABEL: @test_mm_cvt_roundss_u64
3370 // CHECK: @llvm.x86.avx512.vcvtss2usi64
3371 return _mm_cvt_roundss_u64(__A, _MM_FROUND_CUR_DIRECTION);
3374 unsigned long long test_mm_cvtss_u64(__m128 __A) {
3375 // CHECK-LABEL: @test_mm_cvtss_u64
3376 // CHECK: @llvm.x86.avx512.vcvtss2usi64
3377 return _mm_cvtss_u64(__A);
3381 int test_mm_cvtt_roundsd_i32(__m128d __A) {
3382 // CHECK-LABEL: @test_mm_cvtt_roundsd_i32
3383 // CHECK: @llvm.x86.avx512.cvttsd2si
3384 return _mm_cvtt_roundsd_i32(__A, _MM_FROUND_CUR_DIRECTION);
3387 int test_mm_cvtt_roundsd_si32(__m128d __A) {
3388 // CHECK-LABEL: @test_mm_cvtt_roundsd_si32
3389 // CHECK: @llvm.x86.avx512.cvttsd2si
3390 return _mm_cvtt_roundsd_si32(__A, _MM_FROUND_CUR_DIRECTION);
3393 int test_mm_cvttsd_i32(__m128d __A) {
3394 // CHECK-LABEL: @test_mm_cvttsd_i32
3395 // CHECK: @llvm.x86.avx512.cvttsd2si
3396 return _mm_cvttsd_i32(__A);
3400 unsigned long long test_mm_cvtt_roundsd_si64(__m128d __A) {
3401 // CHECK-LABEL: @test_mm_cvtt_roundsd_si64
3402 // CHECK: @llvm.x86.avx512.cvttsd2si64
3403 return _mm_cvtt_roundsd_si64(__A, _MM_FROUND_CUR_DIRECTION);
3406 long long test_mm_cvtt_roundsd_i64(__m128d __A) {
3407 // CHECK-LABEL: @test_mm_cvtt_roundsd_i64
3408 // CHECK: @llvm.x86.avx512.cvttsd2si64
3409 return _mm_cvtt_roundsd_i64(__A, _MM_FROUND_CUR_DIRECTION);
3412 long long test_mm_cvttsd_i64(__m128d __A) {
3413 // CHECK-LABEL: @test_mm_cvttsd_i64
3414 // CHECK: @llvm.x86.avx512.cvttsd2si64
3415 return _mm_cvttsd_i64(__A);
3419 unsigned test_mm_cvtt_roundsd_u32(__m128d __A) {
3420 // CHECK-LABEL: @test_mm_cvtt_roundsd_u32
3421 // CHECK: @llvm.x86.avx512.cvttsd2usi
3422 return _mm_cvtt_roundsd_u32(__A, _MM_FROUND_CUR_DIRECTION);
3425 unsigned test_mm_cvttsd_u32(__m128d __A) {
3426 // CHECK-LABEL: @test_mm_cvttsd_u32
3427 // CHECK: @llvm.x86.avx512.cvttsd2usi
3428 return _mm_cvttsd_u32(__A);
3432 unsigned long long test_mm_cvtt_roundsd_u64(__m128d __A) {
3433 // CHECK-LABEL: @test_mm_cvtt_roundsd_u64
3434 // CHECK: @llvm.x86.avx512.cvttsd2usi64
3435 return _mm_cvtt_roundsd_u64(__A, _MM_FROUND_CUR_DIRECTION);
3438 unsigned long long test_mm_cvttsd_u64(__m128d __A) {
3439 // CHECK-LABEL: @test_mm_cvttsd_u64
3440 // CHECK: @llvm.x86.avx512.cvttsd2usi64
3441 return _mm_cvttsd_u64(__A);
3445 int test_mm_cvtt_roundss_i32(__m128 __A) {
3446 // CHECK-LABEL: @test_mm_cvtt_roundss_i32
3447 // CHECK: @llvm.x86.avx512.cvttss2si
3448 return _mm_cvtt_roundss_i32(__A, _MM_FROUND_CUR_DIRECTION);
3451 int test_mm_cvtt_roundss_si32(__m128 __A) {
3452 // CHECK-LABEL: @test_mm_cvtt_roundss_si32
3453 // CHECK: @llvm.x86.avx512.cvttss2si
3454 return _mm_cvtt_roundss_si32(__A, _MM_FROUND_CUR_DIRECTION);
3457 int test_mm_cvttss_i32(__m128 __A) {
3458 // CHECK-LABEL: @test_mm_cvttss_i32
3459 // CHECK: @llvm.x86.avx512.cvttss2si
3460 return _mm_cvttss_i32(__A);
3464 float test_mm_cvtt_roundss_i64(__m128 __A) {
3465 // CHECK-LABEL: @test_mm_cvtt_roundss_i64
3466 // CHECK: @llvm.x86.avx512.cvttss2si64
3467 return _mm_cvtt_roundss_i64(__A, _MM_FROUND_CUR_DIRECTION);
3470 long long test_mm_cvtt_roundss_si64(__m128 __A) {
3471 // CHECK-LABEL: @test_mm_cvtt_roundss_si64
3472 // CHECK: @llvm.x86.avx512.cvttss2si64
3473 return _mm_cvtt_roundss_si64(__A, _MM_FROUND_CUR_DIRECTION);
3476 long long test_mm_cvttss_i64(__m128 __A) {
3477 // CHECK-LABEL: @test_mm_cvttss_i64
3478 // CHECK: @llvm.x86.avx512.cvttss2si64
3479 return _mm_cvttss_i64(__A);
3483 unsigned test_mm_cvtt_roundss_u32(__m128 __A) {
3484 // CHECK-LABEL: @test_mm_cvtt_roundss_u32
3485 // CHECK: @llvm.x86.avx512.cvttss2usi
3486 return _mm_cvtt_roundss_u32(__A, _MM_FROUND_CUR_DIRECTION);
3489 unsigned test_mm_cvttss_u32(__m128 __A) {
3490 // CHECK-LABEL: @test_mm_cvttss_u32
3491 // CHECK: @llvm.x86.avx512.cvttss2usi
3492 return _mm_cvttss_u32(__A);
3496 unsigned long long test_mm_cvtt_roundss_u64(__m128 __A) {
3497 // CHECK-LABEL: @test_mm_cvtt_roundss_u64
3498 // CHECK: @llvm.x86.avx512.cvttss2usi64
3499 return _mm_cvtt_roundss_u64(__A, _MM_FROUND_CUR_DIRECTION);
3502 unsigned long long test_mm_cvttss_u64(__m128 __A) {
3503 // CHECK-LABEL: @test_mm_cvttss_u64
3504 // CHECK: @llvm.x86.avx512.cvttss2usi64
3505 return _mm_cvttss_u64(__A);
3509 __m512i test_mm512_cvtt_roundps_epu32(__m512 __A)
3511 // CHECK-LABEL: @test_mm512_cvtt_roundps_epu32
3512 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
3513 return _mm512_cvtt_roundps_epu32(__A, _MM_FROUND_CUR_DIRECTION);
3516 __m512i test_mm512_mask_cvtt_roundps_epu32(__m512i __W, __mmask16 __U, __m512 __A)
3518 // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epu32
3519 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
3520 return _mm512_mask_cvtt_roundps_epu32(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
3523 __m512i test_mm512_maskz_cvtt_roundps_epu32( __mmask16 __U, __m512 __A)
3525 // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epu32
3526 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
3528 return _mm512_maskz_cvtt_roundps_epu32(__U, __A, _MM_FROUND_CUR_DIRECTION);
3531 __m256i test_mm512_cvt_roundps_ph(__m512 __A)
3533 // CHECK-LABEL: @test_mm512_cvt_roundps_ph
3534 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
3535 return _mm512_cvt_roundps_ph(__A, _MM_FROUND_CUR_DIRECTION);
3538 __m256i test_mm512_mask_cvt_roundps_ph(__m256i __W , __mmask16 __U, __m512 __A)
3540 // CHECK-LABEL: @test_mm512_mask_cvt_roundps_ph
3541 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
3542 return _mm512_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
3545 __m256i test_mm512_maskz_cvt_roundps_ph(__mmask16 __U, __m512 __A)
3547 // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_ph
3548 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
3549 return _mm512_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_CUR_DIRECTION);
3552 __m512 test_mm512_cvt_roundph_ps(__m256i __A)
3554 // CHECK-LABEL: @test_mm512_cvt_roundph_ps
3555 // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
3556 return _mm512_cvt_roundph_ps(__A, _MM_FROUND_CUR_DIRECTION);
3559 __m512 test_mm512_mask_cvt_roundph_ps(__m512 __W, __mmask16 __U, __m256i __A)
3561 // CHECK-LABEL: @test_mm512_mask_cvt_roundph_ps
3562 // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
3563 return _mm512_mask_cvt_roundph_ps(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
3566 __m512 test_mm512_maskz_cvt_roundph_ps(__mmask16 __U, __m256i __A)
3568 // CHECK-LABEL: @test_mm512_maskz_cvt_roundph_ps
3569 // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
3570 return _mm512_maskz_cvt_roundph_ps(__U, __A, _MM_FROUND_CUR_DIRECTION);
3573 __m512 test_mm512_mask_cvt_roundepi32_ps(__m512 __W, __mmask16 __U, __m512i __A)
3575 // CHECK-LABEL: @test_mm512_mask_cvt_roundepi32_ps
3576 // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
3577 return _mm512_mask_cvt_roundepi32_ps(__W,__U,__A,4);
3580 __m512 test_mm512_maskz_cvt_roundepi32_ps(__mmask16 __U, __m512i __A)
3582 // CHECK-LABEL: @test_mm512_maskz_cvt_roundepi32_ps
3583 // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
3584 return _mm512_maskz_cvt_roundepi32_ps(__U,__A,4);
3587 __m512 test_mm512_mask_cvt_roundepu32_ps(__m512 __W, __mmask16 __U,__m512i __A)
3589 // CHECK-LABEL: @test_mm512_mask_cvt_roundepu32_ps
3590 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
3591 return _mm512_mask_cvt_roundepu32_ps(__W,__U,__A,4);
3594 __m512 test_mm512_maskz_cvt_roundepu32_ps(__mmask16 __U,__m512i __A)
3596 // CHECK-LABEL: @test_mm512_maskz_cvt_roundepu32_ps
3597 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
3598 return _mm512_maskz_cvt_roundepu32_ps(__U,__A,4);
3601 __m256 test_mm512_mask_cvt_roundpd_ps(__m256 W, __mmask8 U,__m512d A)
3603 // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_ps
3604 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
3605 return _mm512_mask_cvt_roundpd_ps(W,U,A,4);
3608 __m256 test_mm512_maskz_cvt_roundpd_ps(__mmask8 U, __m512d A)
3610 // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_ps
3611 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
3612 return _mm512_maskz_cvt_roundpd_ps(U,A,4);
3615 __m256i test_mm512_cvtt_roundpd_epi32(__m512d A)
3617 // CHECK-LABEL: @test_mm512_cvtt_roundpd_epi32
3618 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
3619 return _mm512_cvtt_roundpd_epi32(A,4);
3622 __m256i test_mm512_mask_cvtt_roundpd_epi32(__m256i W, __mmask8 U, __m512d A)
3624 // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epi32
3625 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
3626 return _mm512_mask_cvtt_roundpd_epi32(W,U,A,4);
3629 __m256i test_mm512_maskz_cvtt_roundpd_epi32(__mmask8 U, __m512d A)
3631 // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epi32
3632 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
3633 return _mm512_maskz_cvtt_roundpd_epi32(U,A,4);
3636 __m512i test_mm512_mask_cvtt_roundps_epi32(__m512i W,__mmask16 U, __m512 A)
3638 // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epi32
3639 // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
3640 return _mm512_mask_cvtt_roundps_epi32(W,U,A,4);
3643 __m512i test_mm512_maskz_cvtt_roundps_epi32(__mmask16 U, __m512 A)
3645 // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epi32
3646 // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
3647 return _mm512_maskz_cvtt_roundps_epi32(U,A,4);
3650 __m512i test_mm512_mask_cvt_roundps_epi32(__m512i __W,__mmask16 __U,__m512 __A)
3652 // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epi32
3653 // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
3654 return _mm512_mask_cvt_roundps_epi32(__W,__U,__A,4);
3657 __m512i test_mm512_maskz_cvt_roundps_epi32(__mmask16 __U, __m512 __A)
3659 // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epi32
3660 // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
3661 return _mm512_maskz_cvt_roundps_epi32(__U,__A,4);
3664 __m256i test_mm512_mask_cvt_roundpd_epi32(__m256i W,__mmask8 U,__m512d A)
3666 // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epi32
3667 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
3668 return _mm512_mask_cvt_roundpd_epi32(W,U,A,4);
3671 __m256i test_mm512_maskz_cvt_roundpd_epi32(__mmask8 U, __m512d A)
3673 // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epi32
3674 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
3675 return _mm512_maskz_cvt_roundpd_epi32(U,A,4);
3678 __m512i test_mm512_mask_cvt_roundps_epu32(__m512i __W,__mmask16 __U,__m512 __A)
3680 // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epu32
3681 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
3682 return _mm512_mask_cvt_roundps_epu32(__W,__U,__A,4);
3685 __m512i test_mm512_maskz_cvt_roundps_epu32(__mmask16 __U,__m512 __A)
3687 // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epu32
3688 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
3689 return _mm512_maskz_cvt_roundps_epu32(__U,__A, 4);
3692 __m256i test_mm512_mask_cvt_roundpd_epu32(__m256i W, __mmask8 U, __m512d A)
3694 // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epu32
3695 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
3696 return _mm512_mask_cvt_roundpd_epu32(W,U,A,4);
3699 __m256i test_mm512_maskz_cvt_roundpd_epu32(__mmask8 U, __m512d A)
3701 // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epu32
3702 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
3703 return _mm512_maskz_cvt_roundpd_epu32(U, A, 4);
3706 __m512 test_mm512_mask2_permutex2var_ps(__m512 __A, __m512i __I, __mmask16 __U, __m512 __B) {
3707 // CHECK-LABEL: @test_mm512_mask2_permutex2var_ps
3708 // CHECK: @llvm.x86.avx512.mask.vpermi2var.ps.512
3709 return _mm512_mask2_permutex2var_ps(__A, __I, __U, __B);
3712 __m512i test_mm512_mask2_permutex2var_epi64(__m512i __A, __m512i __I, __mmask8 __U, __m512i __B) {
3713 // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi64
3714 // CHECK: @llvm.x86.avx512.mask.vpermi2var.q.512
3715 return _mm512_mask2_permutex2var_epi64(__A, __I, __U, __B);
3718 __m512d test_mm512_permute_pd(__m512d __X) {
3719 // CHECK-LABEL: @test_mm512_permute_pd
3720 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
3721 return _mm512_permute_pd(__X, 2);
3724 __m512d test_mm512_mask_permute_pd(__m512d __W, __mmask8 __U, __m512d __X) {
3725 // CHECK-LABEL: @test_mm512_mask_permute_pd
3726 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
3727 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3728 return _mm512_mask_permute_pd(__W, __U, __X, 2);
3731 __m512d test_mm512_maskz_permute_pd(__mmask8 __U, __m512d __X) {
3732 // CHECK-LABEL: @test_mm512_maskz_permute_pd
3733 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
3734 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3735 return _mm512_maskz_permute_pd(__U, __X, 2);
3738 __m512 test_mm512_permute_ps(__m512 __X) {
3739 // CHECK-LABEL: @test_mm512_permute_ps
3740 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> zeroinitializer, <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>
3741 return _mm512_permute_ps(__X, 2);
3744 __m512 test_mm512_mask_permute_ps(__m512 __W, __mmask16 __U, __m512 __X) {
3745 // CHECK-LABEL: @test_mm512_mask_permute_ps
3746 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> zeroinitializer, <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>
3747 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3748 return _mm512_mask_permute_ps(__W, __U, __X, 2);
3751 __m512 test_mm512_maskz_permute_ps(__mmask16 __U, __m512 __X) {
3752 // CHECK-LABEL: @test_mm512_maskz_permute_ps
3753 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> zeroinitializer, <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>
3754 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3755 return _mm512_maskz_permute_ps(__U, __X, 2);
3758 __m512d test_mm512_permutevar_pd(__m512d __A, __m512i __C) {
3759 // CHECK-LABEL: @test_mm512_permutevar_pd
3760 // CHECK: @llvm.x86.avx512.vpermilvar.pd.512
3761 return _mm512_permutevar_pd(__A, __C);
3764 __m512d test_mm512_mask_permutevar_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512i __C) {
3765 // CHECK-LABEL: @test_mm512_mask_permutevar_pd
3766 // CHECK: @llvm.x86.avx512.vpermilvar.pd.512
3767 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3768 return _mm512_mask_permutevar_pd(__W, __U, __A, __C);
3771 __m512d test_mm512_maskz_permutevar_pd(__mmask8 __U, __m512d __A, __m512i __C) {
3772 // CHECK-LABEL: @test_mm512_maskz_permutevar_pd
3773 // CHECK: @llvm.x86.avx512.vpermilvar.pd.512
3774 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
3775 return _mm512_maskz_permutevar_pd(__U, __A, __C);
3778 __m512 test_mm512_permutevar_ps(__m512 __A, __m512i __C) {
3779 // CHECK-LABEL: @test_mm512_permutevar_ps
3780 // CHECK: @llvm.x86.avx512.vpermilvar.ps.512
3781 return _mm512_permutevar_ps(__A, __C);
3784 __m512 test_mm512_mask_permutevar_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512i __C) {
3785 // CHECK-LABEL: @test_mm512_mask_permutevar_ps
3786 // CHECK: @llvm.x86.avx512.vpermilvar.ps.512
3787 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3788 return _mm512_mask_permutevar_ps(__W, __U, __A, __C);
3791 __m512 test_mm512_maskz_permutevar_ps(__mmask16 __U, __m512 __A, __m512i __C) {
3792 // CHECK-LABEL: @test_mm512_maskz_permutevar_ps
3793 // CHECK: @llvm.x86.avx512.vpermilvar.ps.512
3794 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
3795 return _mm512_maskz_permutevar_ps(__U, __A, __C);
3798 __m512i test_mm512_maskz_permutex2var_epi32(__mmask16 __U, __m512i __A, __m512i __I, __m512i __B) {
3799 // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi32
3800 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.d.512
3801 return _mm512_maskz_permutex2var_epi32(__U, __A, __I, __B);
3804 __m512i test_mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U, __m512i __I, __m512i __B)
3806 // CHECK-LABEL: @test_mm512_mask_permutex2var_epi32
3807 // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.512
3808 return _mm512_mask_permutex2var_epi32 (__A,__U,__I,__B);
3811 __m512d test_mm512_permutex2var_pd (__m512d __A, __m512i __I, __m512d __B)
3813 // CHECK-LABEL: @test_mm512_permutex2var_pd
3814 // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.512
3815 return _mm512_permutex2var_pd (__A, __I,__B);
3818 __m512d test_mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I, __m512d __B)
3820 // CHECK-LABEL: @test_mm512_mask_permutex2var_pd
3821 // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.512
3822 return _mm512_mask_permutex2var_pd (__A,__U,__I,__B);
3825 __m512d test_mm512_maskz_permutex2var_pd(__mmask8 __U, __m512d __A, __m512i __I, __m512d __B) {
3826 // CHECK-LABEL: @test_mm512_maskz_permutex2var_pd
3827 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.pd.512
3828 return _mm512_maskz_permutex2var_pd(__U, __A, __I, __B);
3831 __m512 test_mm512_permutex2var_ps (__m512 __A, __m512i __I, __m512 __B)
3833 // CHECK-LABEL: @test_mm512_permutex2var_ps
3834 // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.512
3835 return _mm512_permutex2var_ps (__A, __I, __B);
3838 __m512 test_mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B)
3840 // CHECK-LABEL: @test_mm512_mask_permutex2var_ps
3841 // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.512
3842 return _mm512_mask_permutex2var_ps (__A,__U,__I,__B);
3845 __m512 test_mm512_maskz_permutex2var_ps(__mmask16 __U, __m512 __A, __m512i __I, __m512 __B) {
3846 // CHECK-LABEL: @test_mm512_maskz_permutex2var_ps
3847 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.ps.512
3848 return _mm512_maskz_permutex2var_ps(__U, __A, __I, __B);
3851 __m512i test_mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I, __m512i __B){
3852 // CHECK-LABEL: @test_mm512_mask_permutex2var_epi64
3853 // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.512
3854 return _mm512_mask_permutex2var_epi64(__A, __U, __I, __B);
3857 __m512i test_mm512_maskz_permutex2var_epi64(__mmask8 __U, __m512i __A, __m512i __I, __m512i __B) {
3858 // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi64
3859 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.q.512
3860 return _mm512_maskz_permutex2var_epi64(__U, __A, __I, __B);
3862 __mmask16 test_mm512_testn_epi32_mask(__m512i __A, __m512i __B) {
3863 // CHECK-LABEL: @test_mm512_testn_epi32_mask
3864 // CHECK: @llvm.x86.avx512.ptestnm.d.512
3865 return _mm512_testn_epi32_mask(__A, __B);
3868 __mmask16 test_mm512_mask_testn_epi32_mask(__mmask16 __U, __m512i __A, __m512i __B) {
3869 // CHECK-LABEL: @test_mm512_mask_testn_epi32_mask
3870 // CHECK: @llvm.x86.avx512.ptestnm.d.512
3871 return _mm512_mask_testn_epi32_mask(__U, __A, __B);
3874 __mmask8 test_mm512_testn_epi64_mask(__m512i __A, __m512i __B) {
3875 // CHECK-LABEL: @test_mm512_testn_epi64_mask
3876 // CHECK: @llvm.x86.avx512.ptestnm.q.512
3877 return _mm512_testn_epi64_mask(__A, __B);
3880 __mmask8 test_mm512_mask_testn_epi64_mask(__mmask8 __U, __m512i __A, __m512i __B) {
3881 // CHECK-LABEL: @test_mm512_mask_testn_epi64_mask
3882 // CHECK: @llvm.x86.avx512.ptestnm.q.512
3883 return _mm512_mask_testn_epi64_mask(__U, __A, __B);
3886 __mmask16 test_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
3888 // CHECK-LABEL: @test_mm512_mask_test_epi32_mask
3889 // CHECK: @llvm.x86.avx512.ptestm.d.512
3890 return _mm512_mask_test_epi32_mask (__U,__A,__B);
3893 __mmask8 test_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
3895 // CHECK-LABEL: @test_mm512_mask_test_epi64_mask
3896 // CHECK: @llvm.x86.avx512.ptestm.q.512
3897 return _mm512_mask_test_epi64_mask (__U,__A,__B);
3900 __m512i test_mm512_maskz_unpackhi_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
3901 // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi32
3902 // 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>
3903 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3904 return _mm512_maskz_unpackhi_epi32(__U, __A, __B);
3907 __m512i test_mm512_unpackhi_epi64(__m512i __A, __m512i __B) {
3908 // CHECK-LABEL: @test_mm512_unpackhi_epi64
3909 // 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>
3910 return _mm512_unpackhi_epi64(__A, __B);
3913 __m512i test_mm512_mask_unpackhi_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
3914 // CHECK-LABEL: @test_mm512_mask_unpackhi_epi64
3915 // 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>
3916 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3917 return _mm512_mask_unpackhi_epi64(__W, __U, __A, __B);
3920 __m512i test_mm512_maskz_unpackhi_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
3921 // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi64
3922 // 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>
3923 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3924 return _mm512_maskz_unpackhi_epi64(__U, __A, __B);
3927 __m512i test_mm512_unpacklo_epi32(__m512i __A, __m512i __B) {
3928 // CHECK-LABEL: @test_mm512_unpacklo_epi32
3929 // 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>
3930 return _mm512_unpacklo_epi32(__A, __B);
3933 __m512i test_mm512_mask_unpacklo_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
3934 // CHECK-LABEL: @test_mm512_mask_unpacklo_epi32
3935 // 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>
3936 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3937 return _mm512_mask_unpacklo_epi32(__W, __U, __A, __B);
3940 __m512i test_mm512_maskz_unpacklo_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
3941 // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi32
3942 // 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>
3943 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3944 return _mm512_maskz_unpacklo_epi32(__U, __A, __B);
3947 __m512i test_mm512_unpacklo_epi64(__m512i __A, __m512i __B) {
3948 // CHECK-LABEL: @test_mm512_unpacklo_epi64
3949 // 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>
3950 return _mm512_unpacklo_epi64(__A, __B);
3953 __m512i test_mm512_mask_unpacklo_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
3954 // CHECK-LABEL: @test_mm512_mask_unpacklo_epi64
3955 // 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>
3956 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3957 return _mm512_mask_unpacklo_epi64(__W, __U, __A, __B);
3960 __m512i test_mm512_maskz_unpacklo_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
3961 // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi64
3962 // 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>
3963 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
3964 return _mm512_maskz_unpacklo_epi64(__U, __A, __B);
3967 __m128d test_mm_roundscale_round_sd(__m128d __A, __m128d __B) {
3968 // CHECK-LABEL: @test_mm_roundscale_round_sd
3969 // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3970 return _mm_roundscale_round_sd(__A, __B, 3, _MM_FROUND_CUR_DIRECTION);
3973 __m128d test_mm_roundscale_sd(__m128d __A, __m128d __B) {
3974 // CHECK-LABEL: @test_mm_roundscale_sd
3975 // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3976 return _mm_roundscale_sd(__A, __B, 3);
3979 __m128d test_mm_mask_roundscale_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3980 // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3981 return _mm_mask_roundscale_sd(__W,__U,__A,__B,3);
3984 __m128d test_mm_mask_roundscale_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
3985 // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3986 return _mm_mask_roundscale_round_sd(__W,__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION);
3989 __m128d test_mm_maskz_roundscale_sd(__mmask8 __U, __m128d __A, __m128d __B){
3990 // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3991 return _mm_maskz_roundscale_sd(__U,__A,__B,3);
3994 __m128d test_mm_maskz_roundscale_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
3995 // CHECK: @llvm.x86.avx512.mask.rndscale.sd
3996 return _mm_maskz_roundscale_round_sd(__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION );
3999 __m128 test_mm_roundscale_round_ss(__m128 __A, __m128 __B) {
4000 // CHECK-LABEL: @test_mm_roundscale_round_ss
4001 // CHECK: @llvm.x86.avx512.mask.rndscale.ss
4002 return _mm_roundscale_round_ss(__A, __B, 3, _MM_FROUND_CUR_DIRECTION);
4005 __m128 test_mm_roundscale_ss(__m128 __A, __m128 __B) {
4006 // CHECK-LABEL: @test_mm_roundscale_ss
4007 // CHECK: @llvm.x86.avx512.mask.rndscale.ss
4008 return _mm_roundscale_ss(__A, __B, 3);
4011 __m128 test_mm_mask_roundscale_ss(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
4012 // CHECK-LABEL: @test_mm_mask_roundscale_ss
4013 // CHECK: @llvm.x86.avx512.mask.rndscale.ss
4014 return _mm_mask_roundscale_ss(__W,__U,__A,__B,3);
4017 __m128 test_mm_maskz_roundscale_round_ss( __mmask8 __U, __m128d __A, __m128d __B){
4018 // CHECK-LABEL: @test_mm_maskz_roundscale_round_ss
4019 // CHECK: @llvm.x86.avx512.mask.rndscale.ss
4020 return _mm_maskz_roundscale_round_ss(__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION);
4023 __m128 test_mm_maskz_roundscale_ss(__mmask8 __U, __m128d __A, __m128d __B){
4024 // CHECK-LABEL: @test_mm_maskz_roundscale_ss
4025 // CHECK: @llvm.x86.avx512.mask.rndscale.ss
4026 return _mm_maskz_roundscale_ss(__U,__A,__B,3);
4029 __m512d test_mm512_scalef_round_pd(__m512d __A, __m512d __B) {
4030 // CHECK-LABEL: @test_mm512_scalef_round_pd
4031 // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
4032 return _mm512_scalef_round_pd(__A, __B, _MM_FROUND_CUR_DIRECTION);
4035 __m512d test_mm512_mask_scalef_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
4036 // CHECK-LABEL: @test_mm512_mask_scalef_round_pd
4037 // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
4038 return _mm512_mask_scalef_round_pd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
4041 __m512d test_mm512_maskz_scalef_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
4042 // CHECK-LABEL: @test_mm512_maskz_scalef_round_pd
4043 // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
4044 return _mm512_maskz_scalef_round_pd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
4047 __m512d test_mm512_scalef_pd(__m512d __A, __m512d __B) {
4048 // CHECK-LABEL: @test_mm512_scalef_pd
4049 // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
4050 return _mm512_scalef_pd(__A, __B);
4053 __m512d test_mm512_mask_scalef_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
4054 // CHECK-LABEL: @test_mm512_mask_scalef_pd
4055 // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
4056 return _mm512_mask_scalef_pd(__W, __U, __A, __B);
4059 __m512d test_mm512_maskz_scalef_pd(__mmask8 __U, __m512d __A, __m512d __B) {
4060 // CHECK-LABEL: @test_mm512_maskz_scalef_pd
4061 // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
4062 return _mm512_maskz_scalef_pd(__U, __A, __B);
4065 __m512 test_mm512_scalef_round_ps(__m512 __A, __m512 __B) {
4066 // CHECK-LABEL: @test_mm512_scalef_round_ps
4067 // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
4068 return _mm512_scalef_round_ps(__A, __B, _MM_FROUND_CUR_DIRECTION);
4071 __m512 test_mm512_mask_scalef_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
4072 // CHECK-LABEL: @test_mm512_mask_scalef_round_ps
4073 // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
4074 return _mm512_mask_scalef_round_ps(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
4077 __m512 test_mm512_maskz_scalef_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
4078 // CHECK-LABEL: @test_mm512_maskz_scalef_round_ps
4079 // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
4080 return _mm512_maskz_scalef_round_ps(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
4083 __m512 test_mm512_scalef_ps(__m512 __A, __m512 __B) {
4084 // CHECK-LABEL: @test_mm512_scalef_ps
4085 // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
4086 return _mm512_scalef_ps(__A, __B);
4089 __m512 test_mm512_mask_scalef_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
4090 // CHECK-LABEL: @test_mm512_mask_scalef_ps
4091 // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
4092 return _mm512_mask_scalef_ps(__W, __U, __A, __B);
4095 __m512 test_mm512_maskz_scalef_ps(__mmask16 __U, __m512 __A, __m512 __B) {
4096 // CHECK-LABEL: @test_mm512_maskz_scalef_ps
4097 // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
4098 return _mm512_maskz_scalef_ps(__U, __A, __B);
4101 __m128d test_mm_scalef_round_sd(__m128d __A, __m128d __B) {
4102 // CHECK-LABEL: @test_mm_scalef_round_sd
4103 // CHECK: @llvm.x86.avx512.mask.scalef
4104 return _mm_scalef_round_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
4107 __m128d test_mm_scalef_sd(__m128d __A, __m128d __B) {
4108 // CHECK-LABEL: @test_mm_scalef_sd
4109 // CHECK: @llvm.x86.avx512.mask.scalef
4110 return _mm_scalef_sd(__A, __B);
4113 __m128d test_mm_mask_scalef_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
4114 // CHECK-LABEL: @test_mm_mask_scalef_sd
4115 // CHECK: @llvm.x86.avx512.mask.scalef.sd
4116 return _mm_mask_scalef_sd(__W, __U, __A, __B);
4119 __m128d test_mm_mask_scalef_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
4120 // CHECK-LABEL: @test_mm_mask_scalef_round_sd
4121 // CHECK: @llvm.x86.avx512.mask.scalef.sd
4122 return _mm_mask_scalef_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
4125 __m128d test_mm_maskz_scalef_sd(__mmask8 __U, __m128d __A, __m128d __B){
4126 // CHECK-LABEL: @test_mm_maskz_scalef_sd
4127 // CHECK: @llvm.x86.avx512.mask.scalef.sd
4128 return _mm_maskz_scalef_sd(__U, __A, __B);
4131 __m128d test_mm_maskz_scalef_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
4132 // CHECK-LABEL: @test_mm_maskz_scalef_round_sd
4133 // CHECK: @llvm.x86.avx512.mask.scalef.sd
4134 return _mm_maskz_scalef_round_sd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
4137 __m128 test_mm_scalef_round_ss(__m128 __A, __m128 __B) {
4138 // CHECK-LABEL: @test_mm_scalef_round_ss
4139 // CHECK: @llvm.x86.avx512.mask.scalef.ss
4140 return _mm_scalef_round_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
4143 __m128 test_mm_scalef_ss(__m128 __A, __m128 __B) {
4144 // CHECK-LABEL: @test_mm_scalef_ss
4145 // CHECK: @llvm.x86.avx512.mask.scalef.ss
4146 return _mm_scalef_ss(__A, __B);
4149 __m128 test_mm_mask_scalef_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
4150 // CHECK-LABEL: @test_mm_mask_scalef_ss
4151 // CHECK: @llvm.x86.avx512.mask.scalef.ss
4152 return _mm_mask_scalef_ss(__W, __U, __A, __B);
4155 __m128 test_mm_mask_scalef_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
4156 // CHECK-LABEL: @test_mm_mask_scalef_round_ss
4157 // CHECK: @llvm.x86.avx512.mask.scalef.ss
4158 return _mm_mask_scalef_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
4161 __m128 test_mm_maskz_scalef_ss(__mmask8 __U, __m128 __A, __m128 __B){
4162 // CHECK-LABEL: @test_mm_maskz_scalef_ss
4163 // CHECK: @llvm.x86.avx512.mask.scalef.ss
4164 return _mm_maskz_scalef_ss(__U, __A, __B);
4167 __m128 test_mm_maskz_scalef_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
4168 // CHECK-LABEL: @test_mm_maskz_scalef_round_ss
4169 // CHECK: @llvm.x86.avx512.mask.scalef.ss
4170 return _mm_maskz_scalef_round_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
4173 __m512i test_mm512_srai_epi32(__m512i __A) {
4174 // CHECK-LABEL: @test_mm512_srai_epi32
4175 // CHECK: @llvm.x86.avx512.psrai.d.512
4176 return _mm512_srai_epi32(__A, 5);
4179 __m512i test_mm512_mask_srai_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
4180 // CHECK-LABEL: @test_mm512_mask_srai_epi32
4181 // CHECK: @llvm.x86.avx512.psrai.d.512
4182 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4183 return _mm512_mask_srai_epi32(__W, __U, __A, 5);
4186 __m512i test_mm512_maskz_srai_epi32(__mmask16 __U, __m512i __A) {
4187 // CHECK-LABEL: @test_mm512_maskz_srai_epi32
4188 // CHECK: @llvm.x86.avx512.psrai.d.512
4189 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4190 return _mm512_maskz_srai_epi32(__U, __A, 5);
4193 __m512i test_mm512_srai_epi64(__m512i __A) {
4194 // CHECK-LABEL: @test_mm512_srai_epi64
4195 // CHECK: @llvm.x86.avx512.psrai.q.512
4196 return _mm512_srai_epi64(__A, 5);
4199 __m512i test_mm512_mask_srai_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
4200 // CHECK-LABEL: @test_mm512_mask_srai_epi64
4201 // CHECK: @llvm.x86.avx512.psrai.q.512
4202 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4203 return _mm512_mask_srai_epi64(__W, __U, __A, 5);
4206 __m512i test_mm512_maskz_srai_epi64(__mmask8 __U, __m512i __A) {
4207 // CHECK-LABEL: @test_mm512_maskz_srai_epi64
4208 // CHECK: @llvm.x86.avx512.psrai.q.512
4209 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4210 return _mm512_maskz_srai_epi64(__U, __A, 5);
4213 __m512i test_mm512_sll_epi32(__m512i __A, __m128i __B) {
4214 // CHECK-LABEL: @test_mm512_sll_epi32
4215 // CHECK: @llvm.x86.avx512.psll.d.512
4216 return _mm512_sll_epi32(__A, __B);
4219 __m512i test_mm512_mask_sll_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
4220 // CHECK-LABEL: @test_mm512_mask_sll_epi32
4221 // CHECK: @llvm.x86.avx512.psll.d.512
4222 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4223 return _mm512_mask_sll_epi32(__W, __U, __A, __B);
4226 __m512i test_mm512_maskz_sll_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
4227 // CHECK-LABEL: @test_mm512_maskz_sll_epi32
4228 // CHECK: @llvm.x86.avx512.psll.d.512
4229 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4230 return _mm512_maskz_sll_epi32(__U, __A, __B);
4233 __m512i test_mm512_sll_epi64(__m512i __A, __m128i __B) {
4234 // CHECK-LABEL: @test_mm512_sll_epi64
4235 // CHECK: @llvm.x86.avx512.psll.q.512
4236 return _mm512_sll_epi64(__A, __B);
4239 __m512i test_mm512_mask_sll_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
4240 // CHECK-LABEL: @test_mm512_mask_sll_epi64
4241 // CHECK: @llvm.x86.avx512.psll.q.512
4242 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4243 return _mm512_mask_sll_epi64(__W, __U, __A, __B);
4246 __m512i test_mm512_maskz_sll_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
4247 // CHECK-LABEL: @test_mm512_maskz_sll_epi64
4248 // CHECK: @llvm.x86.avx512.psll.q.512
4249 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4250 return _mm512_maskz_sll_epi64(__U, __A, __B);
4253 __m512i test_mm512_sllv_epi32(__m512i __X, __m512i __Y) {
4254 // CHECK-LABEL: @test_mm512_sllv_epi32
4255 // CHECK: @llvm.x86.avx512.psllv.d.512
4256 return _mm512_sllv_epi32(__X, __Y);
4259 __m512i test_mm512_mask_sllv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
4260 // CHECK-LABEL: @test_mm512_mask_sllv_epi32
4261 // CHECK: @llvm.x86.avx512.psllv.d.512
4262 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4263 return _mm512_mask_sllv_epi32(__W, __U, __X, __Y);
4266 __m512i test_mm512_maskz_sllv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
4267 // CHECK-LABEL: @test_mm512_maskz_sllv_epi32
4268 // CHECK: @llvm.x86.avx512.psllv.d.512
4269 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4270 return _mm512_maskz_sllv_epi32(__U, __X, __Y);
4273 __m512i test_mm512_sllv_epi64(__m512i __X, __m512i __Y) {
4274 // CHECK-LABEL: @test_mm512_sllv_epi64
4275 // CHECK: @llvm.x86.avx512.psllv.q.512
4276 return _mm512_sllv_epi64(__X, __Y);
4279 __m512i test_mm512_mask_sllv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
4280 // CHECK-LABEL: @test_mm512_mask_sllv_epi64
4281 // CHECK: @llvm.x86.avx512.psllv.q.512
4282 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4283 return _mm512_mask_sllv_epi64(__W, __U, __X, __Y);
4286 __m512i test_mm512_maskz_sllv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
4287 // CHECK-LABEL: @test_mm512_maskz_sllv_epi64
4288 // CHECK: @llvm.x86.avx512.psllv.q.512
4289 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4290 return _mm512_maskz_sllv_epi64(__U, __X, __Y);
4293 __m512i test_mm512_sra_epi32(__m512i __A, __m128i __B) {
4294 // CHECK-LABEL: @test_mm512_sra_epi32
4295 // CHECK: @llvm.x86.avx512.psra.d.512
4296 return _mm512_sra_epi32(__A, __B);
4299 __m512i test_mm512_mask_sra_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
4300 // CHECK-LABEL: @test_mm512_mask_sra_epi32
4301 // CHECK: @llvm.x86.avx512.psra.d.512
4302 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4303 return _mm512_mask_sra_epi32(__W, __U, __A, __B);
4306 __m512i test_mm512_maskz_sra_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
4307 // CHECK-LABEL: @test_mm512_maskz_sra_epi32
4308 // CHECK: @llvm.x86.avx512.psra.d.512
4309 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4310 return _mm512_maskz_sra_epi32(__U, __A, __B);
4313 __m512i test_mm512_sra_epi64(__m512i __A, __m128i __B) {
4314 // CHECK-LABEL: @test_mm512_sra_epi64
4315 // CHECK: @llvm.x86.avx512.psra.q.512
4316 return _mm512_sra_epi64(__A, __B);
4319 __m512i test_mm512_mask_sra_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
4320 // CHECK-LABEL: @test_mm512_mask_sra_epi64
4321 // CHECK: @llvm.x86.avx512.psra.q.512
4322 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4323 return _mm512_mask_sra_epi64(__W, __U, __A, __B);
4326 __m512i test_mm512_maskz_sra_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
4327 // CHECK-LABEL: @test_mm512_maskz_sra_epi64
4328 // CHECK: @llvm.x86.avx512.psra.q.512
4329 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4330 return _mm512_maskz_sra_epi64(__U, __A, __B);
4333 __m512i test_mm512_srav_epi32(__m512i __X, __m512i __Y) {
4334 // CHECK-LABEL: @test_mm512_srav_epi32
4335 // CHECK: @llvm.x86.avx512.psrav.d.512
4336 return _mm512_srav_epi32(__X, __Y);
4339 __m512i test_mm512_mask_srav_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
4340 // CHECK-LABEL: @test_mm512_mask_srav_epi32
4341 // CHECK: @llvm.x86.avx512.psrav.d.512
4342 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4343 return _mm512_mask_srav_epi32(__W, __U, __X, __Y);
4346 __m512i test_mm512_maskz_srav_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
4347 // CHECK-LABEL: @test_mm512_maskz_srav_epi32
4348 // CHECK: @llvm.x86.avx512.psrav.d.512
4349 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4350 return _mm512_maskz_srav_epi32(__U, __X, __Y);
4353 __m512i test_mm512_srav_epi64(__m512i __X, __m512i __Y) {
4354 // CHECK-LABEL: @test_mm512_srav_epi64
4355 // CHECK: @llvm.x86.avx512.psrav.q.512
4356 return _mm512_srav_epi64(__X, __Y);
4359 __m512i test_mm512_mask_srav_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
4360 // CHECK-LABEL: @test_mm512_mask_srav_epi64
4361 // CHECK: @llvm.x86.avx512.psrav.q.512
4362 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4363 return _mm512_mask_srav_epi64(__W, __U, __X, __Y);
4366 __m512i test_mm512_maskz_srav_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
4367 // CHECK-LABEL: @test_mm512_maskz_srav_epi64
4368 // CHECK: @llvm.x86.avx512.psrav.q.512
4369 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4370 return _mm512_maskz_srav_epi64(__U, __X, __Y);
4373 __m512i test_mm512_srl_epi32(__m512i __A, __m128i __B) {
4374 // CHECK-LABEL: @test_mm512_srl_epi32
4375 // CHECK: @llvm.x86.avx512.psrl.d.512
4376 return _mm512_srl_epi32(__A, __B);
4379 __m512i test_mm512_mask_srl_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
4380 // CHECK-LABEL: @test_mm512_mask_srl_epi32
4381 // CHECK: @llvm.x86.avx512.psrl.d.512
4382 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4383 return _mm512_mask_srl_epi32(__W, __U, __A, __B);
4386 __m512i test_mm512_maskz_srl_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
4387 // CHECK-LABEL: @test_mm512_maskz_srl_epi32
4388 // CHECK: @llvm.x86.avx512.psrl.d.512
4389 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4390 return _mm512_maskz_srl_epi32(__U, __A, __B);
4393 __m512i test_mm512_srl_epi64(__m512i __A, __m128i __B) {
4394 // CHECK-LABEL: @test_mm512_srl_epi64
4395 // CHECK: @llvm.x86.avx512.psrl.q.512
4396 return _mm512_srl_epi64(__A, __B);
4399 __m512i test_mm512_mask_srl_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
4400 // CHECK-LABEL: @test_mm512_mask_srl_epi64
4401 // CHECK: @llvm.x86.avx512.psrl.q.512
4402 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4403 return _mm512_mask_srl_epi64(__W, __U, __A, __B);
4406 __m512i test_mm512_maskz_srl_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
4407 // CHECK-LABEL: @test_mm512_maskz_srl_epi64
4408 // CHECK: @llvm.x86.avx512.psrl.q.512
4409 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4410 return _mm512_maskz_srl_epi64(__U, __A, __B);
4413 __m512i test_mm512_srlv_epi32(__m512i __X, __m512i __Y) {
4414 // CHECK-LABEL: @test_mm512_srlv_epi32
4415 // CHECK: @llvm.x86.avx512.psrlv.d.512
4416 return _mm512_srlv_epi32(__X, __Y);
4419 __m512i test_mm512_mask_srlv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
4420 // CHECK-LABEL: @test_mm512_mask_srlv_epi32
4421 // CHECK: @llvm.x86.avx512.psrlv.d.512
4422 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4423 return _mm512_mask_srlv_epi32(__W, __U, __X, __Y);
4426 __m512i test_mm512_maskz_srlv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
4427 // CHECK-LABEL: @test_mm512_maskz_srlv_epi32
4428 // CHECK: @llvm.x86.avx512.psrlv.d.512
4429 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4430 return _mm512_maskz_srlv_epi32(__U, __X, __Y);
4433 __m512i test_mm512_srlv_epi64(__m512i __X, __m512i __Y) {
4434 // CHECK-LABEL: @test_mm512_srlv_epi64
4435 // CHECK: @llvm.x86.avx512.psrlv.q.512
4436 return _mm512_srlv_epi64(__X, __Y);
4439 __m512i test_mm512_mask_srlv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
4440 // CHECK-LABEL: @test_mm512_mask_srlv_epi64
4441 // CHECK: @llvm.x86.avx512.psrlv.q.512
4442 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4443 return _mm512_mask_srlv_epi64(__W, __U, __X, __Y);
4446 __m512i test_mm512_maskz_srlv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
4447 // CHECK-LABEL: @test_mm512_maskz_srlv_epi64
4448 // CHECK: @llvm.x86.avx512.psrlv.q.512
4449 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4450 return _mm512_maskz_srlv_epi64(__U, __X, __Y);
4453 __m512i test_mm512_ternarylogic_epi32(__m512i __A, __m512i __B, __m512i __C) {
4454 // CHECK-LABEL: @test_mm512_ternarylogic_epi32
4455 // CHECK: @llvm.x86.avx512.mask.pternlog.d.512
4456 return _mm512_ternarylogic_epi32(__A, __B, __C, 4);
4459 __m512i test_mm512_mask_ternarylogic_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
4460 // CHECK-LABEL: @test_mm512_mask_ternarylogic_epi32
4461 // CHECK: @llvm.x86.avx512.mask.pternlog.d.512
4462 return _mm512_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
4465 __m512i test_mm512_maskz_ternarylogic_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) {
4466 // CHECK-LABEL: @test_mm512_maskz_ternarylogic_epi32
4467 // CHECK: @llvm.x86.avx512.maskz.pternlog.d.512
4468 return _mm512_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
4471 __m512i test_mm512_ternarylogic_epi64(__m512i __A, __m512i __B, __m512i __C) {
4472 // CHECK-LABEL: @test_mm512_ternarylogic_epi64
4473 // CHECK: @llvm.x86.avx512.mask.pternlog.q.512
4474 return _mm512_ternarylogic_epi64(__A, __B, __C, 4);
4477 __m512i test_mm512_mask_ternarylogic_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) {
4478 // CHECK-LABEL: @test_mm512_mask_ternarylogic_epi64
4479 // CHECK: @llvm.x86.avx512.mask.pternlog.q.512
4480 return _mm512_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
4483 __m512i test_mm512_maskz_ternarylogic_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) {
4484 // CHECK-LABEL: @test_mm512_maskz_ternarylogic_epi64
4485 // CHECK: @llvm.x86.avx512.maskz.pternlog.q.512
4486 return _mm512_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
4489 __m512 test_mm512_shuffle_f32x4(__m512 __A, __m512 __B) {
4490 // CHECK-LABEL: @test_mm512_shuffle_f32x4
4491 // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
4492 return _mm512_shuffle_f32x4(__A, __B, 4);
4495 __m512 test_mm512_mask_shuffle_f32x4(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
4496 // CHECK-LABEL: @test_mm512_mask_shuffle_f32x4
4497 // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
4498 return _mm512_mask_shuffle_f32x4(__W, __U, __A, __B, 4);
4501 __m512 test_mm512_maskz_shuffle_f32x4(__mmask16 __U, __m512 __A, __m512 __B) {
4502 // CHECK-LABEL: @test_mm512_maskz_shuffle_f32x4
4503 // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
4504 return _mm512_maskz_shuffle_f32x4(__U, __A, __B, 4);
4507 __m512d test_mm512_shuffle_f64x2(__m512d __A, __m512d __B) {
4508 // CHECK-LABEL: @test_mm512_shuffle_f64x2
4509 // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
4510 return _mm512_shuffle_f64x2(__A, __B, 4);
4513 __m512d test_mm512_mask_shuffle_f64x2(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
4514 // CHECK-LABEL: @test_mm512_mask_shuffle_f64x2
4515 // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
4516 return _mm512_mask_shuffle_f64x2(__W, __U, __A, __B, 4);
4519 __m512d test_mm512_maskz_shuffle_f64x2(__mmask8 __U, __m512d __A, __m512d __B) {
4520 // CHECK-LABEL: @test_mm512_maskz_shuffle_f64x2
4521 // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
4522 return _mm512_maskz_shuffle_f64x2(__U, __A, __B, 4);
4525 __m512i test_mm512_shuffle_i32x4(__m512i __A, __m512i __B) {
4526 // CHECK-LABEL: @test_mm512_shuffle_i32x4
4527 // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
4528 return _mm512_shuffle_i32x4(__A, __B, 4);
4531 __m512i test_mm512_mask_shuffle_i32x4(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
4532 // CHECK-LABEL: @test_mm512_mask_shuffle_i32x4
4533 // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
4534 return _mm512_mask_shuffle_i32x4(__W, __U, __A, __B, 4);
4537 __m512i test_mm512_maskz_shuffle_i32x4(__mmask16 __U, __m512i __A, __m512i __B) {
4538 // CHECK-LABEL: @test_mm512_maskz_shuffle_i32x4
4539 // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
4540 return _mm512_maskz_shuffle_i32x4(__U, __A, __B, 4);
4543 __m512i test_mm512_shuffle_i64x2(__m512i __A, __m512i __B) {
4544 // CHECK-LABEL: @test_mm512_shuffle_i64x2
4545 // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
4546 return _mm512_shuffle_i64x2(__A, __B, 4);
4549 __m512i test_mm512_mask_shuffle_i64x2(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
4550 // CHECK-LABEL: @test_mm512_mask_shuffle_i64x2
4551 // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
4552 return _mm512_mask_shuffle_i64x2(__W, __U, __A, __B, 4);
4555 __m512i test_mm512_maskz_shuffle_i64x2(__mmask8 __U, __m512i __A, __m512i __B) {
4556 // CHECK-LABEL: @test_mm512_maskz_shuffle_i64x2
4557 // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
4558 return _mm512_maskz_shuffle_i64x2(__U, __A, __B, 4);
4561 __m512d test_mm512_shuffle_pd(__m512d __M, __m512d __V) {
4562 // CHECK-LABEL: @test_mm512_shuffle_pd
4563 // 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>
4564 return _mm512_shuffle_pd(__M, __V, 4);
4567 __m512d test_mm512_mask_shuffle_pd(__m512d __W, __mmask8 __U, __m512d __M, __m512d __V) {
4568 // CHECK-LABEL: @test_mm512_mask_shuffle_pd
4569 // 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>
4570 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4571 return _mm512_mask_shuffle_pd(__W, __U, __M, __V, 4);
4574 __m512d test_mm512_maskz_shuffle_pd(__mmask8 __U, __m512d __M, __m512d __V) {
4575 // CHECK-LABEL: @test_mm512_maskz_shuffle_pd
4576 // 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>
4577 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4578 return _mm512_maskz_shuffle_pd(__U, __M, __V, 4);
4581 __m512 test_mm512_shuffle_ps(__m512 __M, __m512 __V) {
4582 // CHECK-LABEL: @test_mm512_shuffle_ps
4583 // 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>
4584 return _mm512_shuffle_ps(__M, __V, 4);
4587 __m512 test_mm512_mask_shuffle_ps(__m512 __W, __mmask16 __U, __m512 __M, __m512 __V) {
4588 // CHECK-LABEL: @test_mm512_mask_shuffle_ps
4589 // 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>
4590 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4591 return _mm512_mask_shuffle_ps(__W, __U, __M, __V, 4);
4594 __m512 test_mm512_maskz_shuffle_ps(__mmask16 __U, __m512 __M, __m512 __V) {
4595 // CHECK-LABEL: @test_mm512_maskz_shuffle_ps
4596 // 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>
4597 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4598 return _mm512_maskz_shuffle_ps(__U, __M, __V, 4);
4601 __m128d test_mm_sqrt_round_sd(__m128d __A, __m128d __B) {
4602 // CHECK-LABEL: @test_mm_sqrt_round_sd
4603 // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4604 return _mm_sqrt_round_sd(__A, __B, 4);
4607 __m128d test_mm_mask_sqrt_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
4608 // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4609 return _mm_mask_sqrt_sd(__W,__U,__A,__B);
4612 __m128d test_mm_mask_sqrt_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
4613 // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4614 return _mm_mask_sqrt_round_sd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4617 __m128d test_mm_maskz_sqrt_sd(__mmask8 __U, __m128d __A, __m128d __B){
4618 // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4619 return _mm_maskz_sqrt_sd(__U,__A,__B);
4622 __m128d test_mm_maskz_sqrt_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
4623 // CHECK: @llvm.x86.avx512.mask.sqrt.sd
4624 return _mm_maskz_sqrt_round_sd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4627 __m128 test_mm_sqrt_round_ss(__m128 __A, __m128 __B) {
4628 // CHECK-LABEL: @test_mm_sqrt_round_ss
4629 // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4630 return _mm_sqrt_round_ss(__A, __B, 4);
4633 __m128 test_mm_mask_sqrt_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
4634 // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4635 return _mm_mask_sqrt_ss(__W,__U,__A,__B);
4638 __m128 test_mm_mask_sqrt_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
4639 // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4640 return _mm_mask_sqrt_round_ss(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4643 __m128 test_mm_maskz_sqrt_ss(__mmask8 __U, __m128 __A, __m128 __B){
4644 // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4645 return _mm_maskz_sqrt_ss(__U,__A,__B);
4648 __m128 test_mm_maskz_sqrt_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
4649 // CHECK: @llvm.x86.avx512.mask.sqrt.ss
4650 return _mm_maskz_sqrt_round_ss(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
4653 __m512 test_mm512_broadcast_f32x4(float const* __A) {
4654 // CHECK-LABEL: @test_mm512_broadcast_f32x4
4655 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4656 return _mm512_broadcast_f32x4(_mm_loadu_ps(__A));
4659 __m512 test_mm512_mask_broadcast_f32x4(__m512 __O, __mmask16 __M, float const* __A) {
4660 // CHECK-LABEL: @test_mm512_mask_broadcast_f32x4
4661 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4662 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4663 return _mm512_mask_broadcast_f32x4(__O, __M, _mm_loadu_ps(__A));
4666 __m512 test_mm512_maskz_broadcast_f32x4(__mmask16 __M, float const* __A) {
4667 // CHECK-LABEL: @test_mm512_maskz_broadcast_f32x4
4668 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4669 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4670 return _mm512_maskz_broadcast_f32x4(__M, _mm_loadu_ps(__A));
4673 __m512d test_mm512_broadcast_f64x4(float const* __A) {
4674 // CHECK-LABEL: @test_mm512_broadcast_f64x4
4675 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4676 return _mm512_broadcast_f64x4(_mm256_loadu_ps(__A));
4679 __m512d test_mm512_mask_broadcast_f64x4(__m512d __O, __mmask8 __M, float const* __A) {
4680 // CHECK-LABEL: @test_mm512_mask_broadcast_f64x4
4681 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4682 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4683 return _mm512_mask_broadcast_f64x4(__O, __M, _mm256_loadu_ps(__A));
4686 __m512d test_mm512_maskz_broadcast_f64x4(__mmask8 __M, float const* __A) {
4687 // CHECK-LABEL: @test_mm512_maskz_broadcast_f64x4
4688 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4689 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4690 return _mm512_maskz_broadcast_f64x4(__M, _mm256_loadu_ps(__A));
4693 __m512i test_mm512_broadcast_i32x4(__m128i const* __A) {
4694 // CHECK-LABEL: @test_mm512_broadcast_i32x4
4695 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4696 return _mm512_broadcast_i32x4(_mm_loadu_si128(__A));
4699 __m512i test_mm512_mask_broadcast_i32x4(__m512i __O, __mmask16 __M, __m128i const* __A) {
4700 // CHECK-LABEL: @test_mm512_mask_broadcast_i32x4
4701 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4702 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4703 return _mm512_mask_broadcast_i32x4(__O, __M, _mm_loadu_si128(__A));
4706 __m512i test_mm512_maskz_broadcast_i32x4(__mmask16 __M, __m128i const* __A) {
4707 // CHECK-LABEL: @test_mm512_maskz_broadcast_i32x4
4708 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4709 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4710 return _mm512_maskz_broadcast_i32x4(__M, _mm_loadu_si128(__A));
4713 __m512i test_mm512_broadcast_i64x4(__m256i const* __A) {
4714 // CHECK-LABEL: @test_mm512_broadcast_i64x4
4715 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4716 return _mm512_broadcast_i64x4(_mm256_loadu_si256(__A));
4719 __m512i test_mm512_mask_broadcast_i64x4(__m512i __O, __mmask8 __M, __m256i const* __A) {
4720 // CHECK-LABEL: @test_mm512_mask_broadcast_i64x4
4721 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4722 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4723 return _mm512_mask_broadcast_i64x4(__O, __M, _mm256_loadu_si256(__A));
4726 __m512i test_mm512_maskz_broadcast_i64x4(__mmask8 __M, __m256i const* __A) {
4727 // CHECK-LABEL: @test_mm512_maskz_broadcast_i64x4
4728 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
4729 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4730 return _mm512_maskz_broadcast_i64x4(__M, _mm256_loadu_si256(__A));
4733 __m512d test_mm512_broadcastsd_pd(__m128d __A) {
4734 // CHECK-LABEL: @test_mm512_broadcastsd_pd
4735 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> zeroinitializer, <8 x i32> zeroinitializer
4736 return _mm512_broadcastsd_pd(__A);
4739 __m512d test_mm512_mask_broadcastsd_pd(__m512d __O, __mmask8 __M, __m128d __A) {
4740 // CHECK-LABEL: @test_mm512_mask_broadcastsd_pd
4741 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> zeroinitializer, <8 x i32> zeroinitializer
4742 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4743 return _mm512_mask_broadcastsd_pd(__O, __M, __A);
4746 __m512d test_mm512_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) {
4747 // CHECK-LABEL: @test_mm512_maskz_broadcastsd_pd
4748 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> zeroinitializer, <8 x i32> zeroinitializer
4749 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
4750 return _mm512_maskz_broadcastsd_pd(__M, __A);
4753 __m512 test_mm512_broadcastss_ps(__m128 __A) {
4754 // CHECK-LABEL: @test_mm512_broadcastss_ps
4755 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> zeroinitializer, <16 x i32> zeroinitializer
4756 return _mm512_broadcastss_ps(__A);
4759 __m512 test_mm512_mask_broadcastss_ps(__m512 __O, __mmask16 __M, __m128 __A) {
4760 // CHECK-LABEL: @test_mm512_mask_broadcastss_ps
4761 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> zeroinitializer, <16 x i32> zeroinitializer
4762 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4763 return _mm512_mask_broadcastss_ps(__O, __M, __A);
4766 __m512 test_mm512_maskz_broadcastss_ps(__mmask16 __M, __m128 __A) {
4767 // CHECK-LABEL: @test_mm512_maskz_broadcastss_ps
4768 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> zeroinitializer, <16 x i32> zeroinitializer
4769 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
4770 return _mm512_maskz_broadcastss_ps(__M, __A);
4773 __m512i test_mm512_broadcastd_epi32(__m128i __A) {
4774 // CHECK-LABEL: @test_mm512_broadcastd_epi32
4775 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> zeroinitializer, <16 x i32> zeroinitializer
4776 return _mm512_broadcastd_epi32(__A);
4779 __m512i test_mm512_mask_broadcastd_epi32(__m512i __O, __mmask16 __M, __m128i __A) {
4780 // CHECK-LABEL: @test_mm512_mask_broadcastd_epi32
4781 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> zeroinitializer, <16 x i32> zeroinitializer
4782 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4783 return _mm512_mask_broadcastd_epi32(__O, __M, __A);
4786 __m512i test_mm512_maskz_broadcastd_epi32(__mmask16 __M, __m128i __A) {
4787 // CHECK-LABEL: @test_mm512_maskz_broadcastd_epi32
4788 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> zeroinitializer, <16 x i32> zeroinitializer
4789 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4790 return _mm512_maskz_broadcastd_epi32(__M, __A);
4793 __m512i test_mm512_broadcastq_epi64(__m128i __A) {
4794 // CHECK-LABEL: @test_mm512_broadcastq_epi64
4795 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> zeroinitializer, <8 x i32> zeroinitializer
4796 return _mm512_broadcastq_epi64(__A);
4799 __m512i test_mm512_mask_broadcastq_epi64(__m512i __O, __mmask8 __M, __m128i __A) {
4800 // CHECK-LABEL: @test_mm512_mask_broadcastq_epi64
4801 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> zeroinitializer, <8 x i32> zeroinitializer
4802 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4803 return _mm512_mask_broadcastq_epi64(__O, __M, __A);
4806 __m512i test_mm512_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
4807 // CHECK-LABEL: @test_mm512_maskz_broadcastq_epi64
4808 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> zeroinitializer, <8 x i32> zeroinitializer
4809 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
4810 return _mm512_maskz_broadcastq_epi64(__M, __A);
4813 __m128i test_mm512_cvtsepi32_epi8(__m512i __A) {
4814 // CHECK-LABEL: @test_mm512_cvtsepi32_epi8
4815 // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
4816 return _mm512_cvtsepi32_epi8(__A);
4819 __m128i test_mm512_mask_cvtsepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
4820 // CHECK-LABEL: @test_mm512_mask_cvtsepi32_epi8
4821 // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
4822 return _mm512_mask_cvtsepi32_epi8(__O, __M, __A);
4825 __m128i test_mm512_maskz_cvtsepi32_epi8(__mmask16 __M, __m512i __A) {
4826 // CHECK-LABEL: @test_mm512_maskz_cvtsepi32_epi8
4827 // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
4828 return _mm512_maskz_cvtsepi32_epi8(__M, __A);
4831 void test_mm512_mask_cvtsepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
4832 // CHECK-LABEL: @test_mm512_mask_cvtsepi32_storeu_epi8
4833 // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.512
4834 return _mm512_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
4837 __m256i test_mm512_cvtsepi32_epi16(__m512i __A) {
4838 // CHECK-LABEL: @test_mm512_cvtsepi32_epi16
4839 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
4840 return _mm512_cvtsepi32_epi16(__A);
4843 __m256i test_mm512_mask_cvtsepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
4844 // CHECK-LABEL: @test_mm512_mask_cvtsepi32_epi16
4845 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
4846 return _mm512_mask_cvtsepi32_epi16(__O, __M, __A);
4849 __m256i test_mm512_maskz_cvtsepi32_epi16(__mmask16 __M, __m512i __A) {
4850 // CHECK-LABEL: @test_mm512_maskz_cvtsepi32_epi16
4851 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
4852 return _mm512_maskz_cvtsepi32_epi16(__M, __A);
4855 void test_mm512_mask_cvtsepi32_storeu_epi16(void *__P, __mmask16 __M, __m512i __A) {
4856 // CHECK-LABEL: @test_mm512_mask_cvtsepi32_storeu_epi16
4857 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.512
4858 return _mm512_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
4861 __m128i test_mm512_cvtsepi64_epi8(__m512i __A) {
4862 // CHECK-LABEL: @test_mm512_cvtsepi64_epi8
4863 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
4864 return _mm512_cvtsepi64_epi8(__A);
4867 __m128i test_mm512_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
4868 // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi8
4869 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
4870 return _mm512_mask_cvtsepi64_epi8(__O, __M, __A);
4873 __m128i test_mm512_maskz_cvtsepi64_epi8(__mmask8 __M, __m512i __A) {
4874 // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi8
4875 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
4876 return _mm512_maskz_cvtsepi64_epi8(__M, __A);
4879 void test_mm512_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
4880 // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi8
4881 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.512
4882 return _mm512_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
4885 __m256i test_mm512_cvtsepi64_epi32(__m512i __A) {
4886 // CHECK-LABEL: @test_mm512_cvtsepi64_epi32
4887 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
4888 return _mm512_cvtsepi64_epi32(__A);
4891 __m256i test_mm512_mask_cvtsepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
4892 // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi32
4893 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
4894 return _mm512_mask_cvtsepi64_epi32(__O, __M, __A);
4897 __m256i test_mm512_maskz_cvtsepi64_epi32(__mmask8 __M, __m512i __A) {
4898 // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi32
4899 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
4900 return _mm512_maskz_cvtsepi64_epi32(__M, __A);
4903 void test_mm512_mask_cvtsepi64_storeu_epi32(void *__P, __mmask8 __M, __m512i __A) {
4904 // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi32
4905 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.512
4906 return _mm512_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
4909 __m128i test_mm512_cvtsepi64_epi16(__m512i __A) {
4910 // CHECK-LABEL: @test_mm512_cvtsepi64_epi16
4911 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
4912 return _mm512_cvtsepi64_epi16(__A);
4915 __m128i test_mm512_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
4916 // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi16
4917 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
4918 return _mm512_mask_cvtsepi64_epi16(__O, __M, __A);
4921 __m128i test_mm512_maskz_cvtsepi64_epi16(__mmask8 __M, __m512i __A) {
4922 // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi16
4923 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
4924 return _mm512_maskz_cvtsepi64_epi16(__M, __A);
4927 void test_mm512_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m512i __A) {
4928 // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi16
4929 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.512
4930 return _mm512_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
4933 __m128i test_mm512_cvtusepi32_epi8(__m512i __A) {
4934 // CHECK-LABEL: @test_mm512_cvtusepi32_epi8
4935 // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
4936 return _mm512_cvtusepi32_epi8(__A);
4939 __m128i test_mm512_mask_cvtusepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
4940 // CHECK-LABEL: @test_mm512_mask_cvtusepi32_epi8
4941 // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
4942 return _mm512_mask_cvtusepi32_epi8(__O, __M, __A);
4945 __m128i test_mm512_maskz_cvtusepi32_epi8(__mmask16 __M, __m512i __A) {
4946 // CHECK-LABEL: @test_mm512_maskz_cvtusepi32_epi8
4947 // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
4948 return _mm512_maskz_cvtusepi32_epi8(__M, __A);
4951 void test_mm512_mask_cvtusepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
4952 // CHECK-LABEL: @test_mm512_mask_cvtusepi32_storeu_epi8
4953 // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.512
4954 return _mm512_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
4957 __m256i test_mm512_cvtusepi32_epi16(__m512i __A) {
4958 // CHECK-LABEL: @test_mm512_cvtusepi32_epi16
4959 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
4960 return _mm512_cvtusepi32_epi16(__A);
4963 __m256i test_mm512_mask_cvtusepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
4964 // CHECK-LABEL: @test_mm512_mask_cvtusepi32_epi16
4965 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
4966 return _mm512_mask_cvtusepi32_epi16(__O, __M, __A);
4969 __m256i test_mm512_maskz_cvtusepi32_epi16(__mmask16 __M, __m512i __A) {
4970 // CHECK-LABEL: @test_mm512_maskz_cvtusepi32_epi16
4971 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
4972 return _mm512_maskz_cvtusepi32_epi16(__M, __A);
4975 void test_mm512_mask_cvtusepi32_storeu_epi16(void *__P, __mmask16 __M, __m512i __A) {
4976 // CHECK-LABEL: @test_mm512_mask_cvtusepi32_storeu_epi16
4977 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.512
4978 return _mm512_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
4981 __m128i test_mm512_cvtusepi64_epi8(__m512i __A) {
4982 // CHECK-LABEL: @test_mm512_cvtusepi64_epi8
4983 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
4984 return _mm512_cvtusepi64_epi8(__A);
4987 __m128i test_mm512_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
4988 // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi8
4989 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
4990 return _mm512_mask_cvtusepi64_epi8(__O, __M, __A);
4993 __m128i test_mm512_maskz_cvtusepi64_epi8(__mmask8 __M, __m512i __A) {
4994 // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi8
4995 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
4996 return _mm512_maskz_cvtusepi64_epi8(__M, __A);
4999 void test_mm512_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
5000 // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi8
5001 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.512
5002 return _mm512_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
5005 __m256i test_mm512_cvtusepi64_epi32(__m512i __A) {
5006 // CHECK-LABEL: @test_mm512_cvtusepi64_epi32
5007 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
5008 return _mm512_cvtusepi64_epi32(__A);
5011 __m256i test_mm512_mask_cvtusepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
5012 // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi32
5013 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
5014 return _mm512_mask_cvtusepi64_epi32(__O, __M, __A);
5017 __m256i test_mm512_maskz_cvtusepi64_epi32(__mmask8 __M, __m512i __A) {
5018 // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi32
5019 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
5020 return _mm512_maskz_cvtusepi64_epi32(__M, __A);
5023 void test_mm512_mask_cvtusepi64_storeu_epi32(void* __P, __mmask8 __M, __m512i __A) {
5024 // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi32
5025 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.512
5026 return _mm512_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
5029 __m128i test_mm512_cvtusepi64_epi16(__m512i __A) {
5030 // CHECK-LABEL: @test_mm512_cvtusepi64_epi16
5031 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
5032 return _mm512_cvtusepi64_epi16(__A);
5035 __m128i test_mm512_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
5036 // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi16
5037 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
5038 return _mm512_mask_cvtusepi64_epi16(__O, __M, __A);
5041 __m128i test_mm512_maskz_cvtusepi64_epi16(__mmask8 __M, __m512i __A) {
5042 // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi16
5043 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
5044 return _mm512_maskz_cvtusepi64_epi16(__M, __A);
5047 void test_mm512_mask_cvtusepi64_storeu_epi16(void *__P, __mmask8 __M, __m512i __A) {
5048 // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi16
5049 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.512
5050 return _mm512_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
5053 __m128i test_mm512_cvtepi32_epi8(__m512i __A) {
5054 // CHECK-LABEL: @test_mm512_cvtepi32_epi8
5055 // CHECK: @llvm.x86.avx512.mask.pmov.db.512
5056 return _mm512_cvtepi32_epi8(__A);
5059 __m128i test_mm512_mask_cvtepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
5060 // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi8
5061 // CHECK: @llvm.x86.avx512.mask.pmov.db.512
5062 return _mm512_mask_cvtepi32_epi8(__O, __M, __A);
5065 __m128i test_mm512_maskz_cvtepi32_epi8(__mmask16 __M, __m512i __A) {
5066 // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi8
5067 // CHECK: @llvm.x86.avx512.mask.pmov.db.512
5068 return _mm512_maskz_cvtepi32_epi8(__M, __A);
5071 void test_mm512_mask_cvtepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
5072 // CHECK-LABEL: @test_mm512_mask_cvtepi32_storeu_epi8
5073 // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.512
5074 return _mm512_mask_cvtepi32_storeu_epi8(__P, __M, __A);
5077 __m256i test_mm512_cvtepi32_epi16(__m512i __A) {
5078 // CHECK-LABEL: @test_mm512_cvtepi32_epi16
5079 // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
5080 return _mm512_cvtepi32_epi16(__A);
5083 __m256i test_mm512_mask_cvtepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
5084 // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi16
5085 // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
5086 return _mm512_mask_cvtepi32_epi16(__O, __M, __A);
5089 __m256i test_mm512_maskz_cvtepi32_epi16(__mmask16 __M, __m512i __A) {
5090 // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi16
5091 // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
5092 return _mm512_maskz_cvtepi32_epi16(__M, __A);
5095 void test_mm512_mask_cvtepi32_storeu_epi16(void * __P, __mmask16 __M, __m512i __A) {
5096 // CHECK-LABEL: @test_mm512_mask_cvtepi32_storeu_epi16
5097 // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.512
5098 return _mm512_mask_cvtepi32_storeu_epi16(__P, __M, __A);
5101 __m128i test_mm512_cvtepi64_epi8(__m512i __A) {
5102 // CHECK-LABEL: @test_mm512_cvtepi64_epi8
5103 // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
5104 return _mm512_cvtepi64_epi8(__A);
5107 __m128i test_mm512_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
5108 // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi8
5109 // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
5110 return _mm512_mask_cvtepi64_epi8(__O, __M, __A);
5113 __m128i test_mm512_maskz_cvtepi64_epi8(__mmask8 __M, __m512i __A) {
5114 // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi8
5115 // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
5116 return _mm512_maskz_cvtepi64_epi8(__M, __A);
5119 void test_mm512_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
5120 // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi8
5121 // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.512
5122 return _mm512_mask_cvtepi64_storeu_epi8(__P, __M, __A);
5125 __m256i test_mm512_cvtepi64_epi32(__m512i __A) {
5126 // CHECK-LABEL: @test_mm512_cvtepi64_epi32
5127 // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
5128 return _mm512_cvtepi64_epi32(__A);
5131 __m256i test_mm512_mask_cvtepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
5132 // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi32
5133 // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
5134 return _mm512_mask_cvtepi64_epi32(__O, __M, __A);
5137 __m256i test_mm512_maskz_cvtepi64_epi32(__mmask8 __M, __m512i __A) {
5138 // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi32
5139 // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
5140 return _mm512_maskz_cvtepi64_epi32(__M, __A);
5143 void test_mm512_mask_cvtepi64_storeu_epi32(void* __P, __mmask8 __M, __m512i __A) {
5144 // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi32
5145 // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.512
5146 return _mm512_mask_cvtepi64_storeu_epi32(__P, __M, __A);
5149 __m128i test_mm512_cvtepi64_epi16(__m512i __A) {
5150 // CHECK-LABEL: @test_mm512_cvtepi64_epi16
5151 // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
5152 return _mm512_cvtepi64_epi16(__A);
5155 __m128i test_mm512_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
5156 // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi16
5157 // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
5158 return _mm512_mask_cvtepi64_epi16(__O, __M, __A);
5161 __m128i test_mm512_maskz_cvtepi64_epi16(__mmask8 __M, __m512i __A) {
5162 // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi16
5163 // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
5164 return _mm512_maskz_cvtepi64_epi16(__M, __A);
5167 void test_mm512_mask_cvtepi64_storeu_epi16(void *__P, __mmask8 __M, __m512i __A) {
5168 // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi16
5169 // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.512
5170 return _mm512_mask_cvtepi64_storeu_epi16(__P, __M, __A);
5173 __m128i test_mm512_extracti32x4_epi32(__m512i __A) {
5174 // CHECK-LABEL: @test_mm512_extracti32x4_epi32
5175 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <4 x i32> <i32 12, i32 13, i32 14, i32 15>
5176 return _mm512_extracti32x4_epi32(__A, 3);
5179 __m128i test_mm512_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m512i __A) {
5180 // CHECK-LABEL: @test_mm512_mask_extracti32x4_epi32
5181 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <4 x i32> <i32 12, i32 13, i32 14, i32 15>
5182 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5183 return _mm512_mask_extracti32x4_epi32(__W, __U, __A, 3);
5186 __m128i test_mm512_maskz_extracti32x4_epi32(__mmask8 __U, __m512i __A) {
5187 // CHECK-LABEL: @test_mm512_maskz_extracti32x4_epi32
5188 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <4 x i32> <i32 12, i32 13, i32 14, i32 15>
5189 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5190 return _mm512_maskz_extracti32x4_epi32(__U, __A, 3);
5193 __m256i test_mm512_extracti64x4_epi64(__m512i __A) {
5194 // CHECK-LABEL: @test_mm512_extracti64x4_epi64
5195 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> zeroinitializer, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
5196 return _mm512_extracti64x4_epi64(__A, 1);
5199 __m256i test_mm512_mask_extracti64x4_epi64(__m256i __W, __mmask8 __U, __m512i __A) {
5200 // CHECK-LABEL: @test_mm512_mask_extracti64x4_epi64
5201 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> zeroinitializer, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
5202 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5203 return _mm512_mask_extracti64x4_epi64(__W, __U, __A, 1);
5206 __m256i test_mm512_maskz_extracti64x4_epi64(__mmask8 __U, __m512i __A) {
5207 // CHECK-LABEL: @test_mm512_maskz_extracti64x4_epi64
5208 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> zeroinitializer, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
5209 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5210 return _mm512_maskz_extracti64x4_epi64(__U, __A, 1);
5213 __m512d test_mm512_insertf64x4(__m512d __A, __m256d __B) {
5214 // CHECK-LABEL: @test_mm512_insertf64x4
5215 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
5216 return _mm512_insertf64x4(__A, __B, 1);
5219 __m512d test_mm512_mask_insertf64x4(__m512d __W, __mmask8 __U, __m512d __A, __m256d __B) {
5220 // CHECK-LABEL: @test_mm512_mask_insertf64x4
5221 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
5222 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
5223 return _mm512_mask_insertf64x4(__W, __U, __A, __B, 1);
5226 __m512d test_mm512_maskz_insertf64x4(__mmask8 __U, __m512d __A, __m256d __B) {
5227 // CHECK-LABEL: @test_mm512_maskz_insertf64x4
5228 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
5229 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
5230 return _mm512_maskz_insertf64x4(__U, __A, __B, 1);
5233 __m512i test_mm512_inserti64x4(__m512i __A, __m256i __B) {
5234 // CHECK-LABEL: @test_mm512_inserti64x4
5235 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
5236 return _mm512_inserti64x4(__A, __B, 1);
5239 __m512i test_mm512_mask_inserti64x4(__m512i __W, __mmask8 __U, __m512i __A, __m256i __B) {
5240 // CHECK-LABEL: @test_mm512_mask_inserti64x4
5241 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
5242 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
5243 return _mm512_mask_inserti64x4(__W, __U, __A, __B, 1);
5246 __m512i test_mm512_maskz_inserti64x4(__mmask8 __U, __m512i __A, __m256i __B) {
5247 // CHECK-LABEL: @test_mm512_maskz_inserti64x4
5248 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
5249 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
5250 return _mm512_maskz_inserti64x4(__U, __A, __B, 1);
5253 __m512 test_mm512_insertf32x4(__m512 __A, __m128 __B) {
5254 // CHECK-LABEL: @test_mm512_insertf32x4
5255 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 16, i32 17, i32 18, i32 19, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
5256 return _mm512_insertf32x4(__A, __B, 1);
5259 __m512 test_mm512_mask_insertf32x4(__m512 __W, __mmask16 __U, __m512 __A, __m128 __B) {
5260 // CHECK-LABEL: @test_mm512_mask_insertf32x4
5261 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 16, i32 17, i32 18, i32 19, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
5262 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
5263 return _mm512_mask_insertf32x4(__W, __U, __A, __B, 1);
5266 __m512 test_mm512_maskz_insertf32x4(__mmask16 __U, __m512 __A, __m128 __B) {
5267 // CHECK-LABEL: @test_mm512_maskz_insertf32x4
5268 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 16, i32 17, i32 18, i32 19, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
5269 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
5270 return _mm512_maskz_insertf32x4(__U, __A, __B, 1);
5273 __m512i test_mm512_inserti32x4(__m512i __A, __m128i __B) {
5274 // CHECK-LABEL: @test_mm512_inserti32x4
5275 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 16, i32 17, i32 18, i32 19, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
5276 return _mm512_inserti32x4(__A, __B, 1);
5279 __m512i test_mm512_mask_inserti32x4(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
5280 // CHECK-LABEL: @test_mm512_mask_inserti32x4
5281 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 16, i32 17, i32 18, i32 19, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
5282 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
5283 return _mm512_mask_inserti32x4(__W, __U, __A, __B, 1);
5286 __m512i test_mm512_maskz_inserti32x4(__mmask16 __U, __m512i __A, __m128i __B) {
5287 // CHECK-LABEL: @test_mm512_maskz_inserti32x4
5288 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 16, i32 17, i32 18, i32 19, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
5289 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
5290 return _mm512_maskz_inserti32x4(__U, __A, __B, 1);
5293 __m512d test_mm512_getmant_round_pd(__m512d __A) {
5294 // CHECK-LABEL: @test_mm512_getmant_round_pd
5295 // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
5296 return _mm512_getmant_round_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
5299 __m512d test_mm512_mask_getmant_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
5300 // CHECK-LABEL: @test_mm512_mask_getmant_round_pd
5301 // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
5302 return _mm512_mask_getmant_round_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
5305 __m512d test_mm512_maskz_getmant_round_pd(__mmask8 __U, __m512d __A) {
5306 // CHECK-LABEL: @test_mm512_maskz_getmant_round_pd
5307 // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
5308 return _mm512_maskz_getmant_round_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
5311 __m512d test_mm512_getmant_pd(__m512d __A) {
5312 // CHECK-LABEL: @test_mm512_getmant_pd
5313 // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
5314 return _mm512_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5317 __m512d test_mm512_mask_getmant_pd(__m512d __W, __mmask8 __U, __m512d __A) {
5318 // CHECK-LABEL: @test_mm512_mask_getmant_pd
5319 // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
5320 return _mm512_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5323 __m512d test_mm512_maskz_getmant_pd(__mmask8 __U, __m512d __A) {
5324 // CHECK-LABEL: @test_mm512_maskz_getmant_pd
5325 // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
5326 return _mm512_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5329 __m512 test_mm512_getmant_round_ps(__m512 __A) {
5330 // CHECK-LABEL: @test_mm512_getmant_round_ps
5331 // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5332 return _mm512_getmant_round_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
5335 __m512 test_mm512_mask_getmant_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5336 // CHECK-LABEL: @test_mm512_mask_getmant_round_ps
5337 // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5338 return _mm512_mask_getmant_round_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
5341 __m512 test_mm512_maskz_getmant_round_ps(__mmask16 __U, __m512 __A) {
5342 // CHECK-LABEL: @test_mm512_maskz_getmant_round_ps
5343 // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5344 return _mm512_maskz_getmant_round_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
5347 __m512 test_mm512_getmant_ps(__m512 __A) {
5348 // CHECK-LABEL: @test_mm512_getmant_ps
5349 // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5350 return _mm512_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5353 __m512 test_mm512_mask_getmant_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5354 // CHECK-LABEL: @test_mm512_mask_getmant_ps
5355 // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5356 return _mm512_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5359 __m512 test_mm512_maskz_getmant_ps(__mmask16 __U, __m512 __A) {
5360 // CHECK-LABEL: @test_mm512_maskz_getmant_ps
5361 // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
5362 return _mm512_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
5365 __m512d test_mm512_getexp_round_pd(__m512d __A) {
5366 // CHECK-LABEL: @test_mm512_getexp_round_pd
5367 // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5368 return _mm512_getexp_round_pd(__A, _MM_FROUND_CUR_DIRECTION);
5371 __m512d test_mm512_mask_getexp_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
5372 // CHECK-LABEL: @test_mm512_mask_getexp_round_pd
5373 // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5374 return _mm512_mask_getexp_round_pd(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
5377 __m512d test_mm512_maskz_getexp_round_pd(__mmask8 __U, __m512d __A) {
5378 // CHECK-LABEL: @test_mm512_maskz_getexp_round_pd
5379 // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5380 return _mm512_maskz_getexp_round_pd(__U, __A, _MM_FROUND_CUR_DIRECTION);
5383 __m512d test_mm512_getexp_pd(__m512d __A) {
5384 // CHECK-LABEL: @test_mm512_getexp_pd
5385 // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5386 return _mm512_getexp_pd(__A);
5389 __m512d test_mm512_mask_getexp_pd(__m512d __W, __mmask8 __U, __m512d __A) {
5390 // CHECK-LABEL: @test_mm512_mask_getexp_pd
5391 // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5392 return _mm512_mask_getexp_pd(__W, __U, __A);
5395 __m512d test_mm512_maskz_getexp_pd(__mmask8 __U, __m512d __A) {
5396 // CHECK-LABEL: @test_mm512_maskz_getexp_pd
5397 // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
5398 return _mm512_maskz_getexp_pd(__U, __A);
5401 __m512 test_mm512_getexp_round_ps(__m512 __A) {
5402 // CHECK-LABEL: @test_mm512_getexp_round_ps
5403 // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5404 return _mm512_getexp_round_ps(__A, _MM_FROUND_CUR_DIRECTION);
5407 __m512 test_mm512_mask_getexp_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5408 // CHECK-LABEL: @test_mm512_mask_getexp_round_ps
5409 // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5410 return _mm512_mask_getexp_round_ps(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
5413 __m512 test_mm512_maskz_getexp_round_ps(__mmask16 __U, __m512 __A) {
5414 // CHECK-LABEL: @test_mm512_maskz_getexp_round_ps
5415 // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5416 return _mm512_maskz_getexp_round_ps(__U, __A, _MM_FROUND_CUR_DIRECTION);
5419 __m512 test_mm512_getexp_ps(__m512 __A) {
5420 // CHECK-LABEL: @test_mm512_getexp_ps
5421 // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5422 return _mm512_getexp_ps(__A);
5425 __m512 test_mm512_mask_getexp_ps(__m512 __W, __mmask16 __U, __m512 __A) {
5426 // CHECK-LABEL: @test_mm512_mask_getexp_ps
5427 // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5428 return _mm512_mask_getexp_ps(__W, __U, __A);
5431 __m512 test_mm512_maskz_getexp_ps(__mmask16 __U, __m512 __A) {
5432 // CHECK-LABEL: @test_mm512_maskz_getexp_ps
5433 // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
5434 return _mm512_maskz_getexp_ps(__U, __A);
5437 __m256 test_mm512_i64gather_ps(__m512i __index, void const *__addr) {
5438 // CHECK-LABEL: @test_mm512_i64gather_ps
5439 // CHECK: @llvm.x86.avx512.gather.qps.512
5440 return _mm512_i64gather_ps(__index, __addr, 2);
5443 __m256 test_mm512_mask_i64gather_ps(__m256 __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5444 // CHECK-LABEL: @test_mm512_mask_i64gather_ps
5445 // CHECK: @llvm.x86.avx512.gather.qps.512
5446 return _mm512_mask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
5449 __m256i test_mm512_i64gather_epi32(__m512i __index, void const *__addr) {
5450 // CHECK-LABEL: @test_mm512_i64gather_epi32
5451 // CHECK: @llvm.x86.avx512.gather.qpi.512
5452 return _mm512_i64gather_epi32(__index, __addr, 2);
5455 __m256i test_mm512_mask_i64gather_epi32(__m256i __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5456 // CHECK-LABEL: @test_mm512_mask_i64gather_epi32
5457 // CHECK: @llvm.x86.avx512.gather.qpi.512
5458 return _mm512_mask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
5461 __m512d test_mm512_i64gather_pd(__m512i __index, void const *__addr) {
5462 // CHECK-LABEL: @test_mm512_i64gather_pd
5463 // CHECK: @llvm.x86.avx512.gather.qpd.512
5464 return _mm512_i64gather_pd(__index, __addr, 2);
5467 __m512d test_mm512_mask_i64gather_pd(__m512d __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5468 // CHECK-LABEL: @test_mm512_mask_i64gather_pd
5469 // CHECK: @llvm.x86.avx512.gather.qpd.512
5470 return _mm512_mask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
5473 __m512i test_mm512_i64gather_epi64(__m512i __index, void const *__addr) {
5474 // CHECK-LABEL: @test_mm512_i64gather_epi64
5475 // CHECK: @llvm.x86.avx512.gather.qpq.512
5476 return _mm512_i64gather_epi64(__index, __addr, 2);
5479 __m512i test_mm512_mask_i64gather_epi64(__m512i __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
5480 // CHECK-LABEL: @test_mm512_mask_i64gather_epi64
5481 // CHECK: @llvm.x86.avx512.gather.qpq.512
5482 return _mm512_mask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
5485 __m512 test_mm512_i32gather_ps(__m512i __index, void const *__addr) {
5486 // CHECK-LABEL: @test_mm512_i32gather_ps
5487 // CHECK: @llvm.x86.avx512.gather.dps.512
5488 return _mm512_i32gather_ps(__index, __addr, 2);
5491 __m512 test_mm512_mask_i32gather_ps(__m512 v1_old, __mmask16 __mask, __m512i __index, void const *__addr) {
5492 // CHECK-LABEL: @test_mm512_mask_i32gather_ps
5493 // CHECK: @llvm.x86.avx512.gather.dps.512
5494 return _mm512_mask_i32gather_ps(v1_old, __mask, __index, __addr, 2);
5497 __m512i test_mm512_i32gather_epi32(__m512i __index, void const *__addr) {
5498 // CHECK-LABEL: @test_mm512_i32gather_epi32
5499 // CHECK: @llvm.x86.avx512.gather.dpi.512
5500 return _mm512_i32gather_epi32(__index, __addr, 2);
5503 __m512i test_mm512_mask_i32gather_epi32(__m512i __v1_old, __mmask16 __mask, __m512i __index, void const *__addr) {
5504 // CHECK-LABEL: @test_mm512_mask_i32gather_epi32
5505 // CHECK: @llvm.x86.avx512.gather.dpi.512
5506 return _mm512_mask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
5509 __m512d test_mm512_i32gather_pd(__m256i __index, void const *__addr) {
5510 // CHECK-LABEL: @test_mm512_i32gather_pd
5511 // CHECK: @llvm.x86.avx512.gather.dpd.512
5512 return _mm512_i32gather_pd(__index, __addr, 2);
5515 __m512d test_mm512_mask_i32gather_pd(__m512d __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
5516 // CHECK-LABEL: @test_mm512_mask_i32gather_pd
5517 // CHECK: @llvm.x86.avx512.gather.dpd.512
5518 return _mm512_mask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
5521 __m512i test_mm512_i32gather_epi64(__m256i __index, void const *__addr) {
5522 // CHECK-LABEL: @test_mm512_i32gather_epi64
5523 // CHECK: @llvm.x86.avx512.gather.dpq.512
5524 return _mm512_i32gather_epi64(__index, __addr, 2);
5527 __m512i test_mm512_mask_i32gather_epi64(__m512i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
5528 // CHECK-LABEL: @test_mm512_mask_i32gather_epi64
5529 // CHECK: @llvm.x86.avx512.gather.dpq.512
5530 return _mm512_mask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
5533 void test_mm512_i64scatter_ps(void *__addr, __m512i __index, __m256 __v1) {
5534 // CHECK-LABEL: @test_mm512_i64scatter_ps
5535 // CHECK: @llvm.x86.avx512.scatter.qps.512
5536 return _mm512_i64scatter_ps(__addr, __index, __v1, 2);
5539 void test_mm512_mask_i64scatter_ps(void *__addr, __mmask8 __mask, __m512i __index, __m256 __v1) {
5540 // CHECK-LABEL: @test_mm512_mask_i64scatter_ps
5541 // CHECK: @llvm.x86.avx512.scatter.qps.512
5542 return _mm512_mask_i64scatter_ps(__addr, __mask, __index, __v1, 2);
5545 void test_mm512_i64scatter_epi32(void *__addr, __m512i __index, __m256i __v1) {
5546 // CHECK-LABEL: @test_mm512_i64scatter_epi32
5547 // CHECK: @llvm.x86.avx512.scatter.qpi.512
5548 return _mm512_i64scatter_epi32(__addr, __index, __v1, 2);
5551 void test_mm512_mask_i64scatter_epi32(void *__addr, __mmask8 __mask, __m512i __index, __m256i __v1) {
5552 // CHECK-LABEL: @test_mm512_mask_i64scatter_epi32
5553 // CHECK: @llvm.x86.avx512.scatter.qpi.512
5554 return _mm512_mask_i64scatter_epi32(__addr, __mask, __index, __v1, 2);
5557 void test_mm512_i64scatter_pd(void *__addr, __m512i __index, __m512d __v1) {
5558 // CHECK-LABEL: @test_mm512_i64scatter_pd
5559 // CHECK: @llvm.x86.avx512.scatter.qpd.512
5560 return _mm512_i64scatter_pd(__addr, __index, __v1, 2);
5563 void test_mm512_mask_i64scatter_pd(void *__addr, __mmask8 __mask, __m512i __index, __m512d __v1) {
5564 // CHECK-LABEL: @test_mm512_mask_i64scatter_pd
5565 // CHECK: @llvm.x86.avx512.scatter.qpd.512
5566 return _mm512_mask_i64scatter_pd(__addr, __mask, __index, __v1, 2);
5569 void test_mm512_i64scatter_epi64(void *__addr, __m512i __index, __m512i __v1) {
5570 // CHECK-LABEL: @test_mm512_i64scatter_epi64
5571 // CHECK: @llvm.x86.avx512.scatter.qpq.512
5572 return _mm512_i64scatter_epi64(__addr, __index, __v1, 2);
5575 void test_mm512_mask_i64scatter_epi64(void *__addr, __mmask8 __mask, __m512i __index, __m512i __v1) {
5576 // CHECK-LABEL: @test_mm512_mask_i64scatter_epi64
5577 // CHECK: @llvm.x86.avx512.scatter.qpq.512
5578 return _mm512_mask_i64scatter_epi64(__addr, __mask, __index, __v1, 2);
5581 void test_mm512_i32scatter_ps(void *__addr, __m512i __index, __m512 __v1) {
5582 // CHECK-LABEL: @test_mm512_i32scatter_ps
5583 // CHECK: @llvm.x86.avx512.scatter.dps.512
5584 return _mm512_i32scatter_ps(__addr, __index, __v1, 2);
5587 void test_mm512_mask_i32scatter_ps(void *__addr, __mmask16 __mask, __m512i __index, __m512 __v1) {
5588 // CHECK-LABEL: @test_mm512_mask_i32scatter_ps
5589 // CHECK: @llvm.x86.avx512.scatter.dps.512
5590 return _mm512_mask_i32scatter_ps(__addr, __mask, __index, __v1, 2);
5593 void test_mm512_i32scatter_epi32(void *__addr, __m512i __index, __m512i __v1) {
5594 // CHECK-LABEL: @test_mm512_i32scatter_epi32
5595 // CHECK: @llvm.x86.avx512.scatter.dpi.512
5596 return _mm512_i32scatter_epi32(__addr, __index, __v1, 2);
5599 void test_mm512_mask_i32scatter_epi32(void *__addr, __mmask16 __mask, __m512i __index, __m512i __v1) {
5600 // CHECK-LABEL: @test_mm512_mask_i32scatter_epi32
5601 // CHECK: @llvm.x86.avx512.scatter.dpi.512
5602 return _mm512_mask_i32scatter_epi32(__addr, __mask, __index, __v1, 2);
5605 void test_mm512_i32scatter_pd(void *__addr, __m256i __index, __m512d __v1) {
5606 // CHECK-LABEL: @test_mm512_i32scatter_pd
5607 // CHECK: @llvm.x86.avx512.scatter.dpd.512
5608 return _mm512_i32scatter_pd(__addr, __index, __v1, 2);
5611 void test_mm512_mask_i32scatter_pd(void *__addr, __mmask8 __mask, __m256i __index, __m512d __v1) {
5612 // CHECK-LABEL: @test_mm512_mask_i32scatter_pd
5613 // CHECK: @llvm.x86.avx512.scatter.dpd.512
5614 return _mm512_mask_i32scatter_pd(__addr, __mask, __index, __v1, 2);
5617 void test_mm512_i32scatter_epi64(void *__addr, __m256i __index, __m512i __v1) {
5618 // CHECK-LABEL: @test_mm512_i32scatter_epi64
5619 // CHECK: @llvm.x86.avx512.scatter.dpq.512
5620 return _mm512_i32scatter_epi64(__addr, __index, __v1, 2);
5623 void test_mm512_mask_i32scatter_epi64(void *__addr, __mmask8 __mask, __m256i __index, __m512i __v1) {
5624 // CHECK-LABEL: @test_mm512_mask_i32scatter_epi64
5625 // CHECK: @llvm.x86.avx512.scatter.dpq.512
5626 return _mm512_mask_i32scatter_epi64(__addr, __mask, __index, __v1, 2);
5629 __m128d test_mm_mask_rsqrt14_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5630 // CHECK-LABEL: @test_mm_mask_rsqrt14_sd
5631 // CHECK: @llvm.x86.avx512.rsqrt14.sd
5632 return _mm_mask_rsqrt14_sd(__W, __U, __A, __B);
5635 __m128d test_mm_maskz_rsqrt14_sd(__mmask8 __U, __m128d __A, __m128d __B){
5636 // CHECK-LABEL: @test_mm_maskz_rsqrt14_sd
5637 // CHECK: @llvm.x86.avx512.rsqrt14.sd
5638 return _mm_maskz_rsqrt14_sd(__U, __A, __B);
5641 __m128 test_mm_mask_rsqrt14_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5642 // CHECK-LABEL: @test_mm_mask_rsqrt14_ss
5643 // CHECK: @llvm.x86.avx512.rsqrt14.ss
5644 return _mm_mask_rsqrt14_ss(__W, __U, __A, __B);
5647 __m128 test_mm_maskz_rsqrt14_ss(__mmask8 __U, __m128 __A, __m128 __B){
5648 // CHECK-LABEL: @test_mm_maskz_rsqrt14_ss
5649 // CHECK: @llvm.x86.avx512.rsqrt14.ss
5650 return _mm_maskz_rsqrt14_ss(__U, __A, __B);
5653 __m512d test_mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A)
5655 // CHECK-LABEL: @test_mm512_mask_rcp14_pd
5656 // CHECK: @llvm.x86.avx512.rcp14.pd.512
5657 return _mm512_mask_rcp14_pd (__W,__U,__A);
5660 __m512d test_mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A)
5662 // CHECK-LABEL: @test_mm512_maskz_rcp14_pd
5663 // CHECK: @llvm.x86.avx512.rcp14.pd.512
5664 return _mm512_maskz_rcp14_pd (__U,__A);
5667 __m512 test_mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A)
5669 // CHECK-LABEL: @test_mm512_mask_rcp14_ps
5670 // CHECK: @llvm.x86.avx512.rcp14.ps.512
5671 return _mm512_mask_rcp14_ps (__W,__U,__A);
5674 __m512 test_mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A)
5676 // CHECK-LABEL: @test_mm512_maskz_rcp14_ps
5677 // CHECK: @llvm.x86.avx512.rcp14.ps.512
5678 return _mm512_maskz_rcp14_ps (__U,__A);
5681 __m128d test_mm_mask_rcp14_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5682 // CHECK-LABEL: @test_mm_mask_rcp14_sd
5683 // CHECK: @llvm.x86.avx512.rcp14.sd
5684 return _mm_mask_rcp14_sd(__W, __U, __A, __B);
5687 __m128d test_mm_maskz_rcp14_sd(__mmask8 __U, __m128d __A, __m128d __B){
5688 // CHECK-LABEL: @test_mm_maskz_rcp14_sd
5689 // CHECK: @llvm.x86.avx512.rcp14.sd
5690 return _mm_maskz_rcp14_sd(__U, __A, __B);
5693 __m128 test_mm_mask_rcp14_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5694 // CHECK-LABEL: @test_mm_mask_rcp14_ss
5695 // CHECK: @llvm.x86.avx512.rcp14.ss
5696 return _mm_mask_rcp14_ss(__W, __U, __A, __B);
5699 __m128 test_mm_maskz_rcp14_ss(__mmask8 __U, __m128 __A, __m128 __B){
5700 // CHECK-LABEL: @test_mm_maskz_rcp14_ss
5701 // CHECK: @llvm.x86.avx512.rcp14.ss
5702 return _mm_maskz_rcp14_ss(__U, __A, __B);
5705 __m128d test_mm_mask_getexp_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5706 // CHECK-LABEL: @test_mm_mask_getexp_sd
5707 // CHECK: @llvm.x86.avx512.mask.getexp.sd
5708 return _mm_mask_getexp_sd(__W, __U, __A, __B);
5711 __m128d test_mm_mask_getexp_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5712 // CHECK-LABEL: @test_mm_mask_getexp_round_sd
5713 // CHECK: @llvm.x86.avx512.mask.getexp.sd
5714 return _mm_mask_getexp_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5717 __m128d test_mm_maskz_getexp_sd(__mmask8 __U, __m128d __A, __m128d __B){
5718 // CHECK-LABEL: @test_mm_maskz_getexp_sd
5719 // CHECK: @llvm.x86.avx512.mask.getexp.sd
5720 return _mm_maskz_getexp_sd(__U, __A, __B);
5723 __m128d test_mm_maskz_getexp_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
5724 // CHECK-LABEL: @test_mm_maskz_getexp_round_sd
5725 // CHECK: @llvm.x86.avx512.mask.getexp.sd
5726 return _mm_maskz_getexp_round_sd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5729 __m128 test_mm_mask_getexp_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5730 // CHECK-LABEL: @test_mm_mask_getexp_ss
5731 // CHECK: @llvm.x86.avx512.mask.getexp.ss
5732 return _mm_mask_getexp_ss(__W, __U, __A, __B);
5735 __m128 test_mm_mask_getexp_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5736 // CHECK-LABEL: @test_mm_mask_getexp_round_ss
5737 // CHECK: @llvm.x86.avx512.mask.getexp.ss
5738 return _mm_mask_getexp_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5741 __m128 test_mm_maskz_getexp_ss(__mmask8 __U, __m128 __A, __m128 __B){
5742 // CHECK-LABEL: @test_mm_maskz_getexp_ss
5743 // CHECK: @llvm.x86.avx512.mask.getexp.ss
5744 return _mm_maskz_getexp_ss(__U, __A, __B);
5747 __m128 test_mm_maskz_getexp_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
5748 // CHECK-LABEL: @test_mm_maskz_getexp_round_ss
5749 // CHECK: @llvm.x86.avx512.mask.getexp.ss
5750 return _mm_maskz_getexp_round_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5753 __m128d test_mm_mask_getmant_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5754 // CHECK-LABEL: @test_mm_mask_getmant_sd
5755 // CHECK: @llvm.x86.avx512.mask.getmant.sd
5756 return _mm_mask_getmant_sd(__W, __U, __A, __B, 1, 2);
5759 __m128d test_mm_mask_getmant_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5760 // CHECK-LABEL: @test_mm_mask_getmant_round_sd
5761 // CHECK: @llvm.x86.avx512.mask.getmant.sd
5762 return _mm_mask_getmant_round_sd(__W, __U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5765 __m128d test_mm_maskz_getmant_sd(__mmask8 __U, __m128d __A, __m128d __B){
5766 // CHECK-LABEL: @test_mm_maskz_getmant_sd
5767 // CHECK: @llvm.x86.avx512.mask.getmant.sd
5768 return _mm_maskz_getmant_sd(__U, __A, __B, 1, 2);
5771 __m128d test_mm_maskz_getmant_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
5772 // CHECK-LABEL: @test_mm_maskz_getmant_round_sd
5773 // CHECK: @llvm.x86.avx512.mask.getmant.sd
5774 return _mm_maskz_getmant_round_sd(__U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5777 __m128 test_mm_mask_getmant_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5778 // CHECK-LABEL: @test_mm_mask_getmant_ss
5779 // CHECK: @llvm.x86.avx512.mask.getmant.ss
5780 return _mm_mask_getmant_ss(__W, __U, __A, __B, 1, 2);
5783 __m128 test_mm_mask_getmant_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5784 // CHECK-LABEL: @test_mm_mask_getmant_round_ss
5785 // CHECK: @llvm.x86.avx512.mask.getmant.ss
5786 return _mm_mask_getmant_round_ss(__W, __U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5789 __m128 test_mm_maskz_getmant_ss(__mmask8 __U, __m128 __A, __m128 __B){
5790 // CHECK-LABEL: @test_mm_maskz_getmant_ss
5791 // CHECK: @llvm.x86.avx512.mask.getmant.ss
5792 return _mm_maskz_getmant_ss(__U, __A, __B, 1, 2);
5795 __m128 test_mm_maskz_getmant_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
5796 // CHECK-LABEL: @test_mm_maskz_getmant_round_ss
5797 // CHECK: @llvm.x86.avx512.mask.getmant.ss
5798 return _mm_maskz_getmant_round_ss(__U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
5801 __m128 test_mm_mask_fmadd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5802 // CHECK-LABEL: @test_mm_mask_fmadd_ss
5803 // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5804 return _mm_mask_fmadd_ss(__W, __U, __A, __B);
5807 __m128 test_mm_mask_fmadd_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5808 // CHECK-LABEL: @test_mm_mask_fmadd_round_ss
5809 // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5810 return _mm_mask_fmadd_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5813 __m128 test_mm_maskz_fmadd_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5814 // CHECK-LABEL: @test_mm_maskz_fmadd_ss
5815 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5816 return _mm_maskz_fmadd_ss(__U, __A, __B, __C);
5819 __m128 test_mm_maskz_fmadd_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5820 // CHECK-LABEL: @test_mm_maskz_fmadd_round_ss
5821 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5822 return _mm_maskz_fmadd_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5825 __m128 test_mm_mask3_fmadd_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5826 // CHECK-LABEL: @test_mm_mask3_fmadd_ss
5827 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5828 return _mm_mask3_fmadd_ss(__W, __X, __Y, __U);
5831 __m128 test_mm_mask3_fmadd_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5832 // CHECK-LABEL: @test_mm_mask3_fmadd_round_ss
5833 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5834 return _mm_mask3_fmadd_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5837 __m128 test_mm_mask_fmsub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5838 // CHECK-LABEL: @test_mm_mask_fmsub_ss
5839 // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5840 return _mm_mask_fmsub_ss(__W, __U, __A, __B);
5843 __m128 test_mm_mask_fmsub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5844 // CHECK-LABEL: @test_mm_mask_fmsub_round_ss
5845 // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5846 return _mm_mask_fmsub_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5849 __m128 test_mm_maskz_fmsub_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5850 // CHECK-LABEL: @test_mm_maskz_fmsub_ss
5851 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5852 return _mm_maskz_fmsub_ss(__U, __A, __B, __C);
5855 __m128 test_mm_maskz_fmsub_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5856 // CHECK-LABEL: @test_mm_maskz_fmsub_round_ss
5857 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5858 return _mm_maskz_fmsub_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5861 __m128 test_mm_mask3_fmsub_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5862 // CHECK-LABEL: @test_mm_mask3_fmsub_ss
5863 // CHECK: @llvm.x86.avx512.mask3.vfmsub.ss
5864 return _mm_mask3_fmsub_ss(__W, __X, __Y, __U);
5867 __m128 test_mm_mask3_fmsub_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5868 // CHECK-LABEL: @test_mm_mask3_fmsub_round_ss
5869 // CHECK: @llvm.x86.avx512.mask3.vfmsub.ss
5870 return _mm_mask3_fmsub_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5873 __m128 test_mm_mask_fnmadd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5874 // CHECK-LABEL: @test_mm_mask_fnmadd_ss
5875 // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5876 return _mm_mask_fnmadd_ss(__W, __U, __A, __B);
5879 __m128 test_mm_mask_fnmadd_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5880 // CHECK-LABEL: @test_mm_mask_fnmadd_round_ss
5881 // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5882 return _mm_mask_fnmadd_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5885 __m128 test_mm_maskz_fnmadd_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5886 // CHECK-LABEL: @test_mm_maskz_fnmadd_ss
5887 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5888 return _mm_maskz_fnmadd_ss(__U, __A, __B, __C);
5891 __m128 test_mm_maskz_fnmadd_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5892 // CHECK-LABEL: @test_mm_maskz_fnmadd_round_ss
5893 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5894 return _mm_maskz_fnmadd_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5897 __m128 test_mm_mask3_fnmadd_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5898 // CHECK-LABEL: @test_mm_mask3_fnmadd_ss
5899 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5900 return _mm_mask3_fnmadd_ss(__W, __X, __Y, __U);
5903 __m128 test_mm_mask3_fnmadd_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5904 // CHECK-LABEL: @test_mm_mask3_fnmadd_round_ss
5905 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
5906 return _mm_mask3_fnmadd_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5909 __m128 test_mm_mask_fnmsub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5910 // CHECK-LABEL: @test_mm_mask_fnmsub_ss
5911 // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5912 return _mm_mask_fnmsub_ss(__W, __U, __A, __B);
5915 __m128 test_mm_mask_fnmsub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
5916 // CHECK-LABEL: @test_mm_mask_fnmsub_round_ss
5917 // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
5918 return _mm_mask_fnmsub_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5921 __m128 test_mm_maskz_fnmsub_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5922 // CHECK-LABEL: @test_mm_maskz_fnmsub_ss
5923 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5924 return _mm_maskz_fnmsub_ss(__U, __A, __B, __C);
5927 __m128 test_mm_maskz_fnmsub_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
5928 // CHECK-LABEL: @test_mm_maskz_fnmsub_round_ss
5929 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
5930 return _mm_maskz_fnmsub_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5933 __m128 test_mm_mask3_fnmsub_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5934 // CHECK-LABEL: @test_mm_mask3_fnmsub_ss
5935 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ss
5936 return _mm_mask3_fnmsub_ss(__W, __X, __Y, __U);
5939 __m128 test_mm_mask3_fnmsub_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
5940 // CHECK-LABEL: @test_mm_mask3_fnmsub_round_ss
5941 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ss
5942 return _mm_mask3_fnmsub_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5945 __m128d test_mm_mask_fmadd_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5946 // CHECK-LABEL: @test_mm_mask_fmadd_sd
5947 // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5948 return _mm_mask_fmadd_sd(__W, __U, __A, __B);
5951 __m128d test_mm_mask_fmadd_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5952 // CHECK-LABEL: @test_mm_mask_fmadd_round_sd
5953 // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5954 return _mm_mask_fmadd_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5957 __m128d test_mm_maskz_fmadd_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5958 // CHECK-LABEL: @test_mm_maskz_fmadd_sd
5959 // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5960 return _mm_maskz_fmadd_sd(__U, __A, __B, __C);
5963 __m128d test_mm_maskz_fmadd_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5964 // CHECK-LABEL: @test_mm_maskz_fmadd_round_sd
5965 // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5966 return _mm_maskz_fmadd_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
5969 __m128d test_mm_mask3_fmadd_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5970 // CHECK-LABEL: @test_mm_mask3_fmadd_sd
5971 // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5972 return _mm_mask3_fmadd_sd(__W, __X, __Y, __U);
5975 __m128d test_mm_mask3_fmadd_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
5976 // CHECK-LABEL: @test_mm_mask3_fmadd_round_sd
5977 // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
5978 return _mm_mask3_fmadd_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
5981 __m128d test_mm_mask_fmsub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5982 // CHECK-LABEL: @test_mm_mask_fmsub_sd
5983 // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5984 return _mm_mask_fmsub_sd(__W, __U, __A, __B);
5987 __m128d test_mm_mask_fmsub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
5988 // CHECK-LABEL: @test_mm_mask_fmsub_round_sd
5989 // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
5990 return _mm_mask_fmsub_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
5993 __m128d test_mm_maskz_fmsub_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
5994 // CHECK-LABEL: @test_mm_maskz_fmsub_sd
5995 // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
5996 return _mm_maskz_fmsub_sd(__U, __A, __B, __C);
5999 __m128d test_mm_maskz_fmsub_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
6000 // CHECK-LABEL: @test_mm_maskz_fmsub_round_sd
6001 // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
6002 return _mm_maskz_fmsub_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
6005 __m128d test_mm_mask3_fmsub_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
6006 // CHECK-LABEL: @test_mm_mask3_fmsub_sd
6007 // CHECK: @llvm.x86.avx512.mask3.vfmsub.sd
6008 return _mm_mask3_fmsub_sd(__W, __X, __Y, __U);
6011 __m128d test_mm_mask3_fmsub_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
6012 // CHECK-LABEL: @test_mm_mask3_fmsub_round_sd
6013 // CHECK: @llvm.x86.avx512.mask3.vfmsub.sd
6014 return _mm_mask3_fmsub_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
6017 __m128d test_mm_mask_fnmadd_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
6018 // CHECK-LABEL: @test_mm_mask_fnmadd_sd
6019 // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
6020 return _mm_mask_fnmadd_sd(__W, __U, __A, __B);
6023 __m128d test_mm_mask_fnmadd_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
6024 // CHECK-LABEL: @test_mm_mask_fnmadd_round_sd
6025 // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
6026 return _mm_mask_fnmadd_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6029 __m128d test_mm_maskz_fnmadd_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
6030 // CHECK-LABEL: @test_mm_maskz_fnmadd_sd
6031 // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
6032 return _mm_maskz_fnmadd_sd(__U, __A, __B, __C);
6035 __m128d test_mm_maskz_fnmadd_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
6036 // CHECK-LABEL: @test_mm_maskz_fnmadd_round_sd
6037 // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
6038 return _mm_maskz_fnmadd_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
6041 __m128d test_mm_mask3_fnmadd_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
6042 // CHECK-LABEL: @test_mm_mask3_fnmadd_sd
6043 // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
6044 return _mm_mask3_fnmadd_sd(__W, __X, __Y, __U);
6047 __m128d test_mm_mask3_fnmadd_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
6048 // CHECK-LABEL: @test_mm_mask3_fnmadd_round_sd
6049 // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
6050 return _mm_mask3_fnmadd_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
6053 __m128d test_mm_mask_fnmsub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
6054 // CHECK-LABEL: @test_mm_mask_fnmsub_sd
6055 // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
6056 return _mm_mask_fnmsub_sd(__W, __U, __A, __B);
6059 __m128d test_mm_mask_fnmsub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
6060 // CHECK-LABEL: @test_mm_mask_fnmsub_round_sd
6061 // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
6062 return _mm_mask_fnmsub_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6065 __m128d test_mm_maskz_fnmsub_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
6066 // CHECK-LABEL: @test_mm_maskz_fnmsub_sd
6067 // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
6068 return _mm_maskz_fnmsub_sd(__U, __A, __B, __C);
6071 __m128d test_mm_maskz_fnmsub_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
6072 // CHECK-LABEL: @test_mm_maskz_fnmsub_round_sd
6073 // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
6074 return _mm_maskz_fnmsub_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
6077 __m128d test_mm_mask3_fnmsub_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
6078 // CHECK-LABEL: @test_mm_mask3_fnmsub_sd
6079 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.sd
6080 return _mm_mask3_fnmsub_sd(__W, __X, __Y, __U);
6083 __m128d test_mm_mask3_fnmsub_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
6084 // CHECK-LABEL: @test_mm_mask3_fnmsub_round_sd
6085 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.sd
6086 return _mm_mask3_fnmsub_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
6089 __m512d test_mm512_permutex_pd(__m512d __X) {
6090 // CHECK-LABEL: @test_mm512_permutex_pd
6091 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> zeroinitializer, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
6092 return _mm512_permutex_pd(__X, 0);
6095 __m512d test_mm512_mask_permutex_pd(__m512d __W, __mmask8 __U, __m512d __X) {
6096 // CHECK-LABEL: @test_mm512_mask_permutex_pd
6097 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> zeroinitializer, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
6098 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
6099 return _mm512_mask_permutex_pd(__W, __U, __X, 0);
6102 __m512d test_mm512_maskz_permutex_pd(__mmask8 __U, __m512d __X) {
6103 // CHECK-LABEL: @test_mm512_maskz_permutex_pd
6104 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> zeroinitializer, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
6105 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
6106 return _mm512_maskz_permutex_pd(__U, __X, 0);
6109 __m512i test_mm512_permutex_epi64(__m512i __X) {
6110 // CHECK-LABEL: @test_mm512_permutex_epi64
6111 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> zeroinitializer, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
6112 return _mm512_permutex_epi64(__X, 0);
6115 __m512i test_mm512_mask_permutex_epi64(__m512i __W, __mmask8 __M, __m512i __X) {
6116 // CHECK-LABEL: @test_mm512_mask_permutex_epi64
6117 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> zeroinitializer, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
6118 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
6119 return _mm512_mask_permutex_epi64(__W, __M, __X, 0);
6122 __m512i test_mm512_maskz_permutex_epi64(__mmask8 __M, __m512i __X) {
6123 // CHECK-LABEL: @test_mm512_maskz_permutex_epi64
6124 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> zeroinitializer, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
6125 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
6126 return _mm512_maskz_permutex_epi64(__M, __X, 0);
6129 __m512d test_mm512_permutexvar_pd(__m512i __X, __m512d __Y) {
6130 // CHECK-LABEL: @test_mm512_permutexvar_pd
6131 // CHECK: @llvm.x86.avx512.mask.permvar.df.512
6132 return _mm512_permutexvar_pd(__X, __Y);
6135 __m512d test_mm512_mask_permutexvar_pd(__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y) {
6136 // CHECK-LABEL: @test_mm512_mask_permutexvar_pd
6137 // CHECK: @llvm.x86.avx512.mask.permvar.df.512
6138 return _mm512_mask_permutexvar_pd(__W, __U, __X, __Y);
6141 __m512d test_mm512_maskz_permutexvar_pd(__mmask8 __U, __m512i __X, __m512d __Y) {
6142 // CHECK-LABEL: @test_mm512_maskz_permutexvar_pd
6143 // CHECK: @llvm.x86.avx512.mask.permvar.df.512
6144 return _mm512_maskz_permutexvar_pd(__U, __X, __Y);
6147 __m512i test_mm512_maskz_permutexvar_epi64(__mmask8 __M, __m512i __X, __m512i __Y) {
6148 // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi64
6149 // CHECK: @llvm.x86.avx512.mask.permvar.di.512
6150 return _mm512_maskz_permutexvar_epi64(__M, __X, __Y);
6153 __m512i test_mm512_permutexvar_epi64(__m512i __X, __m512i __Y) {
6154 // CHECK-LABEL: @test_mm512_permutexvar_epi64
6155 // CHECK: @llvm.x86.avx512.mask.permvar.di.512
6156 return _mm512_permutexvar_epi64(__X, __Y);
6159 __m512i test_mm512_mask_permutexvar_epi64(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) {
6160 // CHECK-LABEL: @test_mm512_mask_permutexvar_epi64
6161 // CHECK: @llvm.x86.avx512.mask.permvar.di.512
6162 return _mm512_mask_permutexvar_epi64(__W, __M, __X, __Y);
6165 __m512 test_mm512_permutexvar_ps(__m512i __X, __m512 __Y) {
6166 // CHECK-LABEL: @test_mm512_permutexvar_ps
6167 // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
6168 return _mm512_permutexvar_ps(__X, __Y);
6171 __m512 test_mm512_mask_permutexvar_ps(__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y) {
6172 // CHECK-LABEL: @test_mm512_mask_permutexvar_ps
6173 // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
6174 return _mm512_mask_permutexvar_ps(__W, __U, __X, __Y);
6177 __m512 test_mm512_maskz_permutexvar_ps(__mmask16 __U, __m512i __X, __m512 __Y) {
6178 // CHECK-LABEL: @test_mm512_maskz_permutexvar_ps
6179 // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
6180 return _mm512_maskz_permutexvar_ps(__U, __X, __Y);
6183 __m512i test_mm512_maskz_permutexvar_epi32(__mmask16 __M, __m512i __X, __m512i __Y) {
6184 // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi32
6185 // CHECK: @llvm.x86.avx512.mask.permvar.si.512
6186 return _mm512_maskz_permutexvar_epi32(__M, __X, __Y);
6189 __m512i test_mm512_permutexvar_epi32(__m512i __X, __m512i __Y) {
6190 // CHECK-LABEL: @test_mm512_permutexvar_epi32
6191 // CHECK: @llvm.x86.avx512.mask.permvar.si.512
6192 return _mm512_permutexvar_epi32(__X, __Y);
6195 __m512i test_mm512_mask_permutexvar_epi32(__m512i __W, __mmask16 __M, __m512i __X, __m512i __Y) {
6196 // CHECK-LABEL: @test_mm512_mask_permutexvar_epi32
6197 // CHECK: @llvm.x86.avx512.mask.permvar.si.512
6198 return _mm512_mask_permutexvar_epi32(__W, __M, __X, __Y);
6201 __mmask16 test_mm512_kand(__mmask16 __A, __mmask16 __B) {
6202 // CHECK-LABEL: @test_mm512_kand
6203 // CHECK: @llvm.x86.avx512.kand.w
6204 return _mm512_kand(__A, __B);
6207 __mmask16 test_mm512_kandn(__mmask16 __A, __mmask16 __B) {
6208 // CHECK-LABEL: @test_mm512_kandn
6209 // CHECK: @llvm.x86.avx512.kandn.w
6210 return _mm512_kandn(__A, __B);
6213 __mmask16 test_mm512_kor(__mmask16 __A, __mmask16 __B) {
6214 // CHECK-LABEL: @test_mm512_kor
6215 // CHECK: @llvm.x86.avx512.kor.w
6216 return _mm512_kor(__A, __B);
6219 int test_mm512_kortestc(__mmask16 __A, __mmask16 __B) {
6220 // CHECK-LABEL: @test_mm512_kortestc
6221 // CHECK: @llvm.x86.avx512.kortestc.w
6222 return _mm512_kortestc(__A, __B);
6225 int test_mm512_kortestz(__mmask16 __A, __mmask16 __B) {
6226 // CHECK-LABEL: @test_mm512_kortestz
6227 // CHECK: @llvm.x86.avx512.kortestz.w
6228 return _mm512_kortestz(__A, __B);
6231 __mmask16 test_mm512_kunpackb(__mmask16 __A, __mmask16 __B) {
6232 // CHECK-LABEL: @test_mm512_kunpackb
6233 // CHECK: @llvm.x86.avx512.kunpck.bw
6234 return _mm512_kunpackb(__A, __B);
6237 __mmask16 test_mm512_kxnor(__mmask16 __A, __mmask16 __B) {
6238 // CHECK-LABEL: @test_mm512_kxnor
6239 // CHECK: @llvm.x86.avx512.kxnor.w
6240 return _mm512_kxnor(__A, __B);
6243 __mmask16 test_mm512_kxor(__mmask16 __A, __mmask16 __B) {
6244 // CHECK-LABEL: @test_mm512_kxor
6245 // CHECK: @llvm.x86.avx512.kxor.w
6246 return _mm512_kxor(__A, __B);
6249 void test_mm512_stream_si512(__m512i * __P, __m512i __A) {
6250 // CHECK-LABEL: @test_mm512_stream_si512
6251 // CHECK: store <8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, align 64, !nontemporal
6252 _mm512_stream_si512(__P, __A);
6255 __m512i test_mm512_stream_load_si512(void *__P) {
6256 // CHECK-LABEL: @test_mm512_stream_load_si512
6257 // CHECK: load <8 x i64>, <8 x i64>* %{{.*}}, align 64, !nontemporal
6258 return _mm512_stream_load_si512(__P);
6261 void test_mm512_stream_pd(double *__P, __m512d __A) {
6262 // CHECK-LABEL: @test_mm512_stream_pd
6263 // CHECK: store <8 x double> %{{.*}}, <8 x double>* %{{.*}}, align 64, !nontemporal
6264 return _mm512_stream_pd(__P, __A);
6267 void test_mm512_stream_ps(float *__P, __m512 __A) {
6268 // CHECK-LABEL: @test_mm512_stream_ps
6269 // CHECK: store <16 x float> %{{.*}}, <16 x float>* %{{.*}}, align 64, !nontemporal
6270 _mm512_stream_ps(__P, __A);
6273 __m512d test_mm512_mask_compress_pd(__m512d __W, __mmask8 __U, __m512d __A) {
6274 // CHECK-LABEL: @test_mm512_mask_compress_pd
6275 // CHECK: @llvm.x86.avx512.mask.compress.pd.512
6276 return _mm512_mask_compress_pd(__W, __U, __A);
6279 __m512d test_mm512_maskz_compress_pd(__mmask8 __U, __m512d __A) {
6280 // CHECK-LABEL: @test_mm512_maskz_compress_pd
6281 // CHECK: @llvm.x86.avx512.mask.compress.pd.512
6282 return _mm512_maskz_compress_pd(__U, __A);
6285 __m512i test_mm512_mask_compress_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
6286 // CHECK-LABEL: @test_mm512_mask_compress_epi64
6287 // CHECK: @llvm.x86.avx512.mask.compress.q.512
6288 return _mm512_mask_compress_epi64(__W, __U, __A);
6291 __m512i test_mm512_maskz_compress_epi64(__mmask8 __U, __m512i __A) {
6292 // CHECK-LABEL: @test_mm512_maskz_compress_epi64
6293 // CHECK: @llvm.x86.avx512.mask.compress.q.512
6294 return _mm512_maskz_compress_epi64(__U, __A);
6297 __m512 test_mm512_mask_compress_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6298 // CHECK-LABEL: @test_mm512_mask_compress_ps
6299 // CHECK: @llvm.x86.avx512.mask.compress.ps.512
6300 return _mm512_mask_compress_ps(__W, __U, __A);
6303 __m512 test_mm512_maskz_compress_ps(__mmask16 __U, __m512 __A) {
6304 // CHECK-LABEL: @test_mm512_maskz_compress_ps
6305 // CHECK: @llvm.x86.avx512.mask.compress.ps.512
6306 return _mm512_maskz_compress_ps(__U, __A);
6309 __m512i test_mm512_mask_compress_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
6310 // CHECK-LABEL: @test_mm512_mask_compress_epi32
6311 // CHECK: @llvm.x86.avx512.mask.compress.d.512
6312 return _mm512_mask_compress_epi32(__W, __U, __A);
6315 __m512i test_mm512_maskz_compress_epi32(__mmask16 __U, __m512i __A) {
6316 // CHECK-LABEL: @test_mm512_maskz_compress_epi32
6317 // CHECK: @llvm.x86.avx512.mask.compress.d.512
6318 return _mm512_maskz_compress_epi32(__U, __A);
6321 __mmask8 test_mm_cmp_round_ss_mask(__m128 __X, __m128 __Y) {
6322 // CHECK-LABEL: @test_mm_cmp_round_ss_mask
6323 // CHECK: @llvm.x86.avx512.mask.cmp
6324 return _mm_cmp_round_ss_mask(__X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
6327 __mmask8 test_mm_mask_cmp_round_ss_mask(__mmask8 __M, __m128 __X, __m128 __Y) {
6328 // CHECK-LABEL: @test_mm_mask_cmp_round_ss_mask
6329 // CHECK: @llvm.x86.avx512.mask.cmp
6330 return _mm_mask_cmp_round_ss_mask(__M, __X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
6333 __mmask8 test_mm_cmp_ss_mask(__m128 __X, __m128 __Y) {
6334 // CHECK-LABEL: @test_mm_cmp_ss_mask
6335 // CHECK: @llvm.x86.avx512.mask.cmp
6336 return _mm_cmp_ss_mask(__X, __Y, 5);
6339 __mmask8 test_mm_mask_cmp_ss_mask(__mmask8 __M, __m128 __X, __m128 __Y) {
6340 // CHECK-LABEL: @test_mm_mask_cmp_ss_mask
6341 // CHECK: @llvm.x86.avx512.mask.cmp
6342 return _mm_mask_cmp_ss_mask(__M, __X, __Y, 5);
6345 __mmask8 test_mm_cmp_round_sd_mask(__m128d __X, __m128d __Y) {
6346 // CHECK-LABEL: @test_mm_cmp_round_sd_mask
6347 // CHECK: @llvm.x86.avx512.mask.cmp
6348 return _mm_cmp_round_sd_mask(__X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
6351 __mmask8 test_mm_mask_cmp_round_sd_mask(__mmask8 __M, __m128d __X, __m128d __Y) {
6352 // CHECK-LABEL: @test_mm_mask_cmp_round_sd_mask
6353 // CHECK: @llvm.x86.avx512.mask.cmp
6354 return _mm_mask_cmp_round_sd_mask(__M, __X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
6357 __mmask8 test_mm_cmp_sd_mask(__m128d __X, __m128d __Y) {
6358 // CHECK-LABEL: @test_mm_cmp_sd_mask
6359 // CHECK: @llvm.x86.avx512.mask.cmp
6360 return _mm_cmp_sd_mask(__X, __Y, 5);
6363 __mmask8 test_mm_mask_cmp_sd_mask(__mmask8 __M, __m128d __X, __m128d __Y) {
6364 // CHECK-LABEL: @test_mm_mask_cmp_sd_mask
6365 // CHECK: @llvm.x86.avx512.mask.cmp
6366 return _mm_mask_cmp_sd_mask(__M, __X, __Y, 5);
6369 __m512 test_mm512_movehdup_ps(__m512 __A) {
6370 // CHECK-LABEL: @test_mm512_movehdup_ps
6371 // 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>
6372 return _mm512_movehdup_ps(__A);
6375 __m512 test_mm512_mask_movehdup_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6376 // CHECK-LABEL: @test_mm512_mask_movehdup_ps
6377 // 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>
6378 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6379 return _mm512_mask_movehdup_ps(__W, __U, __A);
6382 __m512 test_mm512_maskz_movehdup_ps(__mmask16 __U, __m512 __A) {
6383 // CHECK-LABEL: @test_mm512_maskz_movehdup_ps
6384 // 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>
6385 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6386 return _mm512_maskz_movehdup_ps(__U, __A);
6389 __m512 test_mm512_moveldup_ps(__m512 __A) {
6390 // CHECK-LABEL: @test_mm512_moveldup_ps
6391 // 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>
6392 return _mm512_moveldup_ps(__A);
6395 __m512 test_mm512_mask_moveldup_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6396 // CHECK-LABEL: @test_mm512_mask_moveldup_ps
6397 // 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>
6398 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6399 return _mm512_mask_moveldup_ps(__W, __U, __A);
6402 __m512 test_mm512_maskz_moveldup_ps(__mmask16 __U, __m512 __A) {
6403 // CHECK-LABEL: @test_mm512_maskz_moveldup_ps
6404 // 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>
6405 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6406 return _mm512_maskz_moveldup_ps(__U, __A);
6409 __m512i test_mm512_shuffle_epi32(__m512i __A) {
6410 // CHECK-LABEL: @test_mm512_shuffle_epi32
6411 // 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>
6412 return _mm512_shuffle_epi32(__A, 1);
6415 __m512i test_mm512_mask_shuffle_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
6416 // CHECK-LABEL: @test_mm512_mask_shuffle_epi32
6417 // 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>
6418 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
6419 return _mm512_mask_shuffle_epi32(__W, __U, __A, 1);
6422 __m512i test_mm512_maskz_shuffle_epi32(__mmask16 __U, __m512i __A) {
6423 // CHECK-LABEL: @test_mm512_maskz_shuffle_epi32
6424 // 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>
6425 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
6426 return _mm512_maskz_shuffle_epi32(__U, __A, 1);
6429 __m512d test_mm512_mask_expand_pd(__m512d __W, __mmask8 __U, __m512d __A) {
6430 // CHECK-LABEL: @test_mm512_mask_expand_pd
6431 // CHECK: @llvm.x86.avx512.mask.expand.pd.512
6432 return _mm512_mask_expand_pd(__W, __U, __A);
6435 __m512d test_mm512_maskz_expand_pd(__mmask8 __U, __m512d __A) {
6436 // CHECK-LABEL: @test_mm512_maskz_expand_pd
6437 // CHECK: @llvm.x86.avx512.mask.expand.pd.512
6438 return _mm512_maskz_expand_pd(__U, __A);
6441 __m512i test_mm512_mask_expand_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
6442 // CHECK-LABEL: @test_mm512_mask_expand_epi64
6443 // CHECK: @llvm.x86.avx512.mask.expand.q.512
6444 return _mm512_mask_expand_epi64(__W, __U, __A);
6447 __m512i test_mm512_maskz_expand_epi64(__mmask8 __U, __m512i __A) {
6448 // CHECK-LABEL: @test_mm512_maskz_expand_epi64
6449 // CHECK: @llvm.x86.avx512.mask.expand.q.512
6450 return _mm512_maskz_expand_epi64(__U, __A);
6452 __m512i test_mm512_mask_expandloadu_epi64(__m512i __W, __mmask8 __U, void const *__P) {
6453 // CHECK-LABEL: @test_mm512_mask_expandloadu_epi64
6454 // CHECK: @llvm.x86.avx512.mask.expand.load.q.512
6455 return _mm512_mask_expandloadu_epi64(__W, __U, __P);
6458 __m512i test_mm512_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
6459 // CHECK-LABEL: @test_mm512_maskz_expandloadu_epi64
6460 // CHECK: @llvm.x86.avx512.mask.expand.load.q.512
6461 return _mm512_maskz_expandloadu_epi64(__U, __P);
6464 __m512d test_mm512_mask_expandloadu_pd(__m512d __W, __mmask8 __U, void const *__P) {
6465 // CHECK-LABEL: @test_mm512_mask_expandloadu_pd
6466 // CHECK: @llvm.x86.avx512.mask.expand.load.pd.512
6467 return _mm512_mask_expandloadu_pd(__W, __U, __P);
6470 __m512d test_mm512_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
6471 // CHECK-LABEL: @test_mm512_maskz_expandloadu_pd
6472 // CHECK: @llvm.x86.avx512.mask.expand.load.pd.512
6473 return _mm512_maskz_expandloadu_pd(__U, __P);
6476 __m512i test_mm512_mask_expandloadu_epi32(__m512i __W, __mmask16 __U, void const *__P) {
6477 // CHECK-LABEL: @test_mm512_mask_expandloadu_epi32
6478 // CHECK: @llvm.x86.avx512.mask.expand.load.d.512
6479 return _mm512_mask_expandloadu_epi32(__W, __U, __P);
6482 __m512i test_mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P) {
6483 // CHECK-LABEL: @test_mm512_maskz_expandloadu_epi32
6484 // CHECK: @llvm.x86.avx512.mask.expand.load.d.512
6485 return _mm512_maskz_expandloadu_epi32(__U, __P);
6488 __m512 test_mm512_mask_expand_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6489 // CHECK-LABEL: @test_mm512_mask_expand_ps
6490 // CHECK: @llvm.x86.avx512.mask.expand.ps.512
6491 return _mm512_mask_expand_ps(__W, __U, __A);
6494 __m512 test_mm512_maskz_expand_ps(__mmask16 __U, __m512 __A) {
6495 // CHECK-LABEL: @test_mm512_maskz_expand_ps
6496 // CHECK: @llvm.x86.avx512.mask.expand.ps.512
6497 return _mm512_maskz_expand_ps(__U, __A);
6500 __m512i test_mm512_mask_expand_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
6501 // CHECK-LABEL: @test_mm512_mask_expand_epi32
6502 // CHECK: @llvm.x86.avx512.mask.expand.d.512
6503 return _mm512_mask_expand_epi32(__W, __U, __A);
6506 __m512i test_mm512_maskz_expand_epi32(__mmask16 __U, __m512i __A) {
6507 // CHECK-LABEL: @test_mm512_maskz_expand_epi32
6508 // CHECK: @llvm.x86.avx512.mask.expand.d.512
6509 return _mm512_maskz_expand_epi32(__U, __A);
6511 __m512d test_mm512_cvt_roundps_pd(__m256 __A) {
6512 // CHECK-LABEL: @test_mm512_cvt_roundps_pd
6513 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6514 return _mm512_cvt_roundps_pd(__A, _MM_FROUND_CUR_DIRECTION);
6517 __m512d test_mm512_mask_cvt_roundps_pd(__m512d __W, __mmask8 __U, __m256 __A) {
6518 // CHECK-LABEL: @test_mm512_mask_cvt_roundps_pd
6519 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6520 return _mm512_mask_cvt_roundps_pd(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
6523 __m512d test_mm512_maskz_cvt_roundps_pd(__mmask8 __U, __m256 __A) {
6524 // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_pd
6525 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6526 return _mm512_maskz_cvt_roundps_pd(__U, __A, _MM_FROUND_CUR_DIRECTION);
6529 __m512d test_mm512_cvtps_pd(__m256 __A) {
6530 // CHECK-LABEL: @test_mm512_cvtps_pd
6531 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6532 return _mm512_cvtps_pd(__A);
6535 __m512d test_mm512_cvtpslo_pd(__m512 __A) {
6536 // CHECK-LABEL: @test_mm512_cvtpslo_pd
6537 // 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>
6538 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6539 return _mm512_cvtpslo_pd(__A);
6542 __m512d test_mm512_mask_cvtps_pd(__m512d __W, __mmask8 __U, __m256 __A) {
6543 // CHECK-LABEL: @test_mm512_mask_cvtps_pd
6544 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6545 return _mm512_mask_cvtps_pd(__W, __U, __A);
6548 __m512d test_mm512_mask_cvtpslo_pd(__m512d __W, __mmask8 __U, __m512 __A) {
6549 // CHECK-LABEL: @test_mm512_mask_cvtpslo_pd
6550 // 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>
6551 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6552 return _mm512_mask_cvtpslo_pd(__W, __U, __A);
6555 __m512d test_mm512_maskz_cvtps_pd(__mmask8 __U, __m256 __A) {
6556 // CHECK-LABEL: @test_mm512_maskz_cvtps_pd
6557 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
6558 return _mm512_maskz_cvtps_pd(__U, __A);
6560 __m512d test_mm512_mask_mov_pd(__m512d __W, __mmask8 __U, __m512d __A) {
6561 // CHECK-LABEL: @test_mm512_mask_mov_pd
6562 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
6563 return _mm512_mask_mov_pd(__W, __U, __A);
6566 __m512d test_mm512_maskz_mov_pd(__mmask8 __U, __m512d __A) {
6567 // CHECK-LABEL: @test_mm512_maskz_mov_pd
6568 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
6569 return _mm512_maskz_mov_pd(__U, __A);
6572 __m512 test_mm512_mask_mov_ps(__m512 __W, __mmask16 __U, __m512 __A) {
6573 // CHECK-LABEL: @test_mm512_mask_mov_ps
6574 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6575 return _mm512_mask_mov_ps(__W, __U, __A);
6578 __m512 test_mm512_maskz_mov_ps(__mmask16 __U, __m512 __A) {
6579 // CHECK-LABEL: @test_mm512_maskz_mov_ps
6580 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
6581 return _mm512_maskz_mov_ps(__U, __A);
6584 void test_mm512_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m512d __A) {
6585 // CHECK-LABEL: @test_mm512_mask_compressstoreu_pd
6586 // CHECK: @llvm.x86.avx512.mask.compress.store.pd.512
6587 return _mm512_mask_compressstoreu_pd(__P, __U, __A);
6590 void test_mm512_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m512i __A) {
6591 // CHECK-LABEL: @test_mm512_mask_compressstoreu_epi64
6592 // CHECK: @llvm.x86.avx512.mask.compress.store.q.512
6593 return _mm512_mask_compressstoreu_epi64(__P, __U, __A);
6596 void test_mm512_mask_compressstoreu_ps(void *__P, __mmask16 __U, __m512 __A) {
6597 // CHECK-LABEL: @test_mm512_mask_compressstoreu_ps
6598 // CHECK: @llvm.x86.avx512.mask.compress.store.ps.512
6599 return _mm512_mask_compressstoreu_ps(__P, __U, __A);
6602 void test_mm512_mask_compressstoreu_epi32(void *__P, __mmask16 __U, __m512i __A) {
6603 // CHECK-LABEL: @test_mm512_mask_compressstoreu_epi32
6604 // CHECK: @llvm.x86.avx512.mask.compress.store.d.512
6605 return _mm512_mask_compressstoreu_epi32(__P, __U, __A);
6608 __m256i test_mm512_cvtt_roundpd_epu32(__m512d __A) {
6609 // CHECK-LABEL: @test_mm512_cvtt_roundpd_epu32
6610 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6611 return _mm512_cvtt_roundpd_epu32(__A, _MM_FROUND_CUR_DIRECTION);
6614 __m256i test_mm512_mask_cvtt_roundpd_epu32(__m256i __W, __mmask8 __U, __m512d __A) {
6615 // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epu32
6616 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6617 return _mm512_mask_cvtt_roundpd_epu32(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
6620 __m256i test_mm512_maskz_cvtt_roundpd_epu32(__mmask8 __U, __m512d __A) {
6621 // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epu32
6622 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6623 return _mm512_maskz_cvtt_roundpd_epu32(__U, __A, _MM_FROUND_CUR_DIRECTION);
6626 __m256i test_mm512_cvttpd_epu32(__m512d __A) {
6627 // CHECK-LABEL: @test_mm512_cvttpd_epu32
6628 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6629 return _mm512_cvttpd_epu32(__A);
6632 __m256i test_mm512_mask_cvttpd_epu32(__m256i __W, __mmask8 __U, __m512d __A) {
6633 // CHECK-LABEL: @test_mm512_mask_cvttpd_epu32
6634 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6635 return _mm512_mask_cvttpd_epu32(__W, __U, __A);
6638 __m256i test_mm512_maskz_cvttpd_epu32(__mmask8 __U, __m512d __A) {
6639 // CHECK-LABEL: @test_mm512_maskz_cvttpd_epu32
6640 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
6641 return _mm512_maskz_cvttpd_epu32(__U, __A);
6644 __m512 test_mm512_castpd_ps (__m512d __A)
6646 // CHECK-LABEL: @test_mm512_castpd_ps
6647 // CHECK: bitcast <8 x double> %{{.}} to <16 x float>
6648 return _mm512_castpd_ps (__A);
6651 __m512d test_mm512_castps_pd (__m512 __A)
6653 // CHECK-LABEL: @test_mm512_castps_pd
6654 // CHECK: bitcast <16 x float> %{{.}} to <8 x double>
6655 return _mm512_castps_pd (__A);
6658 __m512i test_mm512_castpd_si512 (__m512d __A)
6660 // CHECK-LABEL: @test_mm512_castpd_si512
6661 // CHECK: bitcast <8 x double> %{{.}} to <8 x i64>
6662 return _mm512_castpd_si512 (__A);
6665 __m512 test_mm512_castps128_ps512(__m128 __A) {
6666 // CHECK-LABEL: @test_mm512_castps128_ps512
6667 // 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>
6668 return _mm512_castps128_ps512(__A);
6671 __m512d test_mm512_castpd128_pd512(__m128d __A) {
6672 // CHECK-LABEL: @test_mm512_castpd128_pd512
6673 // 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>
6674 return _mm512_castpd128_pd512(__A);
6677 __m512d test_mm512_set1_epi8(char d)
6679 // CHECK-LABEL: @test_mm512_set1_epi8
6680 // CHECK: insertelement <64 x i8> {{.*}}, i32 0
6681 // CHECK: insertelement <64 x i8> {{.*}}, i32 1
6682 // CHECK: insertelement <64 x i8> {{.*}}, i32 2
6683 // CHECK: insertelement <64 x i8> {{.*}}, i32 3
6684 // CHECK: insertelement <64 x i8> {{.*}}, i32 4
6685 // CHECK: insertelement <64 x i8> {{.*}}, i32 5
6686 // CHECK: insertelement <64 x i8> {{.*}}, i32 6
6687 // CHECK: insertelement <64 x i8> {{.*}}, i32 7
6688 // CHECK: insertelement <64 x i8> {{.*}}, i32 63
6689 return _mm512_set1_epi8(d);
6692 __m512d test_mm512_set1_epi16(short d)
6694 // CHECK-LABEL: @test_mm512_set1_epi16
6695 // CHECK: insertelement <32 x i16> {{.*}}, i32 0
6696 // CHECK: insertelement <32 x i16> {{.*}}, i32 1
6697 // CHECK: insertelement <32 x i16> {{.*}}, i32 2
6698 // CHECK: insertelement <32 x i16> {{.*}}, i32 3
6699 // CHECK: insertelement <32 x i16> {{.*}}, i32 4
6700 // CHECK: insertelement <32 x i16> {{.*}}, i32 5
6701 // CHECK: insertelement <32 x i16> {{.*}}, i32 6
6702 // CHECK: insertelement <32 x i16> {{.*}}, i32 7
6703 // CHECK: insertelement <32 x i16> {{.*}}, i32 31
6704 return _mm512_set1_epi16(d);
6707 __m512i test_mm512_set4_epi32 (int __A, int __B, int __C, int __D)
6709 // CHECK-LABEL: @test_mm512_set4_epi32
6710 // CHECK: insertelement <16 x i32> {{.*}}, i32 15
6711 return _mm512_set4_epi32 (__A,__B,__C,__D);
6714 __m512i test_mm512_set4_epi64 (long long __A, long long __B, long long __C, long long __D)
6716 // CHECK-LABEL: @test_mm512_set4_epi64
6717 // CHECK: insertelement <8 x i64> {{.*}}, i32 7
6718 return _mm512_set4_epi64 (__A,__B,__C,__D);
6721 __m512d test_mm512_set4_pd (double __A, double __B, double __C, double __D)
6723 // CHECK-LABEL: @test_mm512_set4_pd
6724 // CHECK: insertelement <8 x double> {{.*}}, i32 7
6725 return _mm512_set4_pd (__A,__B,__C,__D);
6728 __m512 test_mm512_set4_ps (float __A, float __B, float __C, float __D)
6730 // CHECK-LABEL: @test_mm512_set4_ps
6731 // CHECK: insertelement <16 x float> {{.*}}, i32 15
6732 return _mm512_set4_ps (__A,__B,__C,__D);
6735 __m512i test_mm512_setr4_epi32(int e0, int e1, int e2, int e3)
6737 // CHECK-LABEL: @test_mm512_setr4_epi32
6738 // CHECK: insertelement <16 x i32> {{.*}}, i32 15
6739 return _mm512_setr4_epi32(e0, e1, e2, e3);
6742 __m512i test_mm512_setr4_epi64(long long e0, long long e1, long long e2, long long e3)
6744 // CHECK-LABEL: @test_mm512_setr4_epi64
6745 // CHECK: insertelement <8 x i64> {{.*}}, i32 7
6746 return _mm512_setr4_epi64(e0, e1, e2, e3);
6749 __m512i test_mm512_setr4_pd(double e0, double e1, double e2, double e3)
6751 // CHECK-LABEL: @test_mm512_setr4_pd
6752 // CHECK: insertelement <8 x double> {{.*}}, i32 7
6753 return _mm512_setr4_pd(e0,e1,e2,e3);
6756 __m512i test_mm512_setr4_ps(float e0, float e1, float e2, float e3)
6758 // CHECK-LABEL: @test_mm512_setr4_ps
6759 // CHECK: insertelement <16 x float> {{.*}}, i32 15
6760 return _mm512_setr4_ps(e0,e1,e2,e3);
6763 __m512d test_mm512_castpd256_pd512(__m256d a)
6765 // CHECK-LABEL: @test_mm512_castpd256_pd512
6766 // CHECK: shufflevector <4 x double> {{.*}} <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
6767 return _mm512_castpd256_pd512(a);
6770 __m256d test_mm512_castpd512_pd256 (__m512d __A)
6772 // CHECK-LABEL: @test_mm512_castpd512_pd256
6773 // CHECK: shufflevector <8 x double> %{{.}}, <8 x double> %{{.}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6774 return _mm512_castpd512_pd256 (__A);
6777 __m256 test_mm512_castps512_ps256 (__m512 __A)
6779 // CHECK-LABEL: @test_mm512_castps512_ps256
6780 // 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>
6781 return _mm512_castps512_ps256 (__A);
6784 __m512i test_mm512_castps_si512 (__m512 __A)
6786 // CHECK-LABEL: @test_mm512_castps_si512
6787 // CHECK: bitcast <16 x float> %{{.}} to <8 x i64>
6788 return _mm512_castps_si512 (__A);
6790 __m512i test_mm512_castsi128_si512(__m128i __A) {
6791 // CHECK-LABEL: @test_mm512_castsi128_si512
6792 // 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>
6793 return _mm512_castsi128_si512(__A);
6796 __m512i test_mm512_castsi256_si512(__m256i __A) {
6797 // CHECK-LABEL: @test_mm512_castsi256_si512
6798 // 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>
6799 return _mm512_castsi256_si512(__A);
6802 __m512 test_mm512_castsi512_ps (__m512i __A)
6804 // CHECK-LABEL: @test_mm512_castsi512_ps
6805 // CHECK: bitcast <8 x i64> %{{.}} to <16 x float>
6806 return _mm512_castsi512_ps (__A);
6809 __m512d test_mm512_castsi512_pd (__m512i __A)
6811 // CHECK-LABEL: @test_mm512_castsi512_pd
6812 // CHECK: bitcast <8 x i64> %{{.}} to <8 x double>
6813 return _mm512_castsi512_pd (__A);
6816 __m128i test_mm512_castsi512_si128 (__m512i __A)
6818 // CHECK-LABEL: @test_mm512_castsi512_si128
6819 // CHECK: shufflevector <8 x i64> %{{.}}, <8 x i64> %{{.}}, <2 x i32> <i32 0, i32 1>
6820 return _mm512_castsi512_si128 (__A);
6823 __m256i test_mm512_castsi512_si256 (__m512i __A)
6825 // CHECK-LABEL: @test_mm512_castsi512_si256
6826 // CHECK: shufflevector <8 x i64> %{{.}}, <8 x i64> %{{.}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6827 return _mm512_castsi512_si256 (__A);
6830 __m128 test_mm_cvt_roundsd_ss(__m128 __A, __m128d __B) {
6831 // CHECK-LABEL: @test_mm_cvt_roundsd_ss
6832 // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
6833 return _mm_cvt_roundsd_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6836 __m128 test_mm_mask_cvt_roundsd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128d __B) {
6837 // CHECK-LABEL: @test_mm_mask_cvt_roundsd_ss
6838 // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
6839 return _mm_mask_cvt_roundsd_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6842 __m128 test_mm_maskz_cvt_roundsd_ss(__mmask8 __U, __m128 __A, __m128d __B) {
6843 // CHECK-LABEL: @test_mm_maskz_cvt_roundsd_ss
6844 // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
6845 return _mm_maskz_cvt_roundsd_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6849 __m128d test_mm_cvt_roundi64_sd(__m128d __A, long long __B) {
6850 // CHECK-LABEL: @test_mm_cvt_roundi64_sd
6851 // CHECK: @llvm.x86.avx512.cvtsi2sd64
6852 return _mm_cvt_roundi64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6855 __m128d test_mm_cvt_roundsi64_sd(__m128d __A, long long __B) {
6856 // CHECK-LABEL: @test_mm_cvt_roundsi64_sd
6857 // CHECK: @llvm.x86.avx512.cvtsi2sd64
6858 return _mm_cvt_roundsi64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6862 __m128 test_mm_cvt_roundsi32_ss(__m128 __A, int __B) {
6863 // CHECK-LABEL: @test_mm_cvt_roundsi32_ss
6864 // CHECK: @llvm.x86.avx512.cvtsi2ss32
6865 return _mm_cvt_roundsi32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6868 __m128 test_mm_cvt_roundi32_ss(__m128 __A, int __B) {
6869 // CHECK-LABEL: @test_mm_cvt_roundi32_ss
6870 // CHECK: @llvm.x86.avx512.cvtsi2ss32
6871 return _mm_cvt_roundi32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6875 __m128 test_mm_cvt_roundsi64_ss(__m128 __A, long long __B) {
6876 // CHECK-LABEL: @test_mm_cvt_roundsi64_ss
6877 // CHECK: @llvm.x86.avx512.cvtsi2ss64
6878 return _mm_cvt_roundsi64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6881 __m128 test_mm_cvt_roundi64_ss(__m128 __A, long long __B) {
6882 // CHECK-LABEL: @test_mm_cvt_roundi64_ss
6883 // CHECK: @llvm.x86.avx512.cvtsi2ss64
6884 return _mm_cvt_roundi64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6888 __m128d test_mm_cvt_roundss_sd(__m128d __A, __m128 __B) {
6889 // CHECK-LABEL: @test_mm_cvt_roundss_sd
6890 // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
6891 return _mm_cvt_roundss_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6894 __m128d test_mm_mask_cvt_roundss_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128 __B) {
6895 // CHECK-LABEL: @test_mm_mask_cvt_roundss_sd
6896 // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
6897 return _mm_mask_cvt_roundss_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6900 __m128d test_mm_maskz_cvt_roundss_sd( __mmask8 __U, __m128d __A, __m128 __B) {
6901 // CHECK-LABEL: @test_mm_maskz_cvt_roundss_sd
6902 // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
6903 return _mm_maskz_cvt_roundss_sd( __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
6906 __m128d test_mm_cvtu32_sd(__m128d __A, unsigned __B) {
6907 // CHECK-LABEL: @test_mm_cvtu32_sd
6908 // CHECK: @llvm.x86.avx512.cvtusi2sd
6909 return _mm_cvtu32_sd(__A, __B);
6913 __m128d test_mm_cvt_roundu64_sd(__m128d __A, unsigned long long __B) {
6914 // CHECK-LABEL: @test_mm_cvt_roundu64_sd
6915 // CHECK: @llvm.x86.avx512.cvtusi642sd
6916 return _mm_cvt_roundu64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
6919 __m128d test_mm_cvtu64_sd(__m128d __A, unsigned long long __B) {
6920 // CHECK-LABEL: @test_mm_cvtu64_sd
6921 // CHECK: @llvm.x86.avx512.cvtusi642sd
6922 return _mm_cvtu64_sd(__A, __B);
6926 __m128 test_mm_cvt_roundu32_ss(__m128 __A, unsigned __B) {
6927 // CHECK-LABEL: @test_mm_cvt_roundu32_ss
6928 // CHECK: @llvm.x86.avx512.cvtusi2ss
6929 return _mm_cvt_roundu32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6932 __m128 test_mm_cvtu32_ss(__m128 __A, unsigned __B) {
6933 // CHECK-LABEL: @test_mm_cvtu32_ss
6934 // CHECK: @llvm.x86.avx512.cvtusi2ss
6935 return _mm_cvtu32_ss(__A, __B);
6939 __m128 test_mm_cvt_roundu64_ss(__m128 __A, unsigned long long __B) {
6940 // CHECK-LABEL: @test_mm_cvt_roundu64_ss
6941 // CHECK: @llvm.x86.avx512.cvtusi642ss
6942 return _mm_cvt_roundu64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
6945 __m128 test_mm_cvtu64_ss(__m128 __A, unsigned long long __B) {
6946 // CHECK-LABEL: @test_mm_cvtu64_ss
6947 // CHECK: @llvm.x86.avx512.cvtusi642ss
6948 return _mm_cvtu64_ss(__A, __B);
6952 __m512i test_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
6954 // CHECK-LABEL: @test_mm512_mask_cvttps_epu32
6955 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
6956 return _mm512_mask_cvttps_epu32 (__W,__U,__A);
6959 __m512i test_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A)
6961 // CHECK-LABEL: @test_mm512_maskz_cvttps_epu32
6962 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
6963 return _mm512_maskz_cvttps_epu32 (__U,__A);
6966 __m512 test_mm512_cvtepu32_ps (__m512i __A)
6968 // CHECK-LABEL: @test_mm512_cvtepu32_ps
6969 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
6970 return _mm512_cvtepu32_ps (__A);
6973 __m512 test_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A)
6975 // CHECK-LABEL: @test_mm512_mask_cvtepu32_ps
6976 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
6977 return _mm512_mask_cvtepu32_ps (__W,__U,__A);
6980 __m512 test_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A)
6982 // CHECK-LABEL: @test_mm512_maskz_cvtepu32_ps
6983 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
6984 return _mm512_maskz_cvtepu32_ps (__U,__A);
6987 __m512d test_mm512_cvtepi32_pd (__m256i __A)
6989 // CHECK-LABEL: @test_mm512_cvtepi32_pd
6990 // CHECK: sitofp <8 x i32> %{{.*}} to <8 x double>
6991 return _mm512_cvtepi32_pd (__A);
6994 __m512d test_mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A)
6996 // CHECK-LABEL: @test_mm512_mask_cvtepi32_pd
6997 // CHECK: sitofp <8 x i32> %{{.*}} to <8 x double>
6998 // CHECK: select <8 x i1> {{.*}}, <8 x double> {{.*}}, <8 x double> {{.*}}
6999 return _mm512_mask_cvtepi32_pd (__W,__U,__A);
7002 __m512d test_mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A)
7004 // CHECK-LABEL: @test_mm512_maskz_cvtepi32_pd
7005 // CHECK: sitofp <8 x i32> %{{.*}} to <8 x double>
7006 // CHECK: select <8 x i1> {{.*}}, <8 x double> {{.*}}, <8 x double> {{.*}}
7007 return _mm512_maskz_cvtepi32_pd (__U,__A);
7010 __m512d test_mm512_cvtepi32lo_pd (__m512i __A)
7012 // CHECK-LABEL: @test_mm512_cvtepi32lo_pd
7013 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7014 // CHECK: sitofp <8 x i32> %{{.*}} to <8 x double>
7015 return _mm512_cvtepi32lo_pd (__A);
7018 __m512d test_mm512_mask_cvtepi32lo_pd (__m512d __W, __mmask8 __U, __m512i __A)
7020 // CHECK-LABEL: @test_mm512_mask_cvtepi32lo_pd
7021 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7022 // CHECK: sitofp <8 x i32> %{{.*}} to <8 x double>
7023 // CHECK: select <8 x i1> {{.*}}, <8 x double> {{.*}}, <8 x double> {{.*}}
7024 return _mm512_mask_cvtepi32lo_pd (__W, __U, __A);
7027 __m512 test_mm512_cvtepi32_ps (__m512i __A)
7029 // CHECK-LABEL: @test_mm512_cvtepi32_ps
7030 // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
7031 return _mm512_cvtepi32_ps (__A);
7034 __m512 test_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A)
7036 // CHECK-LABEL: @test_mm512_mask_cvtepi32_ps
7037 // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
7038 return _mm512_mask_cvtepi32_ps (__W,__U,__A);
7041 __m512 test_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A)
7043 // CHECK-LABEL: @test_mm512_maskz_cvtepi32_ps
7044 // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
7045 return _mm512_maskz_cvtepi32_ps (__U,__A);
7048 __m512d test_mm512_cvtepu32_pd(__m256i __A)
7050 // CHECK-LABEL: @test_mm512_cvtepu32_pd
7051 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x double>
7052 return _mm512_cvtepu32_pd(__A);
7055 __m512d test_mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A)
7057 // CHECK-LABEL: @test_mm512_mask_cvtepu32_pd
7058 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x double>
7059 // CHECK: select <8 x i1> {{.*}}, <8 x double> {{.*}}, <8 x double> {{.*}}
7060 return _mm512_mask_cvtepu32_pd (__W,__U,__A);
7063 __m512d test_mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A)
7065 // CHECK-LABEL: @test_mm512_maskz_cvtepu32_pd
7066 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x double>
7067 // CHECK: select <8 x i1> {{.*}}, <8 x double> {{.*}}, <8 x double> {{.*}}
7068 return _mm512_maskz_cvtepu32_pd (__U,__A);
7071 __m512d test_mm512_cvtepu32lo_pd (__m512i __A)
7073 // CHECK-LABEL: @test_mm512_cvtepu32lo_pd
7074 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7075 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x double>
7076 return _mm512_cvtepu32lo_pd (__A);
7079 __m512d test_mm512_mask_cvtepu32lo_pd (__m512d __W, __mmask8 __U, __m512i __A)
7081 // CHECK-LABEL: @test_mm512_mask_cvtepu32lo_pd
7082 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7083 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x double>
7084 // CHECK: select <8 x i1> {{.*}}, <8 x double> {{.*}}, <8 x double> {{.*}}
7085 return _mm512_mask_cvtepu32lo_pd (__W, __U, __A);
7088 __m256 test_mm512_cvtpd_ps (__m512d __A)
7090 // CHECK-LABEL: @test_mm512_cvtpd_ps
7091 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
7092 return _mm512_cvtpd_ps (__A);
7095 __m256 test_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A)
7097 // CHECK-LABEL: @test_mm512_mask_cvtpd_ps
7098 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
7099 return _mm512_mask_cvtpd_ps (__W,__U,__A);
7102 __m512d test_mm512_cvtpd_pslo(__m512 __A)
7104 // CHECK-LABEL: @test_mm512_cvtpd_pslo
7105 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
7106 // CHECK: zeroinitializer
7107 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
7108 return _mm512_cvtpd_pslo(__A);
7111 __m512d test_mm512_mask_cvtpd_pslo(__m512 __W, __mmask8 __U, __m512d __A) {
7112 // CHECK-LABEL: @test_mm512_mask_cvtpd_pslo
7113 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
7114 // CHECK: zeroinitializer
7115 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
7116 return _mm512_mask_cvtpd_pslo(__W, __U, __A);
7119 __m256 test_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A)
7121 // CHECK-LABEL: @test_mm512_maskz_cvtpd_ps
7122 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
7123 return _mm512_maskz_cvtpd_ps (__U,__A);
7126 __m512 test_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A)
7128 // CHECK-LABEL: @test_mm512_mask_cvtph_ps
7129 // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
7130 return _mm512_mask_cvtph_ps (__W,__U,__A);
7133 __m512 test_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A)
7135 // CHECK-LABEL: @test_mm512_maskz_cvtph_ps
7136 // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
7137 return _mm512_maskz_cvtph_ps (__U,__A);
7140 __m256i test_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
7142 // CHECK-LABEL: @test_mm512_mask_cvttpd_epi32
7143 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
7144 return _mm512_mask_cvttpd_epi32 (__W,__U,__A);
7147 __m256i test_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A)
7149 // CHECK-LABEL: @test_mm512_maskz_cvttpd_epi32
7150 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
7151 return _mm512_maskz_cvttpd_epi32 (__U,__A);
7154 __m512i test_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
7156 // CHECK-LABEL: @test_mm512_mask_cvttps_epi32
7157 // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
7158 return _mm512_mask_cvttps_epi32 (__W,__U,__A);
7161 __m512i test_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A)
7163 // CHECK-LABEL: @test_mm512_maskz_cvttps_epi32
7164 // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
7165 return _mm512_maskz_cvttps_epi32 (__U,__A);
7168 __m512i test_mm512_cvtps_epi32 (__m512 __A)
7170 // CHECK-LABEL: @test_mm512_cvtps_epi32
7171 // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
7172 return _mm512_cvtps_epi32 (__A);
7175 __m512i test_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
7177 // CHECK-LABEL: @test_mm512_mask_cvtps_epi32
7178 // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
7179 return _mm512_mask_cvtps_epi32 (__W,__U,__A);
7182 __m512i test_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A)
7184 // CHECK-LABEL: @test_mm512_maskz_cvtps_epi32
7185 // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
7186 return _mm512_maskz_cvtps_epi32 (__U,__A);
7189 __m256i test_mm512_cvtpd_epi32 (__m512d __A)
7191 // CHECK-LABEL: @test_mm512_cvtpd_epi32
7192 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
7193 return _mm512_cvtpd_epi32 (__A);
7196 __m256i test_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
7198 // CHECK-LABEL: @test_mm512_mask_cvtpd_epi32
7199 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
7200 return _mm512_mask_cvtpd_epi32 (__W,__U,__A);
7203 __m256i test_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A)
7205 // CHECK-LABEL: @test_mm512_maskz_cvtpd_epi32
7206 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
7207 return _mm512_maskz_cvtpd_epi32 (__U,__A);
7210 __m256i test_mm512_cvtpd_epu32 (__m512d __A)
7212 // CHECK-LABEL: @test_mm512_cvtpd_epu32
7213 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
7214 return _mm512_cvtpd_epu32 (__A);
7217 __m256i test_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
7219 // CHECK-LABEL: @test_mm512_mask_cvtpd_epu32
7220 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
7221 return _mm512_mask_cvtpd_epu32 (__W,__U,__A);
7224 __m256i test_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A)
7226 // CHECK-LABEL: @test_mm512_maskz_cvtpd_epu32
7227 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
7228 return _mm512_maskz_cvtpd_epu32 (__U,__A);
7231 __m256i test_mm512_mask_cvtps_ph(__m256i src, __mmask16 k, __m512 a)
7233 // CHECK-LABEL: @test_mm512_mask_cvtps_ph
7234 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
7235 return _mm512_mask_cvtps_ph(src, k, a,_MM_FROUND_CUR_DIRECTION);
7238 __m256i test_mm512_maskz_cvtps_ph (__mmask16 k, __m512 a)
7240 // CHECK-LABEL: @test_mm512_maskz_cvtps_ph
7241 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
7242 return _mm512_maskz_cvtps_ph( k, a,_MM_FROUND_CUR_DIRECTION);
7245 __m512i test_mm512_cvtps_epu32 ( __m512 __A)
7247 // CHECK-LABEL: @test_mm512_cvtps_epu32
7248 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
7249 return _mm512_cvtps_epu32(__A);
7252 __m512i test_mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
7254 // CHECK-LABEL: @test_mm512_mask_cvtps_epu32
7255 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
7256 return _mm512_mask_cvtps_epu32( __W, __U, __A);
7258 __m512i test_mm512_maskz_cvtps_epu32 (__mmask16 __U, __m512 __A)
7260 // CHECK-LABEL: @test_mm512_maskz_cvtps_epu32
7261 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
7262 return _mm512_maskz_cvtps_epu32( __U, __A);
7265 double test_mm512_cvtsd_f64(__m512d A) {
7266 // CHECK-LABEL: test_mm512_cvtsd_f64
7267 // CHECK: extractelement <8 x double> %{{.*}}, i32 0
7268 return _mm512_cvtsd_f64(A);
7271 float test_mm512_cvtss_f32(__m512 A) {
7272 // CHECK-LABEL: test_mm512_cvtss_f32
7273 // CHECK: extractelement <16 x float> %{{.*}}, i32 0
7274 return _mm512_cvtss_f32(A);
7277 __m512d test_mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
7279 // CHECK-LABEL: @test_mm512_mask_max_pd
7280 // CHECK: @llvm.x86.avx512.mask.max.pd.512
7281 return _mm512_mask_max_pd (__W,__U,__A,__B);
7284 __m512d test_mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B)
7286 // CHECK-LABEL: @test_mm512_maskz_max_pd
7287 // CHECK: @llvm.x86.avx512.mask.max.pd.512
7288 return _mm512_maskz_max_pd (__U,__A,__B);
7291 __m512 test_mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
7293 // CHECK-LABEL: @test_mm512_mask_max_ps
7294 // CHECK: @llvm.x86.avx512.mask.max.ps.512
7295 return _mm512_mask_max_ps (__W,__U,__A,__B);
7298 __m512d test_mm512_mask_max_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)
7300 // CHECK-LABEL: @test_mm512_mask_max_round_pd
7301 // CHECK: @llvm.x86.avx512.mask.max.pd.512
7302 return _mm512_mask_max_round_pd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
7305 __m512d test_mm512_maskz_max_round_pd(__mmask8 __U,__m512d __A,__m512d __B)
7307 // CHECK-LABEL: @test_mm512_maskz_max_round_pd
7308 // CHECK: @llvm.x86.avx512.mask.max.pd.512
7309 return _mm512_maskz_max_round_pd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
7312 __m512d test_mm512_max_round_pd(__m512d __A,__m512d __B)
7314 // CHECK-LABEL: @test_mm512_max_round_pd
7315 // CHECK: @llvm.x86.avx512.mask.max.pd.512
7316 return _mm512_max_round_pd(__A,__B,_MM_FROUND_CUR_DIRECTION);
7319 __m512 test_mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B)
7321 // CHECK-LABEL: @test_mm512_maskz_max_ps
7322 // CHECK: @llvm.x86.avx512.mask.max.ps.512
7323 return _mm512_maskz_max_ps (__U,__A,__B);
7326 __m512 test_mm512_mask_max_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)
7328 // CHECK-LABEL: @test_mm512_mask_max_round_ps
7329 // CHECK: @llvm.x86.avx512.mask.max.ps.512
7330 return _mm512_mask_max_round_ps(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
7333 __m512 test_mm512_maskz_max_round_ps(__mmask16 __U,__m512 __A,__m512 __B)
7335 // CHECK-LABEL: @test_mm512_maskz_max_round_ps
7336 // CHECK: @llvm.x86.avx512.mask.max.ps.512
7337 return _mm512_maskz_max_round_ps(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
7340 __m512 test_mm512_max_round_ps(__m512 __A,__m512 __B)
7342 // CHECK-LABEL: @test_mm512_max_round_ps
7343 // CHECK: @llvm.x86.avx512.mask.max.ps.512
7344 return _mm512_max_round_ps(__A,__B,_MM_FROUND_CUR_DIRECTION);
7347 __m512d test_mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
7349 // CHECK-LABEL: @test_mm512_mask_min_pd
7350 // CHECK: @llvm.x86.avx512.mask.min.pd.512
7351 return _mm512_mask_min_pd (__W,__U,__A,__B);
7354 __m512d test_mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B)
7356 // CHECK-LABEL: @test_mm512_maskz_min_pd
7357 // CHECK: @llvm.x86.avx512.mask.min.pd.512
7358 return _mm512_maskz_min_pd (__U,__A,__B);
7361 __m512d test_mm512_mask_min_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)
7363 // CHECK-LABEL: @test_mm512_mask_min_round_pd
7364 // CHECK: @llvm.x86.avx512.mask.min.pd.512
7365 return _mm512_mask_min_round_pd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
7368 __m512d test_mm512_maskz_min_round_pd(__mmask8 __U,__m512d __A,__m512d __B)
7370 // CHECK-LABEL: @test_mm512_maskz_min_round_pd
7371 // CHECK: @llvm.x86.avx512.mask.min.pd.512
7372 return _mm512_maskz_min_round_pd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
7375 __m512d test_mm512_min_round_pd( __m512d __A,__m512d __B)
7377 // CHECK-LABEL: @test_mm512_min_round_pd
7378 // CHECK: @llvm.x86.avx512.mask.min.pd.512
7379 return _mm512_min_round_pd(__A,__B,_MM_FROUND_CUR_DIRECTION);
7382 __m512 test_mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
7384 // CHECK-LABEL: @test_mm512_mask_min_ps
7385 // CHECK: @llvm.x86.avx512.mask.min.ps.512
7386 return _mm512_mask_min_ps (__W,__U,__A,__B);
7389 __m512 test_mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B)
7391 // CHECK-LABEL: @test_mm512_maskz_min_ps
7392 // CHECK: @llvm.x86.avx512.mask.min.ps.512
7393 return _mm512_maskz_min_ps (__U,__A,__B);
7396 __m512 test_mm512_mask_min_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)
7398 // CHECK-LABEL: @test_mm512_mask_min_round_ps
7399 // CHECK: @llvm.x86.avx512.mask.min.ps.512
7400 return _mm512_mask_min_round_ps(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
7403 __m512 test_mm512_maskz_min_round_ps(__mmask16 __U,__m512 __A,__m512 __B)
7405 // CHECK-LABEL: @test_mm512_maskz_min_round_ps
7406 // CHECK: @llvm.x86.avx512.mask.min.ps.512
7407 return _mm512_maskz_min_round_ps(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
7410 __m512 test_mm512_min_round_ps(__m512 __A,__m512 __B)
7412 // CHECK-LABEL: @test_mm512_min_round_ps
7413 // CHECK: @llvm.x86.avx512.mask.min.ps.512
7414 return _mm512_min_round_ps(__A,__B,_MM_FROUND_CUR_DIRECTION);
7417 __m512 test_mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A)
7419 // CHECK-LABEL: @test_mm512_mask_floor_ps
7420 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7421 return _mm512_mask_floor_ps (__W,__U,__A);
7424 __m512d test_mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A)
7426 // CHECK-LABEL: @test_mm512_mask_floor_pd
7427 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7428 return _mm512_mask_floor_pd (__W,__U,__A);
7431 __m512 test_mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A)
7433 // CHECK-LABEL: @test_mm512_mask_ceil_ps
7434 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7435 return _mm512_mask_ceil_ps (__W,__U,__A);
7438 __m512d test_mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A)
7440 // CHECK-LABEL: @test_mm512_mask_ceil_pd
7441 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7442 return _mm512_mask_ceil_pd (__W,__U,__A);
7445 __m512 test_mm512_mask_roundscale_ps(__m512 __W, __mmask16 __U, __m512 __A)
7447 // CHECK-LABEL: @test_mm512_mask_roundscale_ps
7448 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7449 return _mm512_mask_roundscale_ps(__W,__U,__A, 1);
7452 __m512 test_mm512_maskz_roundscale_ps(__mmask16 __U, __m512 __A)
7454 // CHECK-LABEL: @test_mm512_maskz_roundscale_ps
7455 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7456 return _mm512_maskz_roundscale_ps(__U,__A, 1);
7459 __m512 test_mm512_mask_roundscale_round_ps(__m512 __A,__mmask16 __U,__m512 __C)
7461 // CHECK-LABEL: @test_mm512_mask_roundscale_round_ps
7462 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7463 return _mm512_mask_roundscale_round_ps(__A,__U,__C,3,_MM_FROUND_CUR_DIRECTION);
7466 __m512 test_mm512_maskz_roundscale_round_ps(__m512 __A,__mmask16 __U)
7468 // CHECK-LABEL: @test_mm512_maskz_roundscale_round_ps
7469 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7470 return _mm512_maskz_roundscale_round_ps(__U,__A,3,_MM_FROUND_CUR_DIRECTION);
7473 __m512 test_mm512_roundscale_round_ps(__m512 __A)
7475 // CHECK-LABEL: @test_mm512_roundscale_round_ps
7476 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
7477 return _mm512_roundscale_round_ps(__A,3,_MM_FROUND_CUR_DIRECTION);
7480 __m512d test_mm512_mask_roundscale_pd(__m512d __W, __mmask8 __U, __m512d __A)
7482 // CHECK-LABEL: @test_mm512_mask_roundscale_pd
7483 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7484 return _mm512_mask_roundscale_pd(__W,__U,__A, 1);
7487 __m512d test_mm512_maskz_roundscale_pd(__mmask8 __U, __m512d __A)
7489 // CHECK-LABEL: @test_mm512_maskz_roundscale_pd
7490 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7491 return _mm512_maskz_roundscale_pd(__U,__A, 1);
7494 __m512d test_mm512_mask_roundscale_round_pd(__m512d __A,__mmask8 __U,__m512d __C)
7496 // CHECK-LABEL: @test_mm512_mask_roundscale_round_pd
7497 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7498 return _mm512_mask_roundscale_round_pd(__A,__U,__C,3,_MM_FROUND_CUR_DIRECTION);
7501 __m512d test_mm512_maskz_roundscale_round_pd(__m512d __A,__mmask8 __U)
7503 // CHECK-LABEL: @test_mm512_maskz_roundscale_round_pd
7504 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7505 return _mm512_maskz_roundscale_round_pd(__U,__A,3,_MM_FROUND_CUR_DIRECTION);
7508 __m512d test_mm512_roundscale_round_pd(__m512d __A)
7510 // CHECK-LABEL: @test_mm512_roundscale_round_pd
7511 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
7512 return _mm512_roundscale_round_pd(__A,3,_MM_FROUND_CUR_DIRECTION);
7515 __m512i test_mm512_max_epi32 (__m512i __A, __m512i __B)
7517 // CHECK-LABEL: @test_mm512_max_epi32
7518 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i32> [[X:%.*]], [[Y:%.*]]
7519 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7520 return _mm512_max_epi32 (__A,__B);
7523 __m512i test_mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7525 // CHECK-LABEL: @test_mm512_mask_max_epi32
7526 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i32> [[X:%.*]], [[Y:%.*]]
7527 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7528 // CHECK: select <16 x i1> {{.*}}, <16 x i32> [[RES]], <16 x i32> {{.*}}
7529 return _mm512_mask_max_epi32 (__W,__M,__A,__B);
7532 __m512i test_mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
7534 // CHECK-LABEL: @test_mm512_maskz_max_epi32
7535 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i32> [[X:%.*]], [[Y:%.*]]
7536 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7537 // CHECK: select <16 x i1> {{.*}}, <16 x i32> [[RES]], <16 x i32> {{.*}}
7538 return _mm512_maskz_max_epi32 (__M,__A,__B);
7541 __m512i test_mm512_max_epi64 (__m512i __A, __m512i __B)
7543 // CHECK-LABEL: @test_mm512_max_epi64
7544 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i64> [[X:%.*]], [[Y:%.*]]
7545 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7546 return _mm512_max_epi64 (__A,__B);
7549 __m512i test_mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7551 // CHECK-LABEL: @test_mm512_mask_max_epi64
7552 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i64> [[X:%.*]], [[Y:%.*]]
7553 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7554 // CHECK: select <8 x i1> {{.*}}, <8 x i64> [[RES]], <8 x i64> {{.*}}
7555 return _mm512_mask_max_epi64 (__W,__M,__A,__B);
7558 __m512i test_mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
7560 // CHECK-LABEL: @test_mm512_maskz_max_epi64
7561 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i64> [[X:%.*]], [[Y:%.*]]
7562 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7563 // CHECK: select <8 x i1> {{.*}}, <8 x i64> [[RES]], <8 x i64> {{.*}}
7564 return _mm512_maskz_max_epi64 (__M,__A,__B);
7567 __m512i test_mm512_max_epu64 (__m512i __A, __m512i __B)
7569 // CHECK-LABEL: @test_mm512_max_epu64
7570 // CHECK: [[CMP:%.*]] = icmp ugt <8 x i64> [[X:%.*]], [[Y:%.*]]
7571 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7572 return _mm512_max_epu64 (__A,__B);
7575 __m512i test_mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7577 // CHECK-LABEL: @test_mm512_mask_max_epu64
7578 // CHECK: [[CMP:%.*]] = icmp ugt <8 x i64> [[X:%.*]], [[Y:%.*]]
7579 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7580 // CHECK: select <8 x i1> {{.*}}, <8 x i64> [[RES]], <8 x i64> {{.*}}
7581 return _mm512_mask_max_epu64 (__W,__M,__A,__B);
7584 __m512i test_mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
7586 // CHECK-LABEL: @test_mm512_maskz_max_epu64
7587 // CHECK: [[CMP:%.*]] = icmp ugt <8 x i64> [[X:%.*]], [[Y:%.*]]
7588 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7589 // CHECK: select <8 x i1> {{.*}}, <8 x i64> [[RES]], <8 x i64> {{.*}}
7590 return _mm512_maskz_max_epu64 (__M,__A,__B);
7593 __m512i test_mm512_max_epu32 (__m512i __A, __m512i __B)
7595 // CHECK-LABEL: @test_mm512_max_epu32
7596 // CHECK: [[CMP:%.*]] = icmp ugt <16 x i32> [[X:%.*]], [[Y:%.*]]
7597 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7598 return _mm512_max_epu32 (__A,__B);
7601 __m512i test_mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7603 // CHECK-LABEL: @test_mm512_mask_max_epu32
7604 // CHECK: [[CMP:%.*]] = icmp ugt <16 x i32> [[X:%.*]], [[Y:%.*]]
7605 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7606 // CHECK: select <16 x i1> {{.*}}, <16 x i32> [[RES]], <16 x i32> {{.*}}
7607 return _mm512_mask_max_epu32 (__W,__M,__A,__B);
7610 __m512i test_mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
7612 // CHECK-LABEL: @test_mm512_maskz_max_epu32
7613 // CHECK: [[CMP:%.*]] = icmp ugt <16 x i32> [[X:%.*]], [[Y:%.*]]
7614 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7615 // CHECK: select <16 x i1> {{.*}}, <16 x i32> [[RES]], <16 x i32> {{.*}}
7616 return _mm512_maskz_max_epu32 (__M,__A,__B);
7619 __m512i test_mm512_min_epi32 (__m512i __A, __m512i __B)
7621 // CHECK-LABEL: @test_mm512_min_epi32
7622 // CHECK: [[CMP:%.*]] = icmp slt <16 x i32> [[X:%.*]], [[Y:%.*]]
7623 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7624 return _mm512_min_epi32 (__A,__B);
7627 __m512i test_mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7629 // CHECK-LABEL: @test_mm512_mask_min_epi32
7630 // CHECK: [[CMP:%.*]] = icmp slt <16 x i32> [[X:%.*]], [[Y:%.*]]
7631 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7632 // CHECK: select <16 x i1> {{.*}}, <16 x i32> [[RES]], <16 x i32> {{.*}}
7633 return _mm512_mask_min_epi32 (__W,__M,__A,__B);
7636 __m512i test_mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
7638 // CHECK-LABEL: @test_mm512_maskz_min_epi32
7639 // CHECK: [[CMP:%.*]] = icmp slt <16 x i32> [[X:%.*]], [[Y:%.*]]
7640 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7641 // CHECK: select <16 x i1> {{.*}}, <16 x i32> [[RES]], <16 x i32> {{.*}}
7642 return _mm512_maskz_min_epi32 (__M,__A,__B);
7645 __m512i test_mm512_min_epu32 (__m512i __A, __m512i __B)
7647 // CHECK-LABEL: @test_mm512_min_epu32
7648 // CHECK: [[CMP:%.*]] = icmp ult <16 x i32> [[X:%.*]], [[Y:%.*]]
7649 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7650 return _mm512_min_epu32 (__A,__B);
7653 __m512i test_mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
7655 // CHECK-LABEL: @test_mm512_mask_min_epu32
7656 // CHECK: [[CMP:%.*]] = icmp ult <16 x i32> [[X:%.*]], [[Y:%.*]]
7657 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7658 // CHECK: select <16 x i1> {{.*}}, <16 x i32> [[RES]], <16 x i32> {{.*}}
7659 return _mm512_mask_min_epu32 (__W,__M,__A,__B);
7662 __m512i test_mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
7664 // CHECK-LABEL: @test_mm512_maskz_min_epu32
7665 // CHECK: [[CMP:%.*]] = icmp ult <16 x i32> [[X:%.*]], [[Y:%.*]]
7666 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i32> [[X]], <16 x i32> [[Y]]
7667 // CHECK: select <16 x i1> {{.*}}, <16 x i32> [[RES]], <16 x i32> {{.*}}
7668 return _mm512_maskz_min_epu32 (__M,__A,__B);
7671 __m512i test_mm512_min_epi64 (__m512i __A, __m512i __B)
7673 // CHECK-LABEL: @test_mm512_min_epi64
7674 // CHECK: [[CMP:%.*]] = icmp slt <8 x i64> [[X:%.*]], [[Y:%.*]]
7675 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7676 return _mm512_min_epi64 (__A,__B);
7679 __m512i test_mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7681 // CHECK-LABEL: @test_mm512_mask_min_epi64
7682 // CHECK: [[CMP:%.*]] = icmp slt <8 x i64> [[X:%.*]], [[Y:%.*]]
7683 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7684 // CHECK: select <8 x i1> {{.*}}, <8 x i64> [[RES]], <8 x i64> {{.*}}
7685 return _mm512_mask_min_epi64 (__W,__M,__A,__B);
7688 __m512i test_mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
7690 // CHECK-LABEL: @test_mm512_maskz_min_epi64
7691 // CHECK: [[CMP:%.*]] = icmp slt <8 x i64> [[X:%.*]], [[Y:%.*]]
7692 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7693 // CHECK: select <8 x i1> {{.*}}, <8 x i64> [[RES]], <8 x i64> {{.*}}
7694 return _mm512_maskz_min_epi64 (__M,__A,__B);
7697 __m512i test_mm512_min_epu64 (__m512i __A, __m512i __B)
7699 // CHECK-LABEL: @test_mm512_min_epu64
7700 // CHECK: [[CMP:%.*]] = icmp ult <8 x i64> [[X:%.*]], [[Y:%.*]]
7701 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7702 return _mm512_min_epu64 (__A,__B);
7705 __m512i test_mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
7707 // CHECK-LABEL: @test_mm512_mask_min_epu64
7708 // CHECK: [[CMP:%.*]] = icmp ult <8 x i64> [[X:%.*]], [[Y:%.*]]
7709 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7710 // CHECK: select <8 x i1> {{.*}}, <8 x i64> [[RES]], <8 x i64> {{.*}}
7711 return _mm512_mask_min_epu64 (__W,__M,__A,__B);
7714 __m512i test_mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
7716 // CHECK-LABEL: @test_mm512_maskz_min_epu64
7717 // CHECK: [[CMP:%.*]] = icmp ult <8 x i64> [[X:%.*]], [[Y:%.*]]
7718 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[X]], <8 x i64> [[Y]]
7719 // CHECK: select <8 x i1> {{.*}}, <8 x i64> [[RES]], <8 x i64> {{.*}}
7720 return _mm512_maskz_min_epu64 (__M,__A,__B);
7723 __m512i test_mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A)
7725 //CHECK-LABEL: @test_mm512_mask_set1_epi32
7726 //CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.512
7727 return _mm512_mask_set1_epi32 ( __O, __M, __A);
7730 __m512i test_mm512_set_epi8(char e63, char e62, char e61, char e60, char e59,
7731 char e58, char e57, char e56, char e55, char e54, char e53, char e52,
7732 char e51, char e50, char e49, char e48, char e47, char e46, char e45,
7733 char e44, char e43, char e42, char e41, char e40, char e39, char e38,
7734 char e37, char e36, char e35, char e34, char e33, char e32, char e31,
7735 char e30, char e29, char e28, char e27, char e26, char e25, char e24,
7736 char e23, char e22, char e21, char e20, char e19, char e18, char e17,
7737 char e16, char e15, char e14, char e13, char e12, char e11, char e10,
7738 char e9, char e8, char e7, char e6, char e5, char e4, char e3, char e2,
7741 //CHECK-LABEL: @test_mm512_set_epi8
7742 //CHECK: load i8, i8* %e63.addr, align 1
7743 //CHECK: load i8, i8* %e62.addr, align 1
7744 //CHECK: load i8, i8* %e61.addr, align 1
7745 //CHECK: load i8, i8* %e60.addr, align 1
7746 //CHECK: load i8, i8* %e59.addr, align 1
7747 //CHECK: load i8, i8* %e58.addr, align 1
7748 //CHECK: load i8, i8* %e57.addr, align 1
7749 //CHECK: load i8, i8* %e56.addr, align 1
7750 //CHECK: load i8, i8* %e55.addr, align 1
7751 //CHECK: load i8, i8* %e54.addr, align 1
7752 //CHECK: load i8, i8* %e53.addr, align 1
7753 //CHECK: load i8, i8* %e52.addr, align 1
7754 //CHECK: load i8, i8* %e51.addr, align 1
7755 //CHECK: load i8, i8* %e50.addr, align 1
7756 //CHECK: load i8, i8* %e49.addr, align 1
7757 //CHECK: load i8, i8* %e48.addr, align 1
7758 //CHECK: load i8, i8* %e47.addr, align 1
7759 //CHECK: load i8, i8* %e46.addr, align 1
7760 //CHECK: load i8, i8* %e45.addr, align 1
7761 //CHECK: load i8, i8* %e44.addr, align 1
7762 //CHECK: load i8, i8* %e43.addr, align 1
7763 //CHECK: load i8, i8* %e42.addr, align 1
7764 //CHECK: load i8, i8* %e41.addr, align 1
7765 //CHECK: load i8, i8* %e40.addr, align 1
7766 //CHECK: load i8, i8* %e39.addr, align 1
7767 //CHECK: load i8, i8* %e38.addr, align 1
7768 //CHECK: load i8, i8* %e37.addr, align 1
7769 //CHECK: load i8, i8* %e36.addr, align 1
7770 //CHECK: load i8, i8* %e35.addr, align 1
7771 //CHECK: load i8, i8* %e34.addr, align 1
7772 //CHECK: load i8, i8* %e33.addr, align 1
7773 //CHECK: load i8, i8* %e32.addr, align 1
7774 //CHECK: load i8, i8* %e31.addr, align 1
7775 //CHECK: load i8, i8* %e30.addr, align 1
7776 //CHECK: load i8, i8* %e29.addr, align 1
7777 //CHECK: load i8, i8* %e28.addr, align 1
7778 //CHECK: load i8, i8* %e27.addr, align 1
7779 //CHECK: load i8, i8* %e26.addr, align 1
7780 //CHECK: load i8, i8* %e25.addr, align 1
7781 //CHECK: load i8, i8* %e24.addr, align 1
7782 //CHECK: load i8, i8* %e23.addr, align 1
7783 //CHECK: load i8, i8* %e22.addr, align 1
7784 //CHECK: load i8, i8* %e21.addr, align 1
7785 //CHECK: load i8, i8* %e20.addr, align 1
7786 //CHECK: load i8, i8* %e19.addr, align 1
7787 //CHECK: load i8, i8* %e18.addr, align 1
7788 //CHECK: load i8, i8* %e17.addr, align 1
7789 //CHECK: load i8, i8* %e16.addr, align 1
7790 //CHECK: load i8, i8* %e15.addr, align 1
7791 //CHECK: load i8, i8* %e14.addr, align 1
7792 //CHECK: load i8, i8* %e13.addr, align 1
7793 //CHECK: load i8, i8* %e12.addr, align 1
7794 //CHECK: load i8, i8* %e11.addr, align 1
7795 //CHECK: load i8, i8* %e10.addr, align 1
7796 //CHECK: load i8, i8* %e9.addr, align 1
7797 //CHECK: load i8, i8* %e8.addr, align 1
7798 //CHECK: load i8, i8* %e7.addr, align 1
7799 //CHECK: load i8, i8* %e6.addr, align 1
7800 //CHECK: load i8, i8* %e5.addr, align 1
7801 //CHECK: load i8, i8* %e4.addr, align 1
7802 //CHECK: load i8, i8* %e3.addr, align 1
7803 //CHECK: load i8, i8* %e2.addr, align 1
7804 //CHECK: load i8, i8* %e1.addr, align 1
7805 //CHECK: load i8, i8* %e0.addr, align 1
7806 return _mm512_set_epi8(e63, e62, e61, e60, e59, e58, e57, e56, e55, e54,
7807 e53, e52, e51, e50, e49, e48,e47, e46, e45, e44, e43, e42, e41, e40,
7808 e39, e38, e37, e36, e35, e34, e33, e32,e31, e30, e29, e28, e27, e26,
7809 e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12,
7810 e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0);
7813 __m512i test_mm512_set_epi16(short e31, short e30, short e29, short e28,
7814 short e27, short e26, short e25, short e24, short e23, short e22,
7815 short e21, short e20, short e19, short e18, short e17,
7816 short e16, short e15, short e14, short e13, short e12,
7817 short e11, short e10, short e9, short e8, short e7,
7818 short e6, short e5, short e4, short e3, short e2, short e1, short e0) {
7819 //CHECK-LABEL: @test_mm512_set_epi16
7820 //CHECK: insertelement{{.*}}i32 0
7821 //CHECK: insertelement{{.*}}i32 1
7822 //CHECK: insertelement{{.*}}i32 2
7823 //CHECK: insertelement{{.*}}i32 3
7824 //CHECK: insertelement{{.*}}i32 4
7825 //CHECK: insertelement{{.*}}i32 5
7826 //CHECK: insertelement{{.*}}i32 6
7827 //CHECK: insertelement{{.*}}i32 7
7828 //CHECK: insertelement{{.*}}i32 8
7829 //CHECK: insertelement{{.*}}i32 9
7830 //CHECK: insertelement{{.*}}i32 10
7831 //CHECK: insertelement{{.*}}i32 11
7832 //CHECK: insertelement{{.*}}i32 12
7833 //CHECK: insertelement{{.*}}i32 13
7834 //CHECK: insertelement{{.*}}i32 14
7835 //CHECK: insertelement{{.*}}i32 15
7836 //CHECK: insertelement{{.*}}i32 16
7837 //CHECK: insertelement{{.*}}i32 17
7838 //CHECK: insertelement{{.*}}i32 18
7839 //CHECK: insertelement{{.*}}i32 19
7840 //CHECK: insertelement{{.*}}i32 20
7841 //CHECK: insertelement{{.*}}i32 21
7842 //CHECK: insertelement{{.*}}i32 22
7843 //CHECK: insertelement{{.*}}i32 23
7844 //CHECK: insertelement{{.*}}i32 24
7845 //CHECK: insertelement{{.*}}i32 25
7846 //CHECK: insertelement{{.*}}i32 26
7847 //CHECK: insertelement{{.*}}i32 27
7848 //CHECK: insertelement{{.*}}i32 28
7849 //CHECK: insertelement{{.*}}i32 29
7850 //CHECK: insertelement{{.*}}i32 30
7851 //CHECK: insertelement{{.*}}i32 31
7852 return _mm512_set_epi16(e31, e30, e29, e28, e27, e26, e25, e24, e23, e22,
7853 e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7,
7854 e6, e5, e4, e3, e2, e1, e0);
7857 __m512i test_mm512_set_epi32 (int __A, int __B, int __C, int __D,
7858 int __E, int __F, int __G, int __H,
7859 int __I, int __J, int __K, int __L,
7860 int __M, int __N, int __O, int __P)
7862 //CHECK-LABEL: @test_mm512_set_epi32
7863 //CHECK: insertelement{{.*}}i32 0
7864 //CHECK: insertelement{{.*}}i32 1
7865 //CHECK: insertelement{{.*}}i32 2
7866 //CHECK: insertelement{{.*}}i32 3
7867 //CHECK: insertelement{{.*}}i32 4
7868 //CHECK: insertelement{{.*}}i32 5
7869 //CHECK: insertelement{{.*}}i32 6
7870 //CHECK: insertelement{{.*}}i32 7
7871 //CHECK: insertelement{{.*}}i32 8
7872 //CHECK: insertelement{{.*}}i32 9
7873 //CHECK: insertelement{{.*}}i32 10
7874 //CHECK: insertelement{{.*}}i32 11
7875 //CHECK: insertelement{{.*}}i32 12
7876 //CHECK: insertelement{{.*}}i32 13
7877 //CHECK: insertelement{{.*}}i32 14
7878 //CHECK: insertelement{{.*}}i32 15
7879 return _mm512_set_epi32( __A, __B, __C, __D,__E, __F, __G, __H,
7880 __I, __J, __K, __L,__M, __N, __O, __P);
7883 __m512i test_mm512_setr_epi32 (int __A, int __B, int __C, int __D,
7884 int __E, int __F, int __G, int __H,
7885 int __I, int __J, int __K, int __L,
7886 int __M, int __N, int __O, int __P)
7888 //CHECK-LABEL: @test_mm512_setr_epi32
7889 //CHECK: load{{.*}}%__P.addr, align 4
7890 //CHECK: load{{.*}}%__O.addr, align 4
7891 //CHECK: load{{.*}}%__N.addr, align 4
7892 //CHECK: load{{.*}}%__M.addr, align 4
7893 //CHECK: load{{.*}}%__L.addr, align 4
7894 //CHECK: load{{.*}}%__K.addr, align 4
7895 //CHECK: load{{.*}}%__J.addr, align 4
7896 //CHECK: load{{.*}}%__I.addr, align 4
7897 //CHECK: load{{.*}}%__H.addr, align 4
7898 //CHECK: load{{.*}}%__G.addr, align 4
7899 //CHECK: load{{.*}}%__F.addr, align 4
7900 //CHECK: load{{.*}}%__E.addr, align 4
7901 //CHECK: load{{.*}}%__D.addr, align 4
7902 //CHECK: load{{.*}}%__C.addr, align 4
7903 //CHECK: load{{.*}}%__B.addr, align 4
7904 //CHECK: load{{.*}}%__A.addr, align 4
7905 //CHECK: insertelement{{.*}}i32 0
7906 //CHECK: insertelement{{.*}}i32 1
7907 //CHECK: insertelement{{.*}}i32 2
7908 //CHECK: insertelement{{.*}}i32 3
7909 //CHECK: insertelement{{.*}}i32 4
7910 //CHECK: insertelement{{.*}}i32 5
7911 //CHECK: insertelement{{.*}}i32 6
7912 //CHECK: insertelement{{.*}}i32 7
7913 //CHECK: insertelement{{.*}}i32 8
7914 //CHECK: insertelement{{.*}}i32 9
7915 //CHECK: insertelement{{.*}}i32 10
7916 //CHECK: insertelement{{.*}}i32 11
7917 //CHECK: insertelement{{.*}}i32 12
7918 //CHECK: insertelement{{.*}}i32 13
7919 //CHECK: insertelement{{.*}}i32 14
7920 //CHECK: insertelement{{.*}}i32 15
7921 return _mm512_setr_epi32( __A, __B, __C, __D,__E, __F, __G, __H,
7922 __I, __J, __K, __L,__M, __N, __O, __P);
7926 __m512i test_mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A)
7928 //CHECK-LABEL: @test_mm512_mask_set1_epi64
7929 //CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.512
7930 return _mm512_mask_set1_epi64 (__O, __M, __A);
7934 __m512i test_mm512_set_epi64 (long long __A, long long __B, long long __C,
7935 long long __D, long long __E, long long __F,
7936 long long __G, long long __H)
7938 //CHECK-LABEL: @test_mm512_set_epi64
7939 //CHECK: insertelement{{.*}}i32 0
7940 //CHECK: insertelement{{.*}}i32 1
7941 //CHECK: insertelement{{.*}}i32 2
7942 //CHECK: insertelement{{.*}}i32 3
7943 //CHECK: insertelement{{.*}}i32 4
7944 //CHECK: insertelement{{.*}}i32 5
7945 //CHECK: insertelement{{.*}}i32 6
7946 //CHECK: insertelement{{.*}}i32 7
7947 return _mm512_set_epi64(__A, __B, __C, __D, __E, __F, __G, __H );
7950 __m512i test_mm512_setr_epi64 (long long __A, long long __B, long long __C,
7951 long long __D, long long __E, long long __F,
7952 long long __G, long long __H)
7954 //CHECK-LABEL: @test_mm512_setr_epi64
7955 //CHECK: load{{.*}}%__H.addr, align 8
7956 //CHECK: load{{.*}}%__G.addr, align 8
7957 //CHECK: load{{.*}}%__F.addr, align 8
7958 //CHECK: load{{.*}}%__E.addr, align 8
7959 //CHECK: load{{.*}}%__D.addr, align 8
7960 //CHECK: load{{.*}}%__C.addr, align 8
7961 //CHECK: load{{.*}}%__B.addr, align 8
7962 //CHECK: load{{.*}}%__A.addr, align 8
7963 //CHECK: insertelement{{.*}}i32 0
7964 //CHECK: insertelement{{.*}}i32 1
7965 //CHECK: insertelement{{.*}}i32 2
7966 //CHECK: insertelement{{.*}}i32 3
7967 //CHECK: insertelement{{.*}}i32 4
7968 //CHECK: insertelement{{.*}}i32 5
7969 //CHECK: insertelement{{.*}}i32 6
7970 //CHECK: insertelement{{.*}}i32 7
7971 return _mm512_setr_epi64(__A, __B, __C, __D, __E, __F, __G, __H );
7974 __m512d test_mm512_set_pd (double __A, double __B, double __C, double __D,
7975 double __E, double __F, double __G, double __H)
7977 //CHECK-LABEL: @test_mm512_set_pd
7978 //CHECK: insertelement{{.*}}i32 0
7979 //CHECK: insertelement{{.*}}i32 1
7980 //CHECK: insertelement{{.*}}i32 2
7981 //CHECK: insertelement{{.*}}i32 3
7982 //CHECK: insertelement{{.*}}i32 4
7983 //CHECK: insertelement{{.*}}i32 5
7984 //CHECK: insertelement{{.*}}i32 6
7985 //CHECK: insertelement{{.*}}i32 7
7986 return _mm512_set_pd( __A, __B, __C, __D, __E, __F, __G, __H);
7989 __m512d test_mm512_setr_pd (double __A, double __B, double __C, double __D,
7990 double __E, double __F, double __G, double __H)
7992 //CHECK-LABEL: @test_mm512_setr_pd
7993 //CHECK: load{{.*}}%__H.addr, align 8
7994 //CHECK: load{{.*}}%__G.addr, align 8
7995 //CHECK: load{{.*}}%__F.addr, align 8
7996 //CHECK: load{{.*}}%__E.addr, align 8
7997 //CHECK: load{{.*}}%__D.addr, align 8
7998 //CHECK: load{{.*}}%__C.addr, align 8
7999 //CHECK: load{{.*}}%__B.addr, align 8
8000 //CHECK: load{{.*}}%__A.addr, align 8
8001 //CHECK: insertelement{{.*}}i32 0
8002 //CHECK: insertelement{{.*}}i32 1
8003 //CHECK: insertelement{{.*}}i32 2
8004 //CHECK: insertelement{{.*}}i32 3
8005 //CHECK: insertelement{{.*}}i32 4
8006 //CHECK: insertelement{{.*}}i32 5
8007 //CHECK: insertelement{{.*}}i32 6
8008 //CHECK: insertelement{{.*}}i32 7
8009 return _mm512_setr_pd( __A, __B, __C, __D, __E, __F, __G, __H);
8012 __m512 test_mm512_set_ps (float __A, float __B, float __C, float __D,
8013 float __E, float __F, float __G, float __H,
8014 float __I, float __J, float __K, float __L,
8015 float __M, float __N, float __O, float __P)
8017 //CHECK-LABEL: @test_mm512_set_ps
8018 //CHECK: insertelement{{.*}}i32 0
8019 //CHECK: insertelement{{.*}}i32 1
8020 //CHECK: insertelement{{.*}}i32 2
8021 //CHECK: insertelement{{.*}}i32 3
8022 //CHECK: insertelement{{.*}}i32 4
8023 //CHECK: insertelement{{.*}}i32 5
8024 //CHECK: insertelement{{.*}}i32 6
8025 //CHECK: insertelement{{.*}}i32 7
8026 //CHECK: insertelement{{.*}}i32 8
8027 //CHECK: insertelement{{.*}}i32 9
8028 //CHECK: insertelement{{.*}}i32 10
8029 //CHECK: insertelement{{.*}}i32 11
8030 //CHECK: insertelement{{.*}}i32 12
8031 //CHECK: insertelement{{.*}}i32 13
8032 //CHECK: insertelement{{.*}}i32 14
8033 //CHECK: insertelement{{.*}}i32 15
8034 return _mm512_set_ps( __A, __B, __C, __D, __E, __F, __G, __H,
8035 __I, __J, __K, __L, __M, __N, __O, __P);
8038 __m512i test_mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
8040 // CHECK-LABEL: @test_mm512_mask_abs_epi64
8041 // CHECK: @llvm.x86.avx512.mask.pabs.q.512
8042 return _mm512_mask_abs_epi64 (__W,__U,__A);
8045 __m512i test_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
8047 // CHECK-LABEL: @test_mm512_maskz_abs_epi64
8048 // CHECK: @llvm.x86.avx512.mask.pabs.q.512
8049 return _mm512_maskz_abs_epi64 (__U,__A);
8052 __m512i test_mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
8054 // CHECK-LABEL: @test_mm512_mask_abs_epi32
8055 // CHECK: @llvm.x86.avx512.mask.pabs.d.512
8056 return _mm512_mask_abs_epi32 (__W,__U,__A);
8059 __m512i test_mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)
8061 // CHECK-LABEL: @test_mm512_maskz_abs_epi32
8062 // CHECK: @llvm.x86.avx512.mask.pabs.d.512
8063 return _mm512_maskz_abs_epi32 (__U,__A);
8066 __m512 test_mm512_setr_ps (float __A, float __B, float __C, float __D,
8067 float __E, float __F, float __G, float __H,
8068 float __I, float __J, float __K, float __L,
8069 float __M, float __N, float __O, float __P)
8071 //CHECK-LABEL: @test_mm512_setr_ps
8072 //CHECK: load{{.*}}%__P.addr, align 4
8073 //CHECK: load{{.*}}%__O.addr, align 4
8074 //CHECK: load{{.*}}%__N.addr, align 4
8075 //CHECK: load{{.*}}%__M.addr, align 4
8076 //CHECK: load{{.*}}%__L.addr, align 4
8077 //CHECK: load{{.*}}%__K.addr, align 4
8078 //CHECK: load{{.*}}%__J.addr, align 4
8079 //CHECK: load{{.*}}%__I.addr, align 4
8080 //CHECK: load{{.*}}%__H.addr, align 4
8081 //CHECK: load{{.*}}%__G.addr, align 4
8082 //CHECK: load{{.*}}%__F.addr, align 4
8083 //CHECK: load{{.*}}%__E.addr, align 4
8084 //CHECK: load{{.*}}%__D.addr, align 4
8085 //CHECK: load{{.*}}%__C.addr, align 4
8086 //CHECK: load{{.*}}%__B.addr, align 4
8087 //CHECK: load{{.*}}%__A.addr, align 4
8088 //CHECK: insertelement{{.*}}i32 0
8089 //CHECK: insertelement{{.*}}i32 1
8090 //CHECK: insertelement{{.*}}i32 2
8091 //CHECK: insertelement{{.*}}i32 3
8092 //CHECK: insertelement{{.*}}i32 4
8093 //CHECK: insertelement{{.*}}i32 5
8094 //CHECK: insertelement{{.*}}i32 6
8095 //CHECK: insertelement{{.*}}i32 7
8096 //CHECK: insertelement{{.*}}i32 8
8097 //CHECK: insertelement{{.*}}i32 9
8098 //CHECK: insertelement{{.*}}i32 10
8099 //CHECK: insertelement{{.*}}i32 11
8100 //CHECK: insertelement{{.*}}i32 12
8101 //CHECK: insertelement{{.*}}i32 13
8102 //CHECK: insertelement{{.*}}i32 14
8103 //CHECK: insertelement{{.*}}i32 15
8104 return _mm512_setr_ps( __A, __B, __C, __D, __E, __F, __G, __H,
8105 __I, __J, __K, __L, __M, __N, __O, __P);
8108 int test_mm_cvtss_i32(__m128 A) {
8109 // CHECK-LABEL: test_mm_cvtss_i32
8110 // CHECK: call i32 @llvm.x86.sse.cvtss2si(<4 x float> %{{.*}})
8111 return _mm_cvtss_i32(A);
8115 long long test_mm_cvtss_i64(__m128 A) {
8116 // CHECK-LABEL: test_mm_cvtss_i64
8117 // CHECK: call i64 @llvm.x86.sse.cvtss2si64(<4 x float> %{{.*}})
8118 return _mm_cvtss_i64(A);
8122 __m128d test_mm_cvti32_sd(__m128d A, int B) {
8123 // CHECK-LABEL: test_mm_cvti32_sd
8124 // CHECK: sitofp i32 %{{.*}} to double
8125 // CHECK: insertelement <2 x double> %{{.*}}, double %{{.*}}, i32 0
8126 return _mm_cvti32_sd(A, B);
8130 __m128d test_mm_cvti64_sd(__m128d A, long long B) {
8131 // CHECK-LABEL: test_mm_cvti64_sd
8132 // CHECK: sitofp i64 %{{.*}} to double
8133 // CHECK: insertelement <2 x double> %{{.*}}, double %{{.*}}, i32 0
8134 return _mm_cvti64_sd(A, B);
8138 __m128 test_mm_cvti32_ss(__m128 A, int B) {
8139 // CHECK-LABEL: test_mm_cvti32_ss
8140 // CHECK: sitofp i32 %{{.*}} to float
8141 // CHECK: insertelement <4 x float> %{{.*}}, float %{{.*}}, i32 0
8142 return _mm_cvti32_ss(A, B);
8146 __m128 test_mm_cvti64_ss(__m128 A, long long B) {
8147 // CHECK-LABEL: test_mm_cvti64_ss
8148 // CHECK: sitofp i64 %{{.*}} to float
8149 // CHECK: insertelement <4 x float> %{{.*}}, float %{{.*}}, i32 0
8150 return _mm_cvti64_ss(A, B);
8154 int test_mm_cvtsd_i32(__m128d A) {
8155 // CHECK-LABEL: test_mm_cvtsd_i32
8156 // CHECK: call i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %{{.*}})
8157 return _mm_cvtsd_i32(A);
8161 long long test_mm_cvtsd_i64(__m128d A) {
8162 // CHECK-LABEL: test_mm_cvtsd_i64
8163 // CHECK: call i64 @llvm.x86.sse2.cvtsd2si64(<2 x double> %{{.*}})
8164 return _mm_cvtsd_i64(A);
8168 __m128d test_mm_mask_cvtss_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128 __B) {
8169 // CHECK-LABEL: @test_mm_mask_cvtss_sd
8170 // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
8171 return _mm_mask_cvtss_sd(__W, __U, __A, __B);
8174 __m128d test_mm_maskz_cvtss_sd( __mmask8 __U, __m128d __A, __m128 __B) {
8175 // CHECK-LABEL: @test_mm_maskz_cvtss_sd
8176 // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
8177 return _mm_maskz_cvtss_sd( __U, __A, __B);
8180 __m128 test_mm_mask_cvtsd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128d __B) {
8181 // CHECK-LABEL: @test_mm_mask_cvtsd_ss
8182 // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
8183 return _mm_mask_cvtsd_ss(__W, __U, __A, __B);
8186 __m128 test_mm_maskz_cvtsd_ss(__mmask8 __U, __m128 __A, __m128d __B) {
8187 // CHECK-LABEL: @test_mm_maskz_cvtsd_ss
8188 // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
8189 return _mm_maskz_cvtsd_ss(__U, __A, __B);
8193 __m512i test_mm512_setzero_epi32()
8195 // CHECK-LABEL: @test_mm512_setzero_epi32
8196 // CHECK: zeroinitializer
8197 return _mm512_setzero_epi32();
8200 __m512i test_mm512_setzero()
8202 // CHECK-LABEL: @test_mm512_setzero
8203 // CHECK: zeroinitializer
8204 return _mm512_setzero();
8207 __m512i test_mm512_setzero_si512()
8209 // CHECK-LABEL: @test_mm512_setzero_si512
8210 // CHECK: zeroinitializer
8211 return _mm512_setzero_si512();
8214 __m512i test_mm512_setzero_ps()
8216 // CHECK-LABEL: @test_mm512_setzero_ps
8217 // CHECK: zeroinitializer
8218 return _mm512_setzero_ps();
8221 __m512d test_mm512_setzero_pd()
8223 // CHECK-LABEL: @test_mm512_setzero_pd
8224 // CHECK: zeroinitializer
8225 return _mm512_setzero_pd();
8228 __mmask16 test_mm512_int2mask(int __a)
8230 // O2-LABEL: test_mm512_int2mask
8231 // O2: trunc i32 %__a to i16
8232 return _mm512_int2mask(__a);
8235 int test_mm512_mask2int(__mmask16 __a)
8237 // O2-LABEL: test_mm512_mask2int
8238 // O2: zext i16 %__a to i32
8239 return _mm512_mask2int(__a);
8242 __m128 test_mm_mask_move_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
8244 // O2-LABEL: @test_mm_mask_move_ss
8245 // O2: %[[M:.*]] = and i8 %__U, 1
8246 // O2: %[[M2:.*]] = icmp
8247 // O2: %[[ELM1:.*]] = extractelement <4 x float>
8248 // O2: %[[ELM2:.*]] = extractelement <4 x float>
8249 // O2: %[[SEL:.*]] = select i1 %[[M2]]
8250 // O2: %[[RES:.*]] = insertelement <4 x float> %__A, float %[[SEL]], i32 0
8251 // O2: ret <4 x float> %[[RES]]
8252 return _mm_mask_move_ss ( __W, __U, __A, __B);
8255 __m128 test_mm_maskz_move_ss (__mmask8 __U, __m128 __A, __m128 __B)
8257 // O2-LABEL: @test_mm_maskz_move_ss
8258 // O2: %[[M:.*]] = and i8 %__U, 1
8259 // O2: %[[M2:.*]] = icmp
8260 // O2: %[[ELM1:.*]] = extractelement <4 x float> %__B, i32 0
8261 // O2: %[[SEL:.*]] = select i1 %[[M2]]
8262 // O2: %[[RES:.*]] = insertelement <4 x float> %__A, float %[[SEL]], i32 0
8263 // O2: ret <4 x float> %[[RES]]
8264 return _mm_maskz_move_ss (__U, __A, __B);
8267 __m128d test_mm_mask_move_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
8269 // O2-LABEL: @test_mm_mask_move_sd
8270 // O2: %[[M:.*]] = and i8 %__U, 1
8271 // O2: %[[M2:.*]] = icmp
8272 // O2: %[[ELM1:.*]] = extractelement <2 x double>
8273 // O2: %[[ELM2:.*]] = extractelement <2 x double>
8274 // O2: %[[SEL:.*]] = select i1 %[[M2]]
8275 // O2: %[[RES:.*]] = insertelement <2 x double> %__A, double %[[SEL]], i32 0
8276 // O2: ret <2 x double> %[[RES]]
8277 return _mm_mask_move_sd ( __W, __U, __A, __B);
8280 __m128d test_mm_maskz_move_sd (__mmask8 __U, __m128d __A, __m128d __B)
8282 // O2-LABEL: @test_mm_maskz_move_sd
8283 // O2: %[[M:.*]] = and i8 %__U, 1
8284 // O2: %[[M2:.*]] = icmp
8285 // O2: %[[ELM1:.*]] = extractelement <2 x double> %__B, i32 0
8286 // O2: %[[SEL:.*]] = select i1 %[[M2]]
8287 // O2: %[[RES:.*]] = insertelement <2 x double> %__A, double %[[SEL]], i32 0
8288 // O2: ret <2 x double> %[[RES]]
8289 return _mm_maskz_move_sd (__U, __A, __B);
8292 void test_mm_mask_store_ss(float * __P, __mmask8 __U, __m128 __A)
8294 // O2-LABEL: @test_mm_mask_store_ss
8295 // O2: %[[CAST:.*]] = bitcast float* %__P to <16 x float>*
8296 // O2: %[[SHUFFLE:.*]] = shufflevector <4 x float> %__A, <4 x float> undef, <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>
8297 // O2: %[[MASK1:.*]] = and i8 %__U, 1
8298 // O2: %[[MASK2:.*]] = zext i8 %[[MASK1]] to i16
8299 // O2: %[[MASK3:.*]] = bitcast i16 %[[MASK2]] to <16 x i1>
8300 // O2: tail call void @llvm.masked.store.v16f32.p0v16f32(<16 x float> %[[SHUFFLE]], <16 x float>* %[[CAST]], i32 16, <16 x i1> %[[MASK3]])
8301 _mm_mask_store_ss(__P, __U, __A);
8304 void test_mm_mask_store_sd(double * __P, __mmask8 __U, __m128d __A)
8306 // O2-LABEL: @test_mm_mask_store_sd
8307 // O2: %[[CAST:.*]] = bitcast double* %__P to <8 x double>*
8308 // O2: %[[SHUFFLE:.*]] = shufflevector <2 x double> %__A, <2 x double> undef, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
8309 // O2: %[[MASK1:.*]] = and i8 %__U, 1
8310 // O2: %[[MASK2:.*]] = bitcast i8 %[[MASK1]] to <8 x i1>
8311 // O2: tail call void @llvm.masked.store.v8f64.p0v8f64(<8 x double> %[[SHUFFLE]], <8 x double>* %[[CAST]], i32 16, <8 x i1> %[[MASK2]])
8312 _mm_mask_store_sd(__P, __U, __A);
8315 __m128 test_mm_mask_load_ss(__m128 __A, __mmask8 __U, const float* __W)
8317 // O2-LABEL: @test_mm_mask_load_ss
8318 // O2: %[[SHUF:.*]] = shufflevector <4 x float> %__A, <4 x float> <float 0.000000e+00, float undef, float undef, float undef>, <4 x i32> <i32 0, i32 4, i32 4, i32 4>
8319 // O2: %[[PTR:.*]] = bitcast float* %__W to <16 x float>*
8320 // O2: %[[SHUF2:.*]] = shufflevector <4 x float> %[[SHUF]], <4 x float> undef, <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>
8321 // O2: %[[AND:.*]] = and i8 %__U, 1
8322 // O2: %[[MASK:.*]] = zext i8 %[[AND]] to i16
8323 // O2: %[[MASK2:.*]] = bitcast i16 %[[MASK]] to <16 x i1>
8324 // O2: %[[RES:.*]] = tail call <16 x float> @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %[[PTR]], i32 16, <16 x i1> %[[MASK2]], <16 x float> %[[SHUF2]])
8325 // O2: shufflevector <16 x float> %[[RES]], <16 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8326 return _mm_mask_load_ss(__A, __U, __W);
8329 __m128 test_mm_maskz_load_ss (__mmask8 __U, const float * __W)
8331 // O2-LABEL: @test_mm_maskz_load_ss
8332 // O2: %[[PTR:.*]] = bitcast float* %__W to <16 x float>*
8333 // O2: %[[AND:.*]] = and i8 %__U, 1
8334 // O2: %[[MASK:.*]] = zext i8 %[[AND]] to i16
8335 // O2: %[[MASK2:.*]] = bitcast i16 %[[MASK]] to <16 x i1>
8336 // O2: %[[RES:.*]] = tail call <16 x float> @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %[[PTR]], i32 16, <16 x i1> %[[MASK2]], <16 x float> zeroinitializer)
8337 // O2: shufflevector <16 x float> %[[RES]], <16 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8338 return _mm_maskz_load_ss (__U, __W);
8341 __m128d test_mm_mask_load_sd (__m128d __A, __mmask8 __U, const double * __W)
8343 // O2-LABEL: @test_mm_mask_load_sd
8344 // O2: %[[SHUF:.*]] = insertelement <2 x double> %__A, double 0.000000e+00, i32 1
8345 // O2: %[[PTR:.*]] = bitcast double* %__W to <8 x double>*
8346 // O2: %[[SHUF2:.*]] = shufflevector <2 x double> %[[SHUF]], <2 x double> undef, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
8347 // O2: %[[AND:.*]] = and i8 %__U, 1
8348 // O2: %[[MASK:.*]] = bitcast i8 %[[AND]] to <8 x i1>
8349 // O2: %[[RES:.*]] = tail call <8 x double> @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %[[PTR]], i32 16, <8 x i1> %[[MASK]], <8 x double> %[[SHUF2]])
8350 // O2: shufflevector <8 x double> %[[RES]], <8 x double> undef, <2 x i32> <i32 0, i32 1>
8351 return _mm_mask_load_sd (__A, __U, __W);
8354 __m128d test_mm_maskz_load_sd (__mmask8 __U, const double * __W)
8356 // O2-LABEL: @test_mm_maskz_load_sd
8357 // O2: %[[PTR:.*]] = bitcast double* %__W to <8 x double>*
8358 // O2: %[[AND:.*]] = and i8 %__U, 1
8359 // O2: %[[MASK:.*]] = bitcast i8 %[[AND]] to <8 x i1>
8360 // O2: %[[RES:.*]] = tail call <8 x double> @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %[[PTR]], i32 16, <8 x i1> %[[MASK]], <8 x double> zeroinitializer)
8361 // O2: shufflevector <8 x double> %[[RES]], <8 x double> undef, <2 x i32> <i32 0, i32 1>
8362 return _mm_maskz_load_sd (__U, __W);
8365 __m512d test_mm512_abs_pd(__m512d a){
8366 // CHECK-LABEL: @test_mm512_abs_pd
8367 // CHECK: and <8 x i64>
8368 return _mm512_abs_pd(a);
8371 __m512d test_mm512_mask_abs_pd (__m512d __W, __mmask8 __U, __m512d __A){
8372 // CHECK-LABEL: @test_mm512_mask_abs_pd
8373 // CHECK: %[[AND_RES:.*]] = and <8 x i64>
8374 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
8375 // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
8376 return _mm512_mask_abs_pd (__W,__U,__A);
8379 __m512 test_mm512_abs_ps(__m512 a){
8380 // CHECK-LABEL: @test_mm512_abs_ps
8381 // CHECK: and <16 x i32>
8382 return _mm512_abs_ps(a);
8385 __m512 test_mm512_mask_abs_ps(__m512 __W, __mmask16 __U, __m512 __A){
8386 // CHECK-LABEL: @test_mm512_mask_abs_ps
8387 // CHECK: and <16 x i32>
8388 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
8389 // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
8390 return _mm512_mask_abs_ps( __W, __U, __A);
8393 __m512d test_mm512_zextpd128_pd512(__m128d A) {
8394 // CHECK-LABEL: test_mm512_zextpd128_pd512
8395 // CHECK: store <2 x double> zeroinitializer
8396 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 2, i32 3, i32 2, i32 3>
8397 return _mm512_zextpd128_pd512(A);
8400 __m512d test_mm512_zextpd256_pd512(__m256d A) {
8401 // CHECK-LABEL: test_mm512_zextpd256_pd512
8402 // CHECK: store <4 x double> zeroinitializer
8403 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
8404 return _mm512_zextpd256_pd512(A);
8407 __m512 test_mm512_zextps128_ps512(__m128 A) {
8408 // CHECK-LABEL: test_mm512_zextps128_ps512
8409 // CHECK: store <4 x float> zeroinitializer
8410 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 4, i32 5, i32 6, i32 7, i32 4, i32 5, i32 6, i32 7>
8411 return _mm512_zextps128_ps512(A);
8414 __m512 test_mm512_zextps256_ps512(__m256 A) {
8415 // CHECK-LABEL: test_mm512_zextps256_ps512
8416 // CHECK: store <8 x float> zeroinitializer
8417 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
8418 return _mm512_zextps256_ps512(A);
8421 __m512i test_mm512_zextsi128_si512(__m128i A) {
8422 // CHECK-LABEL: test_mm512_zextsi128_si512
8423 // CHECK: store <2 x i64> zeroinitializer
8424 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 2, i32 3, i32 2, i32 3>
8425 return _mm512_zextsi128_si512(A);
8428 __m512i test_mm512_zextsi256_si512(__m256i A) {
8429 // CHECK-LABEL: test_mm512_zextsi256_si512
8430 // CHECK: store <4 x i64> zeroinitializer
8431 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
8432 return _mm512_zextsi256_si512(A);