@@ -367,20 +367,20 @@ func.func @vectorize_dynamic_reduction_2d_scalable(%arg0: tensor<?x?xf32>,
367
367
368
368
// CHECK-LABEL: func.func @vectorize_dynamic_reduction_2d_scalable(
369
369
// CHECK-SAME: %[[ARG_0:.*]]: tensor<?x?xf32>, %[[ARG_1:.*]]: tensor<?xf32>) -> tensor<?xf32> {
370
- // CHECK: %[[C0_idx :.*]] = arith.constant 0 : index
371
- // CHECK: %[[DIM_A0_0:.*]] = tensor.dim %[[ARG_0]], %[[C0_idx ]] : tensor<?x?xf32>
372
- // CHECK: %[[C1_idx :.*]] = arith.constant 1 : index
373
- // CHECK: %[[DIM_A0_1:.*]] = tensor.dim %[[ARG_0]], %[[C1_idx ]] : tensor<?x?xf32>
374
- // CHECK: %[[C0_idx :.*]] = arith.constant 0 : index
370
+ // CHECK: %[[C0_IDX :.*]] = arith.constant 0 : index
371
+ // CHECK: %[[DIM_A0_0:.*]] = tensor.dim %[[ARG_0]], %[[C0_IDX ]] : tensor<?x?xf32>
372
+ // CHECK: %[[C1_IDX :.*]] = arith.constant 1 : index
373
+ // CHECK: %[[DIM_A0_1:.*]] = tensor.dim %[[ARG_0]], %[[C1_IDX ]] : tensor<?x?xf32>
374
+ // CHECK: %[[C0_IDX :.*]] = arith.constant 0 : index
375
375
// CHECK: %[[C0_f32:.*]] = arith.constant 0.000000e+00 : f32
376
- // CHECK: %[[MASK_2d :.*]] = vector.create_mask %[[DIM_A0_0]], %[[DIM_A0_1]] : vector<4x[8]xi1>
377
- // CHECK: %[[VEC_RD_0:.*]] = vector.mask %[[MASK_2d ]] { vector.transfer_read %[[ARG_0]][%[[C0_idx ]], %[[C0_idx ]]], %[[C0_f32]] {in_bounds = [true, true]} : tensor<?x?xf32>, vector<4x[8]xf32> } : vector<4x[8]xi1> -> vector<4x[8]xf32>
376
+ // CHECK: %[[MASK_2D :.*]] = vector.create_mask %[[DIM_A0_0]], %[[DIM_A0_1]] : vector<4x[8]xi1>
377
+ // CHECK: %[[VEC_RD_0:.*]] = vector.mask %[[MASK_2D ]] { vector.transfer_read %[[ARG_0]][%[[C0_IDX ]], %[[C0_IDX ]]], %[[C0_f32]] {in_bounds = [true, true]} : tensor<?x?xf32>, vector<4x[8]xf32> } : vector<4x[8]xi1> -> vector<4x[8]xf32>
378
378
// CHECK: %[[C0_f32:.*]] = arith.constant 0.000000e+00 : f32
379
- // CHECK: %[[MASK_1d :.*]] = vector.create_mask %[[DIM_A0_0]] : vector<4xi1>
380
- // CHECK: %[[VEC_RD_1:.*]] = vector.mask %[[MASK_1d ]] { vector.transfer_read %[[ARG_1]][%[[C0_idx ]]], %[[C0_f32]] {in_bounds = [true]} : tensor<?xf32>, vector<4xf32> } : vector<4xi1> -> vector<4xf32>
381
- // CHECK: %[[REDUCE:.*]] = vector.mask %[[MASK_2d ]] { vector.multi_reduction <add>, %[[VEC_RD_0]], %[[VEC_RD_1]] [1] : vector<4x[8]xf32> to vector<4xf32> } : vector<4x[8]xi1> -> vector<4xf32>
382
- // CHECK: %[[C0_idx :.*]] = arith.constant 0 : index
383
- // CHECK: %{{.*}} = vector.mask %[[MASK_1d ]] { vector.transfer_write %[[REDUCE]], %[[ARG_1]][%[[C0_idx ]]] {in_bounds = [true]} : vector<4xf32>, tensor<?xf32> } : vector<4xi1> -> tensor<?xf32>
379
+ // CHECK: %[[MASK_1D :.*]] = vector.create_mask %[[DIM_A0_0]] : vector<4xi1>
380
+ // CHECK: %[[VEC_RD_1:.*]] = vector.mask %[[MASK_1D ]] { vector.transfer_read %[[ARG_1]][%[[C0_IDX ]]], %[[C0_f32]] {in_bounds = [true]} : tensor<?xf32>, vector<4xf32> } : vector<4xi1> -> vector<4xf32>
381
+ // CHECK: %[[REDUCE:.*]] = vector.mask %[[MASK_2D ]] { vector.multi_reduction <add>, %[[VEC_RD_0]], %[[VEC_RD_1]] [1] : vector<4x[8]xf32> to vector<4xf32> } : vector<4x[8]xi1> -> vector<4xf32>
382
+ // CHECK: %[[C0_IDX :.*]] = arith.constant 0 : index
383
+ // CHECK: %{{.*}} = vector.mask %[[MASK_1D ]] { vector.transfer_write %[[REDUCE]], %[[ARG_1]][%[[C0_IDX ]]] {in_bounds = [true]} : vector<4xf32>, tensor<?xf32> } : vector<4xi1> -> tensor<?xf32>
384
384
385
385
module attributes {transform.with_named_sequence } {
386
386
transform.named_sequence @__transform_main (%arg1: !transform.any_op {transform.readonly }) {
@@ -405,9 +405,9 @@ func.func @vectorize_dynamic_reduction_scalable_1d(%arg0: tensor<?xf32>,
405
405
406
406
// CHECK-LABEL: func.func @vectorize_dynamic_reduction_scalable_1d(
407
407
// CHECK-SAME: %[[ARG_0:.*]]: tensor<?xf32>, %[[ARG_1:.*]]: tensor<f32>) -> tensor<f32> {
408
- // CHECK: %[[C0_idx :.*]] = arith.constant 0 : index
409
- // CHECK: %[[DIM_A0_0:.*]] = tensor.dim %[[ARG_0]], %[[C0_idx ]] : tensor<?xf32>
410
- // CHECK: %[[C0_idx :.*]] = arith.constant 0 : index
408
+ // CHECK: %[[C0_IDX :.*]] = arith.constant 0 : index
409
+ // CHECK: %[[DIM_A0_0:.*]] = tensor.dim %[[ARG_0]], %[[C0_IDX ]] : tensor<?xf32>
410
+ // CHECK: %[[C0_IDX :.*]] = arith.constant 0 : index
411
411
// CHECK: %[[C0_f32:.*]] = arith.constant 0.000000e+00 : f32
412
412
// CHECK: %[[MASK:.*]] = vector.create_mask %[[DIM_A0_0]] : vector<[4]xi1>
413
413
// CHECK: %[[VEC_RD_0:.*]] = vector.mask %[[MASK]] { vector.transfer_read %[[ARG_0]][%[[C0_idx]]], %[[C0_f32]] {in_bounds = [true]} : tensor<?xf32>, vector<[4]xf32> } : vector<[4]xi1> -> vector<[4]xf32>
@@ -790,7 +790,6 @@ func.func @vectorize_dynamic_matvec_trailing_reduction_dim(%arg0: tensor<?x?xf32
790
790
// CHECK: %[[C0_idx:.*]] = arith.constant 0 : index
791
791
// CHECK: %{{.*}} = vector.mask %[[MASK_d2]] { vector.transfer_write %[[REDUCE]], %[[ARG_2]][%[[C0_idx]]] {in_bounds = [true]} : vector<[4]xf32>, tensor<?xf32> } : vector<[4]xi1> -> tensor<?xf32>
792
792
793
-
794
793
module attributes {transform.with_named_sequence } {
795
794
transform.named_sequence @__transform_main (%arg1: !transform.any_op {transform.readonly }) {
796
795
%0 = transform.structured.match ops {[" linalg.matvec" ]} in %arg1 : (!transform.any_op ) -> !transform.any_op
0 commit comments