Subject: [PATCH] Revert "Do not simplify "(and (reg) (const bit)" to
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 5 Dec 2016 13:54:42 +0000 (14:54 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Mon, 5 Dec 2016 13:54:42 +0000 (14:54 +0100)
 if_then_else."

* combine.c: Revert r243162.

From-SVN: r243256

gcc/ChangeLog
gcc/combine.c

index 2ba03023cb075d011684eba4dec446baa4ab456a..1ace8b03c2272b0b6cb27977651acef646eea6c1 100644 (file)
@@ -1,3 +1,7 @@
+2016-12-05  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * combine.c: Revert r243162.
+
 2016-12-05  Paolo Bonzini  <bonzini@gnu.org>
 
        * match.pd: Simplify X ? C : 0 where C is a power of 2 and
index 7ba634af532a6f5ec210b71a0bd4adc890bf044e..b4294532296d477faa3a21ccc60d120cb7450568 100644 (file)
@@ -5602,18 +5602,6 @@ combine_simplify_rtx (rtx x, machine_mode op0_mode, int in_dest,
                     && OBJECT_P (SUBREG_REG (XEXP (x, 0)))))))
     {
       rtx cond, true_rtx, false_rtx;
-      unsigned HOST_WIDE_INT nz;
-
-      /* If the operation is an AND wrapped in a SIGN_EXTEND or ZERO_EXTEND with
-        either operand being just a constant single bit value, do nothing since
-        IF_THEN_ELSE is likely to increase the expression's complexity.  */
-      if (HWI_COMPUTABLE_MODE_P (mode)
-         && pow2p_hwi (nz = nonzero_bits (x, mode))
-         && ! ((code == SIGN_EXTEND || code == ZERO_EXTEND)
-               && GET_CODE (XEXP (x, 0)) == AND
-               && CONST_INT_P (XEXP (XEXP (x, 0), 0))
-               && UINTVAL (XEXP (XEXP (x, 0), 0)) == nz))
-             return x;
 
       cond = if_then_else_cond (x, &true_rtx, &false_rtx);
       if (cond != 0