https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71466
--- Comment #10 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Iterations bounds are computed at early optimization time and maintained thorough. So the info is computed at thread2 time. Looking into testcase I noticed that jump threading seems to be doing useless work on degenerate PHI: # f_28 = PHI <1(8), 1(2)> ... if (f_28 == 0) When the code was part of vrp/dom, perhaps it never seen this oppurtunity because the constant got propagated first?