https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87009
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- Yes, there are still some transformations missing to canonicalize all binary boolean functions. You mention ~(~a | b). We also need (a|~b)&(~a|b) and the same with ^ in the middle. Possibly others (ideally, this list of transformations would be generated by a computer, or at least more systematically). Posting a tested patch to the gcc-patches mailing list would be welcome.