https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105903
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #5) > After my patches for PR 96923 (and PR 100864), we get: > > > _22 = _16 > _17; > ... (some dead statements that PHI-OPT adds due to match and simplify) > _8 = _16 >= _17; > _13 = _8 & _22; > > But there is nothing which optimizes the above into just _22 (_16 > _17) > which I find interesting ... Now after the patch I have for 106164 we get: _13 = _16 > _17; Which is what we expect. Note phiopt still should do some cleanup because of match-and-simplify as we get: _3 = _16 < _17; _7 = _16 < _17; _8 = _16 >= _17; _13 = _16 > _17; Where _3, _7 and _8 are all unused, I have to figure out the best way of doing that.