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