brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 0f0448e Raw
57 lines · plain
1// Test lowering of the omp.unroll_heuristic2// RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s3 4 5// CHECK-LABEL: define void @unroll_heuristic_trivial_loop(6// CHECK-SAME:    ptr %[[ptr:.+]], i32 %[[tc:.+]]) {7// CHECK-NEXT:   br label %omp_omp.loop.preheader8// CHECK-EMPTY:9// CHECK-NEXT: omp_omp.loop.preheader:10// CHECK-NEXT:   br label %omp_omp.loop.header11// CHECK-EMPTY:12// CHECK-NEXT: omp_omp.loop.header:13// CHECK-NEXT:   %omp_omp.loop.iv = phi i32 [ 0, %omp_omp.loop.preheader ], [ %omp_omp.loop.next, %omp_omp.loop.inc ]14// CHECK-NEXT:   br label %omp_omp.loop.cond15// CHECK-EMPTY:16// CHECK-NEXT: omp_omp.loop.cond:17// CHECK-NEXT:   %omp_omp.loop.cmp = icmp ult i32 %omp_omp.loop.iv, %[[tc]]18// CHECK-NEXT:   br i1 %omp_omp.loop.cmp, label %omp_omp.loop.body, label %omp_omp.loop.exit19// CHECK-EMPTY:20// CHECK-NEXT: omp_omp.loop.body:21// CHECK-NEXT:   br label %omp.loop.region22// CHECK-EMPTY:23// CHECK-NEXT: omp.loop.region:24// CHECK-NEXT:   store float 4.200000e+01, ptr %[[ptr]], align 425// CHECK-NEXT:   br label %omp.region.cont26// CHECK-EMPTY:27// CHECK-NEXT: omp.region.cont:28// CHECK-NEXT:   br label %omp_omp.loop.inc29// CHECK-EMPTY:30// CHECK-NEXT: omp_omp.loop.inc:31// CHECK-NEXT:   %omp_omp.loop.next = add nuw i32 %omp_omp.loop.iv, 132// CHECK-NEXT:   br label %omp_omp.loop.header, !llvm.loop ![[$MD1:[0-9]+]]33// CHECK-EMPTY:34// CHECK-NEXT: omp_omp.loop.exit:35// CHECK-NEXT:   br label %omp_omp.loop.after36// CHECK-EMPTY:37// CHECK-NEXT: omp_omp.loop.after:38// CHECK-NEXT:   ret void39// CHECK-NEXT: }40llvm.func @unroll_heuristic_trivial_loop(%ptr: !llvm.ptr, %tc: i32) -> () {41  %literal_cli = omp.new_cli42  omp.canonical_loop(%literal_cli) %iv : i32 in range(%tc) {43    %val = llvm.mlir.constant(42.0 : f32) : f3244    llvm.store %val, %ptr : f32, !llvm.ptr45    omp.terminator46  }47  omp.unroll_heuristic(%literal_cli)48  llvm.return49}50 51 52// Start of metadata53// CHECK-LABEL: !llvm.module.flags54 55// CHECK: ![[$MD1]] = distinct !{![[$MD1]], ![[$MD2:[0-9]+]]}56// CHECK: ![[$MD2]] = !{!"llvm.loop.unroll.enable"}57