[Mlir-commits] [mlir] [mlir][vector] Add vector.to_elements	unrolling (PR #157142)
    Andrzej Warzyński 
    llvmlistbot at llvm.org
       
    Wed Sep 10 11:25:12 PDT 2025
    
    
  
================
@@ -808,6 +808,28 @@ struct TestUnrollVectorFromElements
   }
 };
 
+struct TestUnrollVectorToElements
+    : public PassWrapper<TestUnrollVectorToElements,
+                         OperationPass<func::FuncOp>> {
+  MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(TestUnrollVectorToElements)
+
+  StringRef getArgument() const final {
+    return "test-unroll-vector-to-elements";
+  }
+  StringRef getDescription() const final {
+    return "Test unrolling patterns for to_elements ops";
+  }
+  void getDependentDialects(DialectRegistry ®istry) const override {
+    registry.insert<func::FuncDialect, vector::VectorDialect>();
+  }
+
+  void runOnOperation() override {
+    RewritePatternSet patterns(&getContext());
+    populateVectorToElementsLoweringPatterns(patterns);
+    (void)applyPatternsGreedily(getOperation(), std::move(patterns));
+  }
+};
+
----------------
banach-space wrote:
>  Sorry, I am not familiar with TD as an acronym. 
Transform Dialect :)
> The reason why this test pass was added is to keep the style consistent with https://github.com/llvm/llvm-project/pull/151175 .
Consistency is important 👍🏻 However, note that that PR also added `apply_patterns.vector.unroll_from_elements` TD Op. IMO, we should remove the pass added in https://github.com/llvm/llvm-project/pull/151175 and instead have one TD Op for unrolling `to_elements` and `from_elements`.
>  Happy to add it if needed, but I prefer to maintain the consistency with the vector.from_elements unrolling PR.
Yes, consistency is key. Again, my suggestion is to only have a TD Op for both Ops.
https://github.com/llvm/llvm-project/pull/157142
    
    
More information about the Mlir-commits
mailing list