Skip to content

Commit e752fc7

Browse files
Max191bangtianliu
authored andcommitted
Revert "[mlir][Vector] Support 0-d vectors natively in TransferOpReduceRank (llvm#112907)"
This reverts commit 1004865.
1 parent d1b311d commit e752fc7

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

mlir/test/Dialect/Linalg/vectorize-tensor-extract.mlir

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,9 @@ func.func @vectorize_nd_tensor_extract_transfer_read_basic(
136136
// CHECK: %[[READ:.*]] = vector.transfer_read %[[ARG0]][%[[IDX1]], %[[IDX2]], %[[C0:.*]]], %[[CST_0]] {in_bounds = [true, true, true]} : tensor<3x3x3xf32>, vector<1x1x3xf32>
137137
// CHECK: vector.transfer_write %[[READ]], %[[ARG1]][%[[C0]], %[[C0]], %[[C0]]] {in_bounds = [true, true, true]} : vector<1x1x3xf32>, tensor<1x1x3xf32>
138138

139-
// Same as example above, but reading into a column tensor.
139+
// Same as example above, but reading into a column tensor. Note that after the
140+
// vectorizatoin, the `TransferOpReduceRank` will replace
141+
// `vector.transfer_read` with `tensor.extract -> scalar`.
140142

141143
// TODO: Currently this fails to vectorise when the indices are non-constant.
142144

@@ -160,10 +162,9 @@ func.func @vectorize_nd_tensor_extract_transfer_read_basic_column(
160162
// CHECK-LABEL: func.func @vectorize_nd_tensor_extract_transfer_read_basic_column(
161163
// CHECK-SAME: %[[INPUT:.*]]: tensor<3x3x3xf32>,
162164
// CHECK-SAME: %[[OUTPUT:.*]]: tensor<3x1x1xf32>)
163-
// CHECK-DAG: %[[C0:.*]] = arith.constant 0 : index
164-
// CHECK-DAG: %[[CST_0:.*]] = arith.constant 0.000000e+00 : f32
165-
// CHECK: %[[READ:.*]] = vector.transfer_read %[[INPUT]]{{\[}}%[[C0]], %[[C0]], %[[C0]]], %[[CST_0]] : tensor<3x3x3xf32>, vector<f32>
166-
// CHECK: %[[BCAST:.*]] = vector.broadcast %[[READ]] : vector<f32> to vector<3x1x1xf32>
165+
// CHECK: %[[C0:.*]] = arith.constant 0 : index
166+
// CHECK: %[[EXTRACT:.*]] = tensor.extract %[[INPUT]]{{\[}}%[[C0]], %[[C0]], %[[C0]]] : tensor<3x3x3xf32>
167+
// CHECK: %[[BCAST:.*]] = vector.broadcast %[[EXTRACT]] : f32 to vector<3x1x1xf32>
167168
// CHECK: %[[RES:.*]] = vector.transfer_write %[[BCAST]], %[[OUTPUT]]{{\[}}%[[C0]], %[[C0]], %[[C0]]] {in_bounds = [true, true, true]} : vector<3x1x1xf32>, tensor<3x1x1xf32>
168169
// CHECK: return %[[RES]] : tensor<3x1x1xf32>
169170

mlir/test/Dialect/Vector/vector-transfer-to-vector-load-store.mlir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ func.func @vector_transfer_ops_0d_memref(%mem: memref<f32>, %vec: vector<1x1x1xf
2626
func.func @vector_transfer_ops_0d_tensor(%src: tensor<f32>) -> vector<1xf32> {
2727
%f0 = arith.constant 0.0 : f32
2828

29-
// CHECK: %[[S:.*]] = vector.transfer_read %[[SRC]][]
30-
// CHECK: %[[V:.*]] = vector.broadcast %[[S]] : vector<f32> to vector<1xf32>
29+
// CHECK-NEXT: %[[S:.*]] = tensor.extract %[[SRC]][] : tensor<f32>
30+
// CHECK-NEXT: %[[V:.*]] = vector.broadcast %[[S]] : f32 to vector<1xf32>
3131
%res = vector.transfer_read %src[], %f0 {in_bounds = [true], permutation_map = affine_map<()->(0)>} :
3232
tensor<f32>, vector<1xf32>
3333

0 commit comments

Comments
 (0)