2 ! { dg-additional-options "-msse2" { target sse2_runtime } }
3 ! { dg-additional-options "-mavx" { target avx_runtime } }
5 integer :: a(1024), b(1024), k
, m
, i
, s
, t
11 b(i
) = modulo (i
- 52, 39)
12 if (i
.lt
.52.and
.b(i
).ne
.0) b(i
) = b(i
) - 39
16 if (a(i
).ne
.((i
- 513) * b(i
))) call abort
17 if (i
.lt
.52.and
.modulo (i
- 52, 39).ne
.0) then
18 if (b(i
).ne
.(modulo (i
- 52, 39) - 39)) call abort
20 if (b(i
).ne
.(modulo (i
- 52, 39))) call abort
24 if (k
.ne
.(4 + 3 * 1024).or
.s
.ne
.1596127) call abort
30 if (a(i
).ne
.((i
- 513) * b(i
))) call abort
31 if (i
.lt
.52.and
.modulo (i
- 52, 39).ne
.0) then
32 if (b(i
).ne
.(modulo (i
- 52, 39) - 39)) call abort
34 if (b(i
).ne
.(modulo (i
- 52, 39))) call abort
38 if (k
.ne
.(4 + 3 * 1024).or
.s
.ne
.1596127) call abort
44 if (a(i
).ne
.((i
- 513) * b(i
))) call abort
45 if (i
.lt
.52.and
.modulo (i
- 52, 39).ne
.0) then
46 if (b(i
).ne
.(modulo (i
- 52, 39) - 39)) call abort
48 if (b(i
).ne
.(modulo (i
- 52, 39))) call abort
51 if (k
.ne
.(4 + 3 * 1024).or
.s
.ne
.1596127) call abort
54 integer :: p(1024), u
, v
, i
, s
, foo
56 !$omp parallel do simd linear(k : m + 1) reduction(+: s) &
57 !$omp & lastprivate(u, v) schedule (static, 32)
65 !$omp end parallel do simd
66 if (i
.ne
.1025) call abort
67 if (u
.ne
.(36 + 4 + 3 * 1023).or
.v
.ne
.(36 + 4 + 3 * 1024)) call abort
71 integer :: p(1024), u
, v
, i
, s
, bar
73 !$omp parallel do simd linear(k : m + 1) reduction(+: s) &
74 !$omp & lastprivate(u, v) schedule (dynamic, 32)
82 !$omp endparalleldosimd
83 if (i
.ne
.1025) call abort
84 if (u
.ne
.(36 + 4 + 3 * 1023).or
.v
.ne
.(36 + 4 + 3 * 1024)) call abort
88 integer :: p(1024), u
, v
, i
, s
, baz
90 !$omp parallel do simd linear(k : m + 1) reduction(+: s) &
91 !$omp & lastprivate(u, v) linear(i : t) schedule (static, 8)
99 if (i
.ne
.1025) call abort
100 if (u
.ne
.(36 + 4 + 3 * 1023).or
.v
.ne
.(36 + 4 + 3 * 1024)) call abort