(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
avx512bw-pr96906-1.c
       1  /* PR target/96906 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -mavx512bw -mavx512vl -masm=att" } */
       4  /* { dg-final { scan-assembler-times {(?n)vpcmpub[ \t]*\$2} 9 } } */
       5  /* { dg-final { scan-assembler-times {(?n)vpcmpub[ \t]*\$6} 9 } } */
       6  /* { dg-final { scan-assembler-times {(?n)vpcmpuw[ \t]*\$2} 9 } } */
       7  /* { dg-final { scan-assembler-times {(?n)vpcmpuw[ \t]*\$6} 9 } } */
       8  
       9  
      10  #include<immintrin.h>
      11  
      12  #define FOO(LENGTH,SUFFIX,TYPE,UTYPE,RTYPE,PRED)			\
      13    __mmask##RTYPE							\
      14    foo_##LENGTH##_##TYPE##_##PRED (__m##LENGTH##i x, __m##LENGTH##i y)	\
      15    {									\
      16      return								\
      17        _mm##SUFFIX##_cmp_##TYPE##_mask (_mm##SUFFIX##_subs_##UTYPE (x, y), \
      18  				       _mm##SUFFIX##_setzero_si##LENGTH (), \
      19  				       PRED);				\
      20    }									\
      21  
      22  FOO (128,, epi16, epu16, 8, 0);
      23  FOO (128,, epi16, epu16, 8, 4);
      24  
      25  FOO (128,, epu16, epu16, 8, 0);
      26  FOO (128,, epu16, epu16, 8, 2);
      27  FOO (128,, epu16, epu16, 8, 4);
      28  FOO (128,, epu16, epu16, 8, 6);
      29  
      30  FOO (256, 256, epi16, epu16, 16, 0);
      31  FOO (256, 256, epi16, epu16, 16, 4);
      32  
      33  FOO (256, 256, epu16, epu16, 16, 0);
      34  FOO (256, 256, epu16, epu16, 16, 2);
      35  FOO (256, 256, epu16, epu16, 16, 4);
      36  FOO (256, 256, epu16, epu16, 16, 6);
      37  
      38  FOO (512, 512, epi16, epu16, 32, 0);
      39  FOO (512, 512, epi16, epu16, 32, 4);
      40  
      41  FOO (512, 512, epu16, epu16, 32, 0);
      42  FOO (512, 512, epu16, epu16, 32, 2);
      43  FOO (512, 512, epu16, epu16, 32, 4);
      44  FOO (512, 512, epu16, epu16, 32, 6);
      45  
      46  FOO (128,, epi8, epu8, 16, 0);
      47  FOO (128,, epi8, epu8, 16, 4);
      48  
      49  FOO (128,, epu8, epu8, 16, 0);
      50  FOO (128,, epu8, epu8, 16, 2);
      51  FOO (128,, epu8, epu8, 16, 4);
      52  FOO (128,, epu8, epu8, 16, 6);
      53  
      54  FOO (256, 256, epi8, epu8, 32, 0);
      55  FOO (256, 256, epi8, epu8, 32, 4);
      56  
      57  FOO (256, 256, epu8, epu8, 32, 0);
      58  FOO (256, 256, epu8, epu8, 32, 2);
      59  FOO (256, 256, epu8, epu8, 32, 4);
      60  FOO (256, 256, epu8, epu8, 32, 6);
      61  
      62  FOO (512, 512, epi8, epu8, 64, 0);
      63  FOO (512, 512, epi8, epu8, 64, 4);
      64  
      65  FOO (512, 512, epu8, epu8, 64, 0);
      66  FOO (512, 512, epu8, epu8, 64, 2);
      67  FOO (512, 512, epu8, epu8, 64, 4);
      68  FOO (512, 512, epu8, epu8, 64, 6);