https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108360
--- Comment #6 from Andrew Macleod <amacleod at redhat dot com> --- and VRP1 turned that if (_21 < 0) into if (_21 == -1) So yes, that was a correct transformation in FRE3, but the side effect is we lose the ability to look back and determine better ranges for _6 and h_23 as _6 is no longer part of the branch