(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr93395.c
       1  /* PR target/93395 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -mavx512f -masm=att" } */
       4  /* { dg-final { scan-assembler-times "vpermilpd\t.5, %ymm" 3 } } */
       5  /* { dg-final { scan-assembler-times "vpermilpd\t.85, %zmm" 3 } } */
       6  /* { dg-final { scan-assembler-not "vpermpd\t" } } */
       7  
       8  #include <immintrin.h>
       9  
      10  __m256d
      11  foo1 (__m256d a)
      12  {
      13    return _mm256_permute4x64_pd (a, 177);
      14  }
      15  
      16  __m256d
      17  foo2 (__m256d a)
      18  {
      19    return _mm256_permute_pd (a, 5);
      20  }
      21  
      22  __m256d
      23  foo3 (__m256d a)
      24  {
      25    return __builtin_shuffle (a, (__v4di) { 1, 0, 3, 2 });
      26  }
      27  
      28  __m512d
      29  foo4 (__m512d a)
      30  {
      31    return _mm512_permutex_pd (a, 177);
      32  }
      33  
      34  __m512d
      35  foo5 (__m512d a)
      36  {
      37    return _mm512_permute_pd (a, 85);
      38  }
      39  
      40  __m512d
      41  foo6 (__m512d a)
      42  {
      43    return __builtin_shuffle (a, (__v8di) { 1, 0, 3, 2, 5, 4, 7, 6 });
      44  }