File tree 2 files changed +16
-0
lines changed
mlir/test/Integration/Dialect/Linalg/CPU/ArmSME
2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -82,8 +82,16 @@ module attributes {transform.with_named_sequence} {
82
82
transform.apply_patterns to %func {
83
83
transform.apply_patterns.vector.lower_contraction lowering_strategy = " outerproduct"
84
84
transform.apply_patterns.vector.lower_masks
85
+ transform.apply_patterns.canonicalization
85
86
} : !transform.any_op
86
87
88
+ // Step 5 (optional optimization): Hoist accumulator load/store.
89
+ %func_h = transform.structured.hoist_redundant_vector_transfers %func
90
+ : (!transform.any_op ) -> !transform.any_op
91
+ %all_loops = transform.structured.match interface {LoopLikeInterface } in %module
92
+ : (!transform.any_op ) -> !transform.any_op
93
+ transform.apply_licm to %all_loops : !transform.any_op
94
+ transform.loop.hoist_loop_invariant_subsets %all_loops : !transform.any_op
87
95
transform.yield
88
96
}
89
97
}
Original file line number Diff line number Diff line change @@ -88,8 +88,16 @@ module attributes {transform.with_named_sequence} {
88
88
transform.apply_patterns.vector.lower_contraction lowering_strategy = " outerproduct"
89
89
transform.apply_patterns.vector.lower_masks
90
90
transform.apply_patterns.vector.rank_reducing_subview_patterns
91
+ transform.apply_patterns.canonicalization
91
92
} : !transform.any_op
92
93
94
+ // Step 6 (optional optimization): Hoist accumulator load/store.
95
+ %func_h = transform.structured.hoist_redundant_vector_transfers %func
96
+ : (!transform.any_op ) -> !transform.any_op
97
+ %all_loops = transform.structured.match interface {LoopLikeInterface } in %bufferize
98
+ : (!transform.any_op ) -> !transform.any_op
99
+ transform.apply_licm to %all_loops : !transform.any_op
100
+ transform.loop.hoist_loop_invariant_subsets %all_loops : !transform.any_op
93
101
transform.yield
94
102
}
95
103
}
You can’t perform that action at this time.
0 commit comments