[Mlir-commits] [mlir] [mlir][vector] transpose(broadcast) -> broadcast canonicalization (PR #135096)
Andrzej WarzyĆski
llvmlistbot at llvm.org
Sun Apr 13 04:14:53 PDT 2025
================
@@ -6075,28 +6075,6 @@ class TransposeFolder final : public OpRewritePattern<vector::TransposeOp> {
}
};
-// Folds transpose(broadcast(<scalar>)) into broadcast(<scalar>).
-struct FoldTransposedScalarBroadcast final
- : public OpRewritePattern<vector::TransposeOp> {
- using OpRewritePattern::OpRewritePattern;
-
- LogicalResult matchAndRewrite(vector::TransposeOp transposeOp,
- PatternRewriter &rewriter) const override {
- auto bcastOp = transposeOp.getVector().getDefiningOp<vector::BroadcastOp>();
- if (!bcastOp)
- return failure();
-
- auto srcVectorType = llvm::dyn_cast<VectorType>(bcastOp.getSourceType());
- if (!srcVectorType || srcVectorType.getNumElements() == 1) {
- rewriter.replaceOpWithNewOp<vector::BroadcastOp>(
- transposeOp, transposeOp.getResultVectorType(), bcastOp.getSource());
- return success();
- }
-
- return failure();
- }
-};
----------------
banach-space wrote:
Since you are moving this logic to `FoldTransposeBroadcast`, would you mind moving the existing tests for this pattern from "canlicanlization.mlir" to the newly created "vector-transpose.mlir"? There might be other tests elsewhere, I've not looked. Thanks!
https://github.com/llvm/llvm-project/pull/135096
More information about the Mlir-commits
mailing list