|
@@ -149,6 +149,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp parallel
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// SIMD DIRECTIVE
|
|
|
#pragma omp simd
|
|
@@ -335,6 +341,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp 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 j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// FOR DIRECTIVE
|
|
|
#pragma omp for
|
|
@@ -534,6 +546,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp for
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// FOR SIMD DIRECTIVE
|
|
|
#pragma omp for simd
|
|
@@ -721,6 +739,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp for 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 j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// SECTIONS DIRECTIVE
|
|
|
#pragma omp sections
|
|
@@ -925,6 +949,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp sections
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams 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}}
|
|
@@ -1185,6 +1215,13 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp sections
|
|
|
+ {
|
|
|
+#pragma omp section
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// SINGLE DIRECTIVE
|
|
|
#pragma omp single
|
|
@@ -1375,6 +1412,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp single
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// MASTER DIRECTIVE
|
|
|
#pragma omp master
|
|
@@ -1565,6 +1608,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp master
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// CRITICAL DIRECTIVE
|
|
|
#pragma omp critical
|
|
@@ -1769,6 +1818,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp critical
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// PARALLEL FOR DIRECTIVE
|
|
|
#pragma omp parallel for
|
|
@@ -1973,6 +2028,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp parallel for
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// PARALLEL FOR SIMD DIRECTIVE
|
|
|
#pragma omp parallel for simd
|
|
@@ -2178,6 +2239,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp parallel for 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 j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// PARALLEL SECTIONS DIRECTIVE
|
|
|
#pragma omp parallel sections
|
|
@@ -2371,6 +2438,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp parallel sections
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// TASK DIRECTIVE
|
|
|
#pragma omp task
|
|
@@ -2511,6 +2584,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp task
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// ORDERED DIRECTIVE
|
|
|
#pragma omp ordered
|
|
@@ -2722,6 +2801,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp ordered
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// ATOMIC DIRECTIVE
|
|
|
#pragma omp atomic
|
|
@@ -2959,6 +3044,14 @@ 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 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
|
|
@@ -3115,6 +3208,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp target
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// TARGET PARALLEL DIRECTIVE
|
|
|
#pragma omp target parallel
|
|
@@ -3265,6 +3364,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp target parallel
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// TARGET PARALLEL FOR DIRECTIVE
|
|
|
#pragma omp target parallel for
|
|
@@ -3469,6 +3574,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp target parallel for
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// TEAMS DIRECTIVE
|
|
|
#pragma omp target
|
|
@@ -3657,6 +3768,16 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp target
|
|
|
+#pragma omp teams
|
|
|
+ {
|
|
|
+#pragma omp distribute simd
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+#pragma omp distribute simd
|
|
|
+ for (int j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// TASKLOOP DIRECTIVE
|
|
|
#pragma omp taskloop
|
|
@@ -3852,6 +3973,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
++a;
|
|
|
}
|
|
|
+#pragma omp taskloop
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int j = 0; j < 10; ++j)
|
|
|
+ ++a;
|
|
|
+ }
|
|
|
|
|
|
// DISTRIBUTE DIRECTIVE
|
|
|
#pragma omp target
|
|
@@ -4310,6 +4437,14 @@ void foo() {
|
|
|
#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}
|
|
|
++a;
|
|
|
}
|
|
|
+#pragma omp target
|
|
|
+#pragma omp teams
|
|
|
+#pragma omp distribute parallel for
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE
|
|
|
#pragma omp target
|
|
@@ -4543,6 +4678,14 @@ void foo() {
|
|
|
#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
|
|
|
+#pragma omp distribute parallel for 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;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void foo() {
|
|
@@ -4690,6 +4833,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp parallel
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// SIMD DIRECTIVE
|
|
|
#pragma omp simd
|
|
@@ -4860,6 +5009,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp 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 j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// FOR DIRECTIVE
|
|
|
#pragma omp for
|
|
@@ -5050,6 +5205,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp for
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// FOR SIMD DIRECTIVE
|
|
|
#pragma omp for simd
|
|
@@ -5220,6 +5381,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp for 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 j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// SECTIONS DIRECTIVE
|
|
|
#pragma omp sections
|
|
@@ -5399,6 +5566,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp sections
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams 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}}
|
|
@@ -5669,6 +5842,13 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp sections
|
|
|
+ {
|
|
|
+#pragma omp section
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// SINGLE DIRECTIVE
|
|
|
#pragma omp single
|
|
@@ -5849,6 +6029,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp single
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// MASTER DIRECTIVE
|
|
|
#pragma omp master
|
|
@@ -6039,6 +6225,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp master
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// CRITICAL DIRECTIVE
|
|
|
#pragma omp critical
|
|
@@ -6248,6 +6440,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp critical
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// PARALLEL FOR DIRECTIVE
|
|
|
#pragma omp parallel for
|
|
@@ -6453,6 +6651,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp parallel for
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// PARALLEL FOR SIMD DIRECTIVE
|
|
|
#pragma omp parallel for simd
|
|
@@ -6658,6 +6862,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp parallel for 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 j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// PARALLEL SECTIONS DIRECTIVE
|
|
|
#pragma omp parallel sections
|
|
@@ -6847,6 +7057,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp parallel sections
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// TASK DIRECTIVE
|
|
|
#pragma omp task
|
|
@@ -6986,6 +7202,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp task
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// ATOMIC DIRECTIVE
|
|
|
#pragma omp atomic
|
|
@@ -7222,6 +7444,14 @@ 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 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
|
|
@@ -7375,6 +7605,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp target
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// TARGET PARALLEL DIRECTIVE
|
|
|
#pragma omp target parallel
|
|
@@ -7525,6 +7761,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp target parallel
|
|
|
+ {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// TARGET PARALLEL FOR DIRECTIVE
|
|
|
#pragma omp target parallel for
|
|
@@ -7730,6 +7972,12 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp target parallel for
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// TEAMS DIRECTIVE
|
|
|
#pragma omp target
|
|
@@ -7922,6 +8170,16 @@ void foo() {
|
|
|
for (int j = 0; j < 10; ++j)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp target
|
|
|
+#pragma omp teams
|
|
|
+ {
|
|
|
+#pragma omp distribute simd
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+#pragma omp distribute simd
|
|
|
+ for (int j = 0; j < 10; ++j)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// TASKLOOP DIRECTIVE
|
|
|
#pragma omp taskloop
|
|
@@ -8117,6 +8375,12 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
+#pragma omp taskloop
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ;
|
|
|
+ }
|
|
|
|
|
|
// DISTRIBUTE DIRECTIVE
|
|
|
#pragma omp target
|
|
@@ -8359,6 +8623,14 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
++a;
|
|
|
}
|
|
|
+#pragma omp target
|
|
|
+#pragma omp teams
|
|
|
+#pragma omp distribute
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ++a;
|
|
|
+ }
|
|
|
|
|
|
// DISTRIBUTE PARALLEL FOR DIRECTIVE
|
|
|
#pragma omp target
|
|
@@ -8594,6 +8866,14 @@ void foo() {
|
|
|
#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}
|
|
|
++a;
|
|
|
}
|
|
|
+#pragma omp target
|
|
|
+#pragma omp teams
|
|
|
+#pragma omp distribute parallel for
|
|
|
+ for (int i = 0; i < 10; ++i) {
|
|
|
+#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
|
|
|
+ for (int i = 0; i < 10; ++i)
|
|
|
+ ++a;
|
|
|
+ }
|
|
|
|
|
|
// DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE
|
|
|
#pragma omp target
|
|
@@ -8604,7 +8884,6 @@ void foo() {
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
;
|
|
|
}
|
|
|
-
|
|
|
#pragma omp target
|
|
|
#pragma omp teams
|
|
|
#pragma omp distribute parallel for simd
|
|
@@ -8796,13 +9075,239 @@ void foo() {
|
|
|
#pragma omp teams
|
|
|
#pragma omp distribute parallel for 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}}
|
|
|
+#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}
|
|
|
+ ++a;
|
|
|
+ }
|
|
|
+ return foo<int>();
|
|
|
+#pragma omp target
|
|
|
+#pragma omp teams
|
|
|
+#pragma omp distribute parallel for 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
|
|
|
+#pragma omp distribute parallel for 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
|
|
|
+#pragma omp distribute parallel for 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
|
|
|
+#pragma omp distribute parallel for 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)
|
|
|
;
|
|
|
}
|
|
|
+
|
|
|
+// DISTRIBUTE SIMD DIRECTIVE
|
|
|
#pragma omp target
|
|
|
#pragma omp teams
|
|
|
-#pragma omp distribute parallel for simd
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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;
|
|
@@ -8810,23 +9315,31 @@ void foo() {
|
|
|
return foo<int>();
|
|
|
#pragma omp target
|
|
|
#pragma omp teams
|
|
|
-#pragma omp distribute parallel for simd
|
|
|
+#pragma omp 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
|
|
|
-#pragma omp distribute parallel for simd
|
|
|
+#pragma omp 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
|
|
|
-#pragma omp distribute parallel for simd
|
|
|
+#pragma omp 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
|
|
|
+#pragma omp 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)
|
|
|
+ ;
|
|
|
+ }
|
|
|
}
|