[Mlir-commits] [mlir] [mlir] transform.structured.match fix tilingIface condition (PR #65337)
Oleksandr Alex Zinenko
llvmlistbot at llvm.org
Tue Sep 5 08:28:16 PDT 2023
https://github.com/ftynse created https://github.com/llvm/llvm-project/pull/65337:
The matching condition for payload ops implementing TilingInterface was inverted. Fix it and add a test.
>From f8167a3b5e5cdd2e21ba5ebdda10077d259515e3 Mon Sep 17 00:00:00 2001
From: Alex Zinenko <zinenko at google.com>
Date: Tue, 5 Sep 2023 15:22:19 +0000
Subject: [PATCH] [mlir] transform.structured.match fix tilingIface condition
The matching condition for payload ops implementing TilingInterface was
inverted. Fix it and add a test.
---
.../Linalg/TransformOps/LinalgTransformOps.cpp | 2 +-
.../Dialect/Linalg/transform-op-match.mlir | 18 ++++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
index 6549c27b0d0dfb4..206e32111576b95 100644
--- a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+++ b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
@@ -1145,7 +1145,7 @@ transform::MatchOp::apply(transform::TransformRewriter &rewriter,
!isa<LinalgOp>(op))
return;
if (iface == transform::MatchInterfaceEnum::TilingInterface &&
- isa<TilingInterface>(op))
+ !isa<TilingInterface>(op))
return;
}
diff --git a/mlir/test/Dialect/Linalg/transform-op-match.mlir b/mlir/test/Dialect/Linalg/transform-op-match.mlir
index c6c177c3e86d099..9bfa955d8868c73 100644
--- a/mlir/test/Dialect/Linalg/transform-op-match.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-match.mlir
@@ -39,6 +39,24 @@ transform.sequence failures(propagate) {
// -----
+func.func @foo(%a: tensor<4x4xf32>, %b: tensor<4x4xf32>, %c: tensor<4x4xf32>) {
+ %c0 = arith.constant 0.0 : f32
+ // expected-remark @below {{tileable}}
+ %r = linalg.fill ins(%c0 : f32) outs(%c : tensor<4x4xf32>) -> tensor<4x4xf32>
+ // expected-remark @below {{tileable}}
+ linalg.matmul ins(%a, %b : tensor<4x4xf32>, tensor<4x4xf32>) outs(%r : tensor<4x4xf32>) -> tensor<4x4xf32>
+ return
+}
+
+transform.sequence failures(propagate) {
+^bb0(%arg0: !transform.any_op):
+ %matched = transform.structured.match interface{TilingInterface} in %arg0 : (!transform.any_op) -> !transform.any_op
+ transform.test_print_remark_at_operand %matched, "tileable" : !transform.any_op
+ transform.yield
+}
+
+// -----
+
#map0 = affine_map<(d0, d1, d2) -> (d0, d1, d2)>
#map1 = affine_map<(d0, d1, d2) -> (d1, d0, d2)>
func.func @match_complex_attribute(%arg0: tensor<12x128x32xf32>)
More information about the Mlir-commits
mailing list