@@ -337,3 +337,128 @@ __m512i test_mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P) {
337337 // LLVM: @llvm.masked.expandload.v16i32(ptr %{{.*}}, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
338338 return _mm512_maskz_expandloadu_epi32 (__U , __P );
339339}
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