File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -31,10 +31,18 @@ impl super::TypedPass for PushSliceUp {
3131 continue ;
3232 }
3333 if let Some ( me) = node. op_as :: < Slice > ( ) {
34- let my_len = & node. outputs [ 0 ] . fact . shape [ me. axis ] ;
35- let slice_len = & succ. outputs [ 0 ] . fact . shape [ slice. axis ] ;
36- if !( my_len. clone ( ) - slice_len) . prove_strict_positive ( ) {
37- continue ;
34+ if me. axis == slice. axis {
35+ let start = me. start . clone ( ) + & slice. start ;
36+ let len = slice. end . clone ( ) - & slice. start ;
37+ let end = start. clone ( ) + len;
38+ let new = Slice { axis, start, end } ;
39+ return TypedModelPatch :: fuse_with_next ( model, node, new) . map ( Some ) ;
40+ } else {
41+ let my_len = & node. outputs [ 0 ] . fact . shape [ me. axis ] ;
42+ let slice_len = & succ. outputs [ 0 ] . fact . shape [ slice. axis ] ;
43+ if !( my_len. clone ( ) - slice_len) . prove_strict_positive ( ) {
44+ continue ;
45+ }
3846 }
3947 }
4048 let boundaries =
You can’t perform that action at this time.
0 commit comments