/* { dg-do compile { target { ! ia32 } } } */ /* { dg-options "-O2" } */ int foo(int x) { x--; if (x == -1) x = 16; return x; } int bar(int x) { if (x == 0) x = 16; else x--; return x; } long long fool(long long x) { x--; if (x == -1) x = 16; return x; } long long barl(long long x) { if (x == 0) x = 16; else x--; return x; } short foos(short x) { x--; if (x == -1) x = 16; return x; } short bars(short x) { if (x == 0) x = 16; else x--; return x; } /* { dg-final { scan-assembler-not "lea(l|q)" } } */ /* { dg-final { scan-assembler-not "test(l|q|w)" } } */