[Mlir-commits] [mlir] [mlir][Vector] Add constant folding for vector.from_elements operation (PR #145849)
Yang Bai
llvmlistbot at llvm.org
Thu Jun 26 00:50:48 PDT 2025
================
@@ -2459,8 +2459,30 @@ static OpFoldResult foldFromElementsToElements(FromElementsOp fromElementsOp) {
return {};
}
+/// Fold vector.from_elements to a constant when all operands are constants.
+/// Example:
+/// %c1 = arith.constant 1 : i32
+/// %c2 = arith.constant 2 : i32
+/// %v = vector.from_elements %c1, %c2 : vector<2xi32>
+/// =>
+/// %v = arith.constant dense<[1, 2]> : vector<2xi32>
+///
+static OpFoldResult foldFromElementsToConstant(FromElementsOp fromElementsOp,
+ ArrayRef<Attribute> elements) {
+ if (llvm::any_of(elements, [](Attribute attr) { return !attr; }))
+ return {};
+
+ auto destType = cast<VectorType>(fromElementsOp.getType());
----------------
yangtetris wrote:
Cool, learned! I'll use getDest to replace the cast.
https://github.com/llvm/llvm-project/pull/145849
More information about the Mlir-commits
mailing list