(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr93430.c
       1  /* PR target/93430 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2" } */
       4  /* { dg-additional-options "-mavx -mno-avx2" { target avx } } */
       5  
       6  typedef double V __attribute__((vector_size (4 * sizeof (double))));
       7  typedef long long VI __attribute__((vector_size (4 * sizeof (long long))));
       8  
       9  #if __SIZEOF_DOUBLE__ == __SIZEOF_LONG_LONG__
      10  void
      11  foo (V *x, V *y)
      12  {
      13    y[0] = __builtin_shuffle (x[0], x[0], (VI) { 0, 0, 0, 0 });
      14  }
      15  
      16  void
      17  bar (V *x, V *y)
      18  {
      19    y[0] = __builtin_shuffle (x[0], x[0], (VI) { 1, 1, 1, 1 });
      20  }
      21  
      22  void
      23  baz (V *x, V *y)
      24  {
      25    y[0] = __builtin_shuffle (x[0], x[0], (VI) { 2, 2, 2, 2 });
      26  }
      27  
      28  void
      29  qux (V *x, V *y)
      30  {
      31    y[0] = __builtin_shuffle (x[0], x[0], (VI) { 3, 3, 3, 3 });
      32  }
      33  #endif