Skip to content

Commit 76cf138

Browse files
committed
Feedback
1 parent 94a1020 commit 76cf138

File tree

2 files changed

+39
-39
lines changed

2 files changed

+39
-39
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ struct MixSizeInputShuffleOpRewrite final
5151
if (v1Type.getRank() != 1 || v2Type.getRank() != 1)
5252
return failure();
5353

54-
// No mix-size inputs.
54+
// Bail out if inputs don't have mixed sized.
5555
int64_t v1OrigNumElems = v1Type.getNumElements();
5656
int64_t v2OrigNumElems = v2Type.getNumElements();
5757
if (v1OrigNumElems == v2OrigNumElems)
Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,77 @@
11
// RUN: mlir-opt %s --test-vector-shuffle-lowering --split-input-file | FileCheck %s
22

3-
// CHECK-LABEL: func.func @shuffle_v1_smaller_arbitrary
4-
// CHECK-SAME: %[[V1:.*]]: vector<2xf32>, %[[V2:.*]]: vector<4xf32>
5-
func.func @shuffle_v1_smaller_arbitrary(%v1: vector<2xf32>, %v2: vector<4xf32>) -> vector<5xf32> {
6-
// CHECK: %[[PROMOTE_V1:.*]] = vector.shuffle %[[V1]], %[[V1]] [0, 1, -1, -1] : vector<2xf32>, vector<2xf32>
7-
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[PROMOTE_V1]], %[[V2]] [1, 5, 0, 6, 7] : vector<4xf32>, vector<4xf32>
3+
// CHECK-LABEL: func.func @shuffle_smaller_lhs_arbitrary
4+
// CHECK-SAME: %[[LHS:.*]]: vector<2xf32>, %[[RHS:.*]]: vector<4xf32>
5+
func.func @shuffle_smaller_lhs_arbitrary(%lhs: vector<2xf32>, %rhs: vector<4xf32>) -> vector<5xf32> {
6+
// CHECK: %[[PROMOTE_LHS:.*]] = vector.shuffle %[[LHS]], %[[LHS]] [0, 1, -1, -1] : vector<2xf32>, vector<2xf32>
7+
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[PROMOTE_LHS]], %[[RHS]] [1, 5, 0, 6, 7] : vector<4xf32>, vector<4xf32>
88
// CHECK: return %[[RESULT]] : vector<5xf32>
9-
%0 = vector.shuffle %v1, %v2 [1, 3, 0, 4, 5] : vector<2xf32>, vector<4xf32>
9+
%0 = vector.shuffle %lhs, %rhs [1, 3, 0, 4, 5] : vector<2xf32>, vector<4xf32>
1010
return %0 : vector<5xf32>
1111
}
1212

1313
// -----
1414

15-
// CHECK-LABEL: func.func @shuffle_v2_smaller_arbitrary
16-
// CHECK-SAME: %[[V1:.*]]: vector<4xi32>, %[[V2:.*]]: vector<2xi32>
17-
func.func @shuffle_v2_smaller_arbitrary(%v1: vector<4xi32>, %v2: vector<2xi32>) -> vector<6xi32> {
18-
// CHECK: %[[PROMOTE_V2:.*]] = vector.shuffle %[[V2]], %[[V2]] [0, 1, -1, -1] : vector<2xi32>, vector<2xi32>
19-
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[V1]], %[[PROMOTE_V2]] [3, 5, 1, 4, 0, 2] : vector<4xi32>, vector<4xi32>
15+
// CHECK-LABEL: func.func @shuffle_smaller_rhs_arbitrary
16+
// CHECK-SAME: %[[LHS:.*]]: vector<4xi32>, %[[RHS:.*]]: vector<2xi32>
17+
func.func @shuffle_smaller_rhs_arbitrary(%lhs: vector<4xi32>, %rhs: vector<2xi32>) -> vector<6xi32> {
18+
// CHECK: %[[PROMOTE_RHS:.*]] = vector.shuffle %[[RHS]], %[[RHS]] [0, 1, -1, -1] : vector<2xi32>, vector<2xi32>
19+
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[LHS]], %[[PROMOTE_RHS]] [3, 5, 1, 4, 0, 2] : vector<4xi32>, vector<4xi32>
2020
// CHECK: return %[[RESULT]] : vector<6xi32>
21-
%0 = vector.shuffle %v1, %v2 [3, 5, 1, 4, 0, 2] : vector<4xi32>, vector<2xi32>
21+
%0 = vector.shuffle %lhs, %rhs [3, 5, 1, 4, 0, 2] : vector<4xi32>, vector<2xi32>
2222
return %0 : vector<6xi32>
2323
}
2424

