https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62630
--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 34801 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34801&action=edit use VRP to interpret an expr and compute its range The attached patch is a prototype that tries to replace niter analysis bound_difference value-range estimation code by VRP. I've chosen to replace the case with non-equal variable part only (which is what needs improvement for this testcase), but in theory most of the code should be replaced. The bound-using-guard code needs refinement (the niter parts go to greater lengths, expanding simple operations and whatnot - in theory we can go up SSA use->def chains in the recursion as well, it just has a cost). Note that without the MIN/MAX shortening this patch doesn't help as niter analysis doesn't present VRP with expanded enough expressions and of course all the IL has no value-ranges associated as graphite re-wrote it completely.