/* PR rtl-optimization/28634. On targets with delayed branches, dbr_schedule could do the next iteration's addition in the branch delay slot, then subtract the value again if the branch wasn't taken. This can lead to rounding errors. */ double x = -0x1.0p53; double y = 1; int main (void) { while (y > 0) y += x; if (y != x + 1) abort (); exit (0); }