xref: /llvm-project/clang/test/OpenMP/openmp_offload_registration.cpp (revision 13dcc95dcd4999ff99f2de89d881f1aed5b21709)
1 // Test offload registration for two targets, and test offload target validation.
2 // RUN: %clang_cc1 -verify -fopenmp -x c -triple x86_64-unknown-linux-gnu -fopenmp-targets=x86_64-pc-linux-gnu,powerpc64le-ibm-linux-gnu -emit-llvm %s -o - | FileCheck %s
3 // RUN: %clang_cc1 -verify -fopenmp -x c -triple x86_64-unknown-linux-gnu -fopenmp-targets=aarch64-unknown-linux-gnu -emit-llvm %s -o - | FileCheck %s
4 // expected-no-diagnostics
5 
6 void foo(void) {
7 #pragma omp target
8   {}
9 }
10 
11 // CHECK-DAG: [[ENTTY:%.+]] = type { i64, i16, i16, i32, ptr, ptr, i64, i64, ptr }
12 
13 // Check presence of foo() and the outlined target region
14 // CHECK: define{{.*}} void [[FOO:@.+]]()
15 // CHECK: define internal void [[OUTLINEDTARGET:@.+]]()
16