diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 336dda8c45d..39d733b51a9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-01-23 Eric Botcazou + + PR rtl-optimization/81443 + * rtlanal.c (num_sign_bit_copies1) : Do not propagate results + from inner REGs to paradoxical SUBREGs. + 2018-01-21 Bill Schmidt Backport from mainline diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 8e85f14525d..772a6a993bb 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -4976,7 +4976,7 @@ num_sign_bit_copies1 (const_rtx x, machine_mode mode, const_rtx known_x, if (WORD_REGISTER_OPERATIONS && load_extend_op (inner_mode) == SIGN_EXTEND && paradoxical_subreg_p (x) - && (MEM_P (SUBREG_REG (x)) || REG_P (SUBREG_REG (x)))) + && MEM_P (SUBREG_REG (x))) return cached_num_sign_bit_copies (SUBREG_REG (x), mode, known_x, known_mode, known_ret); break;