| // 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 |
| {} |
| } |