1 // Test host codegen.
2 // RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=50  -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 -fopenmp-version=50 -x c++ -triple powerpc64le-unknown-unknown -fopenmp-targets=powerpc64le-ibm-linux-gnu -emit-pch -o %t %s
4 // RUN: %clang_cc1 -fopenmp -fopenmp-version=50 -x c++ -triple powerpc64le-unknown-unknown -fopenmp-targets=powerpc64le-ibm-linux-gnu
5 
6 // expected-no-diagnostics
7 #ifndef HEADER
8 #define HEADER
9 
10 enum omp_allocator_handle_t {
11   omp_null_allocator = 0,
12   omp_default_mem_alloc = 1,
13   omp_large_cap_mem_alloc = 2,
14   omp_const_mem_alloc = 3,
15   omp_high_bw_mem_alloc = 4,
16   omp_low_lat_mem_alloc = 5,
17   omp_cgroup_mem_alloc = 6,
18   omp_pteam_mem_alloc = 7,
19   omp_thread_mem_alloc = 8,
20   KMP_ALLOCATOR_MAX_HANDLE = __UINTPTR_MAX__
21 };
22 
23 // CHECK: define {{.*}}[[FIE:@.+]]()
fie(void)24 void fie(void) {
25   int x;
26   #pragma omp target uses_allocators(omp_null_allocator) allocate(omp_null_allocator: x) firstprivate(x)
27   {}
28   #pragma omp target uses_allocators(omp_default_mem_alloc) allocate(omp_default_mem_alloc: x) firstprivate(x)
29   {}
30   #pragma omp target uses_allocators(omp_large_cap_mem_alloc) allocate(omp_large_cap_mem_alloc: x) firstprivate(x)
31   {}
32   #pragma omp target uses_allocators(omp_const_mem_alloc) allocate(omp_const_mem_alloc: x) firstprivate(x)
33   {}
34   #pragma omp target uses_allocators(omp_high_bw_mem_alloc) allocate(omp_high_bw_mem_alloc: x) firstprivate(x)
35   {}
36   #pragma omp target uses_allocators(omp_low_lat_mem_alloc) allocate(omp_low_lat_mem_alloc: x) firstprivate(x)
37   {}
38   #pragma omp target uses_allocators(omp_cgroup_mem_alloc) allocate(omp_cgroup_mem_alloc: x) firstprivate(x)
39   {}
40   #pragma omp target uses_allocators(omp_pteam_mem_alloc) allocate(omp_pteam_mem_alloc: x) firstprivate(x)
41   {}
42 }
43 
44 #endif
45