|
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