From: Alexandre Oliva Date: Mon, 10 Jan 2000 19:56:15 +0000 (+0000) Subject: combine.c (expand_field_assignment): Do not discard SUBREGs while computing nonzero_bits. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b1e9c8a9266098c690f365cafbf8f896db5cba84;p=gcc.git combine.c (expand_field_assignment): Do not discard SUBREGs while computing nonzero_bits. * combine.c (expand_field_assignment): Do not discard SUBREGs while computing nonzero_bits. From-SVN: r31304 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 966ed6217b7..2e9967c554b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-01-10 Alexandre Oliva + + * combine.c (expand_field_assignment): Do not discard SUBREGs + while computing nonzero_bits. + 2000-01-09 Nick Clifton * config/arm/arm.c: Fix compile time warnings about signed vs diff --git a/gcc/combine.c b/gcc/combine.c index f8be80c24a0..484d6871a85 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -5656,6 +5656,8 @@ expand_field_assignment (x) /* A SUBREG between two modes that occupy the same numbers of words can be done by moving the SUBREG to the source. */ else if (GET_CODE (SET_DEST (x)) == SUBREG + /* We need SUBREGs to compute nonzero_bits properly. */ + && nonzero_sign_valid && (((GET_MODE_SIZE (GET_MODE (SET_DEST (x))) + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD) == ((GET_MODE_SIZE (GET_MODE (SUBREG_REG (SET_DEST (x))))