[Mlir-commits] [mlir] [mlir][linalg] Move transpose_matmul to targeted transform op (PR #89717)
Oleksandr Alex Zinenko
llvmlistbot at llvm.org
Tue Apr 23 01:43:58 PDT 2024
================
@@ -3422,6 +3416,34 @@ DiagnosedSilenceableFailure transform::TransposeConv2DOp::applyToOne(
return DiagnosedSilenceableFailure::success();
}
+//===----------------------------------------------------------------------===//
+// TransposeMatmulOp
+//===----------------------------------------------------------------------===//
+
+DiagnosedSilenceableFailure transform::TransposeMatmulOp::applyToOne(
+ transform::TransformRewriter &rewriter, linalg::LinalgOp target,
+ transform::ApplyToEachResultList &results,
+ transform::TransformState &state) {
+ rewriter.setInsertionPoint(target);
+ bool transposeLHS = getInputToTranspose() == TransposeMatmulInput::lhs;
+ auto maybeTransformed =
+ TypeSwitch<Operation *, FailureOr<Operation *>>(target)
+ .Case([&](linalg::MatmulOp op) {
+ return transposeMatmul(rewriter, op, transposeLHS);
+ })
+ .Case([&](linalg::BatchMatmulOp op) {
+ return transposeBatchMatmul(rewriter, op, transposeLHS);
+ })
+ .Default([&](Operation *op) {
+ return rewriter.notifyMatchFailure(op, "not supported");
+ });
+ if (failed(maybeTransformed))
+ return emitDefaultSilenceableFailure(target);
----------------
ftynse wrote:
Nit: could we rather say "not supported" here than in the `notifyMatchFailure` that is ignored by the infra?
https://github.com/llvm/llvm-project/pull/89717
More information about the Mlir-commits
mailing list