@@ -446,3 +446,171 @@ __m512i test_mm512_mask_i32gather_epi64(__m512i __v1_old, __mmask8 __mask, __m25
446446 // OGCG: call <8 x i64> @llvm.x86.avx512.mask.gather.dpq.512
447447 return _mm512_mask_i32gather_epi64 (__v1_old , __mask , __index , __addr , 2 );
448448}
449+
450+ void test_mm512_i32scatter_pd (void * __addr , __m256i __index , __m512d __v1 ) {
451+ // CIR-LABEL: test_mm512_i32scatter_pd
452+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dpd.512"
453+
454+ // LLVM-LABEL: test_mm512_i32scatter_pd
455+ // LLVM: @llvm.x86.avx512.mask.scatter.dpd.512
456+
457+ // OGCG-LABEL: test_mm512_i32scatter_pd
458+ // OGCG: @llvm.x86.avx512.mask.scatter.dpd.512
459+ return _mm512_i32scatter_pd (__addr , __index , __v1 , 2 );
460+ }
461+
462+ void test_mm512_mask_i32scatter_pd (void * __addr , __mmask8 __mask , __m256i __index , __m512d __v1 ) {
463+ // CIR-LABEL: test_mm512_mask_i32scatter_pd
464+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dpd.512"
465+
466+ // LLVM-LABEL: test_mm512_mask_i32scatter_pd
467+ // LLVM: @llvm.x86.avx512.mask.scatter.dpd.512
468+
469+ // OGCG-LABEL: test_mm512_mask_i32scatter_pd
470+ // OGCG: @llvm.x86.avx512.mask.scatter.dpd.512
471+ return _mm512_mask_i32scatter_pd (__addr , __mask , __index , __v1 , 2 );
472+ }
473+
474+ void test_mm512_i32scatter_ps (void * __addr , __m512i __index , __m512 __v1 ) {
475+ // CIR-LABEL: test_mm512_i32scatter_ps
476+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dps.512"
477+
478+ // LLVM-LABEL: test_mm512_i32scatter_ps
479+ // LLVM: @llvm.x86.avx512.mask.scatter.dps.512
480+
481+ // OGCG-LABEL: test_mm512_i32scatter_ps
482+ // OGCG: @llvm.x86.avx512.mask.scatter.dps.512
483+ return _mm512_i32scatter_ps (__addr , __index , __v1 , 2 );
484+ }
485+
486+ void test_mm512_mask_i32scatter_ps (void * __addr , __mmask16 __mask , __m512i __index , __m512 __v1 ) {
487+ // CIR-LABEL: test_mm512_mask_i32scatter_ps
488+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dps.512"
489+
490+ // LLVM-LABEL: test_mm512_mask_i32scatter_ps
491+ // LLVM: @llvm.x86.avx512.mask.scatter.dps.512
492+
493+ // OGCG-LABEL: test_mm512_mask_i32scatter_ps
494+ // OGCG: @llvm.x86.avx512.mask.scatter.dps.512
495+ return _mm512_mask_i32scatter_ps (__addr , __mask , __index , __v1 , 2 );
496+ }
497+
498+ void test_mm512_i64scatter_pd (void * __addr , __m512i __index , __m512d __v1 ) {
499+ // CIR-LABEL: test_mm512_i64scatter_pd
500+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpd.512"
501+
502+ // LLVM-LABEL: test_mm512_i64scatter_pd
503+ // LLVM: @llvm.x86.avx512.mask.scatter.qpd.512
504+
505+ // OGCG-LABEL: test_mm512_i64scatter_pd
506+ // OGCG: @llvm.x86.avx512.mask.scatter.qpd.512
507+ return _mm512_i64scatter_pd (__addr , __index , __v1 , 2 );
508+ }
509+
510+ void test_mm512_mask_i64scatter_pd (void * __addr , __mmask8 __mask , __m512i __index , __m512d __v1 ) {
511+ // CIR-LABEL: test_mm512_mask_i64scatter_pd
512+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpd.512"
513+
514+ // LLVM-LABEL: test_mm512_mask_i64scatter_pd
515+ // LLVM: @llvm.x86.avx512.mask.scatter.qpd.512
516+
517+ // OGCG-LABEL: test_mm512_mask_i64scatter_pd
518+ // OGCG: @llvm.x86.avx512.mask.scatter.qpd.512
519+ return _mm512_mask_i64scatter_pd (__addr , __mask , __index , __v1 , 2 );
520+ }
521+
522+ void test_mm512_i64scatter_ps (void * __addr , __m512i __index , __m256 __v1 ) {
523+ // CIR-LABEL: test_mm512_i64scatter_ps
524+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qps.512"
525+
526+ // LLVM-LABEL: test_mm512_i64scatter_ps
527+ // LLVM: @llvm.x86.avx512.mask.scatter.qps.512
528+
529+ // OGCG-LABEL: test_mm512_i64scatter_ps
530+ // OGCG: @llvm.x86.avx512.mask.scatter.qps.512
531+ return _mm512_i64scatter_ps (__addr , __index , __v1 , 2 );
532+ }
533+
534+ void test_mm512_mask_i64scatter_ps (void * __addr , __mmask8 __mask , __m512i __index , __m256 __v1 ) {
535+ // CIR-LABEL: test_mm512_mask_i64scatter_ps
536+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qps.512"
537+
538+ // LLVM-LABEL: test_mm512_mask_i64scatter_ps
539+ // LLVM: @llvm.x86.avx512.mask.scatter.qps.512
540+
541+ // OGCG-LABEL: test_mm512_mask_i64scatter_ps
542+ // OGCG: @llvm.x86.avx512.mask.scatter.qps.512
543+ return _mm512_mask_i64scatter_ps (__addr , __mask , __index , __v1 , 2 );
544+ }
545+
546+ void test_mm512_i32scatter_epi32 (void * __addr , __m512i __index , __m512i __v1 ) {
547+ // CIR-LABEL: test_mm512_i32scatter_epi32
548+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dpi.512"
549+
550+ // LLVM-LABEL: test_mm512_i32scatter_epi32
551+ // LLVM: @llvm.x86.avx512.mask.scatter.dpi.512
552+
553+ // OGCG-LABEL: test_mm512_i32scatter_epi32
554+ // OGCG: @llvm.x86.avx512.mask.scatter.dpi.512
555+ return _mm512_i32scatter_epi32 (__addr , __index , __v1 , 2 );
556+ }
557+
558+ void test_mm512_mask_i32scatter_epi32 (void * __addr , __mmask16 __mask , __m512i __index , __m512i __v1 ) {
559+ // CIR-LABEL: test_mm512_mask_i32scatter_epi32
560+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dpi.512"
561+
562+ // LLVM-LABEL: test_mm512_mask_i32scatter_epi32
563+ // LLVM: @llvm.x86.avx512.mask.scatter.dpi.512
564+
565+ // OGCG-LABEL: test_mm512_mask_i32scatter_epi32
566+ // OGCG: @llvm.x86.avx512.mask.scatter.dpi.512
567+ return _mm512_mask_i32scatter_epi32 (__addr , __mask , __index , __v1 , 2 );
568+ }
569+
570+ void test_mm512_i64scatter_epi64 (void * __addr , __m512i __index , __m512i __v1 ) {
571+ // CIR-LABEL: test_mm512_i64scatter_epi64
572+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpq.512"
573+
574+ // LLVM-LABEL: test_mm512_i64scatter_epi64
575+ // LLVM: @llvm.x86.avx512.mask.scatter.qpq.512
576+
577+ // OGCG-LABEL: test_mm512_i64scatter_epi64
578+ // OGCG: @llvm.x86.avx512.mask.scatter.qpq.512
579+ return _mm512_i64scatter_epi64 (__addr , __index , __v1 , 2 );
580+ }
581+
582+ void test_mm512_mask_i64scatter_epi64 (void * __addr , __mmask8 __mask , __m512i __index , __m512i __v1 ) {
583+ // CIR-LABEL: test_mm512_mask_i64scatter_epi64
584+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpq.512"
585+
586+ // LLVM-LABEL: test_mm512_mask_i64scatter_epi64
587+ // LLVM: @llvm.x86.avx512.mask.scatter.qpq.512
588+
589+ // OGCG-LABEL: test_mm512_mask_i64scatter_epi64
590+ // OGCG: @llvm.x86.avx512.mask.scatter.qpq.512
591+ return _mm512_mask_i64scatter_epi64 (__addr , __mask , __index , __v1 , 2 );
592+ }
593+
594+ void test_mm512_i64scatter_epi32 (void * __addr , __m512i __index , __m256i __v1 ) {
595+ // CIR-LABEL: test_mm512_i64scatter_epi32
596+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpi.512"
597+
598+ // LLVM-LABEL: test_mm512_i64scatter_epi32
599+ // LLVM: @llvm.x86.avx512.mask.scatter.qpi.512
600+
601+ // OGCG-LABEL: test_mm512_i64scatter_epi32
602+ // OGCG: @llvm.x86.avx512.mask.scatter.qpi.512
603+ return _mm512_i64scatter_epi32 (__addr , __index , __v1 , 2 );
604+ }
605+
606+ void test_mm512_mask_i64scatter_epi32 (void * __addr , __mmask8 __mask , __m512i __index , __m256i __v1 ) {
607+ // CIR-LABEL: test_mm512_mask_i64scatter_epi32
608+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpi.512"
609+
610+ // LLVM-LABEL: test_mm512_mask_i64scatter_epi32
611+ // LLVM: @llvm.x86.avx512.mask.scatter.qpi.512
612+
613+ // OGCG-LABEL: test_mm512_mask_i64scatter_epi32
614+ // OGCG: @llvm.x86.avx512.mask.scatter.qpi.512
615+ return _mm512_mask_i64scatter_epi32 (__addr , __mask , __index , __v1 , 2 );
616+ }
0 commit comments