[Mlir-commits] [mlir] [mlir][ArmNeon] Add pack/mmt4d path to f32 linalg.matmul integration test (PR #225063)
Andrzej WarzyĆski
llvmlistbot at llvm.org
Sat Oct 3 05:27:18 PDT 2026
================
@@ -0,0 +1,316 @@
+// REQUIRES: target={{(aarch64|arm64).*}}
+
+// DEFINE: %{compile} = mlir-opt %s \
+// DEFINE: -transform-interpreter -test-transform-dialect-erase-schedule \
+// DEFINE: -cse -canonicalize -convert-vector-to-scf \
+// DEFINE: -convert-vector-to-llvm="enable-arm-neon" -test-lower-to-llvm \
+// DEFINE: -o %t
+
+// DEFINE: %{run} = %mcr_aarch64_cmd %t -e main -entry-point-result=void --march=aarch64 --mattr="+neon" \
+// DEFINE: -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils
+
+// RUN: rm -f %t && %{compile} && FileCheck %s --input-file=%t -check-prefix CHECK-IR && %{run} | FileCheck %s
+
+//===----------------------------------------------------------------------===//
+/// HIGH-LEVEL OVERVIEW
+///
+/// End-to-end test for computing matrix-multiplication (f32, accumulating to
+/// f32) using linalg.mmt4d. In particular, demonstrates how the following
+/// MLIR sequence (implemented in @matmul_via_mmt4d):
+///
+/// A_pack = linalg.pack A
+/// B_pack = linalg.pack B
+/// C_pack = linalg.pack C
+/// out_pack = linalg.mmt4d(A_pack, B_pack, C_pack)
+///
+/// is equivalent to:
+///
+/// linalg.matmul(A, B, C)
+///
+/// (implemented in @matmul).
+///
+/// NOTES ON IMPLEMENTATION
+/// 1. @matmul is only lowered via `-test-lower-to-llvm`, with no tiling or
+/// vectorization -- it's there to provide a reference check, not to
+/// demonstrate a lowering path.
----------------
banach-space wrote:
Let's put emphasis on `linalg.matmul` rather than `@matmul`. Wrapping `linalg.matmul` in a function is mostly for better organisation and better separation. Also, let's avoid AI artefacts like `--` and use `-` instead (*)
```suggestion
/// 1. linalg.matmul is only lowered via `-test-lower-to-llvm`, with no tiling or
/// vectorization - it's there to provide a reference check, not to
/// demonstrate a lowering path.
```
(*) Apologies if my assumption is wrong and you wrote it yourself. I would still use `-` rather than `--` as a format more consistent with rest of the code-base.
https://github.com/llvm/llvm-project/pull/225063
More information about the Mlir-commits
mailing list