3 ! { dg-options "-O2 -fopenmp" }
5 integer :: u(1024), v(1024), w(1024), a
, b
, c
, d
, e
, a1
, b1
, a2
, b2
, d1
, d2
9 !$omp parallel do simd default(none) firstprivate (a, b) shared(u, v, w)
13 if (d
.ne
. 1025) call abort
16 !$omp parallel do simd default(none) firstprivate (a, b) shared(u, v, w) &
17 !$omp& linear(d) linear(c:5) lastprivate(e)
23 if (d
.ne
. 1025 .or
. c
.ne
. (17 + 5 * 1024)) call abort
24 if (e
.ne
. (17 + 5 * 1024)) call abort
31 !$omp parallel do simd default(none) firstprivate (a1, b1, a2, b2) &
32 !$omp& shared(u, v, w) lastprivate(d1, d2) collapse(2)
35 u(d1
* 32 + d2
+ 1) = v(d1
* 32 + d2
+ 1) + w(d1
* 32 + d2
+ 1)
38 if (d1
.ne
. 32 .or
. d2
.ne
. 32) call abort
41 !$omp parallel do simd default(none) firstprivate (a1, b1, a2, b2) &
42 !$omp& shared(u, v, w) collapse(2)
45 u(d1
* 32 + d2
+ 1) = v(d1
* 32 + d2
+ 1) + w(d1
* 32 + d2
+ 1)
48 if (d1
.ne
. 32 .or
. d2
.ne
. 32) call abort