https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111668
--- Comment #8 from Krister Walfridsson <kristerw at gcc dot gnu.org> --- I still see negation of a wide signed Boolean in the IR for this function. But now it is forwprop4 that changes _38 = (signed int) _16; _43 = -_38; _66 = (<signed-boolean:32>) _43; to _56 = (<signed-boolean:32>) _16; _66 = -_56;