https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103820
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> --- diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 284b9507466..9d6786c5c2e 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -8588,7 +8588,8 @@ (define_peephole2 (any_mul_highpart:SWI48 (match_dup 2) (match_dup 0))) (clobber (match_dup 2)) (clobber (reg:CC FLAGS_REG))])] - "REGNO (operands[0]) != REGNO (operands[2]) + "TARGET_64BIT + && REGNO (operands[0]) != REGNO (operands[2]) && REGNO (operands[0]) != REGNO (operands[3]) && (REGNO (operands[0]) == REGNO (operands[4]) || peep2_reg_dead_p (3, operands[0]))" is sufficient to restore bootstrap.