https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96671

Gabriel Ravier <gabravier at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
            Summary|Failure to optimize a 3     |Failure to optimize a 3
                   |xor+and pattern to xor +    |xor+and pattern to
                   |andnot                      |xor+andnot

--- Comment #1 from Gabriel Ravier <gabravier at gmail dot com> ---
Oops, I accidentally pressed enter and filed this with no details. Here are the
details :

int f(int a, int b, int c)
{
    return (a ^ b) & ((b ^ c) ^ a);
}

This can be optimized to `return (a ^ b) & ~c`. This transformation is done by
LLVM, but not by GCC.

Reply via email to