https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81443
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu.org --- Comment #16 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- Richard, would you be OK to apply a stopgap fix for the 7.3 release? Index: rtlanal.c =================================================================== --- rtlanal.c (revision 256841) +++ rtlanal.c (working copy) @@ -4976,7 +4976,7 @@ num_sign_bit_copies1 (const_rtx x, machi 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; It's a partial reversion of my change for PR rtl-optimization/59461, hence only a small pessimization for 64-bit WORD_REGISTER_OPERATIONS SIGN_EXTEND targets.