Commit de7f492b by Adam Nemet Committed by Adam Nemet

* simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.

From-SVN: r110990
parent 1cf0118d
2006-02-14 Adam Nemet <anemet@caviumnetworks.com>
* simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
2006-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 2006-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
PR bootstrap/26053 PR bootstrap/26053
......
...@@ -4426,6 +4426,14 @@ simplify_subreg (enum machine_mode outermode, rtx op, ...@@ -4426,6 +4426,14 @@ simplify_subreg (enum machine_mode outermode, rtx op,
return NULL_RTX; return NULL_RTX;
} }
/* Merge implicit and explicit truncations. */
if (GET_CODE (op) == TRUNCATE
&& GET_MODE_SIZE (outermode) < GET_MODE_SIZE (innermode)
&& subreg_lowpart_offset (outermode, innermode) == byte)
return simplify_gen_unary (TRUNCATE, outermode, XEXP (op, 0),
GET_MODE (XEXP (op, 0)));
/* SUBREG of a hard register => just change the register number /* SUBREG of a hard register => just change the register number
and/or mode. If the hard register is not valid in that mode, and/or mode. If the hard register is not valid in that mode,
suppress this simplification. If the hard register is the stack, suppress this simplification. If the hard register is the stack,
......
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