diff options
Diffstat (limited to 'clang/test/OpenMP/nesting_of_regions.cpp')
-rw-r--r-- | clang/test/OpenMP/nesting_of_regions.cpp | 1023 |
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>(); } |