https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113210
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Richard Biener from comment #9) > I think we want to keep the invariant that both are INTEGER_CST when one is. > > If we can fold the add to 1 why can't we fold the original to 0? Because fold generally isn't recursive, so either whatever created the expression (niters analysis) would need to try to fold all subexpressions which it clearly doesn't try to do so, or we rely on luck that something changed and we fold something because of that, which is exactly what triggers it during the + 1 folding.