Commit a80b4f57 by Segher Boessenkool Committed by Segher Boessenkool

Subject: [PATCH] Revert "Do not simplify "(and (reg) (const bit)" to

 if_then_else."


	* combine.c: Revert r243162.

From-SVN: r243256
parent 519e0faa
2016-12-05 Segher Boessenkool <segher@kernel.crashing.org>
* combine.c: Revert r243162.
2016-12-05 Paolo Bonzini <bonzini@gnu.org> 2016-12-05 Paolo Bonzini <bonzini@gnu.org>
* match.pd: Simplify X ? C : 0 where C is a power of 2 and * match.pd: Simplify X ? C : 0 where C is a power of 2 and
...@@ -5602,18 +5602,6 @@ combine_simplify_rtx (rtx x, machine_mode op0_mode, int in_dest, ...@@ -5602,18 +5602,6 @@ combine_simplify_rtx (rtx x, machine_mode op0_mode, int in_dest,
&& OBJECT_P (SUBREG_REG (XEXP (x, 0))))))) && OBJECT_P (SUBREG_REG (XEXP (x, 0)))))))
{ {
rtx cond, true_rtx, false_rtx; 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); cond = if_then_else_cond (x, &true_rtx, &false_rtx);
if (cond != 0 if (cond != 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment