/* { dg-do compile } */ /* { dg-options "-O2" } */ #define TEN(x) x x x x x x x x x x #define THOUSAND(x) TEN (TEN (TEN (x))) int foo (int x, int y) { register int a = y + 57; register int b = y + 31; while (x-- > 0) { THOUSAND (a += b; b -= a;) } return a + b; }