2525
// -----
2626

27-
// CHECK-LABEL: func.func @shuffle_v1_smaller_concat
28-
// CHECK-SAME: %[[V1:.*]]: vector<3xf64>, %[[V2:.*]]: vector<5xf64>
29-
func.func @shuffle_v1_smaller_concat(%v1: vector<3xf64>, %v2: vector<5xf64>) -> vector<8xf64> {
30-
// CHECK: %[[PROMOTE_V1:.*]] = vector.shuffle %[[V1]], %[[V1]] [0, 1, 2, -1, -1] : vector<3xf64>, vector<3xf64>
31-
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[PROMOTE_V1]], %[[V2]] [0, 1, 2, 5, 6, 7, 8, 9] : vector<5xf64>, vector<5xf64>
27+
// CHECK-LABEL: func.func @shuffle_smaller_lhs_concat
28+
// CHECK-SAME: %[[LHS:.*]]: vector<3xf64>, %[[RHS:.*]]: vector<5xf64>
29+
func.func @shuffle_smaller_lhs_concat(%lhs: vector<3xf64>, %rhs: vector<5xf64>) -> vector<8xf64> {
30+
// CHECK: %[[PROMOTE_LHS:.*]] = vector.shuffle %[[LHS]], %[[LHS]] [0, 1, 2, -1, -1] : vector<3xf64>, vector<3xf64>
31+
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[PROMOTE_LHS]], %[[RHS]] [0, 1, 2, 5, 6, 7, 8, 9] : vector<5xf64>, vector<5xf64>
3232
// CHECK: return %[[RESULT]] : vector<8xf64>
33-
%0 = vector.shuffle %v1, %v2 [0, 1, 2, 3, 4, 5, 6, 7] : vector<3xf64>, vector<5xf64>
33+
%0 = vector.shuffle %lhs, %rhs [0, 1, 2, 3, 4, 5, 6, 7] : vector<3xf64>, vector<5xf64>
3434
return %0 : vector<8xf64>
3535
}
3636

3737
// -----
3838

39-
// CHECK-LABEL: func.func @shuffle_v2_smaller_concat
40-
// CHECK-SAME: %[[V1:.*]]: vector<4xi16>, %[[V2:.*]]: vector<2xi16>
41-
func.func @shuffle_v2_smaller_concat(%v1: vector<4xi16>, %v2: vector<2xi16>) -> vector<6xi16> {
42-
// CHECK: %[[PROMOTE_V2:.*]] = vector.shuffle %[[V2]], %[[V2]] [0, 1, -1, -1] : vector<2xi16>, vector<2xi16>
43-
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[V1]], %[[PROMOTE_V2]] [0, 1, 2, 3, 4, 5] : vector<4xi16>, vector<4xi16>
39+
// CHECK-LABEL: func.func @shuffle_smaller_rhs_concat
40+
// CHECK-SAME: %[[LHS:.*]]: vector<4xi16>, %[[RHS:.*]]: vector<2xi16>
41+
func.func @shuffle_smaller_rhs_concat(%lhs: vector<4xi16>, %rhs: vector<2xi16>) -> vector<6xi16> {
42+
// CHECK: %[[PROMOTE_RHS:.*]] = vector.shuffle %[[RHS]], %[[RHS]] [0, 1, -1, -1] : vector<2xi16>, vector<2xi16>
43+
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[LHS]], %[[PROMOTE_RHS]] [0, 1, 2, 3, 4, 5] : vector<4xi16>, vector<4xi16>
4444
// CHECK: return %[[RESULT]] : vector<6xi16>
45-
%0 = vector.shuffle %v1, %v2 [0, 1, 2, 3, 4, 5] : vector<4xi16>, vector<2xi16>
45+
%0 = vector.shuffle %lhs, %rhs [0, 1, 2, 3, 4, 5] : vector<4xi16>, vector<2xi16>
4646
return %0 : vector<6xi16>
4747
}
4848

