/* { dg-do compile } */ /* { dg-options "-O2 -m68040" } */ /* There should be 16 logical right shift instructions. One for each function*/ /* { dg-final { scan-assembler-times "lsr" 16 } } */ unsigned int bar (void); #define F(C) void foo##C (void) { unsigned int a = bar (); if (a <= C) bar (); } #define G(C) void foo2##C (void) { unsigned int a = bar (); if (a > C) bar (); } F(0x1) F(0x3) F(0x7) F(0xf) F(0x1f) F(0x3f) F(0x7f) F(0xff) G(0x1) G(0x3) G(0x7) G(0xf) G(0x1f) G(0x3f) G(0x7f) G(0xff)