| /* { dg-additional-options "-Wall -Wno-unknown-pragmas" } */ |
| |
| int |
| compute_sum1 (void) |
| { |
| int sum = 0; |
| int i, j; |
| |
| #pragma omp parallel for reduction(+:sum) lastprivate(j) |
| #pragma omp unroll partial |
| for (i = 3; i < 10; ++i) |
| for (j = -2; j < 7; ++j) |
| sum++; |
| |
| if (j != 7) |
| __builtin_abort (); |
| |
| return sum; |
| } |
| |
| int |
| compute_sum2 (void) |
| { |
| int sum = 0; |
| int i, j; |
| |
| #pragma omp parallel for reduction(+:sum) lastprivate(j) |
| #pragma omp unroll partial(5) |
| for (i = 3; i < 10; ++i) |
| for (j = -2; j < 7; ++j) |
| sum++; |
| |
| if (j != 7) |
| __builtin_abort (); |
| |
| return sum; |
| } |
| |
| int |
| compute_sum3 (void) |
| { |
| int sum = 0; |
| int i, j; |
| |
| #pragma omp parallel for reduction(+:sum) lastprivate(j) |
| #pragma omp unroll partial(1) |
| for (i = 3; i < 10; ++i) |
| for (j = -2; j < 7; ++j) |
| sum++; |
| |
| if (j != 7) |
| __builtin_abort (); |
| |
| return sum; |
| } |
| |
| int |
| main () |
| { |
| if (compute_sum1 () != 7 * 9) |
| __builtin_abort (); |
| |
| if (compute_sum2 () != 7 * 9) |
| __builtin_abort (); |
| |
| if (compute_sum3 () != 7 * 9) |
| __builtin_abort (); |
| |
| return 0; |
| } |