blob: cc010faa135e7db00ef3321cb6f2e5340bfa8a1b [file] [log] [blame]
/* PR target/96226 */
/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-final { scan-assembler-times "\troll\t" 4 } } */
/* { dg-final { scan-assembler-times "\trolq\t" 4 { target { ! ia32 } } } } */
int f1 (int x) { return ~(1U << (x & 0x1f)); }
int f2 (int x) { return ~(1U << x); }
int f3 (unsigned char *x) { return ~(1U << (x[0] & 0x1f)); }
int f4 (unsigned char *x) { return ~(1U << x[0]); }
#ifdef __x86_64__
long int f5 (int x) { return ~(1ULL << (x & 0x3f)); }
long int f6 (int x) { return ~(1ULL << x); }
long int f7 (unsigned char *x) { return ~(1ULL << (x[0] & 0x3f)); }
long int f8 (unsigned char *x) { return ~(1ULL << x[0]); }
#endif