@@ -206,6 +206,16 @@ func.func @cast_away_extract_strided_slice_leading_one_dims(%arg0: vector<1x8x8x
206
206
return %0: vector <1 x1 x8 xf16 >
207
207
}
208
208
209
+ // CHECK-LABEL: func @cast_away_extract_strided_slice_leading_one_dims_scalable
210
+ func.func @cast_away_extract_strided_slice_leading_one_dims_scalable (%arg0: vector <1 x8 x[8 ]xf16 >) -> vector <1 x1 x[8 ]xf16 > {
211
+ // CHECK: %[[SRC:.+]] = vector.extract %{{.*}}[0] : vector<8x[8]xf16> from vector<1x8x[8]xf16>
212
+ // CHECK: %[[EXTRACT:.+]] = vector.extract_strided_slice %[[SRC]] {offsets = [4], sizes = [1], strides = [1]} : vector<8x[8]xf16> to vector<1x[8]xf16>
213
+ %0 = vector.extract_strided_slice %arg0 {offsets = [0 , 4 ], sizes = [1 , 1 ], strides = [1 , 1 ]} : vector <1 x8 x[8 ]xf16 > to vector <1 x1 x[8 ]xf16 >
214
+ // CHECK: %[[RET:.+]] = vector.broadcast %[[EXTRACT]] : vector<1x[8]xf16> to vector<1x1x[8]xf16>
215
+ // CHECK: return %[[RET]]
216
+ return %0: vector <1 x1 x[8 ]xf16 >
217
+ }
218
+
209
219
// CHECK-LABEL: func @cast_away_insert_strided_slice_leading_one_dims
210
220
func.func @cast_away_insert_strided_slice_leading_one_dims (%arg0: vector <1 x8 xf16 >, %arg1: vector <1 x8 x8 xf16 >) -> vector <1 x8 x8 xf16 > {
211
221
// CHECK: %[[SRC:.+]] = vector.extract %{{.*}}[0] : vector<8xf16> from vector<1x8xf16>
@@ -217,6 +227,17 @@ func.func @cast_away_insert_strided_slice_leading_one_dims(%arg0: vector<1x8xf16
217
227
return %0: vector <1 x8 x8 xf16 >
218
228
}
219
229
230
+ // CHECK-LABEL: func @cast_away_insert_strided_slice_leading_one_dims_scalable
231
+ func.func @cast_away_insert_strided_slice_leading_one_dims_scalable (%arg0: vector <1 x[8 ]xf16 >, %arg1: vector <1 x8 x[8 ]xf16 >) -> vector <1 x8 x[8 ]xf16 > {
232
+ // CHECK: %[[SRC:.+]] = vector.extract %{{.*}}[0] : vector<[8]xf16> from vector<1x[8]xf16>
233
+ // CHECK: %[[DST:.+]] = vector.extract %{{.*}}[0] : vector<8x[8]xf16> from vector<1x8x[8]xf16>
234
+ // CHECK: %[[INSERT:.+]] = vector.insert_strided_slice %[[SRC]], %[[DST]] {offsets = [0, 0], strides = [1]} : vector<[8]xf16> into vector<8x[8]xf16>
235
+ %0 = vector.insert_strided_slice %arg0 , %arg1 {offsets = [0 , 0 , 0 ], strides = [1 , 1 ]} : vector <1 x[8 ]xf16 > into vector <1 x8 x[8 ]xf16 >
236
+ // CHECK: %[[RET:.+]] = vector.broadcast %[[INSERT]] : vector<8x[8]xf16> to vector<1x8x[8]xf16>
237
+ // CHECK: return %[[RET]]
238
+ return %0: vector <1 x8 x[8 ]xf16 >
239
+ }
240
+
220
241
// CHECK-LABEL: func @cast_away_insert_strided_slice_leading_one_dims_one_element
221
242
// CHECK-SAME: %[[ARG0:.+]]: vector<1x1xf16>, %{{.+}}: vector<1x1x1xf16>
222
243
func.func @cast_away_insert_strided_slice_leading_one_dims_one_element (%arg0: vector <1 x1 xf16 >, %arg1: vector <1 x1 x1 xf16 >) -> vector <1 x1 x1 xf16 > {
0 commit comments