https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93009

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 47537
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47537&action=edit
gcc10-pr93009.patch

Untested fix.
The bug is obvious, these *_bcst_1 patterns used =v,v 0,v v,0 m,m constraints
but only a single template for both alternatives, which means if the first
alternative was chosen, it was correct, if the second one, it would use the
destination register twice instead of the other multiplication argument.
So, one option is to add another template that would use %1 instead of %2 for
the second alternative, or just use a single alternative with those two
operands commutative.

Reply via email to