@@ -527,3 +527,171 @@ __m512i test_mm512_ror_epi64(__m512i __A) {
527527 // OGCG: call <8 x i64> @llvm.fshr.v8i64(<8 x i64> %[[VAR]], <8 x i64> %[[VAR]], <8 x i64> splat (i64 5))
528528 return _mm512_ror_epi64 (__A , 5 );
529529}
530+
531+ void test_mm512_i32scatter_pd (void * __addr , __m256i __index , __m512d __v1 ) {
532+ // CIR-LABEL: test_mm512_i32scatter_pd
533+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dpd.512"
534+
535+ // LLVM-LABEL: test_mm512_i32scatter_pd
536+ // LLVM: @llvm.x86.avx512.mask.scatter.dpd.512
537+
538+ // OGCG-LABEL: test_mm512_i32scatter_pd
539+ // OGCG: @llvm.x86.avx512.mask.scatter.dpd.512
540+ return _mm512_i32scatter_pd (__addr , __index , __v1 , 2 );
541+ }
542+
543+ void test_mm512_mask_i32scatter_pd (void * __addr , __mmask8 __mask , __m256i __index , __m512d __v1 ) {
544+ // CIR-LABEL: test_mm512_mask_i32scatter_pd
545+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dpd.512"
546+
547+ // LLVM-LABEL: test_mm512_mask_i32scatter_pd
548+ // LLVM: @llvm.x86.avx512.mask.scatter.dpd.512
549+
550+ // OGCG-LABEL: test_mm512_mask_i32scatter_pd
551+ // OGCG: @llvm.x86.avx512.mask.scatter.dpd.512
552+ return _mm512_mask_i32scatter_pd (__addr , __mask , __index , __v1 , 2 );
553+ }
554+
555+ void test_mm512_i32scatter_ps (void * __addr , __m512i __index , __m512 __v1 ) {
556+ // CIR-LABEL: test_mm512_i32scatter_ps
557+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dps.512"
558+
559+ // LLVM-LABEL: test_mm512_i32scatter_ps
560+ // LLVM: @llvm.x86.avx512.mask.scatter.dps.512
561+
562+ // OGCG-LABEL: test_mm512_i32scatter_ps
563+ // OGCG: @llvm.x86.avx512.mask.scatter.dps.512
564+ return _mm512_i32scatter_ps (__addr , __index , __v1 , 2 );
565+ }
566+
567+ void test_mm512_mask_i32scatter_ps (void * __addr , __mmask16 __mask , __m512i __index , __m512 __v1 ) {
568+ // CIR-LABEL: test_mm512_mask_i32scatter_ps
569+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dps.512"
570+
571+ // LLVM-LABEL: test_mm512_mask_i32scatter_ps
572+ // LLVM: @llvm.x86.avx512.mask.scatter.dps.512
573+
574+ // OGCG-LABEL: test_mm512_mask_i32scatter_ps
575+ // OGCG: @llvm.x86.avx512.mask.scatter.dps.512
576+ return _mm512_mask_i32scatter_ps (__addr , __mask , __index , __v1 , 2 );
577+ }
578+
579+ void test_mm512_i64scatter_pd (void * __addr , __m512i __index , __m512d __v1 ) {
580+ // CIR-LABEL: test_mm512_i64scatter_pd
581+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpd.512"
582+
583+ // LLVM-LABEL: test_mm512_i64scatter_pd
584+ // LLVM: @llvm.x86.avx512.mask.scatter.qpd.512
585+
586+ // OGCG-LABEL: test_mm512_i64scatter_pd
587+ // OGCG: @llvm.x86.avx512.mask.scatter.qpd.512
588+ return _mm512_i64scatter_pd (__addr , __index , __v1 , 2 );
589+ }
590+
591+ void test_mm512_mask_i64scatter_pd (void * __addr , __mmask8 __mask , __m512i __index , __m512d __v1 ) {
592+ // CIR-LABEL: test_mm512_mask_i64scatter_pd
593+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpd.512"
594+
595+ // LLVM-LABEL: test_mm512_mask_i64scatter_pd
596+ // LLVM: @llvm.x86.avx512.mask.scatter.qpd.512
597+
598+ // OGCG-LABEL: test_mm512_mask_i64scatter_pd
599+ // OGCG: @llvm.x86.avx512.mask.scatter.qpd.512
600+ return _mm512_mask_i64scatter_pd (__addr , __mask , __index , __v1 , 2 );
601+ }
602+
603+ void test_mm512_i64scatter_ps (void * __addr , __m512i __index , __m256 __v1 ) {
604+ // CIR-LABEL: test_mm512_i64scatter_ps
605+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qps.512"
606+
607+ // LLVM-LABEL: test_mm512_i64scatter_ps
608+ // LLVM: @llvm.x86.avx512.mask.scatter.qps.512
609+
610+ // OGCG-LABEL: test_mm512_i64scatter_ps
611+ // OGCG: @llvm.x86.avx512.mask.scatter.qps.512
612+ return _mm512_i64scatter_ps (__addr , __index , __v1 , 2 );
613+ }
614+
615+ void test_mm512_mask_i64scatter_ps (void * __addr , __mmask8 __mask , __m512i __index , __m256 __v1 ) {
616+ // CIR-LABEL: test_mm512_mask_i64scatter_ps
617+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qps.512"
618+
619+ // LLVM-LABEL: test_mm512_mask_i64scatter_ps
620+ // LLVM: @llvm.x86.avx512.mask.scatter.qps.512
621+
622+ // OGCG-LABEL: test_mm512_mask_i64scatter_ps
623+ // OGCG: @llvm.x86.avx512.mask.scatter.qps.512
624+ return _mm512_mask_i64scatter_ps (__addr , __mask , __index , __v1 , 2 );
625+ }
626+
627+ void test_mm512_i32scatter_epi32 (void * __addr , __m512i __index , __m512i __v1 ) {
628+ // CIR-LABEL: test_mm512_i32scatter_epi32
629+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dpi.512"
630+
631+ // LLVM-LABEL: test_mm512_i32scatter_epi32
632+ // LLVM: @llvm.x86.avx512.mask.scatter.dpi.512
633+
634+ // OGCG-LABEL: test_mm512_i32scatter_epi32
635+ // OGCG: @llvm.x86.avx512.mask.scatter.dpi.512
636+ return _mm512_i32scatter_epi32 (__addr , __index , __v1 , 2 );
637+ }
638+
639+ void test_mm512_mask_i32scatter_epi32 (void * __addr , __mmask16 __mask , __m512i __index , __m512i __v1 ) {
640+ // CIR-LABEL: test_mm512_mask_i32scatter_epi32
641+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.dpi.512"
642+
643+ // LLVM-LABEL: test_mm512_mask_i32scatter_epi32
644+ // LLVM: @llvm.x86.avx512.mask.scatter.dpi.512
645+
646+ // OGCG-LABEL: test_mm512_mask_i32scatter_epi32
647+ // OGCG: @llvm.x86.avx512.mask.scatter.dpi.512
648+ return _mm512_mask_i32scatter_epi32 (__addr , __mask , __index , __v1 , 2 );
649+ }
650+
651+ void test_mm512_i64scatter_epi64 (void * __addr , __m512i __index , __m512i __v1 ) {
652+ // CIR-LABEL: test_mm512_i64scatter_epi64
653+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpq.512"
654+
655+ // LLVM-LABEL: test_mm512_i64scatter_epi64
656+ // LLVM: @llvm.x86.avx512.mask.scatter.qpq.512
657+
658+ // OGCG-LABEL: test_mm512_i64scatter_epi64
659+ // OGCG: @llvm.x86.avx512.mask.scatter.qpq.512
660+ return _mm512_i64scatter_epi64 (__addr , __index , __v1 , 2 );
661+ }
662+
663+ void test_mm512_mask_i64scatter_epi64 (void * __addr , __mmask8 __mask , __m512i __index , __m512i __v1 ) {
664+ // CIR-LABEL: test_mm512_mask_i64scatter_epi64
665+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpq.512"
666+
667+ // LLVM-LABEL: test_mm512_mask_i64scatter_epi64
668+ // LLVM: @llvm.x86.avx512.mask.scatter.qpq.512
669+
670+ // OGCG-LABEL: test_mm512_mask_i64scatter_epi64
671+ // OGCG: @llvm.x86.avx512.mask.scatter.qpq.512
672+ return _mm512_mask_i64scatter_epi64 (__addr , __mask , __index , __v1 , 2 );
673+ }
674+
675+ void test_mm512_i64scatter_epi32 (void * __addr , __m512i __index , __m256i __v1 ) {
676+ // CIR-LABEL: test_mm512_i64scatter_epi32
677+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpi.512"
678+
679+ // LLVM-LABEL: test_mm512_i64scatter_epi32
680+ // LLVM: @llvm.x86.avx512.mask.scatter.qpi.512
681+
682+ // OGCG-LABEL: test_mm512_i64scatter_epi32
683+ // OGCG: @llvm.x86.avx512.mask.scatter.qpi.512
684+ return _mm512_i64scatter_epi32 (__addr , __index , __v1 , 2 );
685+ }
686+
687+ void test_mm512_mask_i64scatter_epi32 (void * __addr , __mmask8 __mask , __m512i __index , __m256i __v1 ) {
688+ // CIR-LABEL: test_mm512_mask_i64scatter_epi32
689+ // CIR: cir.call_llvm_intrinsic "x86.avx512.mask.scatter.qpi.512"
690+
691+ // LLVM-LABEL: test_mm512_mask_i64scatter_epi32
692+ // LLVM: @llvm.x86.avx512.mask.scatter.qpi.512
693+
694+ // OGCG-LABEL: test_mm512_mask_i64scatter_epi32
695+ // OGCG: @llvm.x86.avx512.mask.scatter.qpi.512
696+ return _mm512_mask_i64scatter_epi32 (__addr , __mask , __index , __v1 , 2 );
697+ }
0 commit comments