@@ -6,14 +6,16 @@ module attributes {transform.with_named_sequence} {
66 transform.named_sequence @__transform_main (%arg1: !transform.any_op {transform.readonly }) {
77 %0 = transform.structured.match ops {[" linalg.generic" ]} in %arg1 : (!transform.any_op ) -> !transform.any_op
88 %1:3 = transform.structured.multitile_sizes %0 { dimension = 0 , target_size = 3 } : (!transform.any_op ) -> !transform.any_op
9- %2:2 = transform.structured.split %0 after %1#2 { dimension = 0 } : !transform.any_op , !transform.any_op
9+ %split = transform.structured.split %0 after %1#2 { dimension = 0 } : !transform.any_op , !transform.any_op
10+ %2:2 = transform.split_handle %split : (!transform.any_op ) -> (!transform.any_op , !transform.any_op )
1011 %3:2 = transform.structured.tile_using_for %2#0 tile_sizes [%1 #0 ] : (!transform.any_op , !transform.any_op ) -> (!transform.any_op , !transform.any_op )
1112 %4:2 = transform.structured.tile_using_for %2#1 tile_sizes [%1 #1 ] : (!transform.any_op , !transform.any_op ) -> (!transform.any_op , !transform.any_op )
1213 %5 = transform.merge_handles %3#0 , %4#0 : !transform.any_op
1314 transform.foreach %5 : !transform.any_op {
1415 ^bb0 (%inner_linalg: !transform.any_op ):
1516 %low , %high , %split_point = transform.structured.multitile_sizes %inner_linalg { dimension = 1 , target_size = 10 } : (!transform.any_op ) -> !transform.any_op
16- %inner_linalg_low , %inner_linalg_high = transform.structured.split %inner_linalg after %split_point { dimension = 1 } : !transform.any_op , !transform.any_op
17+ %split2 = transform.structured.split %inner_linalg after %split_point { dimension = 1 } : !transform.any_op , !transform.any_op
18+ %inner_linalg_low , %inner_linalg_high = transform.split_handle %split2 : (!transform.any_op ) -> (!transform.any_op , !transform.any_op )
1719 transform.structured.tile_using_for %inner_linalg_low tile_sizes [0 , %low ] : (!transform.any_op , !transform.any_op ) -> (!transform.any_op , !transform.any_op )
1820 transform.structured.tile_using_for %inner_linalg_high tile_sizes [0 , %high ] : (!transform.any_op , !transform.any_op ) -> (!transform.any_op , !transform.any_op )
1921 }
@@ -111,14 +113,16 @@ module attributes {transform.with_named_sequence} {
111113 %0 = transform.structured.match ops {[" linalg.generic" ]} in %arg1 : (!transform.any_op ) -> !transform.any_op
112114 %1:3 = transform.structured.multitile_sizes %0 { dimension = 0 , target_size = 3 } : (!transform.any_op ) -> !transform.param <i64 >
113115 %t:3 = transform.structured.multitile_sizes %0 { dimension = 1 , target_size = 10 } : (!transform.any_op ) -> !transform.param <i64 >
114- %2:2 = transform.structured.split %0 after %1#2 { dimension = 0 } : !transform.any_op , !transform.param <i64 >
116+ %split = transform.structured.split %0 after %1#2 { dimension = 0 } : !transform.any_op , !transform.param <i64 >
117+ %2:2 = transform.split_handle %split : (!transform.any_op ) -> (!transform.any_op , !transform.any_op )
115118 %3:2 = transform.structured.tile_using_for %2#0 tile_sizes [%1 #0 ] : (!transform.any_op , !transform.param <i64 >) -> (!transform.any_op , !transform.any_op )
116119 %4:2 = transform.structured.tile_using_for %2#1 tile_sizes [%1 #1 ] : (!transform.any_op , !transform.param <i64 >) -> (!transform.any_op , !transform.any_op )
117120 %5 = transform.merge_handles %3#0 , %4#0 : !transform.any_op
118121 %tt:3 = transform.replicate num (%5 ) %t#0 , %t#1 , %t#2 : !transform.any_op , !transform.param <i64 >, !transform.param <i64 >, !transform.param <i64 >
119122 transform.foreach %5 , %tt#0 , %tt#1 , %tt#2 : !transform.any_op , !transform.param <i64 >, !transform.param <i64 >, !transform.param <i64 > {
120123 ^bb0 (%inner_linalg: !transform.any_op , %low: !transform.param <i64 >, %high: !transform.param <i64 >, %split_point: !transform.param <i64 >):
121- %inner_linalg_low , %inner_linalg_high = transform.structured.split %inner_linalg after %split_point { dimension = 1 } : !transform.any_op , !transform.param <i64 >
124+ %split2 = transform.structured.split %inner_linalg after %split_point { dimension = 1 } : !transform.any_op , !transform.param <i64 >
125+ %inner_linalg_low , %inner_linalg_high = transform.split_handle %split2 : (!transform.any_op ) -> (!transform.any_op , !transform.any_op )
122126 transform.structured.tile_using_for %inner_linalg_low tile_sizes [0 , %low ] : (!transform.any_op , !transform.param <i64 >) -> (!transform.any_op , !transform.any_op )
123127 transform.structured.tile_using_for %inner_linalg_high tile_sizes [0 , %high ] : (!transform.any_op , !transform.param <i64 >) -> (!transform.any_op , !transform.any_op )
124128 }
0 commit comments