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.