/* PR rtl-optimization/98334 */ /* { dg-do compile } */ /* { dg-options "-O2 -fomit-frame-pointer -fno-stack-protector" } */ /* { dg-final { scan-assembler-not "\taddl\t" } } */ /* { dg-final { scan-assembler-not "\tsubl\t" } } */ /* { dg-final { scan-assembler-not "\tleal\t" } } */ int foo (int i, unsigned int n) { int result = 0; while (n > 0) { result += i; n -= 1; } return result; } int bar (int x, int y) { return (int) (y - 1U) * x + x; } int baz (int x, int y) { return (y - 1) * x + x; } int qux (int x, int y) { return x * (int) (y + 1U) - x; }