(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr85323-1.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_sll_epi64 (x, _mm_set1_epi32 (0));
      12    x = _mm_sll_epi32 (x, _mm_set1_epi32 (0));
      13    x = _mm_sll_epi16 (x, _mm_set1_epi32 (0));
      14    x = _mm_srl_epi64 (x, _mm_set1_epi32 (0));
      15    x = _mm_srl_epi32 (x, _mm_set1_epi32 (0));
      16    x = _mm_srl_epi16 (x, _mm_set1_epi32 (0));
      17    x = _mm_sra_epi64 (x, _mm_set1_epi32 (0));
      18    x = _mm_sra_epi32 (x, _mm_set1_epi32 (0));
      19    x = _mm_sra_epi16 (x, _mm_set1_epi32 (0));
      20    x = _mm_slli_epi64 (x, 0);
      21    x = _mm_slli_epi32 (x, 0);
      22    x = _mm_slli_epi16 (x, 0);
      23    x = _mm_srli_epi64 (x, 0);
      24    x = _mm_srli_epi32 (x, 0);
      25    x = _mm_srli_epi16 (x, 0);
      26    x = _mm_srai_epi64 (x, 0);
      27    x = _mm_srai_epi32 (x, 0);
      28    x = _mm_srai_epi16 (x, 0);
      29    return x;
      30  }
      31  
      32  __m256i
      33  bar (__m256i x)
      34  {
      35    x = _mm256_sll_epi64 (x, _mm_set1_epi32 (0));
      36    x = _mm256_sll_epi32 (x, _mm_set1_epi32 (0));
      37    x = _mm256_sll_epi16 (x, _mm_set1_epi32 (0));
      38    x = _mm256_srl_epi64 (x, _mm_set1_epi32 (0));
      39    x = _mm256_srl_epi32 (x, _mm_set1_epi32 (0));
      40    x = _mm256_srl_epi16 (x, _mm_set1_epi32 (0));
      41    x = _mm256_sra_epi64 (x, _mm_set1_epi32 (0));
      42    x = _mm256_sra_epi32 (x, _mm_set1_epi32 (0));
      43    x = _mm256_sra_epi16 (x, _mm_set1_epi32 (0));
      44    x = _mm256_slli_epi64 (x, 0);
      45    x = _mm256_slli_epi32 (x, 0);
      46    x = _mm256_slli_epi16 (x, 0);
      47    x = _mm256_srli_epi64 (x, 0);
      48    x = _mm256_srli_epi32 (x, 0);
      49    x = _mm256_srli_epi16 (x, 0);
      50    x = _mm256_srai_epi64 (x, 0);
      51    x = _mm256_srai_epi32 (x, 0);
      52    x = _mm256_srai_epi16 (x, 0);
      53    return x;
      54  }
      55  
      56  __m512i
      57  baz (__m512i x)
      58  {
      59    x = _mm512_sll_epi64 (x, _mm_set1_epi32 (0));
      60    x = _mm512_sll_epi32 (x, _mm_set1_epi32 (0));
      61    x = _mm512_sll_epi16 (x, _mm_set1_epi32 (0));
      62    x = _mm512_srl_epi64 (x, _mm_set1_epi32 (0));
      63    x = _mm512_srl_epi32 (x, _mm_set1_epi32 (0));
      64    x = _mm512_srl_epi16 (x, _mm_set1_epi32 (0));
      65    x = _mm512_sra_epi64 (x, _mm_set1_epi32 (0));
      66    x = _mm512_sra_epi32 (x, _mm_set1_epi32 (0));
      67    x = _mm512_sra_epi16 (x, _mm_set1_epi32 (0));
      68    x = _mm512_slli_epi64 (x, 0);
      69    x = _mm512_slli_epi32 (x, 0);
      70    x = _mm512_slli_epi16 (x, 0);
      71    x = _mm512_srli_epi64 (x, 0);
      72    x = _mm512_srli_epi32 (x, 0);
      73    x = _mm512_srli_epi16 (x, 0);
      74    x = _mm512_srai_epi64 (x, 0);
      75    x = _mm512_srai_epi32 (x, 0);
      76    x = _mm512_srai_epi16 (x, 0);
      77    return x;
      78  }