(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr53346-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-msse2 -O2 -mno-sse3" } */
       3  /* { dg-final { scan-assembler-times "shufps" 15 } } */
       4  /* { dg-final { scan-assembler-times "pshufd" 2 } } */
       5  
       6  typedef int v4si __attribute__((vector_size(16)));
       7  
       8  v4si
       9  __attribute__((noipa))
      10  foo (v4si a, v4si b)
      11  {
      12    return __builtin_shufflevector (a, b, 1, 2, 5, 3);
      13  }
      14  
      15  v4si
      16  __attribute__((noipa))
      17  foo1 (v4si a, v4si b)
      18  {
      19    return __builtin_shufflevector (a, b, 1, 5, 2, 3);
      20  }
      21  
      22  v4si
      23  __attribute__((noipa))
      24  foo2 (v4si a, v4si b)
      25  {
      26    return __builtin_shufflevector (a, b, 1, 2, 3, 5);
      27  }
      28  
      29  v4si
      30  __attribute__((noipa))
      31  foo3 (v4si a, v4si b)
      32  {
      33    return __builtin_shufflevector (a, b, 1, 4, 5, 6);
      34  }
      35  
      36  v4si
      37  __attribute__((noipa))
      38  foo4 (v4si a, v4si b)
      39  {
      40    return __builtin_shufflevector (a, b, 3, 6, 7, 5);
      41  }
      42  
      43  v4si
      44  __attribute__((noipa))
      45  foo5 (v4si a, v4si b)
      46  {
      47    return __builtin_shufflevector (a, b, 2, 4, 7, 6);
      48  }
      49  
      50  v4si
      51  __attribute__((noipa))
      52  foo6 (v4si a, v4si b)
      53  {
      54    return __builtin_shufflevector (a, b, 2, 4, 3, 6);
      55  }
      56  
      57  v4si
      58  __attribute__((noipa))
      59  foo7 (v4si a, v4si b)
      60  {
      61    return __builtin_shufflevector (a, b, 2, 3, 4, 6);
      62  }
      63  
      64  v4si
      65  __attribute__((noipa))
      66  foo8 (v4si a, v4si b)
      67  {
      68    return __builtin_shufflevector (a, b, 2, 4, 6, 3);
      69  }
      70