/* PR target/94650 */ /* { dg-do compile { target { ! ia32 } } } */ /* { dg-options "-O2" } */ #define LARGE_POWER_OF_TWO (1ULL << 40) int check (unsigned long long m) { return m >= LARGE_POWER_OF_TWO; } void g (int); void test0 (unsigned long long m) { if (m >= LARGE_POWER_OF_TWO) g (0); } void test1 (unsigned long long m) { if (m >= LARGE_POWER_OF_TWO) g (m); } /* { dg-final { scan-assembler-not "movabs" } } */ /* { dg-final { scan-assembler-times "shr" 3 } } */