https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110369
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is another testcase which shows the same behavior but turning off VRP and a few others: ``` //-fselective-scheduling2 -O3 -fno-thread-jumps -fno-split-loops -fno-tree-loop-ivcanon -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -fno-tree-vrp -fno-tree-forwprop int printf(const char *, ...); int a, b[2] = {0, 0}, c; void d() { int e, f = 0, f1 = 0; for (;;) { if (a) { for (e = 0; e < 5; e++) { printf("%d", b[e]); if (c) printf("\n"); } } f = f+1; if (f!=2) f = 1; else return; } } int main() { d(); } ``` The behavior I think changes with the above testcase with r14-162 (but still just a latent bug)