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.

Reply via email to