(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr85323-4.c
       1  /* PR target/85323 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -mavx512vl -mavx512bw -fdump-tree-optimized" } */
       4  /* { dg-final { scan-tree-dump-times "return x_\[0-9]*.D.;" 3 "optimized" } } */
       5  
       6  #include <x86intrin.h>
       7  
       8  __m128i
       9  foo (__m128i x)
      10  {
      11    x = _mm_sllv_epi64 (x, _mm_set1_epi32 (0));
      12    x = _mm_sllv_epi32 (x, _mm_set1_epi32 (0));
      13    x = _mm_sllv_epi16 (x, _mm_set1_epi32 (0));
      14    x = _mm_srlv_epi64 (x, _mm_set1_epi32 (0));
      15    x = _mm_srlv_epi32 (x, _mm_set1_epi32 (0));
      16    x = _mm_srlv_epi16 (x, _mm_set1_epi32 (0));
      17    x = _mm_srav_epi64 (x, _mm_set1_epi32 (0));
      18    x = _mm_srav_epi32 (x, _mm_set1_epi32 (0));
      19    x = _mm_srav_epi16 (x, _mm_set1_epi32 (0));
      20    return x;
      21  }
      22  
      23  __m256i
      24  bar (__m256i x)
      25  {
      26    x = _mm256_sllv_epi64 (x, _mm256_set1_epi32 (0));
      27    x = _mm256_sllv_epi32 (x, _mm256_set1_epi32 (0));
      28    x = _mm256_sllv_epi16 (x, _mm256_set1_epi32 (0));
      29    x = _mm256_srlv_epi64 (x, _mm256_set1_epi32 (0));
      30    x = _mm256_srlv_epi32 (x, _mm256_set1_epi32 (0));
      31    x = _mm256_srlv_epi16 (x, _mm256_set1_epi32 (0));
      32    x = _mm256_srav_epi64 (x, _mm256_set1_epi32 (0));
      33    x = _mm256_srav_epi32 (x, _mm256_set1_epi32 (0));
      34    x = _mm256_srav_epi16 (x, _mm256_set1_epi32 (0));
      35    return x;
      36  }
      37  
      38  __m512i
      39  baz (__m512i x)
      40  {
      41    x = _mm512_sllv_epi64 (x, _mm512_setzero_epi32 ());
      42    x = _mm512_sllv_epi32 (x, _mm512_setzero_epi32 ());
      43    x = _mm512_sllv_epi16 (x, _mm512_setzero_epi32 ());
      44    x = _mm512_srlv_epi64 (x, _mm512_setzero_epi32 ());
      45    x = _mm512_srlv_epi32 (x, _mm512_setzero_epi32 ());
      46    x = _mm512_srlv_epi16 (x, _mm512_setzero_epi32 ());
      47    x = _mm512_srav_epi64 (x, _mm512_setzero_epi32 ());
      48    x = _mm512_srav_epi32 (x, _mm512_setzero_epi32 ());
      49    x = _mm512_srav_epi16 (x, _mm512_setzero_epi32 ());
      50    return x;
      51  }