@@ -196,10 +196,10 @@ func.func @matmul_tile_size_dynamic(%A: tensor<?x?xf32>, %B: tensor<?x?xf32>, %C
196
196
// CHECK: %[[NT0:.+]] = affine.apply #[[$map0]]()[%[[M]]]
197
197
// CHECK: %[[NT1:.+]] = affine.apply #[[$map1]]()[%[[N]]]
198
198
// CHECK: scf.forall (%[[IV0:.+]], %[[IV1:.+]]) in (%[[NT0]], %[[NT1]]) shared_outs(%[[C_BLK:.*]] = %[[C]])
199
- // CHECK: %[[TS0:.+]] = affine.min #[[$map2]](%[[IV0]])[%[[M]]]
200
- // CHECK: %[[TS1:.+]] = affine.min #[[$map4]](%[[IV1]])[%[[N]]]
201
- // CHECK: %[[LB0:.+]] = affine.apply #[[$map5]](%[[IV0]])
202
- // CHECK: %[[LB1:.+]] = affine.apply #[[$map6]](%[[IV1]])
199
+ // CHECK-DAG : %[[TS0:.+]] = affine.min #[[$map2]](%[[IV0]])[%[[M]]]
200
+ // CHECK-DAG : %[[TS1:.+]] = affine.min #[[$map4]](%[[IV1]])[%[[N]]]
201
+ // CHECK-DAG : %[[LB0:.+]] = affine.apply #[[$map5]](%[[IV0]])
202
+ // CHECK-DAG : %[[LB1:.+]] = affine.apply #[[$map6]](%[[IV1]])
203
203
// CHECK: tensor.extract_slice %[[A]]
204
204
// CHECK: tensor.extract_slice %[[B]]
205
205
// CHECK: tensor.extract_slice %[[C_BLK]]
@@ -233,11 +233,11 @@ module attributes {transform.with_named_sequence} {
233
233
// CHECK-SAME: %[[C:[0-9a-z]+]]: tensor
234
234
func.func @matmul_tile_size_static (%A: tensor <100 x200 xf32 >, %B: tensor <200 x300 xf32 >, %C: tensor <100 x300 xf32 >) -> tensor <100 x300 xf32 > {
235
235
// CHECK: scf.forall (%[[IV0:.+]], %[[IV1:.+]]) in (10, 15) shared_outs(%[[C_BLK:.*]] = %[[C]])
236
- // CHECK: %[[TS:.+]] = affine.min #[[$map0]](%[[IV1]])
236
+ // CHECK-DAG: %[[TS:.+]] = affine.min #[[$map0]](%[[IV1]])
237
+ // CHECK-DAG: %[[LB0:.+]] = affine.apply #[[$map2]](%[[IV0]])
238
+ // CHECK-DAG: %[[LB1:.+]] = affine.apply #[[$map3]](%[[IV1]])
237
239
// CHECK-NOT: affine.max
238
240
// CHECK-NOT: affine.min
239
- // CHECK: %[[LB0:.+]] = affine.apply #[[$map2]](%[[IV0]])
240
- // CHECK: %[[LB1:.+]] = affine.apply #[[$map3]](%[[IV1]])
241
241
// CHECK: %[[tA:.+]] = tensor.extract_slice %[[A]][%[[LB0]], 0] [10, 200] [1, 1] :
242
242
// CHECK: %[[tB:.+]] = tensor.extract_slice %[[B]][0, %[[LB1]]] [200, %[[TS]]] [1, 1] :
243
243
// CHECK: %[[tC:.+]] = tensor.extract_slice %[[C_BLK]][%[[LB0]], %[[LB1]]] [10, %[[TS]]] [1, 1] :
@@ -452,10 +452,9 @@ module attributes {transform.with_named_sequence} {
452
452
// CHECK-DAG: #[[$map0:.+]] = affine_map<()[s0] -> (s0 ceildiv 10)>
453
453
// CHECK-DAG: #[[$map1:.+]] = affine_map<()[s0] -> (s0 ceildiv 20)>
454
454
// CHECK-DAG: #[[$map2:.+]] = affine_map<(d0)[s0] -> (d0 * -10 + s0, 10)>
455
- // CHECK-DAG: #[[$map3:.+]] = affine_map<(d0) -> (0, d0)>
456
- // CHECK-DAG: #[[$map4:.+]] = affine_map<(d0)[s0] -> (d0 * -20 + s0, 20)>
457
- // CHECK-DAG: #[[$map5:.+]] = affine_map<(d0) -> (d0 * 10)>
458
- // CHECK-DAG: #[[$map6:.+]] = affine_map<(d0) -> (d0 * 20)>
455
+ // CHECK-DAG: #[[$map3:.+]] = affine_map<(d0)[s0] -> (d0 * -20 + s0, 20)>
456
+ // CHECK-DAG: #[[$map4:.+]] = affine_map<(d0) -> (d0 * 10)>
457
+ // CHECK-DAG: #[[$map5:.+]] = affine_map<(d0) -> (d0 * 20)>
459
458
460
459
// CHECK-LABEL: matmul_tile_size_dynamic(
461
460
// CHECK-SAME: %[[A:[0-9a-z]+]]: tensor<?x?xf32>
@@ -464,18 +463,16 @@ module attributes {transform.with_named_sequence} {
464
463
func.func @matmul_tile_size_dynamic (%A: tensor <?x?xf32 >, %B: tensor <?x?xf32 >, %C: tensor <?x?xf32 >) -> tensor <?x?xf32 > {
465
464
// CHECK: %[[c1:.*]] = arith.constant 1 : index
466
465
// CHECK: %[[c0:.*]] = arith.constant 0 : index
467
- // CHECK: %[[M:.+]] = tensor.dim %[[A]], %[[c0]] :
468
- // CHECK: %[[N:.+]] = tensor.dim %[[B]], %[[c1]] :
469
- // CHECK: %[[NT0:.+]] = affine.apply #map()[%[[M]]]
470
- // CHECK: %[[NT1:.+]] = affine.apply #map1()[%[[N]]]
471
- // CHECK: %[[K:.+]] = tensor.dim %[[A]], %[[c1]] :
466
+ // CHECK-DAG : %[[M:.+]] = tensor.dim %[[A]], %[[c0]] :
467
+ // CHECK-DAG : %[[N:.+]] = tensor.dim %[[B]], %[[c1]] :
468
+ // CHECK-DAG : %[[NT0:.+]] = affine.apply #map()[%[[M]]]
469
+ // CHECK-DAG : %[[NT1:.+]] = affine.apply #map1()[%[[N]]]
470
+ // CHECK-DAG : %[[K:.+]] = tensor.dim %[[A]], %[[c1]] :
472
471
// CHECK: scf.forall (%[[IV0:.+]], %[[IV1:.+]]) in (%[[NT0]], %[[NT1]]) shared_outs(%[[C_BLK:.*]] = %[[C]])
473
- // CHECK: %[[TSMIN0:.+]] = affine.min #[[$map2]](%[[IV0]])[%[[M]]]
474
- // CHECK: %[[TS0:.+]] = affine.max #[[$map3]](%[[TSMIN0]])
475
- // CHECK: %[[TSMIN1:.+]] = affine.min #[[$map4]](%[[IV1]])[%[[N]]]
476
- // CHECK: %[[TS1:.+]] = affine.max #[[$map3]](%[[TSMIN1]])
477
- // CHECK: %[[LB0:.+]] = affine.apply #[[$map5]](%[[IV0]])
478
- // CHECK: %[[LB1:.+]] = affine.apply #[[$map6]](%[[IV1]])
472
+ // CHECK-DAG: %[[TS0:.+]] = affine.min #[[$map2]](%[[IV0]])[%[[M]]]
473
+ // CHECK-DAG: %[[TS1:.+]] = affine.min #[[$map3]](%[[IV1]])[%[[N]]]
474
+ // CHECK-DAG: %[[LB0:.+]] = affine.apply #[[$map4]](%[[IV0]])
475
+ // CHECK-DAG: %[[LB1:.+]] = affine.apply #[[$map5]](%[[IV1]])
479
476
// CHECK: tensor.extract_slice %[[A]][%[[LB0]], 0] [%[[TS0]], %[[K]]] [1, 1] :
480
477
// CHECK: tensor.extract_slice %[[B]][0, %[[LB1]]] [%[[K]], %[[TS1]]] [1, 1] :
481
478
// CHECK: tensor.extract_slice %[[C_BLK]][%[[LB0]], %[[LB1]]] [%[[TS0]], %[[TS1]]] [1, 1] :
@@ -523,10 +520,9 @@ module attributes {transform.with_named_sequence} {
523
520
// CHECK-DAG: #[[$map0:.+]] = affine_map<()[s0] -> (s0 ceildiv 10)>
524
521
// CHECK-DAG: #[[$map1:.+]] = affine_map<()[s0] -> (s0 ceildiv 20)>
525
522
// CHECK-DAG: #[[$map2:.+]] = affine_map<(d0)[s0] -> (d0 * -10 + s0, 10)>
526
- // CHECK-DAG: #[[$map3:.+]] = affine_map<(d0) -> (0, d0)>
527
- // CHECK-DAG: #[[$map4:.+]] = affine_map<(d0)[s0] -> (d0 * -20 + s0, 20)>
528
- // CHECK-DAG: #[[$map5:.+]] = affine_map<(d0) -> (d0 * 10)>
529
- // CHECK-DAG: #[[$map6:.+]] = affine_map<(d0) -> (d0 * 20)>
523
+ // CHECK-DAG: #[[$map3:.+]] = affine_map<(d0)[s0] -> (d0 * -20 + s0, 20)>
524
+ // CHECK-DAG: #[[$map4:.+]] = affine_map<(d0) -> (d0 * 10)>
525
+ // CHECK-DAG: #[[$map5:.+]] = affine_map<(d0) -> (d0 * 20)>
530
526
531
527
// CHECK-LABEL: matmul_tile_size_dynamic(
532
528
// CHECK-SAME: %[[A:[0-9a-z]+]]: tensor<?x?xf32>
@@ -535,18 +531,16 @@ module attributes {transform.with_named_sequence} {
535
531
func.func @matmul_tile_size_dynamic (%A: tensor <?x?xf32 >, %B: tensor <?x?xf32 >, %C: tensor <?x?xf32 >) -> tensor <?x?xf32 > {
536
532
// CHECK: %[[c1:.*]] = arith.constant 1 : index
537
533
// CHECK: %[[c0:.*]] = arith.constant 0 : index
538
- // CHECK: %[[M:.+]] = tensor.dim %[[A]], %[[c0]] :
539
- // CHECK: %[[N:.+]] = tensor.dim %[[B]], %[[c1]] :
540
- // CHECK: %[[NT0:.+]] = affine.apply #map()[%[[M]]]
541
- // CHECK: %[[NT1:.+]] = affine.apply #map1()[%[[N]]]
542
- // CHECK: %[[K:.+]] = tensor.dim %[[A]], %[[c1]] :
534
+ // CHECK-DAG : %[[M:.+]] = tensor.dim %[[A]], %[[c0]] :
535
+ // CHECK-DAG : %[[N:.+]] = tensor.dim %[[B]], %[[c1]] :
536
+ // CHECK-DAG : %[[NT0:.+]] = affine.apply #map()[%[[M]]]
537
+ // CHECK-DAG : %[[NT1:.+]] = affine.apply #map1()[%[[N]]]
538
+ // CHECK-DAG : %[[K:.+]] = tensor.dim %[[A]], %[[c1]] :
543
539
// CHECK: scf.forall (%[[IV0:.+]], %[[IV1:.+]]) in (%[[NT0]], %[[NT1]]) shared_outs(%[[C_BLK:.*]] = %[[C]])
544
- // CHECK: %[[TSMIN0:.+]] = affine.min #[[$map2]](%[[IV0]])[%[[M]]]
545
- // CHECK: %[[TS0:.+]] = affine.max #[[$map3]](%[[TSMIN0]])
546
- // CHECK: %[[TSMIN1:.+]] = affine.min #[[$map4]](%[[IV1]])[%[[N]]]
547
- // CHECK: %[[TS1:.+]] = affine.max #[[$map3]](%[[TSMIN1]])
548
- // CHECK: %[[LB0:.+]] = affine.apply #[[$map5]](%[[IV0]])
549
- // CHECK: %[[LB1:.+]] = affine.apply #[[$map6]](%[[IV1]])
540
+ // CHECK-DAG: %[[TS0:.+]] = affine.min #[[$map2]](%[[IV0]])[%[[M]]]
541
+ // CHECK-DAG: %[[TS1:.+]] = affine.min #[[$map3]](%[[IV1]])[%[[N]]]
542
+ // CHECK-DAG: %[[LB0:.+]] = affine.apply #[[$map4]](%[[IV0]])
543
+ // CHECK-DAG: %[[LB1:.+]] = affine.apply #[[$map5]](%[[IV1]])
550
544
// CHECK: tensor.extract_slice %[[A]][%[[LB0]], 0] [%[[TS0]], %[[K]]] [1, 1] :
551
545
// CHECK: tensor.extract_slice %[[B]][0, %[[LB1]]] [%[[K]], %[[TS1]]] [1, 1] :
552
546
// CHECK: tensor.extract_slice %[[C_BLK]][%[[LB0]], %[[LB1]]] [%[[TS0]], %[[TS1]]] [1, 1] :
0 commit comments