Skip to content

Commit 125573b

Browse files
committed
cosmetic improvements and comment clarification
1 parent 5ad484e commit 125573b

File tree

2 files changed

+67
-66
lines changed

2 files changed

+67
-66
lines changed

mlir/lib/Dialect/Vector/Transforms/LowerVectorShapeCast.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,9 @@ namespace {
8383
///
8484
/// vector<2x2x3x4x7x11xi8> to
8585
/// vector<8x6x7x11xi8>
86-
/// ^^^^ ---> common suffix of 7x11
87-
/// ^ ---> gcd(4,6) is 2 | |
86+
/// | ||||
87+
/// | ++++------------> common suffix of 7x11
88+
/// +-----------------> gcd(4,6) is 2 | |
8889
/// | | |
8990
/// v v v
9091
/// atomic shape <----- 2x7x11
@@ -111,9 +112,9 @@ namespace {
111112
/// (2) and (3) occur 24 times, and
112113
/// (4) occurs 8 times.
113114
///
114-
/// Two special cases are handled seperately:
115-
/// (1) A shape_cast that just does leading 1 insertion/removal
116-
/// (2) A shape_cast where the gcd is 1.
115+
/// Two special cases are handled independently in this pattern
116+
/// (i) A shape_cast that just does leading 1 insertion/removal
117+
/// (ii) A shape_cast where the gcd is 1.
117118
///
118119
/// These 2 cases can have more compact IR generated by not using the generic
119120
/// algorithm described above.
@@ -159,9 +160,9 @@ class ShapeCastOpRewritePattern : public OpRewritePattern<vector::ShapeCastOp> {
159160
--resultSuffixStartDim;
160161
}
161162

162-
// This is the case where there are just some leading ones to contend with
163-
// in the source or result. It can be handled with a single extract/insert
164-
// pair.
163+
// This is the case (i) where there are just some leading ones to contend
164+
// with in the source or result. It can be handled with a single
165+
// extract/insert pair.
165166
if (resultSuffixStartDim < 0 || sourceSuffixStartDim < 0) {
166167
const int64_t delta = sourceRank - resultRank;
167168
const int64_t sourceLeading = delta > 0 ? delta : 0;
@@ -195,8 +196,8 @@ class ShapeCastOpRewritePattern : public OpRewritePattern<vector::ShapeCastOp> {
195196
atomicShape.begin(), atomicShape.end(), 1, std::multiplies<int64_t>());
196197
const size_t nAtomicSlices = numElms / numAtomicElms;
197198

198-
// This is the case where the strided dimension size is 1. More compact IR
199-
// is generated in this case if we just extract and insert the elements
199+
// This is the case (ii) where the strided dimension size is 1. More compact
200+
// IR is generated in this case if we just extract and insert the elements
200201
// directly. In other words, we don't use extract_strided_slice and
201202
// insert_strided_slice.
202203
if (greatestCommonDivisor == 1) {

mlir/test/Dialect/Vector/vector-shape-cast-lowering-transforms.mlir

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
// RUN: mlir-opt %s --transform-interpreter | FileCheck %s
22

33
// CHECK-LABEL: func @nop_shape_cast
4-
// CHECK-SAME: %[[A:.*]]: vector<16xf32>
4+
// CHECK-SAME: %[[A:.*]]: vector<16xf32>
55
// CHECK: return %[[A]] : vector<16xf32>
66
func.func @nop_shape_cast(%arg0: vector<16xf32>) -> vector<16xf32> {
77
%0 = vector.shape_cast %arg0 : vector<16xf32> to vector<16xf32>
88
return %0 : vector<16xf32>
99
}
1010

1111
// CHECK-LABEL: func @cancel_shape_cast
12-
// CHECK-SAME: %[[A:.*]]: vector<16xf32>
12+
// CHECK-SAME: %[[A:.*]]: vector<16xf32>
1313
// CHECK: return %[[A]] : vector<16xf32>
1414
func.func @cancel_shape_cast(%arg0: vector<16xf32>) -> vector<16xf32> {
1515
%0 = vector.shape_cast %arg0 : vector<16xf32> to vector<4x4xf32>
@@ -19,16 +19,16 @@ func.func @cancel_shape_cast(%arg0: vector<16xf32>) -> vector<16xf32> {
1919

2020
// Collapse 2-D to 1-D.
2121
// CHECK-LABEL: func @shape_cast_2d1d
22-
// CHECK-SAME: %[[A:.*]]: vector<2x2xf32>) -> vector<4xf32> {
22+
// CHECK-SAME: %[[A:.*]]: vector<2x2xf32>) -> vector<4xf32> {
2323
// CHECK: %[[UB:.*]] = ub.poison : vector<4xf32>
2424
//
2525
// CHECK: %[[EX0:.*]] = vector.extract %[[A]][0] : vector<2xf32> from vector<2x2xf32>
2626
// CHECK: %[[IN0:.*]] = vector.insert_strided_slice %[[EX0]], %[[UB]]
27-
// CHECK-SAME: {offsets = [0], strides = [1]} : vector<2xf32> into vector<4xf32>
27+
// CHECK-SAME: {offsets = [0], strides = [1]} : vector<2xf32> into vector<4xf32>
2828
//
2929
// CHECK: %[[EX1:.*]] = vector.extract %{{.*}}[1] : vector<2xf32> from vector<2x2xf32>
3030
// CHECK: %[[IN2:.*]] = vector.insert_strided_slice %[[EX1]], %[[IN0]]
31-
// CHECK-SAME: {offsets = [2], strides = [1]} : vector<2xf32> into vector<4xf32>
31+
// CHECK-SAME: {offsets = [2], strides = [1]} : vector<2xf32> into vector<4xf32>
3232
// CHECK: return %[[IN2]] : vector<4xf32>
3333
func.func @shape_cast_2d1d(%a: vector<2x2xf32>) -> (vector<4xf32>) {
3434
%0 = vector.shape_cast %a : vector<2x2xf32> to vector<4xf32>
@@ -37,20 +37,20 @@ func.func @shape_cast_2d1d(%a: vector<2x2xf32>) -> (vector<4xf32>) {
3737

3838
// Collapse 3-D to 1-D.
3939
// CHECK-LABEL: func @shape_cast_3d1d
40-
// CHECK-SAME: %[[A:.*]]: vector<1x3x2xf32>
40+
// CHECK-SAME: %[[A:.*]]: vector<1x3x2xf32>
4141
// CHECK: %[[UB:.*]] = ub.poison : vector<6xf32>
4242
//
4343
// CHECK: %[[T0:.*]] = vector.extract %[[A]][0, 0] : vector<2xf32> from vector<1x3x2xf32>
4444
// CHECK: %[[T1:.*]] = vector.insert_strided_slice %[[T0]], %[[UB]]
45-
// CHECK-SAME: {offsets = [0], strides = [1]} : vector<2xf32> into vector<6xf32>
45+
// CHECK-SAME: {offsets = [0], strides = [1]} : vector<2xf32> into vector<6xf32>
4646
//
4747
// CHECK: %[[T2:.*]] = vector.extract %[[A]][0, 1] : vector<2xf32> from vector<1x3x2xf32>
4848
// CHECK: %[[T3:.*]] = vector.insert_strided_slice %[[T2]], %[[T1]]
49-
// CHECK-SAME: {offsets = [2], strides = [1]} : vector<2xf32> into vector<6xf32>
49+
// CHECK-SAME: {offsets = [2], strides = [1]} : vector<2xf32> into vector<6xf32>
5050
//
5151
// CHECK: %[[T4:.*]] = vector.extract %[[A]][0, 2] : vector<2xf32> from vector<1x3x2xf32>
5252
// CHECK: %[[T5:.*]] = vector.insert_strided_slice %[[T4]], %[[T3]]
53-
// CHECK-SAME: {offsets = [4], strides = [1]} : vector<2xf32> into vector<6xf32>
53+
// CHECK-SAME: {offsets = [4], strides = [1]} : vector<2xf32> into vector<6xf32>
5454
// CHECK: return %[[T5]] : vector<6xf32>
5555
func.func @shape_cast_3d1d(%arg0 : vector<1x3x2xf32>) -> vector<6xf32> {
5656
%s = vector.shape_cast %arg0 : vector<1x3x2xf32> to vector<6xf32>
@@ -59,20 +59,20 @@ func.func @shape_cast_3d1d(%arg0 : vector<1x3x2xf32>) -> vector<6xf32> {
5959

6060
// Expand 1-D to 2-D.
6161
// CHECK-LABEL: func.func @shape_cast_1d2d(
62-
// CHECK-SAME: %[[A:.*]]: vector<4xf32>) -> vector<2x2xf32> {
62+
// CHECK-SAME: %[[A:.*]]: vector<4xf32>) -> vector<2x2xf32> {
6363
// CHECK: %[[UB:.*]] = ub.poison : vector<2x2xf32>
6464
//
6565
// CHECK: %[[SS0:.*]] = vector.extract_strided_slice %[[A]]
66-
// CHECK-SAME: {offsets = [0], sizes = [2], strides = [1]} :
67-
// CHECK-SAME: vector<4xf32> to vector<2xf32>
66+
// CHECK-SAME: {offsets = [0], sizes = [2], strides = [1]} :
67+
// CHECK-SAME: vector<4xf32> to vector<2xf32>
6868
// CHECK: %[[res0:.*]] = vector.insert %[[SS0]], %[[UB]] [0] :
69-
// CHECK-SAME: vector<2xf32> into vector<2x2xf32>
69+
// CHECK-SAME: vector<2xf32> into vector<2x2xf32>
7070
//
7171
// CHECK: %[[SS2:.*]] = vector.extract_strided_slice %[[A]]
72-
// CHECK-SAME: {offsets = [2], sizes = [2], strides = [1]} :
73-
// CHECK-SAME: vector<4xf32> to vector<2xf32>
72+
// CHECK-SAME: {offsets = [2], sizes = [2], strides = [1]} :
73+
// CHECK-SAME: vector<4xf32> to vector<2xf32>
7474
// CHECK: %[[res1:.*]] = vector.insert %[[SS2]], %[[res0]] [1] :
75-
// CHECK-SAME: vector<2xf32> into vector<2x2xf32>
75+
// CHECK-SAME: vector<2xf32> into vector<2x2xf32>
7676
// CHECK: return %[[res1]] : vector<2x2xf32>
7777
func.func @shape_cast_1d2d(%a: vector<4xf32>) -> (vector<2x2xf32>) {
7878
%1 = vector.shape_cast %a: vector<4xf32> to vector<2x2xf32>
@@ -81,20 +81,20 @@ func.func @shape_cast_1d2d(%a: vector<4xf32>) -> (vector<2x2xf32>) {
8181

8282
// Expand 1-D to 3-D.
8383
// CHECK-LABEL: func @shape_cast_1d3d
84-
// CHECK-SAME: %[[A:.*]]: vector<6xf32>
84+
// CHECK-SAME: %[[A:.*]]: vector<6xf32>
8585
// CHECK: %[[UB:.*]] = ub.poison : vector<2x1x3xf32>
8686
//
8787
// CHECK: %[[T0:.*]] = vector.extract_strided_slice %[[A]]
88-
// CHECK-SAME: {offsets = [0], sizes = [3], strides = [1]} :
89-
// CHECK-SAME: vector<6xf32> to vector<3xf32>
88+
// CHECK-SAME: {offsets = [0], sizes = [3], strides = [1]} :
89+
// CHECK-SAME: vector<6xf32> to vector<3xf32>
9090
// CHECK: %[[T1:.*]] = vector.insert %[[T0]], %[[UB]] [0, 0] :
91-
// CHECK-SAME: vector<3xf32> into vector<2x1x3xf32>
91+
// CHECK-SAME: vector<3xf32> into vector<2x1x3xf32>
9292
//
9393
// CHECK: %[[T2:.*]] = vector.extract_strided_slice %[[A]]
94-
// CHECK-SAME: {offsets = [3], sizes = [3], strides = [1]} :
95-
// CHECK-SAME: vector<6xf32> to vector<3xf32>
94+
// CHECK-SAME: {offsets = [3], sizes = [3], strides = [1]} :
95+
// CHECK-SAME: vector<6xf32> to vector<3xf32>
9696
// CHECK: %[[T3:.*]] = vector.insert %[[T2]], %[[T1]] [1, 0] :
97-
// CHECK-SAME: vector<3xf32> into vector<2x1x3xf32>
97+
// CHECK-SAME: vector<3xf32> into vector<2x1x3xf32>
9898
// CHECK: return %[[T3]] : vector<2x1x3xf32>
9999
func.func @shape_cast_1d3d(%arg0 : vector<6xf32>) -> vector<2x1x3xf32> {
100100
%s = vector.shape_cast %arg0 : vector<6xf32> to vector<2x1x3xf32>
@@ -104,7 +104,7 @@ func.func @shape_cast_1d3d(%arg0 : vector<6xf32>) -> vector<2x1x3xf32> {
104104
// 2-D to 2-D where the inner-most dimensions have no common factors. This
105105
// case requires scalar element by element extraction and insertion.
106106
// CHECK-LABEL: func @shape_cast_2d2d
107-
// CHECK-SAME: %[[A:.*]]: vector<3x2xf32>
107+
// CHECK-SAME: %[[A:.*]]: vector<3x2xf32>
108108
// CHECK: %[[UB:.*]] = ub.poison : vector<2x3xf32>
109109
//
110110
// CHECK: %[[T0:.*]] = vector.extract %[[A]][0, 0] : f32 from vector<3x2xf32>
@@ -132,7 +132,7 @@ func.func @shape_cast_2d2d(%arg0 : vector<3x2xf32>) -> vector<2x3xf32> {
132132
}
133133

134134
// CHECK-LABEL: func.func @shape_cast_0d1d(
135-
// CHECK-SAME: %[[A:.*]]: vector<f32>) -> vector<1xf32> {
135+
// CHECK-SAME: %[[A:.*]]: vector<f32>) -> vector<1xf32> {
136136
// CHECK: %[[UB:.*]] = ub.poison : vector<1xf32>
137137
//
138138
// CHECK: %[[EXTRACT0:.*]] = vector.extract %[[A]][] : f32 from vector<f32>
@@ -144,7 +144,7 @@ func.func @shape_cast_0d1d(%arg0 : vector<f32>) -> vector<1xf32> {
144144
}
145145

146146
// CHECK-LABEL: func.func @shape_cast_1d0d(
147-
// CHECK-SAME: %[[A:.*]]: vector<1xf32>) -> vector<f32> {
147+
// CHECK-SAME: %[[A:.*]]: vector<1xf32>) -> vector<f32> {
148148
// CHECK: %[[UB:.*]] = ub.poison : vector<f32>
149149
//
150150
// CHECK: %[[EXTRACT0:.*]] = vector.extract %[[A]][0] : f32 from vector<1xf32>
@@ -157,10 +157,10 @@ func.func @shape_cast_1d0d(%arg0 : vector<1xf32>) -> vector<f32> {
157157

158158
// The shapes have 2 inner dimension sizes in common, so the extract result is rank-2.
159159
// CHECK-LABEL: func.func @squeeze_out_prefix_unit_dim(
160-
// CHECK-SAME: %[[A:.*]]: vector<1x2x3xf32>) -> vector<2x3xf32> {
160+
// CHECK-SAME: %[[A:.*]]: vector<1x2x3xf32>) -> vector<2x3xf32> {
161161
//
162162
// CHECK: %[[EXTRACTED:.*]] = vector.extract %[[A]][0] :
163-
// CHECK-SAME: vector<2x3xf32> from vector<1x2x3xf32>
163+
// CHECK-SAME: vector<2x3xf32> from vector<1x2x3xf32>
164164
// CHECK: return %[[EXTRACTED]] : vector<2x3xf32>
165165
func.func @squeeze_out_prefix_unit_dim(%arg0 : vector<1x2x3xf32>) -> vector<2x3xf32> {
166166
%s = vector.shape_cast %arg0 : vector<1x2x3xf32> to vector<2x3xf32>
@@ -169,7 +169,7 @@ func.func @squeeze_out_prefix_unit_dim(%arg0 : vector<1x2x3xf32>) -> vector<2x3x
169169

170170
// The shapes have 1 inner dimension size in common, so the extract results are rank-1.
171171
// CHECK-LABEL: func.func @squeeze_out_middle_unit_dim(
172-
// CHECK-SAME: %[[A:.*]]: vector<2x1x3xf32>) -> vector<2x3xf32> {
172+
// CHECK-SAME: %[[A:.*]]: vector<2x1x3xf32>) -> vector<2x3xf32> {
173173
// CHECK: %[[UB:.*]] = ub.poison : vector<2x3xf32>
174174
//
175175
// CHECK: %[[E0:.*]] = vector.extract %[[A]][0, 0] : vector<3xf32>
@@ -184,7 +184,7 @@ func.func @squeeze_out_middle_unit_dim(%arg0 : vector<2x1x3xf32>) -> vector<2x3x
184184
}
185185

186186
// CHECK-LABEL: func.func @prepend_unit_dim(
187-
// CHECK-SAME: %[[A:.*]]: vector<2x3xf32>) -> vector<1x2x3xf32> {
187+
// CHECK-SAME: %[[A:.*]]: vector<2x3xf32>) -> vector<1x2x3xf32> {
188188
// CHECK: %[[UB:.*]] = ub.poison : vector<1x2x3xf32>
189189
//
190190
// CHECK: %[[I0:.*]] = vector.insert %[[A]], %[[UB]] [0]
@@ -195,7 +195,7 @@ func.func @prepend_unit_dim(%arg0 : vector<2x3xf32>) -> vector<1x2x3xf32> {
195195
}
196196

197197
// CHECK-LABEL: func.func @insert_middle_unit_dim(
198-
// CHECK-SAME: %[[A:.*]]: vector<2x3xf32>) -> vector<2x1x3xf32> {
198+
// CHECK-SAME: %[[A:.*]]: vector<2x3xf32>) -> vector<2x1x3xf32> {
199199
// CHECK: %[[UB:.*]] = ub.poison : vector<2x1x3xf32>
200200
//
201201
// CHECK: %[[E0:.*]] = vector.extract %[[A]][0] : vector<3xf32>
@@ -210,7 +210,7 @@ func.func @insert_middle_unit_dim(%arg0 : vector<2x3xf32>) -> vector<2x1x3xf32>
210210
}
211211

212212
// CHECK-LABEL: func.func @postpend_unit_dims(
213-
// CHECK-SAME: %[[A:.*]]: vector<4xf32>) -> vector<4x1x1xf32> {
213+
// CHECK-SAME: %[[A:.*]]: vector<4xf32>) -> vector<4x1x1xf32> {
214214
// CHECK: %[[UB:.*]] = ub.poison : vector<4x1x1xf32>
215215
// CHECK: %[[E0:.*]] = vector.extract %[[A]][0] : f32 from vector<4xf32>
216216
// CHECK: %[[I0:.*]] = vector.insert %[[E0]], %[[UB]] [0, 0, 0] : f32 into vector<4x1x1xf32>
@@ -227,25 +227,25 @@ func.func @postpend_unit_dims(%arg0 : vector<4xf32>) -> vector<4x1x1xf32> {
227227
}
228228

229229
// CHECK-LABEL: func.func @expand_inner_dims(
230-
// CHECK-SAME: %[[A:.*]]: vector<2x10xf32>) -> vector<2x2x5xf32> {
230+
// CHECK-SAME: %[[A:.*]]: vector<2x10xf32>) -> vector<2x2x5xf32> {
231231
// CHECK: %[[UB:.*]] = ub.poison : vector<2x2x5xf32>
232232
//
233233
// CHECK: %[[E0:.*]] = vector.extract %[[A]][0] : vector<10xf32>
234234
// CHECK: %[[S0:.*]] = vector.extract_strided_slice %[[E0]]
235-
// CHECK-SAME: {offsets = [0], sizes = [5], {{.*}} to vector<5xf32>
235+
// CHECK-SAME: {offsets = [0], sizes = [5], {{.*}} to vector<5xf32>
236236
// CHECK: %[[I0:.*]] = vector.insert %[[S0]], %[[UB]] [0, 0]
237237
//
238238
// CHECK: %[[S1:.*]] = vector.extract_strided_slice %[[E0]]
239-
// CHECK-SAME: {offsets = [5], sizes = [5], {{.*}} to vector<5xf32>
239+
// CHECK-SAME: {offsets = [5], sizes = [5], {{.*}} to vector<5xf32>
240240
// CHECK: %[[I1:.*]] = vector.insert %[[S1]], %[[I0]] [0, 1]
241241
//
242242
// CHECK: %[[E1:.*]] = vector.extract %[[A]][1] : vector<10xf32>
243243
// CHECK: %[[S2:.*]] = vector.extract_strided_slice %[[E1]]
244-
// CHECK-SAME: {offsets = [0], sizes = [5], {{.*}} to vector<5xf32>
244+
// CHECK-SAME: {offsets = [0], sizes = [5], {{.*}} to vector<5xf32>
245245
// CHECK: %[[I2:.*]] = vector.insert %[[S2]], %[[I1]] [1, 0]
246246
//
247247
// CHECK: %[[S3:.*]] = vector.extract_strided_slice %[[E1]]
248-
// CHECK-SAME: {offsets = [5], sizes = [5], {{.*}} to vector<5xf32>
248+
// CHECK-SAME: {offsets = [5], sizes = [5], {{.*}} to vector<5xf32>
249249
// CHECK: %[[I3:.*]] = vector.insert %[[S3]], %[[I2]] [1, 1]
250250
// CHECK: return %[[I3]] : vector<2x2x5xf32>
251251
func.func @expand_inner_dims(%arg0 : vector<2x10xf32>) -> vector<2x2x5xf32> {
@@ -268,24 +268,24 @@ func.func @expand_inner_dims(%arg0 : vector<2x10xf32>) -> vector<2x2x5xf32> {
268268
// return v1;
269269
// }
270270
// CHECK-LABEL: func.func @collapse_inner_dims(
271-
// CHECK-SAME: %[[A:.*]]: vector<2x2x5xi8>) -> vector<1x2x1x10xi8> {
271+
// CHECK-SAME: %[[A:.*]]: vector<2x2x5xi8>) -> vector<1x2x1x10xi8> {
272272
// CHECK-DAG: %[[UBSMALL:.*]] = ub.poison : vector<10xi8>
273273
// CHECK-DAG: %[[UBLARGE:.*]] = ub.poison : vector<1x2x1x10xi8>
274274
//
275275
// CHECK: %[[EX0:.*]] = vector.extract %[[A]][0, 0]
276276
// CHECK: %[[IN0:.*]] = vector.insert_strided_slice %[[EX0]], %[[UBSMALL]]
277-
// CHECK-SAME: {offsets = [0], {{.*}}
277+
// CHECK-SAME: {offsets = [0], {{.*}}
278278
// CHECK: %[[EX1:.*]] = vector.extract %[[A]][0, 1]
279279
// CHECK: %[[IN1:.*]] = vector.insert_strided_slice %[[EX1]], %[[IN0]]
280-
// CHECK-SAME: {offsets = [5], {{.*}}
280+
// CHECK-SAME: {offsets = [5], {{.*}}
281281
// CHECK: %[[IN2:.*]] = vector.insert %[[IN1]], %[[UBLARGE]] [0, 0, 0]
282282
//
283283
// CHECK: %[[EX2:.*]] = vector.extract %[[A]][1, 0]
284284
// CHECK: %[[IN3:.*]] = vector.insert_strided_slice %[[EX2]], %[[UBSMALL]]
285-
// CHECK-SAME: {offsets = [0], {{.*}}
285+
// CHECK-SAME: {offsets = [0], {{.*}}
286286
// CHECK: %[[EX3:.*]] = vector.extract %[[A]][1, 1]
287287
// CHECK: %[[IN4:.*]] = vector.insert_strided_slice %[[EX3]], %[[IN3]]
288-
// CHECK-SAME: {offsets = [5], {{.*}}
288+
// CHECK-SAME: {offsets = [5], {{.*}}
289289
// CHECK: %[[IN5:.*]] = vector.insert %[[IN4]], %[[IN2]] [0, 1, 0]
290290
// CHECK: return %[[IN5]] : vector<1x2x1x10xi8>
291291
func.func @collapse_inner_dims(%arg0 : vector<2x2x5xi8>) -> vector<1x2x1x10xi8> {
@@ -312,43 +312,43 @@ func.func @collapse_inner_dims(%arg0 : vector<2x2x5xi8>) -> vector<1x2x1x10xi8>
312312
// return v1;
313313
// }
314314
// CHECK-LABEL: func.func @non_dividing_gcd_decreasing(
315-
// CHECK-SAME: %[[A:.*]]: vector<2x15xi8>) -> vector<3x10xi8> {
315+
// CHECK-SAME: %[[A:.*]]: vector<2x15xi8>) -> vector<3x10xi8> {
316316
// CHECK-DAG: %[[UB0:.*]] = ub.poison : vector<10xi8>
317317
// CHECK-DAG: %[[UB1:.*]] = ub.poison : vector<3x10xi8>
318318
//
319319
// First 10 elements:
320320
// CHECK: %[[EX0:.*]] = vector.extract %[[A]][0] : vector<15xi8> from vector<2x15xi8>
321321
// CHECK: %[[SS0:.*]] = vector.extract_strided_slice %[[EX0]]
322-
// CHECK-SAME: {offsets = [0], {{.*}} to vector<5xi8>
322+
// CHECK-SAME: {offsets = [0], {{.*}} to vector<5xi8>
323323
// CHECK: %[[IN0:.*]] = vector.insert_strided_slice %[[SS0]], %[[UB0]]
324-
// CHECK-SAME: {offsets = [0], {{.*}}
324+
// CHECK-SAME: {offsets = [0], {{.*}}
325325
// CHECK: %[[SS1:.*]] = vector.extract_strided_slice %[[EX0]]
326-
// CHECK-SAME: {offsets = [5], {{.*}} to vector<5xi8>
326+
// CHECK-SAME: {offsets = [5], {{.*}} to vector<5xi8>
327327
// CHECK: %[[IN1:.*]] = vector.insert_strided_slice %[[SS1]], %[[IN0]]
328-
// CHECK-SAME: {offsets = [5], {{.*}}
328+
// CHECK-SAME: {offsets = [5], {{.*}}
329329
// CHECK: %[[IN2:.*]] = vector.insert %[[IN1]], %[[UB1]] [0] : vector<10xi8> into vector<3x10xi8>
330330
//
331331
// Next 10 elements:
332332
// CHECK: %[[SS2:.*]] = vector.extract_strided_slice %[[EX0]]
333-
// CHECK-SAME: {offsets = [10], {{.*}} to vector<5xi8>
333+
// CHECK-SAME: {offsets = [10], {{.*}} to vector<5xi8>
334334
// CHECK: %[[IN3:.*]] = vector.insert_strided_slice %[[SS2]], %[[UB0]]
335-
// CHECK-SAME: {offsets = [0], {{.*}}
335+
// CHECK-SAME: {offsets = [0], {{.*}}
336336
// CHECK: %[[EX1:.*]] = vector.extract %[[A]][1] : vector<15xi8> from vector<2x15xi8>
337337
// CHECK: %[[SS3:.*]] = vector.extract_strided_slice %[[EX1]]
338-
// CHECK-SAME: {offsets = [0], {{.*}} to vector<5xi8>
338+
// CHECK-SAME: {offsets = [0], {{.*}} to vector<5xi8>
339339
// CHECK: %[[IN4:.*]] = vector.insert_strided_slice %[[SS3]], %[[IN3]]
340-
// CHECK-SAME: {offsets = [5], {{.*}}
340+
// CHECK-SAME: {offsets = [5], {{.*}}
341341
// CHECK: %[[IN5:.*]] = vector.insert %[[IN4]], %[[IN2]] [1] : vector<10xi8> into vector<3x10xi8>
342342
//
343343
// Final 10 elements:
344344
// CHECK: %[[SS4:.*]] = vector.extract_strided_slice %[[EX1]]
345-
// CHECK-SAME: {offsets = [5], {{.*}} to vector<5xi8>
345+
// CHECK-SAME: {offsets = [5], {{.*}} to vector<5xi8>
346346
// CHECK: %[[IN6:.*]] = vector.insert_strided_slice %[[SS4]], %[[UB0]]
347-
// CHECK-SAME: {offsets = [0], {{.*}}
347+
// CHECK-SAME: {offsets = [0], {{.*}}
348348
// CHECK: %[[SS5:.*]] = vector.extract_strided_slice %[[EX1]]
349-
// CHECK-SAME: {offsets = [10], {{.*}} to vector<5xi8>
349+
// CHECK-SAME: {offsets = [10], {{.*}} to vector<5xi8>
350350
// CHECK: %[[IN7:.*]] = vector.insert_strided_slice %[[SS5]], %[[IN6]]
351-
// CHECK-SAME: {offsets = [5], {{.*}}
351+
// CHECK-SAME: {offsets = [5], {{.*}}
352352
// CHECK: %[[IN8:.*]] = vector.insert %[[IN7]], %[[IN5]] [2] : vector<10xi8> into vector<3x10xi8>
353353
// CHECK: return %[[IN8]] : vector<3x10xi8>
354354
func.func @non_dividing_gcd_decreasing(%arg0 : vector<2x15xi8>) -> vector<3x10xi8> {
@@ -357,7 +357,7 @@ func.func @non_dividing_gcd_decreasing(%arg0 : vector<2x15xi8>) -> vector<3x10xi
357357
}
358358

359359
// CHECK-LABEL: func.func @non_dividing_gcd_increasing(
360-
// CHECK-SAME: %[[A:.*]]: vector<3x10xi8>) -> vector<2x15xi8> {
360+
// CHECK-SAME: %[[A:.*]]: vector<3x10xi8>) -> vector<2x15xi8> {
361361
//
362362
// CHECK-DAG: ub.poison : vector<15xi8>
363363
// CHECK-DAG: ub.poison : vector<2x15xi8>

0 commit comments

Comments
 (0)