[llvm] [SelectionDAG][AArch64] Add dot product lowering in NEON for PARTIAL_REDUCE_*MLA ISD nodes (PR #140075)
Gaƫtan Bossu via llvm-commits
llvm-commits at lists.llvm.org
Tue May 27 01:29:59 PDT 2025
================
@@ -450,6 +562,30 @@ define <4 x i64> @sdot_8to64(<4 x i64> %acc, <16 x i8> %a, <16 x i8> %b){
; CHECK-NODOT-NEXT: saddw2 v1.2d, v1.2d, v2.4s
; CHECK-NODOT-NEXT: saddw2 v0.2d, v0.2d, v4.4s
; CHECK-NODOT-NEXT: ret
+;
+; CHECK-DOT-I8MM-LABEL: sdot_8to64:
+; CHECK-DOT-I8MM: // %bb.0: // %entry
+; CHECK-DOT-I8MM-NEXT: movi v4.2d, #0000000000000000
+; CHECK-DOT-I8MM-NEXT: sdot v4.4s, v2.16b, v3.16b
+; CHECK-DOT-I8MM-NEXT: saddw2 v1.2d, v1.2d, v4.4s
+; CHECK-DOT-I8MM-NEXT: saddw v0.2d, v0.2d, v4.2s
+; CHECK-DOT-I8MM-NEXT: ret
+;
+; CHECK-NEWLOWERING-I8MM-LABEL: sdot_8to64:
+; CHECK-NEWLOWERING-I8MM: // %bb.0: // %entry
+; CHECK-NEWLOWERING-I8MM-NEXT: movi v4.2d, #0000000000000000
+; CHECK-NEWLOWERING-I8MM-NEXT: sdot v4.4s, v2.16b, v3.16b
+; CHECK-NEWLOWERING-I8MM-NEXT: saddw v0.2d, v0.2d, v4.2s
+; CHECK-NEWLOWERING-I8MM-NEXT: saddw2 v0.2d, v0.2d, v4.4s
+; CHECK-NEWLOWERING-I8MM-NEXT: ret
+;
+; CHECK-NEWLOWERING-NOI8MM-LABEL: sdot_8to64:
+; CHECK-NEWLOWERING-NOI8MM: // %bb.0: // %entry
+; CHECK-NEWLOWERING-NOI8MM-NEXT: movi v4.2d, #0000000000000000
----------------
gbossu wrote:
Nit: I guess that's correct, but given that `v4` is used as a vector `i32`, wouldn't it make more sense to have `movi v4.4s, #0`?
https://github.com/llvm/llvm-project/pull/140075
More information about the llvm-commits
mailing list