| // RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s |
| |
| // The aim of the test is to check the LLVM IR codegen for the device |
| // for omp teams construct |
| |
| module attributes {omp.is_target_device = true} { |
| llvm.func @foo(i32) |
| llvm.func @omp_target_teams_shared_simple(%arg0 : i32) attributes {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to)>} { |
| omp.teams { |
| llvm.call @foo(%arg0) : (i32) -> () |
| omp.terminator |
| } |
| llvm.return |
| } |
| } |
| |
| // CHECK-LABEL: @omp_target_teams_shared_simple |
| // CHECK-SAME: (i32 [[ARG0:%.+]]) |
| // CHECK: call void @[[OUTLINED_FN:.*]]( |
| // CHECK-NOT: call {{.+}} @__kmpc_fork_teams |
| // CHECK: ret void |
| |
| //CHECK: define internal void @[[OUTLINED_FN]]( |
| //CHECK: call void @foo(i32 %[[FOO_ARG:.*]]) |
| //CHECK: ret void |