Skip to content

Commit 6894af0

Browse files
committed
Add transform.apply_patterns.vector.unroll_to_elements
1 parent 00cc94b commit 6894af0

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,17 @@ def ApplyUnrollFromElementsPatternsOp : Op<Transform_Dialect,
265265
let assemblyFormat = "attr-dict";
266266
}
267267

268+
def ApplyUnrollToElementsPatternsOp : Op<Transform_Dialect,
269+
"apply_patterns.vector.unroll_to_elements",
270+
[DeclareOpInterfaceMethods<PatternDescriptorOpInterface>]> {
271+
let description = [{
272+
Indicates that vector to_elements operations should be unrolled
273+
along the outermost dimension.
274+
}];
275+
276+
let assemblyFormat = "attr-dict";
277+
}
278+
268279
def ApplyLowerScanPatternsOp : Op<Transform_Dialect,
269280
"apply_patterns.vector.lower_scan",
270281
[DeclareOpInterfaceMethods<PatternDescriptorOpInterface>]> {

mlir/lib/Dialect/Vector/TransformOps/VectorTransformOps.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,11 @@ void transform::ApplyUnrollFromElementsPatternsOp::populatePatterns(
144144
vector::populateVectorFromElementsLoweringPatterns(patterns);
145145
}
146146

147+
void transform::ApplyUnrollToElementsPatternsOp::populatePatterns(
148+
RewritePatternSet &patterns) {
149+
vector::populateVectorToElementsLoweringPatterns(patterns);
150+
}
151+
147152
void transform::ApplyLowerScanPatternsOp::populatePatterns(
148153
RewritePatternSet &patterns) {
149154
vector::populateVectorScanLoweringPatterns(patterns);

mlir/test/python/dialects/transform_vector_ext.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ def non_configurable_patterns():
4848
vector.ApplyLowerGatherPatternsOp()
4949
# CHECK: transform.apply_patterns.vector.unroll_from_elements
5050
vector.ApplyUnrollFromElementsPatternsOp()
51+
# CHECK: transform.apply_patterns.vector.unroll_to_elements
52+
vector.ApplyUnrollToElementsPatternsOp()
5153
# CHECK: transform.apply_patterns.vector.lower_scan
5254
vector.ApplyLowerScanPatternsOp()
5355
# CHECK: transform.apply_patterns.vector.lower_shape_cast

0 commit comments

Comments
 (0)