(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr96226.c
       1  /* PR target/96226 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2" } */
       4  /* { dg-final { scan-assembler-times "\troll\t" 4 } } */
       5  /* { dg-final { scan-assembler-times "\trolq\t" 4 { target { ! ia32 } } } } */
       6  
       7  int f1 (int x) { return ~(1U << (x & 0x1f)); }
       8  int f2 (int x) { return ~(1U << x); }
       9  int f3 (unsigned char *x) { return ~(1U << (x[0] & 0x1f)); }
      10  int f4 (unsigned char *x) { return ~(1U << x[0]); }
      11  #ifdef __x86_64__
      12  long int f5 (int x) { return ~(1ULL << (x & 0x3f)); }
      13  long int f6 (int x) { return ~(1ULL << x); }
      14  long int f7 (unsigned char *x) { return ~(1ULL << (x[0] & 0x3f)); }
      15  long int f8 (unsigned char *x) { return ~(1ULL << x[0]); }
      16  #endif