https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101676
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Biener from comment #1) > why is | better than ^? Just to reply to this. The reasoning from simplify-rtx.cc: /* If we are XORing two things that have no bits in common, convert them into an IOR. This helps to detect rotation encoded using those methods and possibly other simplifications. */ Which was added with r0-24478-g79e8185c9ccfcb .