brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 1d0b56d Raw
47 lines · cpp
1// expected-no-diagnostics2// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm %s -o - | FileCheck %s3// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm %s -o - | FileCheck %s4// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fopenmp-targets=spirv64 -emit-llvm %s -o - | FileCheck %s5// RUN: %clang_cc1  -verify -fopenmp -x c++ -std=c++11 -triple powerpc64le-unknown-unknown -fopenmp-targets=powerpc64le-ibm-linux-gnu -emit-llvm %s -o - | FileCheck %s6 7#ifndef HEADER8#define HEADER9 10typedef void *omp_interop_t;11#define omp_interop_none 012#define omp_ipr_fr_id -113typedef long omp_intptr_t;14#define NULL 015 16extern omp_intptr_t omp_get_interop_int(const omp_interop_t, int, int *);17 18int main() {19  omp_interop_t obj1 = omp_interop_none;20  omp_interop_t obj2 = omp_interop_none;21  omp_interop_t i1 = omp_interop_none;22  omp_interop_t i2 = omp_interop_none;23  omp_interop_t i3 = omp_interop_none;24  omp_interop_t i4 = omp_interop_none;25  omp_interop_t i5 = omp_interop_none;26 27  #pragma omp interop init(targetsync: obj1) init(targetsync: obj2)28  int id = (int )omp_get_interop_int(obj1, omp_ipr_fr_id, NULL);29  int id1 = (int )omp_get_interop_int(obj2, omp_ipr_fr_id, NULL);30 31  #pragma omp interop init(target,targetsync: i1) use(i2) use(i3) destroy(i4) destroy(i5)32  int id2 = (int )omp_get_interop_int(i1, omp_ipr_fr_id, NULL);33  int id3 = (int )omp_get_interop_int(i2, omp_ipr_fr_id, NULL);34 35 36}37#endif38 39// CHECK-LABEL: define {{.+}}main{{.+}}40// CHECK: call {{.+}}__tgt_interop_init({{.+}}obj1{{.*}})41// CHECK: call {{.+}}__tgt_interop_init({{.+}}obj2{{.*}})42// CHECK: call {{.+}}__tgt_interop_init({{.+}}i1{{.*}})43// CHECK: call {{.+}}__tgt_interop_destroy({{.+}}i4{{.*}})44// CHECK: call {{.+}}__tgt_interop_destroy({{.+}}i5{{.*}})45// CHECK: call {{.+}}__tgt_interop_use({{.+}}i2{{.*}})46// CHECK: call {{.+}}__tgt_interop_use({{.+}}i3{{.*}})47