60 lines · plain
1// RUN: mlir-opt %s | FileCheck %s --enable-var-scope2// RUN: mlir-opt %s | mlir-opt | FileCheck %s --enable-var-scope3 4 5// CHECK-LABEL: @omp_unroll_heuristic_raw(6// CHECK-SAME: %[[tc:.+]]: i32) {7func.func @omp_unroll_heuristic_raw(%tc : i32) -> () {8 // CHECK-NEXT: %canonloop = omp.new_cli9 %canonloop = "omp.new_cli" () : () -> (!omp.cli)10 // CHECK-NEXT: omp.canonical_loop(%canonloop) %iv : i32 in range(%[[tc]]) {11 "omp.canonical_loop" (%tc, %canonloop) ({12 ^bb0(%iv: i32):13 omp.terminator14 }) : (i32, !omp.cli) -> ()15 // CHECK: omp.unroll_heuristic(%canonloop)16 "omp.unroll_heuristic" (%canonloop) : (!omp.cli) -> ()17 return18}19 20 21// CHECK-LABEL: @omp_unroll_heuristic_pretty(22// CHECK-SAME: %[[tc:.+]]: i32) {23func.func @omp_unroll_heuristic_pretty(%tc : i32) -> () {24 // CHECK-NEXT: %[[CANONLOOP:.+]] = omp.new_cli25 %canonloop = omp.new_cli26 // CHECK-NEXT: omp.canonical_loop(%canonloop) %iv : i32 in range(%[[tc]]) {27 omp.canonical_loop(%canonloop) %iv : i32 in range(%tc) {28 omp.terminator29 }30 // CHECK: omp.unroll_heuristic(%canonloop)31 omp.unroll_heuristic(%canonloop)32 return33}34 35 36// CHECK-LABEL: @omp_unroll_heuristic_nested_pretty(37// CHECK-SAME: %[[tc:.+]]: i32) {38func.func @omp_unroll_heuristic_nested_pretty(%tc : i32) -> () {39 // CHECK-NEXT: %canonloop = omp.new_cli40 %cli_outer = omp.new_cli41 // CHECK-NEXT: %canonloop_d1 = omp.new_cli42 %cli_inner = omp.new_cli43 // CHECK-NEXT: omp.canonical_loop(%canonloop) %iv : i32 in range(%[[tc]]) {44 omp.canonical_loop(%cli_outer) %iv_outer : i32 in range(%tc) {45 // CHECK-NEXT: omp.canonical_loop(%canonloop_d1) %iv_d1 : i32 in range(%[[tc]]) {46 omp.canonical_loop(%cli_inner) %iv_inner : i32 in range(%tc) {47 // CHECK: omp.terminator48 omp.terminator49 }50 // CHECK: omp.terminator51 omp.terminator52 }53 54 // CHECK: omp.unroll_heuristic(%canonloop)55 omp.unroll_heuristic(%cli_outer)56 // CHECK-NEXT: omp.unroll_heuristic(%canonloop_d1)57 omp.unroll_heuristic(%cli_inner)58 return59}60