https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83239
--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Marc Glisse from comment #1) > In the mean time, we fail to find some VRP optimizations that might help > with the warning. > > _1 = _186 + 18446744073709551614; > if (_1 > _186) > > _186: [3, +INF] > > Possibly because we haven't turned it into ADD_OVERFLOW yet (or because we > are missing a specific transform, or because we have one in match.pd but > don't call it, or because !single_use, I didn't check), we don't fold that > to false. Ah, at some point I wanted to have match.pd optimize _1 > _186 to _186 < 2 (which would then be optimized easily in VRP), but that was breaking Jakub's code to detect ADD_OVERFLOW. Improving that code would be nice. We could also generate ADD_OVERFLOW from match.pd when we see x+n>x, but then I don't think we have code to CSE that with a plain addition, so it wouldn't help.