5 int arr
[64], arr2
[64], arr3
[64];
8 foo (int x
, int y
, long z
)
14 if (z
!= 0 || y
< 0 || y
>= 64)
16 #pragma omp atomic capture
24 if (y
< 0 || y
> 60 || (y
& 3) || z
< 0 || z
>= 4)
27 arr2
[y
+ z
] = arr2
[y
+ z
] + 4;
30 if (z
< 0 || z
> 60 || (z
& 3) || y
< 0 || y
>= 4)
33 arr2
[y
+ z
] = arr2
[y
+ z
] + 16;
36 if (y
!= 0 || z
> 64 || z
<= 0)
39 arr2
[z
- 1] = arr2
[z
- 1] + 64;
42 if ((y
& 3) != 0 || y
< 64 || y
>= 96
43 || (z
& 127) != 0 || z
< 512 || z
>= 1024)
45 y
= (y
- 64) + (z
- 512) / 128;
47 arr2
[y
] = arr2
[y
] + 256;
50 if ((y
& 3) != 0 || y
<= 64 || y
> 96
51 || (z
& 127) != 1 || z
<= 513 || z
> 1025)
53 y
= (y
- 68) + (z
- 641) / 128;
55 arr2
[y
] = arr2
[y
] + 1024;
62 volatile int beg
, end
, step
, step2
;
63 volatile unsigned int begu
, endu
;
79 for (i
= 0; i
< 64; i
++)
80 #pragma omp task depend (iterator (j=i:i+1) , out : foo (1, j, 0)[0])
82 #pragma omp task depend (iterator (int k=beg:end:step,long int l=0:4:1) , inout : \
83 foo (2, k, l)[0], foo (3, l, k)[0]) private (i)
84 for (i
= 0; i
< 64; i
++)
89 #pragma omp task depend (iterator (int *p=&arr3[64]:&arr3[0]:-1) , inout : \
90 foo (4, 0, p - &arr3[0])[0]) depend (in : beg)
91 for (i
= 0; i
< 64; i
++)
96 #pragma omp task depend (iterator (unsigned n=begu:endu:step2, unsigned int o = 512: 1024U: (unsigned char) 128), inout : \
97 foo (5, n + 128, o)[0])
98 for (i
= 0; i
< 64; i
++)
103 #pragma omp task depend (iterator (int unsigned p=endu:begu:step,unsigned q= 1025U:513U:(signed char) -128), in : \
104 foo (6, p + 128, q)[0])
105 for (i
= 0; i
< 64; i
++)
111 for (m
= 0; m
< 64; m
++)
112 if (arr
[m
] != m
+ 15 || arr2
[m
] != (m
< 32 ? 1365 : 85))