[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


================
@@ -1,59 +1,91 @@
 // REQUIRES: target={{(aarch64|arm64).*}}
 
-// RUN: mlir-opt %s \
-// RUN:   -transform-interpreter -test-transform-dialect-erase-schedule \
-// RUN:   -one-shot-bufferize="bufferize-function-boundaries" -buffer-deallocation-pipeline -cse -canonicalize -convert-vector-to-scf \
-// RUN:   -convert-vector-to-llvm="enable-arm-neon" -test-lower-to-llvm -o %t
-
-// RUN: %mcr_aarch64_cmd %t -e main -entry-point-result=void --march=aarch64 --mattr="+neon" \
-// RUN:    -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils | \
-// RUN: FileCheck %s
-
+// DEFINE: %{compile} = mlir-opt %s \
+// DEFINE:   -transform-interpreter -test-transform-dialect-erase-schedule \
+// DEFINE:   -one-shot-bufferize="bufferize-function-boundaries" -buffer-deallocation-pipeline \
+// DEFINE:   -convert-bufferization-to-memref -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} && %{run} | FileCheck %s
+
+//===----------------------------------------------------------------------===//
+/// HIGH-LEVEL OVERVIEW
+///
+/// End-to-end test for `linalg.matmul` (f32, accumulating to f32) on dynamic
+/// shapes, tiled and vectorized for NEON (implemented in @matmul). Unlike the
+/// static shapes in pack-unpack-mmt4d-f32.mlir, the tile sizes here don't
+/// evenly divide the matrix dimensions, so this is also the variant that
+/// exercises masked vectorization (masks computed from runtime dimensions).
+///
+/// NOTES ON IMPLEMENTATION
+/// 1. NEON has no scalable vectors: N0 = 4 matches a full 128-bit register.
----------------
banach-space wrote:

[nit] I would skip this part, no need to document things that do not exist (i.e. scalable vectors for Neon).

https://github.com/llvm/llvm-project/pull/225063


More information about the Mlir-commits mailing list