annotate libgomp/testsuite/libgomp.c-c++-common/for-16.c @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 extern
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 #ifdef __cplusplus
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 "C"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4 #endif
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 void abort (void);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7 unsigned long long int k = 16;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 #pragma omp declare target to (k)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 int
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 main ()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13 unsigned char a[144], b[144], c[144];
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 int l;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 #pragma omp target map(from:a, b, c)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 int i;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 unsigned long long int j;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 #pragma omp parallel for schedule (runtime)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 a[i] = i;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 #pragma omp parallel for schedule (monotonic: runtime)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
23 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
24 a[i + 16] = i + 16;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
25 #pragma omp parallel for schedule (nonmonotonic: runtime)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
26 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
27 a[i + 32] = i + 32;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
28 #pragma omp parallel
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
29 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
30 #pragma omp for schedule (runtime)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
31 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
32 a[i + 48] = i + 48;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
33 #pragma omp for schedule (monotonic: runtime)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
34 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
35 a[i + 64] = i + 64;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
36 #pragma omp for schedule (nonmonotonic: runtime)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
37 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
38 a[i + 80] = i + 80;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
39 #pragma omp for schedule (runtime)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
40 for (j = 0; j < k; j++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
41 a[j + 96] = j + 96;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
42 #pragma omp for schedule (monotonic: runtime)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
43 for (j = 0; j < k; j++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
44 a[j + 112] = j + 112;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
45 #pragma omp for schedule (nonmonotonic: runtime)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
46 for (j = 0; j < k; j++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
47 a[j + 128] = j + 128;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
48 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
49 #pragma omp parallel for schedule (dynamic)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
50 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
51 b[i] = i;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
52 #pragma omp parallel for schedule (monotonic: dynamic)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
53 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
54 b[i + 16] = i + 16;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
55 #pragma omp parallel for schedule (nonmonotonic: dynamic)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
56 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
57 b[i + 32] = i + 32;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
58 #pragma omp parallel
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
59 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
60 #pragma omp for schedule (dynamic)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
61 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
62 b[i + 48] = i + 48;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
63 #pragma omp for schedule (monotonic: dynamic)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
64 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
65 b[i + 64] = i + 64;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
66 #pragma omp for schedule (nonmonotonic: dynamic)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
67 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
68 b[i + 80] = i + 80;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
69 #pragma omp for schedule (dynamic)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
70 for (j = 0; j < k; j++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
71 b[j + 96] = j + 96;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
72 #pragma omp for schedule (monotonic: dynamic)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
73 for (j = 0; j < k; j++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
74 b[j + 112] = j + 112;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
75 #pragma omp for schedule (nonmonotonic: dynamic)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
76 for (j = 0; j < k; j++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
77 b[j + 128] = j + 128;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
78 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
79 #pragma omp parallel for schedule (guided)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
80 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
81 c[i] = i;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
82 #pragma omp parallel for schedule (monotonic: guided)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
83 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
84 c[i + 16] = i + 16;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
85 #pragma omp parallel for schedule (nonmonotonic: guided)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
86 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
87 c[i + 32] = i + 32;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
88 #pragma omp parallel
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
89 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
90 #pragma omp for schedule (guided)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
91 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
92 c[i + 48] = i + 48;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
93 #pragma omp for schedule (monotonic: guided)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
94 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
95 c[i + 64] = i + 64;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
96 #pragma omp for schedule (nonmonotonic: guided)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
97 for (i = 0; i < 16; i++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
98 c[i + 80] = i + 80;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
99 #pragma omp for schedule (guided)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
100 for (j = 0; j < k; j++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
101 c[j + 96] = j + 96;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
102 #pragma omp for schedule (monotonic: guided)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
103 for (j = 0; j < k; j++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
104 c[j + 112] = j + 112;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
105 #pragma omp for schedule (nonmonotonic: guided)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
106 for (j = 0; j < k; j++)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
107 c[j + 128] = j + 128;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
108 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
109 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
110 for (l = 0; l < 144; ++l)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
111 if (a[l] != l || b[l] != l || c[l] != l)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
112 abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
113 return 0;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
114 }