https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100061
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- It needs quite some refactoring to distinguish the short-circuiting case from the non-short-circuiting one. if (b > c + 1) if (b > c) is OK to combine while if (b > c) if (b > c + 1) is not.