brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · ea77063 Raw
50 lines · plain
1// RUN: mlir-translate -mlir-to-llvmir -split-input-file %s | FileCheck %s2 3// tests firx for test-suite test: pr69183.f90. Makes sure we can handle inling4// private ops when the alloca block ends with a conditional branch.5 6omp.private {type = private} @_QFwsloop_privateEi_private_ref_i32 : i647 8llvm.func @wsloop_private_(%arg0: !llvm.ptr {fir.bindc_name = "y"}) attributes {fir.internal_name = "_QPwsloop_private", frame_pointer = #llvm.framePointerKind<all>, target_cpu = "x86-64"} {9  %0 = llvm.mlir.constant(1 : i64) : i6410  %3 = llvm.alloca %0 x i32 {bindc_name = "i"} : (i64) -> !llvm.ptr11  %6 = llvm.mlir.constant(1 : i32) : i3212  %7 = llvm.mlir.constant(10 : i32) : i3213  %8 = llvm.mlir.constant(0 : i32) : i3214  %cond = llvm.mlir.constant(0 : i1) : i115  llvm.cond_br %cond, ^bb1, ^bb216 17^bb1:18  llvm.br ^bb319 20^bb2:21  llvm.br ^bb322 23^bb3:24    omp.wsloop private(@_QFwsloop_privateEi_private_ref_i32 %3 -> %arg2 : !llvm.ptr) {25      omp.loop_nest (%arg4) : i32 = (%8) to (%7) inclusive step (%6) {26        omp.yield27      }28    }29  llvm.return30}31 32// CHECK:   %[[INT:.*]] = alloca i32, i64 1, align 433// CHECK:   br label %[[AFTER_ALLOC_BB:.*]]34 35// CHECK: [[AFTER_ALLOC_BB]]:36// CHECK:   br i1 false, label %[[BB1:.*]], label %[[BB2:.*]]37 38// CHECK: [[BB1]]:39// CHECK:   br label %[[BB3:.*]]40 41// CHECK: [[BB2]]:42// CHECK:   br label %[[BB3:.*]]43 44// CHECK: [[BB3]]:45// CHECK:   br label %[[OMP_PRIVATE_INIT:.*]]46 47// CHECK: [[OMP_PRIVATE_INIT]]:48// CHECK:   br label %omp_loop.preheader49 50