Resolve regression rtl-optimization/96298. Sorry for the breakage.
authorRoger Sayle <roger@nextmovesoftware.com>
Thu, 23 Jul 2020 17:48:54 +0000 (18:48 +0100)
committerRoger Sayle <roger@nextmovesoftware.com>
Thu, 23 Jul 2020 17:48:54 +0000 (18:48 +0100)
2020-07-23  Roger Sayle  <roger@nextmovesoftware.com>

gcc/ChangeLog
PR rtl-optimization/96298
* simplify-rtx.c (simplify_binary_operation_1) [XOR]: Xor doesn't
distribute over xor, so (a^b)^(c^b) is not the same as (a^c)^b.

gcc/simplify-rtx.c

index e631da48477cac96cd5ead62795ee91b72991a9b..d2211686accfbec24cc1ba19092b0427fac69ab6 100644 (file)
@@ -3372,7 +3372,6 @@ simplify_binary_operation_1 (enum rtx_code code, machine_mode mode,
       /* Convert (xor (and A C) (and B C)) into (and (xor A B) C).  */
       if (GET_CODE (op0) == GET_CODE (op1)
          && (GET_CODE (op0) == AND
-             || GET_CODE (op0) == XOR
              || GET_CODE (op0) == LSHIFTRT
              || GET_CODE (op0) == ASHIFTRT
              || GET_CODE (op0) == ASHIFT