blob: a05bcf49c0e0685ac825eaeba9818f690c927699 [file] [log] [blame]
// REQUIRES: x86-registered-target
// REQUIRES: amdgpu-registered-target
// RUN: %clang_cc1 %s -x c++ -fopenmp -fsyntax-only -verify=host
// host-no-diagnostics
// RUN: %clang_cc1 %s -x hip -fopenmp -fsyntax-only -verify=device
// device-error@#01 {{HIP does not support OpenMP target directives}}
// device-error@#02 {{HIP does not support OpenMP target directives}}
// device-error@#03 {{HIP does not support OpenMP target directives}}
// device-error@#04 {{HIP does not support OpenMP target directives}}
// device-error@#05 {{HIP does not support OpenMP target directives}}
// device-error@#06 {{HIP does not support OpenMP target directives}}
// device-error@#07 {{HIP does not support OpenMP target directives}}
// device-error@#08 {{HIP does not support OpenMP target directives}}
// device-error@#09 {{HIP does not support OpenMP target directives}}
// device-error@#10 {{HIP does not support OpenMP target directives}}
// device-error@#11 {{HIP does not support OpenMP target directives}}
// device-error@#12 {{HIP does not support OpenMP target directives}}
// device-error@#13 {{HIP does not support OpenMP target directives}}
// device-error@#14 {{HIP does not support OpenMP target directives}}
// device-error@#15 {{HIP does not support OpenMP target directives}}
// device-error@#16 {{HIP does not support OpenMP target directives}}
// device-error@#17 {{HIP does not support OpenMP target directives}}
// device-error@#18 {{HIP does not support OpenMP target directives}}
// device-error@#19 {{HIP does not support OpenMP target directives}}
// device-error@#20 {{HIP does not support OpenMP target directives}}
// device-error@#21 {{HIP does not support OpenMP target directives}}
// device-error@#22 {{HIP does not support OpenMP target directives}}
// device-error@#23 {{HIP does not support OpenMP target directives}}
// device-error@#24 {{HIP does not support OpenMP target directives}}
void test01() {
#pragma omp target // #01
;
}
void test02() {
#pragma omp target parallel // #02
;
}
void test03() {
#pragma omp target parallel for // #03
for (int i = 0; i < 1; ++i);
}
void test04(int x) {
#pragma omp target data map(x) // #04
;
}
void test05(int * x, int n) {
#pragma omp target enter data map(to:x[:n]) // #05
}
void test06(int * x, int n) {
#pragma omp target exit data map(from:x[:n]) // #06
}
void test07(int * x, int n) {
#pragma omp target update to(x[:n]) // #07
}
#pragma omp declare target (test07) // #08
void test08() {
}
#pragma omp begin declare target // #09
void test09_1() {
}
void test09_2() {
}
#pragma omp end declare target
void test10(int n) {
#pragma omp target parallel // #10
for (int i = 0; i < n; ++i)
;
}
void test11(int n) {
#pragma omp target parallel for // #11
for (int i = 0; i < n; ++i)
;
}
void test12(int n) {
#pragma omp target parallel for simd // #12
for (int i = 0; i < n; ++i)
;
}
void test13(int n) {
#pragma omp target parallel loop // #13
for (int i = 0; i < n; ++i)
;
}
void test14(int n) {
#pragma omp target simd // #14
for (int i = 0; i < n; ++i)
;
}
void test15(int n) {
#pragma omp target teams // #15
for (int i = 0; i < n; ++i)
;
}
void test16(int n) {
#pragma omp target teams distribute // #16
for (int i = 0; i < n; ++i)
;
}
void test17(int n) {
#pragma omp target teams distribute simd // #17
for (int i = 0; i < n; ++i)
;
}
void test18(int n) {
#pragma omp target teams loop // #18
for (int i = 0; i < n; ++i)
;
}
void test19(int n) {
#pragma omp target teams distribute parallel for // #19
for (int i = 0; i < n; ++i)
;
}
void test20(int n) {
#pragma omp target teams distribute parallel for simd // #20
for (int i = 0; i < n; ++i)
;
}
void test21() {
#pragma omp target // #21
{
#pragma omp teams // #22
{}
}
}
void test22() {
#pragma omp target // #23
#pragma omp teams // #24
{}
}
void test23() {
// host code
#pragma omp teams
{}
}