annotate libgomp/testsuite/libgomp.c/pr80809-2.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR middle-end/80809 */
kono
parents:
diff changeset
2 /* { dg-do run } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 __attribute__((noinline, noclone)) void
kono
parents:
diff changeset
5 foo (int x)
kono
parents:
diff changeset
6 {
kono
parents:
diff changeset
7 int i, v[x], w[16];
kono
parents:
diff changeset
8 for (i = 0; i < x; i++)
kono
parents:
diff changeset
9 v[i] = i;
kono
parents:
diff changeset
10 for (i = 0; i < 16; i++)
kono
parents:
diff changeset
11 w[i] = 0;
kono
parents:
diff changeset
12 #pragma omp parallel
kono
parents:
diff changeset
13 #pragma omp single
kono
parents:
diff changeset
14 for (i = 0; i < 16; i++)
kono
parents:
diff changeset
15 #pragma omp task firstprivate (v)
kono
parents:
diff changeset
16 {
kono
parents:
diff changeset
17 int j;
kono
parents:
diff changeset
18 for (j = 0; j < x; j++)
kono
parents:
diff changeset
19 v[j] += i;
kono
parents:
diff changeset
20 for (j = 0; j < x; j++)
kono
parents:
diff changeset
21 w[i] += v[j];
kono
parents:
diff changeset
22 }
kono
parents:
diff changeset
23 for (i = 0; i < 16; i++)
kono
parents:
diff changeset
24 if (w[i] != (x - 1) * x / 2 + x * i)
kono
parents:
diff changeset
25 __builtin_abort ();
kono
parents:
diff changeset
26 }
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 int
kono
parents:
diff changeset
29 main ()
kono
parents:
diff changeset
30 {
kono
parents:
diff changeset
31 foo (4);
kono
parents:
diff changeset
32 foo (27);
kono
parents:
diff changeset
33 foo (196);
kono
parents:
diff changeset
34 return 0;
kono
parents:
diff changeset
35 }