4949
// -----
5050

5151
// Test that shuffles with same size inputs are not modified.
5252

53-
// CHECK-LABEL: func.func @shuffle_same_input_sizes
54-
// CHECK-SAME: %[[V1:.*]]: vector<4xf32>, %[[V2:.*]]: vector<4xf32>
55-
func.func @shuffle_same_input_sizes(%v1: vector<4xf32>, %v2: vector<4xf32>) -> vector<6xf32> {
56-
// CHECK-NOT: vector.shuffle %[[V1]], %[[V1]]
57-
// CHECK-NOT: vector.shuffle %[[V2]], %[[V2]]
58-
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[V1]], %[[V2]] [0, 1, 4, 5, 2, 6] : vector<4xf32>, vector<4xf32>
53+
// CHECK-LABEL: func.func @negative_shuffle_same_input_sizes
54+
// CHECK-SAME: %[[LHS:.*]]: vector<4xf32>, %[[RHS:.*]]: vector<4xf32>
55+
func.func @negative_shuffle_same_input_sizes(%lhs: vector<4xf32>, %rhs: vector<4xf32>) -> vector<6xf32> {
56+
// CHECK-NOT: vector.shuffle %[[LHS]], %[[LHS]]
57+
// CHECK-NOT: vector.shuffle %[[RHS]], %[[RHS]]
58+
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[LHS]], %[[RHS]] [0, 1, 4, 5, 2, 6] : vector<4xf32>, vector<4xf32>
5959
// CHECK: return %[[RESULT]] : vector<6xf32>
60-
%0 = vector.shuffle %v1, %v2 [0, 1, 4, 5, 2, 6] : vector<4xf32>, vector<4xf32>
60+
%0 = vector.shuffle %lhs, %rhs [0, 1, 4, 5, 2, 6] : vector<4xf32>, vector<4xf32>
6161
return %0 : vector<6xf32>
6262
}
6363

6464
// -----
6565

6666
// Test that multi-dimensional shuffles are not modified.
6767

68-
// CHECK-LABEL: func.func @shuffle_2d_vectors_no_change
69-
// CHECK-SAME: %[[V1:.*]]: vector<2x4xf32>, %[[V2:.*]]: vector<3x4xf32>
70-
func.func @shuffle_2d_vectors_no_change(%v1: vector<2x4xf32>, %v2: vector<3x4xf32>) -> vector<4x4xf32> {
71-
// CHECK-NOT: vector.shuffle %[[V1]], %[[V1]]
72-
// CHECK-NOT: vector.shuffle %[[V2]], %[[V2]]
73-
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[V1]], %[[V2]] [0, 1, 2, 3] : vector<2x4xf32>, vector<3x4xf32>
68+
// CHECK-LABEL: func.func @negative_shuffle_2d_vectors
69+
// CHECK-SAME: %[[LHS:.*]]: vector<2x4xf32>, %[[RHS:.*]]: vector<3x4xf32>
70+
func.func @negative_shuffle_2d_vectors(%lhs: vector<2x4xf32>, %rhs: vector<3x4xf32>) -> vector<4x4xf32> {
71+
// CHECK-NOT: vector.shuffle %[[LHS]], %[[LHS]]
72+
// CHECK-NOT: vector.shuffle %[[RHS]], %[[RHS]]
73+
// CHECK: %[[RESULT:.*]] = vector.shuffle %[[LHS]], %[[RHS]] [0, 1, 2, 3] : vector<2x4xf32>, vector<3x4xf32>
7474
// CHECK: return %[[RESULT]] : vector<4x4xf32>
75-
%0 = vector.shuffle %v1, %v2 [0, 1, 2, 3] : vector<2x4xf32>, vector<3x4xf32>
75+
%0 = vector.shuffle %lhs, %rhs [0, 1, 2, 3] : vector<2x4xf32>, vector<3x4xf32>
7676
return %0 : vector<4x4xf32>
7777
}

0 commit comments

Comments
 (0)