@@ -919,15 +919,16 @@ func.func @mmt4d_scalable_with_assume(%A: memref<16x16x8x1xf32>, %B: memref<16x1
919919// CHECK-SAME: %[[C_IN:.*]]: memref<16x16x8x?xf32>) {
920920// CHECK-NOT: mask
921921// CHECK: %[[VEC_A:.*]] = vector.transfer_read %[[A]]
922- // CHECK-SAME: in_bounds = [true, true, true, true, true, true]{{.*}} : memref<16x16x8x1xf32>, vector<16x16x16x8x[4]x1xf32>
922+ // CHECK-SAME: memref<16x16x8x1xf32>, vector<16x16x16x8x[4]x1xf32>
923923// CHECK: %[[VEC_B:.*]] = vector.transfer_read %[[B]]
924- // CHECK-SAME: in_bounds = [true, true, true, true, true, true]{{.*}} : memref<16x16x?x1xf32>, vector<16x16x16x8x[4]x1xf32>
924+ // `in-bounds` are set to true for dynamic dims with assume, static sizes will be inferred elsewhere.
925+ // CHECK-SAME: in_bounds = [false, false, false, false, true, false]{{.*}} : memref<16x16x?x1xf32>, vector<16x16x16x8x[4]x1xf32>
925926// CHECK: %[[VEC_C:.*]] = vector.transfer_read %[[C_IN]]
926- // CHECK-SAME: in_bounds = [true, true, true , true]{{.*}} : memref<16x16x8x?xf32>, vector<16x16x8x[4]xf32>
927+ // CHECK-SAME: in_bounds = [false, false, false , true]{{.*}} : memref<16x16x8x?xf32>, vector<16x16x8x[4]xf32>
927928// CHECK: %[[MUL:.*]] = arith.mulf %[[VEC_A]], %[[VEC_B]] : vector<16x16x16x8x[4]x1xf32>
928929// CHECK: %[[RED:.*]] = vector.multi_reduction <add>, %[[MUL]], %[[VEC_C]] [2, 5] : vector<16x16x16x8x[4]x1xf32> to vector<16x16x8x[4]xf32>
929930// CHECK: vector.transfer_write %[[RED]], %[[C_IN]]
930- // CHECK-SAME: in_bounds = [true, true, true , true]{{.*}} : vector<16x16x8x[4]xf32>, memref<16x16x8x?xf32>
931+ // CHECK-SAME: in_bounds = [false, false, false , true]{{.*}} : vector<16x16x8x[4]xf32>, memref<16x16x8x?xf32>
931932
932933module attributes {transform.with_named_sequence } {
933934 transform.named_sequence @__transform_main (%arg1: !transform.any_op {transform.readonly }) {
@@ -1016,15 +1017,16 @@ func.func @batch_mmt4d_scalable_with_assume(%A: memref<2x16x16x8x1xf32>, %B: mem
10161017// CHECK-SAME: %[[C_IN:.*]]: memref<2x16x16x8x?xf32>) {
10171018// CHECK-NOT: mask
10181019// CHECK: %[[VEC_A:.*]] = vector.transfer_read %[[A]]
1019- // CHECK-SAME: in_bounds = [true, true, true, true, true, true, true]{{.*}} : memref<2x16x16x8x1xf32>, vector<2x16x16x16x8x[4]x1xf32>
1020+ // CHECK-SAME: memref<2x16x16x8x1xf32>, vector<2x16x16x16x8x[4]x1xf32>
10201021// CHECK: %[[VEC_B:.*]] = vector.transfer_read %[[B]]
1021- // CHECK-SAME: in_bounds = [true, true, true, true, true, true, true]{{.*}} : memref<2x16x16x?x1xf32>, vector<2x16x16x16x8x[4]x1xf32>
1022+ // `in-bounds` are set to true for dynamic dims with assume, static sizes will be inferred elsewhere.
1023+ // CHECK-SAME: in_bounds = [false, false, false, false, false, true, false]{{.*}} : memref<2x16x16x?x1xf32>, vector<2x16x16x16x8x[4]x1xf32>
10221024// CHECK: %[[VEC_C:.*]] = vector.transfer_read %[[C_IN]]
1023- // CHECK-SAME: in_bounds = [true, true, true, true , true]{{.*}} : memref<2x16x16x8x?xf32>, vector<2x16x16x8x[4]xf32>
1025+ // CHECK-SAME: in_bounds = [false, false, false, false , true]{{.*}} : memref<2x16x16x8x?xf32>, vector<2x16x16x8x[4]xf32>
10241026// CHECK: %[[MUL:.*]] = arith.mulf %[[VEC_A]], %[[VEC_B]] : vector<2x16x16x16x8x[4]x1xf32>
10251027// CHECK: %[[RED:.*]] = vector.multi_reduction <add>, %[[MUL]], %[[VEC_C]] [3, 6] : vector<2x16x16x16x8x[4]x1xf32> to vector<2x16x16x8x[4]xf32>
10261028// CHECK: vector.transfer_write %[[RED]], %[[C_IN]]
1027- // CHECK-SAME: in_bounds = [true, true, true, true , true]{{.*}} : vector<2x16x16x8x[4]xf32>, memref<2x16x16x8x?xf32>
1029+ // CHECK-SAME: in_bounds = [false, false, false, false , true]{{.*}} : vector<2x16x16x8x[4]xf32>, memref<2x16x16x8x?xf32>
10281030
10291031module attributes {transform.with_named_sequence } {
10301032 transform.named_sequence @__transform_main (%arg1: !transform.any_op {transform.readonly }) {
0 commit comments