8 for (i
= 0; i
< 8; i
++)
16 #pragma omp task shared(a) depend(in: a[0])
21 #pragma omp task shared(a) depend(out: a[1])
26 #pragma omp task shared(a) depend(inout: a[2])
31 #pragma omp task shared(a) depend(mutexinoutset: a[3])
36 #pragma omp task shared(a)
41 #pragma omp task shared(b) depend(in: b[0])
46 #pragma omp task shared(b) depend(in: b[4])
51 #pragma omp task shared(b) depend(inoutset: b[5])
56 /* None of the above tasks depend on each other.
57 The following task depends on all but the a[4] = 46; one. */
58 #pragma omp task shared(a, b) depend(iterator (j=0:7), inout: omp_all_memory) private(i)
60 if (a
[0] != 42 || a
[1] != 43 || a
[2] != 44 || a
[3] != 45
61 || a
[5] != 5 || a
[6] != 6 || a
[7] != 7
62 || b
[0] != 47 || b
[1] != 2 || b
[2] != 4 || b
[3] != 6
63 || b
[4] != 48 || b
[5] != 49 || b
[6] != 12 || b
[7] != 14)
65 for (i
= 0; i
< 8; ++i
)
68 for (i
= 0; i
< 8; ++i
)
71 /* The following task depends on both b[0] = 47; and
72 above omp_all_memory tasks, but as the latter depends on
73 the former, effectively it is dependent just on the omp_all_memory
75 #pragma omp task shared(b) depend(inout: b[0])
80 /* The following task depends on all the above except a[4] = 46; one,
81 but it can be reduced to dependency on the above omp_all_memory
82 one and b[0] = 49; one. */
83 #pragma omp task shared(a, b) depend(inout: b[7]) depend(iterator(j=4:5), out: omp_all_memory) \
84 depend(inout: b[6]) private(i)
86 for (i
= 0; i
< 8; ++i
)
89 if (a
[i
] != 3 * i
+ 7)
96 for (i
= 1; i
< 8; ++i
)
98 if (b
[i
] != 4 * i
- 7)