Commit ff12fdac by Richard Kenner

(subst, case SUREG):Only call force_to_mode if both inner and output

modes are MODE_INT.

From-SVN: r5709
parent 888184ea
...@@ -3177,11 +3177,13 @@ subst (x, from, to, in_dest, unique_copy) ...@@ -3177,11 +3177,13 @@ subst (x, from, to, in_dest, unique_copy)
) )
return gen_lowpart_for_combine (mode, SUBREG_REG (x)); return gen_lowpart_for_combine (mode, SUBREG_REG (x));
/* If we are narrowing the object, we need to see if we can simplify /* If we are narrowing an integral object, we need to see if we can
the expression for the object knowing that we only need the simplify the expression for the object knowing that we only need the
low-order bits. */ low-order bits. */
if (GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) if (GET_MODE_CLASS (mode) == MODE_INT
&& GET_MODE_CLASS (GET_MODE (SUBREG_REG (x))) == MODE_INT
&& GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))
&& subreg_lowpart_p (x)) && subreg_lowpart_p (x))
return force_to_mode (SUBREG_REG (x), mode, GET_MODE_MASK (mode), return force_to_mode (SUBREG_REG (x), mode, GET_MODE_MASK (mode),
NULL_RTX); NULL_RTX);
......
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