https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117875
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- I'm talking about the number of iterations of the second loop (after loop splitting), the niter expression is (unsigned int) M_9(D) - (unsigned int) k_24. We know k_29 == M_9(D) when exiting the first loop, so on that entry the expression computes zero. For the case the first loop is short-cut we know M_9(D) == 1 and thus the difference is zero as well. So I expect the range of (unsigned int) M_9(D) - (unsigned int) k_2 to be [0,0]. But maybe I'm missing something?