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

From-SVN: r110990
This commit is contained in:
Adam Nemet 2006-02-14 17:45:55 +00:00 committed by Adam Nemet
parent 1cf0118daf
commit de7f492b61
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,7 @@
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>
PR bootstrap/26053

View File

@ -4426,6 +4426,14 @@ simplify_subreg (enum machine_mode outermode, rtx op,
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
and/or mode. If the hard register is not valid in that mode,
suppress this simplification. If the hard register is the stack,