Lines Matching full:linalg
1 //===- TransposeMatmul.cpp - Convert Linalg matmul to transposed variants -===//
12 #include "mlir/Dialect/Linalg/Transforms/Transforms.h"
16 #define DEBUG_TYPE "linalg-transpose-matmul"
19 using namespace mlir::linalg;
23 /// linalg.matmul(a, b)
27 /// linalg.matmul_transpose_a(linalg.transpose(a), b)
31 FailureOr<Operation *> mlir::linalg::transposeMatmul(RewriterBase &rewriter,
32 linalg::MatmulOp matmulOp,
59 auto transposeOp = rewriter.create<linalg::TransposeOp>(
63 newMatmulOp = rewriter.create<linalg::MatmulTransposeAOp>(
68 newMatmulOp = rewriter.create<linalg::MatmulTransposeBOp>(
79 /// linalg.batch_matmul(a, b)
83 /// linalg.batch_matmul_transpose_a(linalg.transpose(a), b)
88 mlir::linalg::transposeBatchMatmul(RewriterBase &rewriter,
89 linalg::BatchMatmulOp batchMatmulOp,
111 auto transposeOp = rewriter.create<linalg::TransposeOp>(
115 newMatmulOp = rewriter.create<linalg::BatchMatmulTransposeAOp>(
120 newMatmulOp = rewriter.create<linalg::BatchMatmulTransposeBOp>(
130 struct TransposeMatmul final : public OpRewritePattern<linalg::MatmulOp> {
134 LogicalResult matchAndRewrite(linalg::MatmulOp op,
147 : public OpRewritePattern<linalg::BatchMatmulOp> {
151 LogicalResult matchAndRewrite(linalg::BatchMatmulOp op,
164 void mlir::linalg::populateTransposeMatmulPatterns(RewritePatternSet &patterns,