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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
In *.optimized dump it looks correct:
  d_16 = h2_14(D) w* s1_15(D);
  _19 = WIDEN_MULT_PLUS_EXPR <h1_10(D), s2_11(D), d_16>;
  d0_17 = WIDEN_MULT_PLUS_EXPR <h0_7(D), r0_8(D), _19>;
where WIDEN_MULT_EXPR has 2 64-bit unsigned operands and 128-bit result, and
the 2 WIDEN_MULT_PLUS_EXPR which as documented have 2 64-bit unsigned operands
and 128-bit result as well as last argument.
But the actual rs6000.md implementation looks broken in several ways.

Reply via email to