/* { dg-do compile } */ /* { dg-options "-O2" } */ extern void bar (void); void foo1 (unsigned int i) { if (i & 4) bar (); } void foo2 (unsigned int i) { if (i & 0x80000000) bar (); } void foo3 (unsigned char c) { if (c & 4) bar (); } void foo4 (unsigned char c) { if (c & 0x80) bar (); } /* { dg-final { scan-assembler-times "lsr" 2 } } */ /* { dg-final { scan-assembler-times "cmp" 2 } } */