1 // Test host codegen.
2 // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple powerpc64le-unknown-unknown -fopenmp-targets=powerpc64le-ibm-linux-gnu -emit-llvm %s -o - | FileCheck %s --check-prefix CHECK --check-prefix CHECK-64
3 // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple powerpc64le-unknown-unknown -fopenmp-targets=powerpc64le-ibm-linux-gnu -emit-pch -o %t %s
4 // RUN: %clang_cc1 -fopenmp -x c++ -triple powerpc64le-unknown-unknown -fopenmp-targets=powerpc64le-ibm-linux-gnu -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefix CHECK --check-prefix CHECK-64
5
6 // expected-no-diagnostics
7 #ifndef HEADER
8 #define HEADER
9
10 int global;
11 extern int global;
12
13 // CHECK: define {{.*}}[[FOO:@.+]](
foo(int n)14 int foo(int n) {
15 int a = 0;
16 float b[10];
17 double cn[5][n];
18
19 #pragma omp target nowait depend(in: global) depend(out: a, b, cn[4])
20 {
21 }
22
23 // CHECK: call i8* @__kmpc_omp_target_task_alloc({{.*}}, i64 -1)
24
25 #pragma omp target device(1) nowait depend(in: global) depend(out: a, b, cn[4])
26 {
27 }
28
29 // CHECK: call i8* @__kmpc_omp_target_task_alloc({{.*}}, i64 1)
30
31 return a;
32 }
33
34 #endif
35