https://gcc.gnu.org/g:0a1f6acb90e27ac0b2984ad6841186ca54bc5725

commit r17-4646-g0a1f6acb90e27ac0b2984ad6841186ca54bc5725
Author: Andrew Stubbs <[email protected]>
Date:   Thu Sep 24 12:55:42 2026 +0000

    amdgcn: Fix 64-bit vector multiply
    
    Fix an old maths bug with DImode vector multiply.
    
    gcc/ChangeLog:
    
            * config/gcn/gcn-valu.md (mul<mode>3): Remove erroneous hi*hi step.
            (mul<mode>3_dup): Likewise.
            (mul<mode>3_exec): Likewise.
            (mul<mode>3_dup_exec): Likewise.

Diff:
---
 gcc/config/gcn/gcn-valu.md | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/gcc/config/gcn/gcn-valu.md b/gcc/config/gcn/gcn-valu.md
index 32021d263cc9..881f262f62fa 100644
--- a/gcc/config/gcn/gcn-valu.md
+++ b/gcc/config/gcn/gcn-valu.md
@@ -2320,8 +2320,6 @@
     emit_insn (gen_add<vnsi>3 (out_hi, out_hi, tmp));
     emit_insn (gen_mul<vnsi>3 (tmp, left_lo, right_hi));
     emit_insn (gen_add<vnsi>3 (out_hi, out_hi, tmp));
-    emit_insn (gen_mul<vnsi>3 (tmp, left_hi, right_hi));
-    emit_insn (gen_add<vnsi>3 (out_hi, out_hi, tmp));
     DONE;
   })
 
@@ -2351,8 +2349,6 @@
     emit_insn (gen_add<vnsi>3 (out_hi, out_hi, tmp));
     emit_insn (gen_mul<vnsi>3_dup (tmp, left_lo, right_hi));
     emit_insn (gen_add<vnsi>3 (out_hi, out_hi, tmp));
-    emit_insn (gen_mul<vnsi>3_dup (tmp, left_hi, right_hi));
-    emit_insn (gen_add<vnsi>3 (out_hi, out_hi, tmp));
     DONE;
   })
 
@@ -2399,8 +2395,6 @@
     emit_insn (gen_add<vnsi>3_exec (out_hi, out_hi, tmp, out_hi, exec));
     emit_insn (gen_mul<vnsi>3_exec (tmp, left_lo, right_hi, undef, exec));
     emit_insn (gen_add<vnsi>3_exec (out_hi, out_hi, tmp, out_hi, exec));
-    emit_insn (gen_mul<vnsi>3_exec (tmp, left_hi, right_hi, undef, exec));
-    emit_insn (gen_add<vnsi>3_exec (out_hi, out_hi, tmp, out_hi, exec));
     DONE;
   })
 
@@ -2449,8 +2443,6 @@
     emit_insn (gen_add<vnsi>3_exec (out_hi, out_hi, tmp, out_hi, exec));
     emit_insn (gen_mul<vnsi>3_dup_exec (tmp, left_lo, right_hi, undef, exec));
     emit_insn (gen_add<vnsi>3_exec (out_hi, out_hi, tmp, out_hi, exec));
-    emit_insn (gen_mul<vnsi>3_dup_exec (tmp, left_hi, right_hi, undef, exec));
-    emit_insn (gen_add<vnsi>3_exec (out_hi, out_hi, tmp, out_hi, exec));
     DONE;
   })

Reply via email to