### Summary This PR adds a new folding pattern for **vector.from_elements** that canonicalizes it to **arith.constant** when all input operands are constants. ### Implementation Details **Leverages FoldAdaptor capabilities**: Uses adaptor.getElements() to access **pre-computed** constant attributes, avoiding redundant pattern matching on operands. ### Example Transformation ``` Before: %c0_i32 = arith.constant 0 : i32 %c1_i32 = arith.constant 1 : i32 %c2_i32 = arith.constant 2 : i32 %c3_i32 = arith.constant 3 : i32 %v = vector.from_elements %c0_i32, %c1_i32, %c2_i32, %c3_i32 : vector<2x2xi32> After: %v = arith.constant dense<[[0, 1], [2, 3]]> : vector<2x2xi32> ``` --------- Co-authored-by: Yang Bai <yangb@nvidia.com>
Multi-Level Intermediate Representation
See https://mlir.llvm.org/ for more information.