https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103228
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Possibly some STRIP_NOPS gone "missing" during fold-const.c -> match.pd move of some patterns. But then reassoc, for bit ops, should eventually learn to look through sign conversions, re-instantiating them on the leafs and result when required (maybe optimizing for the number of conversions somehow, or simply prefering unsigned).