From b653357141030620ce3e70ea939efbcb71d40657 Mon Sep 17 00:00:00 2001 From: Han-Chung Wang Date: Fri, 7 Jun 2024 09:43:34 -0700 Subject: [PATCH] [mlir][vector][NFC] Make function name more meaningful in lit tests. (#94538) It also moves the test near other similar test cases. --- .../Vector/vector-transfer-flatten.mlir | 75 ++++++++++--------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/mlir/test/Dialect/Vector/vector-transfer-flatten.mlir b/mlir/test/Dialect/Vector/vector-transfer-flatten.mlir index 65bf0b9335d287..d7365d25d21b4d 100644 --- a/mlir/test/Dialect/Vector/vector-transfer-flatten.mlir +++ b/mlir/test/Dialect/Vector/vector-transfer-flatten.mlir @@ -102,6 +102,25 @@ func.func @transfer_read_dims_mismatch_non_zero_indices( // ----- +func.func @transfer_read_dims_mismatch_non_contiguous_non_zero_indices( + %subview : memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>>, + %idx0 : index, %idx1 : index) -> vector<2x2xf32> { + %c0 = arith.constant 0 : index + %cst_1 = arith.constant 0.000000e+00 : f32 + %8 = vector.transfer_read %subview[%c0, %idx0, %idx1, %c0], %cst_1 {in_bounds = [true, true]} : memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>>, vector<2x2xf32> + return %8 : vector<2x2xf32> +} + +// CHECK: #[[$MAP:.+]] = affine_map<()[s0] -> (s0 * 2)> +// CHECK-LABEL: func.func @transfer_read_dims_mismatch_non_contiguous_non_zero_indices( +// CHECK: %[[COLLAPSE:.+]] = memref.collapse_shape %{{.*}} {{\[}}[0], [1], [2, 3]] : memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>> into memref<1x3x6xf32, strided<[40, 10, 1], offset: ?>> +// CHECK: %[[APPLY:.*]] = affine.apply #[[$MAP]]() + +// CHECK-128B-LABEL: func @transfer_read_dims_mismatch_non_contiguous_non_zero_indices( +// CHECK-128B: memref.collapse_shape + +// ----- + // The input memref has a dynamic trailing shape and hence is not flattened. // TODO: This case could be supported via memref.dim @@ -212,6 +231,25 @@ func.func @transfer_write_dims_mismatch_contiguous( // ----- +func.func @transfer_write_dims_mismatch_non_contiguous_non_zero_indices( + %value : vector<2x2xf32>, + %subview : memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>>, + %idx0 : index, %idx1 : index) { + %c0 = arith.constant 0 : index + vector.transfer_write %value, %subview[%c0, %idx0, %idx1, %c0] {in_bounds = [true, true]} : vector<2x2xf32>, memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>> + return +} + +// CHECK: #[[$MAP:.+]] = affine_map<()[s0] -> (s0 * 2)> +// CHECK-LABEL: func.func @transfer_write_dims_mismatch_non_contiguous_non_zero_indices( +// CHECK: %[[APPLY:.*]] = affine.apply #[[$MAP]]() +// CHECK: %[[COLLAPSE:.+]] = memref.collapse_shape %{{.*}} {{\[}}[0], [1], [2, 3]] : memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>> into memref<1x3x6xf32, strided<[40, 10, 1], offset: ?>> + +// CHECK-128B-LABEL: func @transfer_write_dims_mismatch_non_contiguous_non_zero_indices( +// CHECK-128B: memref.collapse_shape + +// ----- + func.func @transfer_write_dims_mismatch_non_contiguous( %arg : memref<5x4x3x2xi8, strided<[24, 6, 2, 1], offset: ?>>, %vec : vector<2x1x2x2xi8>) { %c0 = arith.constant 0 : index @@ -459,43 +497,6 @@ func.func @fold_unit_dims_entirely(%arg0 : vector<8xi32>, // CHECK-128B-LABEL: func @fold_unit_dims_entirely( // CHECK-128B-NOT: memref.collapse_shape - -// ----- - -func.func @regression_non_contiguous_dim_read(%subview : memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>>, - %idx0 : index, %idx1 : index) -> vector<2x2xf32> { - %c0 = arith.constant 0 : index - %cst_1 = arith.constant 0.000000e+00 : f32 - %8 = vector.transfer_read %subview[%c0, %idx0, %idx1, %c0], %cst_1 {in_bounds = [true, true]} : memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>>, vector<2x2xf32> - return %8 : vector<2x2xf32> -} - -// CHECK: #[[$MAP:.+]] = affine_map<()[s0] -> (s0 * 2)> -// CHECK-LABEL: func.func @regression_non_contiguous_dim_read( -// CHECK: %[[COLLAPSE:.+]] = memref.collapse_shape %{{.*}} {{\[}}[0], [1], [2, 3]] : memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>> into memref<1x3x6xf32, strided<[40, 10, 1], offset: ?>> -// CHECK: %[[APPLY:.*]] = affine.apply #[[$MAP]]() - -// CHECK-128B-LABEL: func @regression_non_contiguous_dim_read( -// CHECK-128B: memref.collapse_shape - -// ----- - -func.func @regression_non_contiguous_dim_write(%value : vector<2x2xf32>, - %subview : memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>>, - %idx0 : index, %idx1 : index) { - %c0 = arith.constant 0 : index - vector.transfer_write %value, %subview[%c0, %idx0, %idx1, %c0] {in_bounds = [true, true]} : vector<2x2xf32>, memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>> - return -} - -// CHECK: #[[$MAP:.+]] = affine_map<()[s0] -> (s0 * 2)> -// CHECK-LABEL: func.func @regression_non_contiguous_dim_write( -// CHECK: %[[APPLY:.*]] = affine.apply #[[$MAP]]() -// CHECK: %[[COLLAPSE:.+]] = memref.collapse_shape %{{.*}} {{\[}}[0], [1], [2, 3]] : memref<1x3x3x2xf32, strided<[40, 10, 2, 1], offset: ?>> into memref<1x3x6xf32, strided<[40, 10, 1], offset: ?>> - -// CHECK-128B-LABEL: func @regression_non_contiguous_dim_write( -// CHECK-128B: memref.collapse_shape - // ----- func.func @negative_out_of_bound_transfer_read(