35 lines · plain
1// RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s2 3module attributes {omp.is_target_device = true} {4 omp.private {type = private} @simd_privatizer : !llvm.ptr init {5 ^bb0(%arg0: !llvm.ptr, %arg1: !llvm.ptr):6 omp.yield(%arg0 : !llvm.ptr)7 }8 9 llvm.func @test_target_simd() {10 omp.target {11 %5 = llvm.mlir.constant(1 : i32) : i3212 %x = llvm.alloca %5 x i32 {bindc_name = "x"} : (i32) -> !llvm.ptr13 omp.simd private(@simd_privatizer %x -> %arg1 : !llvm.ptr) {14 omp.loop_nest (%arg2) : i32 = (%5) to (%5) inclusive step (%5) {15 omp.yield16 }17 }18 omp.terminator19 }20 llvm.return21 }22 23}24 25// CHECK-LABEL: define {{.*}} @__omp_offloading_{{.*}}_test_target_simd_{{.*}}26 27// CHECK: %[[INT:.*]] = alloca i32, align 428// CHECK: br label %[[LATE_ALLOC_BB:.*]]29 30// CHECK: [[LATE_ALLOC_BB]]:31// CHECK: br label %[[AFTER_ALLOC_BB:.*]]32 33// CHECK: [[AFTER_ALLOC_BB]]:34// CHECK: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}35