(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr105354-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -msse2 -mno-ssse3" } */
       3  /* { dg-final { scan-assembler-times {(?n)psrldq[\t ]+} 16 } } */
       4  /* { dg-final { scan-assembler-times {(?n)pslldq[\t ]+} 16 } } */
       5  /* { dg-final { scan-assembler-times {(?n)por[\t ]+} 16 } } */
       6  /* { dg-final { scan-assembler-times {(?n)pandn[\t ]+} 8 } } */
       7  /* { dg-final { scan-assembler-times {(?n)pand[\t ]+} 8 } } */
       8  
       9  typedef short v8hi __attribute__((vector_size (16)));
      10  typedef char v16qi __attribute__((vector_size (16)));
      11  
      12  v16qi
      13  __attribute__((noipa))
      14  foo (v16qi a, v16qi b)
      15  {
      16    return __builtin_shufflevector (a, b, 5, 6, 7, 8, 9, 10, 11, 12,
      17  				  13, 14, 15, 16, 17, 18, 19, 20);
      18  }
      19  
      20  v16qi
      21  __attribute__((noipa))
      22  foo1 (v16qi a, v16qi b)
      23  {
      24    return __builtin_shufflevector (a, b, 5, 6, 7, 8, 9, 10, 11, 12,
      25  				  13, 14, 15, 18, 19, 20, 21, 22);
      26  }
      27  
      28  v16qi
      29  __attribute__((noipa))
      30  foo2 (v16qi a, v16qi b)
      31  {
      32    return __builtin_shufflevector (a, b, 5, 6, 7, 8, 9, 10, 11, 12,
      33  				  13, 14, 16, 17, 18, 19, 20, 21);
      34  }
      35  
      36  v16qi
      37  __attribute__((noipa))
      38  foo3 (v16qi a, v16qi b)
      39  {
      40    return __builtin_shufflevector (a, b, 5, 6, 7, 8, 9, 10, 11, 12,
      41  				  13, 14, 17, 18, 19, 20, 21, 22);
      42  }
      43  
      44  v8hi
      45  __attribute__((noipa))
      46  foo4 (v8hi a, v8hi b)
      47  {
      48    return __builtin_shufflevector (a, b, 5, 6, 7, 8, 9, 10, 11, 12);
      49  }
      50  
      51  v8hi
      52  __attribute__((noipa))
      53  foo5 (v8hi a, v8hi b)
      54  {
      55    return __builtin_shufflevector (a, b, 5, 6, 7, 9, 10, 11, 12, 13);
      56  }
      57  
      58  v8hi
      59  __attribute__((noipa))
      60  foo6 (v8hi a, v8hi b)
      61  {
      62    return __builtin_shufflevector (a, b, 5, 6, 8, 9, 10, 11, 12, 13);
      63  }
      64  
      65  v8hi
      66  __attribute__((noipa))
      67  foo7 (v8hi a, v8hi b)
      68  {
      69    return __builtin_shufflevector (a, b, 5, 6, 9, 10, 11, 12, 13, 14);
      70  }
      71  
      72  v16qi
      73  __attribute__((noipa))
      74  foo8 (v16qi a)
      75  {
      76    return __builtin_shufflevector (a, a, 5, 6, 7, 8, 9, 10, 11, 12,
      77  				  13, 14, 15, 16, 17, 18, 19, 20);
      78  }
      79  
      80  v16qi
      81  __attribute__((noipa))
      82  foo9 (v16qi a)
      83  {
      84    return __builtin_shufflevector (a, a, 5, 6, 7, 8, 9, 10, 11, 12,
      85  				  13, 14, 15, 18, 19, 20, 21, 22);
      86  }
      87  
      88  v16qi
      89  __attribute__((noipa))
      90  foo10 (v16qi a)
      91  {
      92    return __builtin_shufflevector (a, a, 5, 6, 7, 8, 9, 10, 11, 12,
      93  				  13, 14, 16, 17, 18, 19, 20, 21);
      94  }
      95  
      96  v16qi
      97  __attribute__((noipa))
      98  foo11 (v16qi a)
      99  {
     100    return __builtin_shufflevector (a, a, 5, 6, 7, 8, 9, 10, 11, 12,
     101  				  13, 14, 17, 18, 19, 20, 21, 22);
     102  }
     103  
     104  v8hi
     105  __attribute__((noipa))
     106  foo12 (v8hi a)
     107  {
     108    return __builtin_shufflevector (a, a, 5, 6, 7, 8, 9, 10, 11, 12);
     109  }
     110  
     111  v8hi
     112  __attribute__((noipa))
     113  foo13 (v8hi a)
     114  {
     115    return __builtin_shufflevector (a, a, 5, 6, 7, 9, 10, 11, 12, 13);
     116  }
     117  
     118  v8hi
     119  __attribute__((noipa))
     120  foo14 (v8hi a)
     121  {
     122    return __builtin_shufflevector (a, a, 5, 6, 8, 9, 10, 11, 12, 13);
     123  }
     124  
     125  v8hi
     126  __attribute__((noipa))
     127  foo15 (v8hi a)
     128  {
     129    return __builtin_shufflevector (a, a, 5, 6, 9, 10, 11, 12, 13, 14);
     130  }