https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87104
--- Comment #7 from pipcet at gmail dot com --- (In reply to Andrew Pinski from comment #5) > x86 and x86_64 uses the same back-end so yes it does seem target secific. I think it's not a target issue; we really want to be generating the same code for these equivalent functions, and the code on AArch64 is still different. I'm also not sure what we do for ((X ^ A) & B) == C. I'm attaching a patch that results, at least, in g being compiled to "jmp f", so the code is now recognized as equivalent. It seems to produce the right code for Paul's test case, too.