19efdca87SJoseph Huber // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals --global-value-regex "__omp_rtl_"
29efdca87SJoseph Huber // Test target codegen - host bc file has to be created first.
39efdca87SJoseph Huber // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple powerpc64le-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm-bc %s -o %t-ppc-host.bc
4034adaf5SJoseph Huber // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm %s -fopenmp-target-debug -fopenmp-is-device -fopenmp-host-ir-file-path %t-ppc-host.bc -o - | FileCheck %s --check-prefix=CHECK
5034adaf5SJoseph Huber // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm %s -fopenmp-target-debug=111 -fopenmp-is-device -fopenmp-host-ir-file-path %t-ppc-host.bc -o - | FileCheck %s --check-prefix=CHECK-EQ
6034adaf5SJoseph Huber // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm %s -fopenmp-is-device -fopenmp-host-ir-file-path %t-ppc-host.bc -o - | FileCheck %s --check-prefix=CHECK-DEFAULT
7034adaf5SJoseph Huber // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm %s -fopenmp-assume-threads-oversubscription -fopenmp-is-device -fopenmp-host-ir-file-path %t-ppc-host.bc -o - | FileCheck %s --check-prefix=CHECK-THREADS
8034adaf5SJoseph Huber // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm %s -fopenmp-assume-teams-oversubscription -fopenmp-is-device -fopenmp-host-ir-file-path %t-ppc-host.bc -o - | FileCheck %s --check-prefix=CHECK-TEAMS
90870a4f5SJoseph Huber // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm %s -fopenmp-assume-no-thread-state -fopenmp-is-device -fopenmp-host-ir-file-path %t-ppc-host.bc -o - | FileCheck %s --check-prefix=CHECK-STATE
10*af757f89SJoseph Huber // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm %s -fopenmp-is-device -nogpulib -fopenmp-host-ir-file-path %t-ppc-host.bc -o - | FileCheck %s --check-prefix=CHECK-RUNTIME
11034adaf5SJoseph Huber // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm %s -fopenmp-assume-teams-oversubscription -fopenmp-is-device -o - | FileCheck %s --check-prefix=CHECK-RUNTIME
129efdca87SJoseph Huber // expected-no-diagnostics
139efdca87SJoseph Huber 
149efdca87SJoseph Huber #ifndef HEADER
159efdca87SJoseph Huber #define HEADER
169efdca87SJoseph Huber 
179efdca87SJoseph Huber //.
18dcb83b23SJoseph Huber // CHECK: @__omp_rtl_debug_kind = weak_odr hidden constant i32 1
19dcb83b23SJoseph Huber // CHECK: @__omp_rtl_assume_teams_oversubscription = weak_odr hidden constant i32 0
20dcb83b23SJoseph Huber // CHECK: @__omp_rtl_assume_threads_oversubscription = weak_odr hidden constant i32 0
210870a4f5SJoseph Huber // CHECK: @__omp_rtl_assume_no_thread_state = weak_odr hidden constant i32 0
229efdca87SJoseph Huber //.
23dcb83b23SJoseph Huber // CHECK-EQ: @__omp_rtl_debug_kind = weak_odr hidden constant i32 111
24dcb83b23SJoseph Huber // CHECK-EQ: @__omp_rtl_assume_teams_oversubscription = weak_odr hidden constant i32 0
25dcb83b23SJoseph Huber // CHECK-EQ: @__omp_rtl_assume_threads_oversubscription = weak_odr hidden constant i32 0
260870a4f5SJoseph Huber // CHECK-EQ: @__omp_rtl_assume_no_thread_state = weak_odr hidden constant i32 0
279efdca87SJoseph Huber //.
28dcb83b23SJoseph Huber // CHECK-DEFAULT: @__omp_rtl_debug_kind = weak_odr hidden constant i32 0
29dcb83b23SJoseph Huber // CHECK-DEFAULT: @__omp_rtl_assume_teams_oversubscription = weak_odr hidden constant i32 0
30dcb83b23SJoseph Huber // CHECK-DEFAULT: @__omp_rtl_assume_threads_oversubscription = weak_odr hidden constant i32 0
310870a4f5SJoseph Huber // CHECK-DEFAULT: @__omp_rtl_assume_no_thread_state = weak_odr hidden constant i32 0
329efdca87SJoseph Huber //.
33dcb83b23SJoseph Huber // CHECK-THREADS: @__omp_rtl_debug_kind = weak_odr hidden constant i32 0
34dcb83b23SJoseph Huber // CHECK-THREADS: @__omp_rtl_assume_teams_oversubscription = weak_odr hidden constant i32 0
35dcb83b23SJoseph Huber // CHECK-THREADS: @__omp_rtl_assume_threads_oversubscription = weak_odr hidden constant i32 1
360870a4f5SJoseph Huber // CHECK-THREADS: @__omp_rtl_assume_no_thread_state = weak_odr hidden constant i32 0
379efdca87SJoseph Huber //.
38dcb83b23SJoseph Huber // CHECK-TEAMS: @__omp_rtl_debug_kind = weak_odr hidden constant i32 0
39dcb83b23SJoseph Huber // CHECK-TEAMS: @__omp_rtl_assume_teams_oversubscription = weak_odr hidden constant i32 1
40dcb83b23SJoseph Huber // CHECK-TEAMS: @__omp_rtl_assume_threads_oversubscription = weak_odr hidden constant i32 0
410870a4f5SJoseph Huber // CHECK-TEAMS: @__omp_rtl_assume_no_thread_state = weak_odr hidden constant i32 0
420870a4f5SJoseph Huber //.
430870a4f5SJoseph Huber // CHECK-STATE: @__omp_rtl_debug_kind = weak_odr hidden constant i32 0
440870a4f5SJoseph Huber // CHECK-STATE: @__omp_rtl_assume_teams_oversubscription = weak_odr hidden constant i32 0
450870a4f5SJoseph Huber // CHECK-STATE: @__omp_rtl_assume_threads_oversubscription = weak_odr hidden constant i32 0
460870a4f5SJoseph Huber // CHECK-STATE: @__omp_rtl_assume_no_thread_state = weak_odr hidden constant i32 1
479efdca87SJoseph Huber //.
482945f11cSJoseph Huber // CHECK-RUNTIME-NOT: @__omp_rtl_debug_kind = weak_odr hidden constant i32 0
492945f11cSJoseph Huber // CHECK-RUNTIME-NOT: @__omp_rtl_assume_teams_oversubscription = weak_odr hidden constant i32 1
502945f11cSJoseph Huber // CHECK-RUNTIME-NOT: @__omp_rtl_assume_threads_oversubscription = weak_odr hidden constant i32 0
510870a4f5SJoseph Huber // CHECK-RUNTIME-NOT: @__omp_rtl_assume_no_thread_state = weak_odr hidden constant i32 0
522945f11cSJoseph Huber //.
foo()539efdca87SJoseph Huber void foo() {
549efdca87SJoseph Huber #pragma omp target
559efdca87SJoseph Huber   { }
569efdca87SJoseph Huber }
579efdca87SJoseph Huber 
589efdca87SJoseph Huber #endif
59