@@ -507,3 +507,130 @@ __m256i test_mm512_mask_i64gather_epi32(__m256i __v1_old, __mmask8 __mask, __m51
507507 // LLVM: @llvm.x86.avx512.mask.gather.qpi.512
508508 return _mm512_mask_i64gather_epi32 (__v1_old , __mask , __index , __addr , 2 );
509509}
510+
511+
512+ void test_mm512_i32scatter_pd (void * __addr , __m256i __index , __m512d __v1 ) {
513+ // CIR-LABEL: test_mm512_i32scatter_pd
514+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dpd.512"
515+
516+ // LLVM-LABEL: test_mm512_i32scatter_pd
517+ // LLVM: @llvm.x86.avx512.mask.scatter.dpd.512
518+ return _mm512_i32scatter_pd (__addr , __index , __v1 , 2 );
519+ }
520+
521+ void test_mm512_mask_i32scatter_pd (void * __addr , __mmask8 __mask , __m256i __index , __m512d __v1 ) {
522+ // CIR-LABEL: test_mm512_mask_i32scatter_pd
523+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dpd.512"
524+
525+ // LLVM-LABEL: test_mm512_mask_i32scatter_pd
526+ // LLVM: @llvm.x86.avx512.mask.scatter.dpd.512
527+ return _mm512_mask_i32scatter_pd (__addr , __mask , __index , __v1 , 2 );
528+ }
529+
530+ void test_mm512_i32scatter_ps (void * __addr , __m512i __index , __m512 __v1 ) {
531+ // CIR-LABEL: test_mm512_i32scatter_ps
532+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dps.512"
533+
534+ // LLVM-LABEL: test_mm512_i32scatter_ps
535+ // LLVM: @llvm.x86.avx512.mask.scatter.dps.512
536+ return _mm512_i32scatter_ps (__addr , __index , __v1 , 2 );
537+ }
538+
539+ void test_mm512_mask_i32scatter_ps (void * __addr , __mmask16 __mask , __m512i __index , __m512 __v1 ) {
540+ // CIR-LABEL: test_mm512_mask_i32scatter_ps
541+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dps.512"
542+
543+ // LLVM-LABEL: test_mm512_mask_i32scatter_ps
544+ // LLVM: @llvm.x86.avx512.mask.scatter.dps.512
545+ return _mm512_mask_i32scatter_ps (__addr , __mask , __index , __v1 , 2 );
546+ }
547+
548+ void test_mm512_i64scatter_pd (void * __addr , __m512i __index , __m512d __v1 ) {
549+ // CIR-LABEL: test_mm512_i64scatter_pd
550+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpd.512"
551+
552+ // LLVM-LABEL: test_mm512_i64scatter_pd
553+ // LLVM: @llvm.x86.avx512.mask.scatter.qpd.512
554+ return _mm512_i64scatter_pd (__addr , __index , __v1 , 2 );
555+ }
556+
557+ void test_mm512_mask_i64scatter_pd (void * __addr , __mmask8 __mask , __m512i __index , __m512d __v1 ) {
558+ // CIR-LABEL: test_mm512_mask_i64scatter_pd
559+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpd.512"
560+
561+ // LLVM-LABEL: test_mm512_mask_i64scatter_pd
562+ // LLVM: @llvm.x86.avx512.mask.scatter.qpd.512
563+ return _mm512_mask_i64scatter_pd (__addr , __mask , __index , __v1 , 2 );
564+ }
565+
566+ void test_mm512_i64scatter_ps (void * __addr , __m512i __index , __m256 __v1 ) {
567+ // CIR-LABEL: test_mm512_i64scatter_ps
568+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qps.512"
569+
570+ // LLVM-LABEL: test_mm512_i64scatter_ps
571+ // LLVM: @llvm.x86.avx512.mask.scatter.qps.512
572+ return _mm512_i64scatter_ps (__addr , __index , __v1 , 2 );
573+ }
574+
575+ void test_mm512_mask_i64scatter_ps (void * __addr , __mmask8 __mask , __m512i __index , __m256 __v1 ) {
576+ // CIR-LABEL: test_mm512_mask_i64scatter_ps
577+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qps.512"
578+
579+ // LLVM-LABEL: test_mm512_mask_i64scatter_ps
580+ // LLVM: @llvm.x86.avx512.mask.scatter.qps.512
581+ return _mm512_mask_i64scatter_ps (__addr , __mask , __index , __v1 , 2 );
582+ }
583+
584+ void test_mm512_i32scatter_epi32 (void * __addr , __m512i __index , __m512i __v1 ) {
585+ // CIR-LABEL: test_mm512_i32scatter_epi32
586+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dpi.512"
587+
588+ // LLVM-LABEL: test_mm512_i32scatter_epi32
589+ // LLVM: @llvm.x86.avx512.mask.scatter.dpi.512
590+ return _mm512_i32scatter_epi32 (__addr , __index , __v1 , 2 );
591+ }
592+
593+ void test_mm512_mask_i32scatter_epi32 (void * __addr , __mmask16 __mask , __m512i __index , __m512i __v1 ) {
594+ // CIR-LABEL: test_mm512_mask_i32scatter_epi32
595+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.dpi.512"
596+
597+ // LLVM-LABEL: test_mm512_mask_i32scatter_epi32
598+ // LLVM: @llvm.x86.avx512.mask.scatter.dpi.512
599+ return _mm512_mask_i32scatter_epi32 (__addr , __mask , __index , __v1 , 2 );
600+ }
601+
602+ void test_mm512_i64scatter_epi64 (void * __addr , __m512i __index , __m512i __v1 ) {
603+ // CIR-LABEL: test_mm512_i64scatter_epi64
604+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpq.512"
605+
606+ // LLVM-LABEL: test_mm512_i64scatter_epi64
607+ // LLVM: @llvm.x86.avx512.mask.scatter.qpq.512
608+ return _mm512_i64scatter_epi64 (__addr , __index , __v1 , 2 );
609+ }
610+
611+ void test_mm512_mask_i64scatter_epi64 (void * __addr , __mmask8 __mask , __m512i __index , __m512i __v1 ) {
612+ // CIR-LABEL: test_mm512_mask_i64scatter_epi64
613+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpq.512"
614+
615+ // LLVM-LABEL: test_mm512_mask_i64scatter_epi64
616+ // LLVM: @llvm.x86.avx512.mask.scatter.qpq.512
617+ return _mm512_mask_i64scatter_epi64 (__addr , __mask , __index , __v1 , 2 );
618+ }
619+
620+ void test_mm512_i64scatter_epi32 (void * __addr , __m512i __index , __m256i __v1 ) {
621+ // CIR-LABEL: test_mm512_i64scatter_epi32
622+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpi.512"
623+
624+ // LLVM-LABEL: test_mm512_i64scatter_epi32
625+ // LLVM: @llvm.x86.avx512.mask.scatter.qpi.512
626+ return _mm512_i64scatter_epi32 (__addr , __index , __v1 , 2 );
627+ }
628+
629+ void test_mm512_mask_i64scatter_epi32 (void * __addr , __mmask8 __mask , __m512i __index , __m256i __v1 ) {
630+ // CIR-LABEL: test_mm512_mask_i64scatter_epi32
631+ // CIR: cir.llvm.intrinsic "x86.avx512.mask.scatter.qpi.512"
632+
633+ // LLVM-LABEL: test_mm512_mask_i64scatter_epi32
634+ // LLVM: @llvm.x86.avx512.mask.scatter.qpi.512
635+ return _mm512_mask_i64scatter_epi32 (__addr , __mask , __index , __v1 , 2 );
636+ }
0 commit comments