Skip to content

Commit 74a7a4f

Browse files
committed
[mlir][ArmSME][test] Unroll reduction dimension in multi-tile-matmul.mlir
This tests both llvm#80148 and llvm#80170 work together to allow unrolling the reduction dimension of a matmul.
1 parent f407be3 commit 74a7a4f

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/multi-tile-matmul.mlir

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,14 @@ module attributes {transform.with_named_sequence} {
7373
%matmul = transform.structured.match ops{["linalg.matmul"]} in %module
7474
: (!transform.any_op) -> !transform.any_op
7575

76-
// Step 1: Tile for size [8] x [8], which corresponds to (2 x SVLs) x (2 x SVLs),
77-
// where SVLs is the number of 32-bit elements in a vector of SVL bits.
78-
// This uses all four 32-bit SME virtual tiles.
79-
%tiled_linalg_op, %loop_i, %loop_j, %loop_k = transform.structured.tile_using_for %matmul[[8], [8], 1]
76+
// Step 1: Tile for size [8] x [8] (unrolled by 4), which corresponds to
77+
// (2 x SVLs) x (2 x SVLs), where SVLs is the number of 32-bit elements in a
78+
// vector of SVL bits. This uses all four 32-bit SME virtual tiles.
79+
%tiled_linalg_op, %loop_i, %loop_j, %loop_k = transform.structured.tile_using_for %matmul[[8], [8], 4]
8080
: (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">, !transform.op<"scf.for">, !transform.op<"scf.for">)
8181

8282
// Step 2: Vectorize.
83-
transform.structured.vectorize %tiled_linalg_op vector_sizes [[8], [8], 1]
83+
transform.structured.vectorize %tiled_linalg_op vector_sizes [[8], [8], 4]
8484
: !transform.any_op
8585

8686
// Step 3: Bufferize ahead of TransferReadDropUnitDimsPattern, which

0 commit comments

Comments
 (0)