[Mlir-commits] [mlir] [mlir][vector] Add a negative test for `FoldTransposeBroadcast` (PR #217915)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Fri Aug 21 11:17:04 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-mlir-vector

Author: Andrzej WarzyƄski (banach-space)

<details>
<summary>Changes</summary>

Adds a negative test based on an existing test that is based on a
comment in the patter summary. It's a negative test that illustrates
non-order preserving transposes that should not be folded.


---
Full diff: https://github.com/llvm/llvm-project/pull/217915.diff


1 Files Affected:

- (modified) mlir/test/Dialect/Vector/canonicalize/vector-transpose.mlir (+16-3) 


``````````diff
diff --git a/mlir/test/Dialect/Vector/canonicalize/vector-transpose.mlir b/mlir/test/Dialect/Vector/canonicalize/vector-transpose.mlir
index f1e1c5e896c66..268639e3fb2ab 100644
--- a/mlir/test/Dialect/Vector/canonicalize/vector-transpose.mlir
+++ b/mlir/test/Dialect/Vector/canonicalize/vector-transpose.mlir
@@ -67,11 +67,11 @@ func.func @broadcast_transpose_partial_ones_to_broadcast(%arg0 : vector<1xi8>) -
 
 // -----
 
-// CHECK-LABEL: broadcast_transpose_mixed_example
+// CHECK-LABEL: broadcast_transpose_mixed_order_preserving
 //  CHECK-SAME:  %[[ARG:.*]]: vector<4x1x1x7xi8>) -> vector<3x2x4x5x6x7xi8> {
 //       CHECK:  %[[RES:.*]] = vector.broadcast %[[ARG]] : vector<4x1x1x7xi8> to vector<3x2x4x5x6x7xi8>
 //       CHECK:  return %[[RES]] : vector<3x2x4x5x6x7xi8>
-func.func @broadcast_transpose_mixed_example(%arg0 : vector<4x1x1x7xi8>) -> vector<3x2x4x5x6x7xi8> {
+func.func @broadcast_transpose_mixed_order_preserving(%arg0 : vector<4x1x1x7xi8>) -> vector<3x2x4x5x6x7xi8> {
   %0 = vector.broadcast %arg0 : vector<4x1x1x7xi8> to vector<2x3x4x5x6x7xi8>
   %1 = vector.transpose %0, [1, 0, 2, 3, 4, 5] : vector<2x3x4x5x6x7xi8> to vector<3x2x4x5x6x7xi8>
   return %1 : vector<3x2x4x5x6x7xi8>
@@ -79,6 +79,19 @@ func.func @broadcast_transpose_mixed_example(%arg0 : vector<4x1x1x7xi8>) -> vect
 
 // -----
 
+// CHECK-LABEL: negative_broadcast_transpose_mixed_not_order_preserving
+//  CHECK-SAME:  %[[ARG:.*]]: vector<4x1x1x7xi8>) -> vector<6x2x4x5x3x7xi8> {
+//       CHECK:  %[[BC:.*]] = vector.broadcast
+//       CHECK:  %[[TR:.*]] = vector.transpose %[[BC]]
+//       CHECK:  return %[[TR]] : vector<6x2x4x5x3x7xi8>
+func.func @negative_broadcast_transpose_mixed_not_order_preserving(%arg0 : vector<4x1x1x7xi8>) -> vector<6x2x4x5x3x7xi8> {
+  %0 = vector.broadcast %arg0 : vector<4x1x1x7xi8> to vector<2x3x4x5x6x7xi8>
+  %1 = vector.transpose %0, [4, 0, 2, 3, 1, 5] : vector<2x3x4x5x6x7xi8> to vector<6x2x4x5x3x7xi8>
+  return %1 : vector<6x2x4x5x3x7xi8>
+}
+
+// -----
+
 // CHECK-LABEL: broadcast_transpose_final_group
 //  CHECK-SAME:  %[[ARG:.*]]: vector<4x7x1x1xi8>) -> vector<4x7x2x3xi8> {
 //       CHECK:  %[[RES:.*]] = vector.broadcast %[[ARG]] : vector<4x7x1x1xi8> to vector<4x7x2x3xi8>
@@ -207,7 +220,7 @@ func.func @negative_shape_cast_of_transpose(%arg : vector<1x4x4x1xi8>) -> vector
 /// Tests of FoldTransposeShapeCast:  transpose(shape_cast) -> shape_cast
 /// +--------------------------------------------------------------------------
 
-// A transpose that is 'order preserving' can be treated like a shape_cast. 
+// A transpose that is 'order preserving' can be treated like a shape_cast.
 // CHECK-LABEL: @transpose_of_shape_cast
 //  CHECK-SAME:   %[[ARG:.*]]: vector<2x3x1x1xi8>) -> vector<6x1x1xi8> {
 //       CHECK:   %[[SHAPE_CAST:.*]] = vector.shape_cast %[[ARG]] :

``````````

</details>


https://github.com/llvm/llvm-project/pull/217915


More information about the Mlir-commits mailing list