4 __attribute__((noinline
))
6 foo (int x
, int y
, int z
, int *a
, int *b
)
11 for (i
= 0; i
< 64; i
++)
12 #pragma omp parallel for shared (a, b)
13 for (j
= 0; j
< 32; j
++)
19 #pragma omp distribute dist_schedule (static, 1)
20 for (i
= 0; i
< 64; i
++)
21 #pragma omp parallel for shared (a, b)
22 for (j
= 0; j
< 32; j
++)
28 #pragma omp parallel for shared (a, b)
29 for (j
= 0; j
< 32; j
++)
41 __attribute__((noinline
))
43 bar (int x
, int y
, int z
)
47 for (i
= 0; i
< 64; i
++)
54 for (i
= 0; i
< 64; i
++)
55 if (b
[i
] != i
+ 31 * 32 / 2)
60 int c
= omp_get_num_teams ();
61 int d
= omp_get_team_num ();
64 for (i
= 0; i
< 64; i
++)
67 if (b
[i
] != i
+ 31 * 32 / 2)
74 if (a
< 8 || a
> 8 + f
* 32)
81 for (i
= 0; i
< 64; i
++)
82 if (b
[i
] != i
+ (i
== y
? 31 * 32 / 2 : 0))
89 for (i
= 0; i
< 64; i
++)
90 if (b
[i
] != i
+ (i
== y
? z
: 0))
100 #pragma omp teams reduction(+:err)
101 err
+= bar (0, 0, 0);
104 #pragma omp teams reduction(+:err)
105 err
+= bar (1, 0, 0);
108 #pragma omp teams reduction(+:err)
109 #pragma omp distribute
110 for (i
= 0; i
< 64; i
++)
111 err
+= bar (2, i
, 0);
114 #pragma omp teams reduction(+:err)
115 #pragma omp distribute
116 for (i
= 0; i
< 64; i
++)
117 #pragma omp parallel for reduction(+:err)
118 for (j
= 0; j
< 32; j
++)
119 err
+= bar (3, i
, j
);