[Mlir-commits] [mlir] [mlir][ArmSME] Add initial SME vector legalization pass (PR #79152)
Benjamin Maxwell
llvmlistbot at llvm.org
Fri Jan 26 02:35:50 PST 2024
================
@@ -122,4 +122,23 @@ def TileAllocation
let dependentDialects = ["func::FuncDialect"];
}
+def VectorLegalization
+ : Pass<"arm-sme-vector-legalization", "mlir::ModuleOp"> {
+ let summary = "Legalize vectors for ArmSME";
+ let description = [{
+ This pass legalizes vector operations so that they can be lowered to ArmSME.
+ This includes decomposing operations that operate on vector types larger
+ than a single SME tile (e.g. `vector<[8]x[8]xf32>`) into multiple SME
----------------
MacDue wrote:
`legal` - means something that can be lowered to ArmSME, as mentioned this pass will be broader than just type decomposition, and will include rewrites to eliminate illegal types like `vector<[8]x4xf32>` (which also falls under legalizing vector operations).
(I think the description already mentions that the decomposition breaks down larger vector types into multiple SME-sized operations?)
I'll add the input size limitation :+1:
https://github.com/llvm/llvm-project/pull/79152
More information about the Mlir-commits
mailing list