https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115568
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to H.J. Lu from comment #3) > This is a latent bug in the sched1 pass. This change > > diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md > index effab299349..c532f0596c7 100644 > --- a/gcc/config/i386/i386.md > +++ b/gcc/config/i386/i386.md > @@ -10517,7 +10517,7 @@ (define_insn "*mul<mode>3_1<nf_name>" > [(set (match_operand:SWIM248 0 "register_operand" "=r,r,r,r") > (mult:SWIM248 > (match_operand:SWIM248 1 "nonimmediate_operand" "%rm,rm,0,r") > - (match_operand:SWIM248 2 "<general_operand>" "K,<i>,<m>r,<m>r")))] > + (match_operand:SWIM248 2 "<general_operand>" "K,<i>,mr,mr")))] > "!(MEM_P (operands[1]) && MEM_P (operands[2])) > && <nf_condition>" > "@ > > hides the bug. Correction. This change: diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index effab299349..3049589ded5 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -12584,7 +12584,7 @@ (define_insn "*andsi_1_zext" (define_insn "*and<mode>_1<nf_name>" [(set (match_operand:SWI24 0 "nonimmediate_operand" "=rm,r<nf_mem_constraint>,r,r,r,r,Ya,?k") (and:SWI24 (match_operand:SWI24 1 "nonimmediate_operand" "%0,0,0,rm,rjM,r,qm,k") - (match_operand:SWI24 2 "<general_operand>" "r,<i>,<m>,r,<i>,<m>,L,k")))] + (match_operand:SWI24 2 "<general_operand>" "r,<i>,m,r,<i>,<m>,L,k")))] "ix86_binary_operator_ok (AND, <MODE>mode, operands, TARGET_APX_NDD) && <nf_condition>" "@ hides the bug.