https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84157
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2018-02-01 Assignee|unassigned at gcc dot gnu.org |ubizjak at gmail dot com Target Milestone|--- |8.0 Ever confirmed|0 |1 --- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> --- Oops. --cut here-- diff --git a/gcc/combine.c b/gcc/combine.c index 970dd26..a9929f2 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -11483,7 +11483,7 @@ change_zero_ext (rtx pat) if (mode != inner_mode) { - if (HARD_REGISTER_P (x) + if (REG_P (x) && HARD_REGISTER_P (x) && !can_change_dest_mode (x, 0, mode)) continue; @@ -11501,7 +11501,7 @@ change_zero_ext (rtx pat) x = SUBREG_REG (XEXP (x, 0)); if (GET_MODE (x) != mode) { - if (HARD_REGISTER_P (x) + if (REG_P (x) && HARD_REGISTER_P (x) && !can_change_dest_mode (x, 0, mode)) continue; --cut here--