165 lines
3.9 KiB
C++
165 lines
3.9 KiB
C++
// 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
|
|
{}
|
|
}
|