|
12 | 12 | // UNROLL-FULL-DAG: [[$MAP4:#map[0-9]*]] = affine_map<(d0, d1) -> (d0 + 1)> |
13 | 13 | // UNROLL-FULL-DAG: [[$MAP5:#map[0-9]*]] = affine_map<(d0, d1) -> (d0 + 3)> |
14 | 14 | // UNROLL-FULL-DAG: [[$MAP6:#map[0-9]*]] = affine_map<(d0)[s0] -> (d0 + s0 + 1)> |
| 15 | +// UNROLL-FULL-DAG: [[$MAP7:#map[0-9]*]] = affine_map<()[s0] -> (s0 + (((-s0 + 9) ceildiv 2) floordiv 4) * 8)> |
15 | 16 |
|
16 | 17 | // SHORT-DAG: [[$MAP0:#map[0-9]*]] = affine_map<(d0) -> (d0 + 1)> |
17 | 18 |
|
|
22 | 23 | // UNROLL-BY-4-DAG: [[$MAP4:#map[0-9]*]] = affine_map<(d0, d1) -> (d0 + 3)> |
23 | 24 | // UNROLL-BY-4-DAG: [[$MAP5:#map[0-9]*]] = affine_map<(d0)[s0] -> (d0 + s0 + 1)> |
24 | 25 | // UNROLL-BY-4-DAG: [[$MAP6:#map[0-9]*]] = affine_map<(d0, d1) -> (d0 * 16 + d1)> |
25 | | -// UNROLL-BY-4-DAG: [[$MAP11:#map[0-9]*]] = affine_map<(d0) -> (d0)> |
26 | | -// UNROLL-BY-4-DAG: [[$MAP7:#map[0-9]*]] = affine_map<()[s0] -> (s0 + (((-s0 + 11) ceildiv 2) floordiv 4) * 8)> |
| 26 | +// UNROLL-BY-4-DAG: [[$MAP7:#map[0-9]*]] = affine_map<(d0) -> (d0)> |
| 27 | +// UNROLL-BY-4-DAG: [[$MAP8:#map[0-9]*]] = affine_map<()[s0] -> (s0 + (((-s0 + 11) ceildiv 2) floordiv 4) * 8)> |
27 | 28 |
|
28 | 29 | // UNROLL-FULL-LABEL: func @loop_nest_simplest() { |
29 | 30 | func.func @loop_nest_simplest() { |
@@ -314,12 +315,13 @@ func.func @partial_unroll_factor_4() { |
314 | 315 | gpu.terminator |
315 | 316 | } |
316 | 317 | // UNROLL-FULL: %[[ID:.*]] = gpu.thread_id x |
317 | | - // UNROLL-FULL-NEXT: affine.for %{{.*}} = %[[ID]] to 9 step 8 iter_args(%[[ARG:.*]] = %[[C0]]) -> (index) { |
318 | | - // UNROLL-FULL-NEXT: %[[SUM_0:.*]] = arith.addi %[[ARG]], %[[C0]] : index |
319 | | - // UNROLL-FULL-NEXT: %[[SUM_1:.*]] = arith.addi %[[SUM_0]], %[[C0]] : index |
320 | | - // UNROLL-FULL-NEXT: %[[SUM_2:.*]] = arith.addi %[[SUM_1]], %[[C0]] : index |
321 | | - // UNROLL-FULL-NEXT: %[[SUM_3:.*]] = arith.addi %[[SUM_2]], %[[C0]] : index |
322 | | - // UNROLL-FULL-NEXT: affine.yield %[[SUM_3]] : index |
| 318 | + // UNROLL-FULL-NEXT: %[[SUM_0:.*]] = arith.addi %[[C0]], %[[C0]] : index |
| 319 | + // UNROLL-FULL-NEXT: %[[SUM_1:.*]] = arith.addi %[[SUM_0]], %[[C0]] : index |
| 320 | + // UNROLL-FULL-NEXT: %[[SUM_2:.*]] = arith.addi %[[SUM_1]], %[[C0]] : index |
| 321 | + // UNROLL-FULL-NEXT: %[[SUM_3:.*]] = arith.addi %[[SUM_2]], %[[C0]] : index |
| 322 | + // UNROLL-FULL-NEXT: affine.for %{{.*}} = [[$MAP7]]()[%[[ID]]] to 9 step 2 iter_args(%[[ARG:.*]] = %[[SUM_3]]) -> (index) { |
| 323 | + // UNROLL-FULL-NEXT: %[[SUM_4:.*]] = arith.addi %[[ARG]], %[[C0]] : index |
| 324 | + // UNROLL-FULL-NEXT: affine.yield %[[SUM_4]] : index |
323 | 325 | // UNROLL-FULL-NEXT: } |
324 | 326 | return |
325 | 327 | } |
@@ -536,7 +538,7 @@ func.func @loop_nest_operand1() { |
536 | 538 | // UNROLL-BY-4-LABEL: func @loop_nest_operand2() { |
537 | 539 | func.func @loop_nest_operand2() { |
538 | 540 | // UNROLL-BY-4: affine.for %arg0 = 0 to 100 step 2 { |
539 | | -// UNROLL-BY-4-NEXT: affine.for %arg1 = [[$MAP11]](%arg0) to #map{{[0-9]*}}(%arg0) step 4 { |
| 541 | +// UNROLL-BY-4-NEXT: affine.for %arg1 = [[$MAP7]](%arg0) to #map{{[0-9]*}}(%arg0) step 4 { |
540 | 542 | // UNROLL-BY-4-NEXT: %0 = "foo"() : () -> i32 |
541 | 543 | // UNROLL-BY-4-NEXT: %1 = "foo"() : () -> i32 |
542 | 544 | // UNROLL-BY-4-NEXT: %2 = "foo"() : () -> i32 |
@@ -582,7 +584,7 @@ func.func @floordiv_mod_ub(%M : index, %N : index) { |
582 | 584 | func.func @loop_nest_operand3() { |
583 | 585 | // UNROLL-BY-4: affine.for %arg0 = 0 to 100 step 2 { |
584 | 586 | affine.for %i = 0 to 100 step 2 { |
585 | | - // UNROLL-BY-4: affine.for %arg1 = [[$MAP11]](%arg0) to #map{{[0-9]*}}(%arg0) step 4 { |
| 587 | + // UNROLL-BY-4: affine.for %arg1 = [[$MAP7]](%arg0) to #map{{[0-9]*}}(%arg0) step 4 { |
586 | 588 | // UNROLL-BY-4-NEXT: %1 = "foo"() : () -> i32 |
587 | 589 | // UNROLL-BY-4-NEXT: %2 = "foo"() : () -> i32 |
588 | 590 | // UNROLL-BY-4-NEXT: %3 = "foo"() : () -> i32 |
@@ -786,7 +788,7 @@ func.func @gpu_launch_unroll_by_factor_4() { |
786 | 788 | // UNROLL-BY-4-NEXT: %[[SUM_1:.*]] = arith.addi %[[SUM_0]], %[[C0]] : index |
787 | 789 | // UNROLL-BY-4-NEXT: %[[SUM_2:.*]] = arith.addi %[[SUM_1]], %[[C0]] : index |
788 | 790 | // UNROLL-BY-4-NEXT: %[[SUM_3:.*]] = arith.addi %[[SUM_2]], %[[C0]] : index |
789 | | - // UNROLL-BY-4-NEXT: affine.for %[[VAL_20:.*]] = [[$MAP7]](){{\[}}%[[ID]]] to 11 step 2 iter_args(%[[ARG:.*]] = %[[SUM_3]]) -> (index) { |
| 791 | + // UNROLL-BY-4-NEXT: affine.for %[[VAL_20:.*]] = [[$MAP8]](){{\[}}%[[ID]]] to 11 step 2 iter_args(%[[ARG:.*]] = %[[SUM_3]]) -> (index) { |
790 | 792 | // UNROLL-BY-4-NEXT: %[[SUM_4:.*]] = arith.addi %[[ARG]], %[[C0]] : index |
791 | 793 | // UNROLL-BY-4-NEXT: affine.yield %[[SUM_4]] : index |
792 | 794 | // UNROLL-BY-4-NEXT: } |
|
0 commit comments