summaryrefslogtreecommitdiffstats
path: root/clang/test/OpenMP/nesting_of_regions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/OpenMP/nesting_of_regions.cpp')
-rw-r--r--clang/test/OpenMP/nesting_of_regions.cpp1023
1 files changed, 2 insertions, 1021 deletions
diff --git a/clang/test/OpenMP/nesting_of_regions.cpp b/clang/test/OpenMP/nesting_of_regions.cpp
index b495bd4b178..8f6fb35bd3d 100644
--- a/clang/test/OpenMP/nesting_of_regions.cpp
+++ b/clang/test/OpenMP/nesting_of_regions.cpp
@@ -167,13 +167,7 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp parallel
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-
+
// SIMD DIRECTIVE
#pragma omp simd
for (int i = 0; i < 10; ++i) {
@@ -377,12 +371,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// FOR DIRECTIVE
#pragma omp for
@@ -600,12 +588,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp for
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// FOR SIMD DIRECTIVE
#pragma omp for simd
@@ -811,12 +793,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp for simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// SECTIONS DIRECTIVE
#pragma omp sections
@@ -1039,12 +1015,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp sections
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// SECTION DIRECTIVE
#pragma omp section // expected-error {{orphaned 'omp section' directives are prohibited, it must be closely nested to a sections region}}
@@ -1326,13 +1296,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp sections
- {
-#pragma omp section
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// SINGLE DIRECTIVE
#pragma omp single
@@ -1541,12 +1504,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp single
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// MASTER DIRECTIVE
#pragma omp master
@@ -1755,12 +1712,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp master
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// CRITICAL DIRECTIVE
#pragma omp critical
@@ -1983,12 +1934,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp critical
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// PARALLEL FOR DIRECTIVE
#pragma omp parallel for
@@ -2211,12 +2156,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// PARALLEL FOR SIMD DIRECTIVE
#pragma omp parallel for simd
@@ -2440,12 +2379,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp parallel for simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// PARALLEL SECTIONS DIRECTIVE
#pragma omp parallel sections
@@ -2657,12 +2590,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp parallel sections
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TASK DIRECTIVE
#pragma omp task
@@ -2821,12 +2748,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp task
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// ORDERED DIRECTIVE
#pragma omp ordered
@@ -3056,12 +2977,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp ordered
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// ATOMIC DIRECTIVE
#pragma omp atomic
@@ -3323,12 +3238,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp ordered
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET DIRECTIVE
#pragma omp target
@@ -3503,12 +3412,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp target
- {
-#pragma omp teams distribute simd // OK
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET PARALLEL DIRECTIVE
#pragma omp target parallel
@@ -3677,12 +3580,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp target parallel
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET PARALLEL FOR DIRECTIVE
#pragma omp target parallel for
@@ -3905,12 +3802,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp target parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// TEAMS DIRECTIVE
#pragma omp teams // expected-error {{orphaned 'omp teams' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
@@ -4125,13 +4016,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp target
-#pragma omp teams
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TASKLOOP DIRECTIVE
#pragma omp taskloop
@@ -4345,12 +4229,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
++a;
}
-#pragma omp taskloop
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int j = 0; j < 10; ++j)
- ++a;
- }
// DISTRIBUTE DIRECTIVE
#pragma omp target
@@ -4592,14 +4470,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// DISTRIBUTE PARALLEL FOR DIRECTIVE
#pragma omp target
@@ -4849,14 +4719,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE
#pragma omp target
@@ -5114,14 +4976,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
++a;
}
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
// TARGET SIMD DIRECTIVE
#pragma omp target simd
@@ -5315,249 +5169,8 @@ void foo() {
for (int i = 0; i < 10; ++i)
++a;
}
-#pragma omp target simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
- // TEAMS DISTRIBUTE DIRECTIVE
-#pragma omp teams distribute // expected-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp for // OK
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp simd // OK
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp for simd // OK
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel // OK
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp sections // OK
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a teams distribute region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp single // OK
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp master // OK
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp critical // OK
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel // OK
- {
-#pragma omp single
- {
- bar();
- }
- }
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel for // OK
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel for simd // OK
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel sections // OK
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp task // OK
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp taskyield // OK
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp barrier // OK
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp taskwait // OK
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp flush // OK
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp ordered // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // OK
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-
- // TEAMS DISTRIBUTE DIRECTIVE
+// TEAMS DISTRIBUTE DIRECTIVE
#pragma omp teams distribute // expected-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
for (int i = 0; i < 10; ++i)
;
@@ -5784,248 +5397,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
++a;
}
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-
-// TEAMS DISTRIBUTE SIMD DIRECTIVE
-#pragma omp teams distribute simd // expected-error {{orphaned 'omp teams distribute simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
-#pragma omp single
- {
- bar();
- }
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
}
void foo() {
@@ -6191,12 +5562,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp parallel
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// SIMD DIRECTIVE
#pragma omp simd
@@ -6385,12 +5750,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// FOR DIRECTIVE
#pragma omp for
@@ -6599,12 +5958,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp for
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// FOR SIMD DIRECTIVE
#pragma omp for simd
@@ -6793,12 +6146,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp for simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// SECTIONS DIRECTIVE
#pragma omp sections
@@ -6996,12 +6343,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp sections
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// SECTION DIRECTIVE
#pragma omp section // expected-error {{orphaned 'omp section' directives are prohibited, it must be closely nested to a sections region}}
@@ -7293,13 +6634,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp sections
- {
-#pragma omp section
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// SINGLE DIRECTIVE
#pragma omp single
@@ -7498,12 +6832,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp single
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// MASTER DIRECTIVE
#pragma omp master
@@ -7712,12 +7040,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp master
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// CRITICAL DIRECTIVE
#pragma omp critical
@@ -7945,12 +7267,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp critical
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// PARALLEL FOR DIRECTIVE
#pragma omp parallel for
@@ -8174,12 +7490,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// PARALLEL FOR SIMD DIRECTIVE
#pragma omp parallel for simd
@@ -8403,12 +7713,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp parallel for simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// PARALLEL SECTIONS DIRECTIVE
#pragma omp parallel sections
@@ -8616,12 +7920,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp parallel sections
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TASK DIRECTIVE
#pragma omp task
@@ -8779,12 +8077,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp task
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// ATOMIC DIRECTIVE
#pragma omp atomic
@@ -9045,14 +8337,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp atomic
- // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an l-value expression with scalar type}}
- // expected-note@+1 {{expected an expression statement}}
- {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET DIRECTIVE
#pragma omp target
@@ -9224,12 +8508,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp target
- {
-#pragma omp teams distribute simd // OK
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET PARALLEL DIRECTIVE
#pragma omp target parallel
@@ -9398,12 +8676,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp target parallel
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET PARALLEL FOR DIRECTIVE
#pragma omp target parallel for
@@ -9627,12 +8899,6 @@ void foo() {
for (int j = 0; j < 10; ++j)
;
}
-#pragma omp target parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// TEAMS DIRECTIVE
#pragma omp target
@@ -9849,13 +9115,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp target
-#pragma omp teams
- {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TASKLOOP DIRECTIVE
#pragma omp taskloop
@@ -10069,12 +9328,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp taskloop
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// DISTRIBUTE DIRECTIVE
#pragma omp target
@@ -10592,14 +9845,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
++a;
}
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
// DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE
#pragma omp target
@@ -10850,14 +10095,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// DISTRIBUTE SIMD DIRECTIVE
#pragma omp target
@@ -11108,14 +10345,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET SIMD DIRECTIVE
#pragma omp target simd
@@ -11303,12 +10532,6 @@ void foo() {
for (int i = 0; i < 10; ++i)
;
}
-#pragma omp target simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TEAMS DISTRIBUTE DIRECTIVE
#pragma omp teams distribute // expected-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
@@ -11537,247 +10760,5 @@ void foo() {
for (int i = 0; i < 10; ++i)
++a;
}
-#pragma omp target
-#pragma omp teams distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-
-// TEAMS DISTRIBUTE SIMD DIRECTIVE
-#pragma omp teams distribute simd // expected-error {{orphaned 'omp teams distribute simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
- for (int i = 0; i < 10; ++i)
- ;
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
-#pragma omp single
- {
- bar();
- }
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-#pragma omp target
-#pragma omp teams distribute simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
return foo<int>();
}
OpenPOWER on IntegriCloud