https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110954
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Created attachment 55718 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55718&action=edit new patch which I am testing The only thing is it is sometimes overly conserative with the check of `!wascmp || element_precision (type) == 1` for vector types but that is ok those were not handled before either anyways. We do handle `a & ~a` and `a |^ ~a` for all cases (correctly) like we did previously and before r14-2925-g2bae476b511dc441bf61da8a4 .