[Mlir-commits] [mlir] [mlir][tensor] Fix off-by-one error in ReshapeOpsUtils (PR #112774)
Vinayak Dev
llvmlistbot at llvm.org
Thu Oct 17 23:12:06 PDT 2024
================
@@ -1251,6 +1251,29 @@ func.func @no_fold_expand_of_collapse_dynamic(%arg0 : tensor<?x?x?xf32>, %arg1:
// -----
+func.func @compose_expand_of_collapse_last_two_dims(%arg0: tensor<?x64x1xf32>) -> tensor<?x384xf32> {
+ %collapsed = tensor.collapse_shape %arg0 [[0, 1, 2]] : tensor<?x64x1xf32> into tensor<?xf32>
+ %c0 = arith.constant 0 : index
+ %dim = tensor.dim %collapsed, %c0 : tensor<?xf32>
+ %c384= arith.constant 384 : index
+ %div = arith.divui %dim, %c384 : index
+ %expanded = tensor.expand_shape %collapsed [[0, 1]] output_shape [%div, 384] : tensor<?xf32> into tensor<?x384xf32>
+ return %expanded : tensor<?x384xf32>
+}
+// CHECK: #[[$MAP:.*]] = affine_map<()[s0] -> (s0 * 64)>
+// CHECK-LABEL: @compose_expand_of_collapse_last_two_dims
+// CHECK-SAME: %[[ARG0:.+]]: tensor<?x64x1xf32>
+// CHECK: %[[CONSTANT0:.+]] = arith.constant 0 : index
+// CHECK: %[[CONSTANT384:.+]] = arith.constant 384 : index
+// CHECK: %[[COLLAPSE:.+]] = tensor.collapse_shape %[[ARG0]] {{\[}}[0, 1, 2]] : tensor<?x64x1xf32> into tensor<?xf32>
+// CHECK: %[[DIM:.+]] = tensor.dim %[[ARG0]], %[[CONSTANT0]] : tensor<?x64x1xf32>
+// CHECK: %[[AFFAPPLY:.+]] = affine.apply #[[$MAP]]()[%[[DIM]]]
+// CHECK: %[[DIVUI:.+]] = arith.divui %[[AFFAPPLY]], %[[CONSTANT384]] : index
+// CHECK: %[[RESULT:.+]] = tensor.expand_shape %[[COLLAPSE]] {{\[}}[0, 1]] output_shape [%1, 384] : tensor<?xf32> into tensor<?x384xf32>
----------------
vinayakdsci wrote:
@pashu123 thanks, addressed in the latest commit.
https://github.com/llvm/llvm-project/pull/112774
More information about the Mlir-commits
mailing list