https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117875

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #7)
> 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?

I guess the issue is that with

# k_24 = PHI <1(13), k_29(16)>

to easily see this we'd have to compute the range of
(unsigned int) M_9(D) - 1 and the range of (unsigned int) M_9(D) - (unsigned)
k_29 and then see those are the same singleton.  I don't think we can
arrive here when using the range of k_24 itself, so maybe I'm asking too
much of VRP here.

Reply via email to