@@ -337,3 +337,128 @@ __m512i test_mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P) {
337
337
// LLVM: @llvm.masked.expandload.v16i32(ptr %{{.*}}, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
338
338
return _mm512_maskz_expandloadu_epi32 (__U , __P );
339
339
}
340
+ void test_mm512_i32scatter_pd (void * __addr , __m256i __index , __m512d __v1 ) {
341
+ // CIR-LABEL: test_mm512_i32scatter_pd
342
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dpd.512"
343
+
344
+ // LLVM-LABEL: test_mm512_i32scatter_pd
345
+ // LLVM: @llvm.x86.avx512.mask.scatter.dpd.512
346
+ return _mm512_i32scatter_pd (__addr , __index , __v1 , 2 );
347
+ }
348
+
349
+ void test_mm512_mask_i32scatter_pd (void * __addr , __mmask8 __mask , __m256i __index , __m512d __v1 ) {
350
+ // CIR-LABEL: test_mm512_mask_i32scatter_pd
351
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dpd.512"
352
+
353
+ // LLVM-LABEL: test_mm512_mask_i32scatter_pd
354
+ // LLVM: @llvm.x86.avx512.mask.scatter.dpd.512
355
+ return _mm512_mask_i32scatter_pd (__addr , __mask , __index , __v1 , 2 );
356
+ }
357
+
358
+ void test_mm512_i32scatter_ps (void * __addr , __m512i __index , __m512 __v1 ) {
359
+ // CIR-LABEL: test_mm512_i32scatter_ps
360
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dps.512"
361
+
362
+ // LLVM-LABEL: test_mm512_i32scatter_ps
363
+ // LLVM: @llvm.x86.avx512.mask.scatter.dps.512
364
+ return _mm512_i32scatter_ps (__addr , __index , __v1 , 2 );
365
+ }
366
+
367
+ void test_mm512_mask_i32scatter_ps (void * __addr , __mmask16 __mask , __m512i __index , __m512 __v1 ) {
368
+ // CIR-LABEL: test_mm512_mask_i32scatter_ps
369
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dps.512"
370
+
371
+ // LLVM-LABEL: test_mm512_mask_i32scatter_ps
372
+ // LLVM: @llvm.x86.avx512.mask.scatter.dps.512
373
+ return _mm512_mask_i32scatter_ps (__addr , __mask , __index , __v1 , 2 );
374
+ }
375
+
376
+ void test_mm512_i64scatter_pd (void * __addr , __m512i __index , __m512d __v1 ) {
377
+ // CIR-LABEL: test_mm512_i64scatter_pd
378
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpd.512"
379
+
380
+ // LLVM-LABEL: test_mm512_i64scatter_pd
381
+ // LLVM: @llvm.x86.avx512.mask.scatter.qpd.512
382
+ return _mm512_i64scatter_pd (__addr , __index , __v1 , 2 );
383
+ }
384
+
385
+ void test_mm512_mask_i64scatter_pd (void * __addr , __mmask8 __mask , __m512i __index , __m512d __v1 ) {
386
+ // CIR-LABEL: test_mm512_mask_i64scatter_pd
387
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpd.512"
388
+
389
+ // LLVM-LABEL: test_mm512_mask_i64scatter_pd
390
+ // LLVM: @llvm.x86.avx512.mask.scatter.qpd.512
391
+ return _mm512_mask_i64scatter_pd (__addr , __mask , __index , __v1 , 2 );
392
+ }
393
+
394
+ void test_mm512_i64scatter_ps (void * __addr , __m512i __index , __m256 __v1 ) {
395
+ // CIR-LABEL: test_mm512_i64scatter_ps
396
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qps.512"
397
+
398
+ // LLVM-LABEL: test_mm512_i64scatter_ps
399
+ // LLVM: @llvm.x86.avx512.mask.scatter.qps.512
400
+ return _mm512_i64scatter_ps (__addr , __index , __v1 , 2 );
401
+ }
402
+
403
+ void test_mm512_mask_i64scatter_ps (void * __addr , __mmask8 __mask , __m512i __index , __m256 __v1 ) {
404
+ // CIR-LABEL: test_mm512_mask_i64scatter_ps
405
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qps.512"
406
+
407
+ // LLVM-LABEL: test_mm512_mask_i64scatter_ps
408
+ // LLVM: @llvm.x86.avx512.mask.scatter.qps.512
409
+ return _mm512_mask_i64scatter_ps (__addr , __mask , __index , __v1 , 2 );
410
+ }
411
+
412
+ void test_mm512_i32scatter_epi32 (void * __addr , __m512i __index , __m512i __v1 ) {
413
+ // CIR-LABEL: test_mm512_i32scatter_epi32
414
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dpi.512"
415
+
416
+ // LLVM-LABEL: test_mm512_i32scatter_epi32
417
+ // LLVM: @llvm.x86.avx512.mask.scatter.dpi.512
418
+ return _mm512_i32scatter_epi32 (__addr , __index , __v1 , 2 );
419
+ }
420
+
421
+ void test_mm512_mask_i32scatter_epi32 (void * __addr , __mmask16 __mask , __m512i __index , __m512i __v1 ) {
422
+ // CIR-LABEL: test_mm512_mask_i32scatter_epi32
423
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dpi.512"
424
+
425
+ // LLVM-LABEL: test_mm512_mask_i32scatter_epi32
426
+ // LLVM: @llvm.x86.avx512.mask.scatter.dpi.512
427
+ return _mm512_mask_i32scatter_epi32 (__addr , __mask , __index , __v1 , 2 );
428
+ }
429
+
430
+ void test_mm512_i64scatter_epi64 (void * __addr , __m512i __index , __m512i __v1 ) {
431
+ // CIR-LABEL: test_mm512_i64scatter_epi64
432
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpq.512"
433
+
434
+ // LLVM-LABEL: test_mm512_i64scatter_epi64
435
+ // LLVM: @llvm.x86.avx512.mask.scatter.qpq.512
436
+ return _mm512_i64scatter_epi64 (__addr , __index , __v1 , 2 );
437
+ }
438
+
439
+ void test_mm512_mask_i64scatter_epi64 (void * __addr , __mmask8 __mask , __m512i __index , __m512i __v1 ) {
440
+ // CIR-LABEL: test_mm512_mask_i64scatter_epi64
441
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpq.512"
442
+
443
+ // LLVM-LABEL: test_mm512_mask_i64scatter_epi64
444
+ // LLVM: @llvm.x86.avx512.mask.scatter.qpq.512
445
+ return _mm512_mask_i64scatter_epi64 (__addr , __mask , __index , __v1 , 2 );
446
+ }
447
+
448
+ void test_mm512_i64scatter_epi32 (void * __addr , __m512i __index , __m256i __v1 ) {
449
+ // CIR-LABEL: test_mm512_i64scatter_epi32
450
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpi.512"
451
+
452
+ // LLVM-LABEL: test_mm512_i64scatter_epi32
453
+ // LLVM: @llvm.x86.avx512.mask.scatter.qpi.512
454
+ return _mm512_i64scatter_epi32 (__addr , __index , __v1 , 2 );
455
+ }
456
+
457
+ void test_mm512_mask_i64scatter_epi32 (void * __addr , __mmask8 __mask , __m512i __index , __m256i __v1 ) {
458
+ // CIR-LABEL: test_mm512_mask_i64scatter_epi32
459
+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpi.512"
460
+
461
+ // LLVM-LABEL: test_mm512_mask_i64scatter_epi32
462
+ // LLVM: @llvm.x86.avx512.mask.scatter.qpi.512
463
+ return _mm512_mask_i64scatter_epi32 (__addr , __mask , __index , __v1 , 2 );
464
+ }
0 commit comments