https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83072
--- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Richard Biener from comment #2) > The issue is that when EVRP records value-ranges that only hold temporarily > it doesn't update SSA_NAME_RANGE_INFO but only the internal lattice while > if the range is determined at the SSA definition point it also updates > SSA_NAME_RANGE_INFO. Seems obvious now you've said it... And VRP1, which would have a separate SSA_NAME, does not generally call into match-simplify yet. I wonder if we'll take the ugly route of making the EVRP lattice global, and having get_range_info use it if it isn't empty (or checking some flag) and fall back to the current behavior otherwise. Seems simpler and cheaper than the alternatives I am trying to think about.