https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88702
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The only pass that can do about this (at least right now) is reassoc (both 1 and 2), which is too late for inlining. So, either teach fnsplit not to separate multiple if comparisons of the same variable against constants, or schedule reasoc or just the maybe_optimize_range_tests part thereof in some early pass.