[Mlir-commits] [mlir] [mlir][vector] Remove MatrixMultiplyOp and FlatTransposeOp from Vector dialect (PR #144307)

Andrzej WarzyƄski llvmlistbot at llvm.org
Wed Jul 16 03:31:40 PDT 2025


================
@@ -70,10 +70,17 @@ void ConvertVectorToLLVMPass::runOnOperation() {
     populateVectorBitCastLoweringPatterns(patterns);
     populateVectorBroadcastLoweringPatterns(patterns);
     populateVectorContractLoweringPatterns(patterns, vectorContractLowering);
+    if (vectorContractLowering == vector::VectorContractLowering::Matmul) {
+      populateVectorContractToMatrixMultiply(patterns);
+    }
     populateVectorMaskOpLoweringPatterns(patterns);
     populateVectorShapeCastLoweringPatterns(patterns);
     populateVectorInterleaveLoweringPatterns(patterns);
     populateVectorTransposeLoweringPatterns(patterns, vectorTransposeLowering);
+    if (vectorTransposeLowering == vector::VectorTransposeLowering::Flat) {
+      populateVectorTransposeToFlatTranspose(patterns);
+    }
+    populateVectorTransposeLoweringPatterns(patterns, vectorTransposeLowering);
----------------
banach-space wrote:

[populateVectorContractLoweringPatterns](https://github.com/llvm/llvm-project/blob/main/mlir/lib/Dialect/Vector/Transforms/LowerVectorContract.cpp#L1381) (and the patterns that it encapsulates) "live" inside the Vector dialect. We don't want `Vector` to depend on LLVM, hence the separation. 

I will add a comment that explains this. Thanks for bringing it up!

https://github.com/llvm/llvm-project/pull/144307


More information about the Mlir-commits mailing list