123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- extern
- #ifdef __cplusplus
- "C"
- #endif
- void abort (void);
- unsigned long long int k = 16;
- #pragma omp declare target to (k)
- int
- main ()
- {
- unsigned char a[144], b[144], c[144];
- int l;
- #pragma omp target map(from:a, b, c)
- {
- int i;
- unsigned long long int j;
- #pragma omp parallel for schedule (runtime)
- for (i = 0; i < 16; i++)
- a[i] = i;
- #pragma omp parallel for schedule (monotonic: runtime)
- for (i = 0; i < 16; i++)
- a[i + 16] = i + 16;
- #pragma omp parallel for schedule (nonmonotonic: runtime)
- for (i = 0; i < 16; i++)
- a[i + 32] = i + 32;
- #pragma omp parallel
- {
- #pragma omp for schedule (runtime)
- for (i = 0; i < 16; i++)
- a[i + 48] = i + 48;
- #pragma omp for schedule (monotonic: runtime)
- for (i = 0; i < 16; i++)
- a[i + 64] = i + 64;
- #pragma omp for schedule (nonmonotonic: runtime)
- for (i = 0; i < 16; i++)
- a[i + 80] = i + 80;
- #pragma omp for schedule (runtime)
- for (j = 0; j < k; j++)
- a[j + 96] = j + 96;
- #pragma omp for schedule (monotonic: runtime)
- for (j = 0; j < k; j++)
- a[j + 112] = j + 112;
- #pragma omp for schedule (nonmonotonic: runtime)
- for (j = 0; j < k; j++)
- a[j + 128] = j + 128;
- }
- #pragma omp parallel for schedule (dynamic)
- for (i = 0; i < 16; i++)
- b[i] = i;
- #pragma omp parallel for schedule (monotonic: dynamic)
- for (i = 0; i < 16; i++)
- b[i + 16] = i + 16;
- #pragma omp parallel for schedule (nonmonotonic: dynamic)
- for (i = 0; i < 16; i++)
- b[i + 32] = i + 32;
- #pragma omp parallel
- {
- #pragma omp for schedule (dynamic)
- for (i = 0; i < 16; i++)
- b[i + 48] = i + 48;
- #pragma omp for schedule (monotonic: dynamic)
- for (i = 0; i < 16; i++)
- b[i + 64] = i + 64;
- #pragma omp for schedule (nonmonotonic: dynamic)
- for (i = 0; i < 16; i++)
- b[i + 80] = i + 80;
- #pragma omp for schedule (dynamic)
- for (j = 0; j < k; j++)
- b[j + 96] = j + 96;
- #pragma omp for schedule (monotonic: dynamic)
- for (j = 0; j < k; j++)
- b[j + 112] = j + 112;
- #pragma omp for schedule (nonmonotonic: dynamic)
- for (j = 0; j < k; j++)
- b[j + 128] = j + 128;
- }
- #pragma omp parallel for schedule (guided)
- for (i = 0; i < 16; i++)
- c[i] = i;
- #pragma omp parallel for schedule (monotonic: guided)
- for (i = 0; i < 16; i++)
- c[i + 16] = i + 16;
- #pragma omp parallel for schedule (nonmonotonic: guided)
- for (i = 0; i < 16; i++)
- c[i + 32] = i + 32;
- #pragma omp parallel
- {
- #pragma omp for schedule (guided)
- for (i = 0; i < 16; i++)
- c[i + 48] = i + 48;
- #pragma omp for schedule (monotonic: guided)
- for (i = 0; i < 16; i++)
- c[i + 64] = i + 64;
- #pragma omp for schedule (nonmonotonic: guided)
- for (i = 0; i < 16; i++)
- c[i + 80] = i + 80;
- #pragma omp for schedule (guided)
- for (j = 0; j < k; j++)
- c[j + 96] = j + 96;
- #pragma omp for schedule (monotonic: guided)
- for (j = 0; j < k; j++)
- c[j + 112] = j + 112;
- #pragma omp for schedule (nonmonotonic: guided)
- for (j = 0; j < k; j++)
- c[j + 128] = j + 128;
- }
- }
- for (l = 0; l < 144; ++l)
- if (a[l] != l || b[l] != l || c[l] != l)
- abort ();
- return 0;
- }
|