annotate libgomp/testsuite/libgomp.c/pr80853.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/80853 */
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 *p)
kono
parents:
diff changeset
6 {
kono
parents:
diff changeset
7 #pragma omp for reduction(+:p[:4])
kono
parents:
diff changeset
8 for (int i = 0; i < 64; i++)
kono
parents:
diff changeset
9 {
kono
parents:
diff changeset
10 p[0] += i;
kono
parents:
diff changeset
11 p[1] += i / 2;
kono
parents:
diff changeset
12 p[2] += 2 * i;
kono
parents:
diff changeset
13 p[3] += 3 * i;
kono
parents:
diff changeset
14 }
kono
parents:
diff changeset
15 }
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 int
kono
parents:
diff changeset
18 main ()
kono
parents:
diff changeset
19 {
kono
parents:
diff changeset
20 int p[4] = { 0, 0, 0, 0 };
kono
parents:
diff changeset
21 #pragma omp parallel
kono
parents:
diff changeset
22 foo (p);
kono
parents:
diff changeset
23 if (p[0] != 63 * 64 / 2
kono
parents:
diff changeset
24 || p[1] != 31 * 32
kono
parents:
diff changeset
25 || p[2] != 63 * 64
kono
parents:
diff changeset
26 || p[3] != 3 * 63 * 64 / 2)
kono
parents:
diff changeset
27 __builtin_abort ();
kono
parents:
diff changeset
28 return 0;
kono
parents:
diff changeset
29 }