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
))) stop 1
17 if (i
.lt
.52.and
.modulo (i
- 52, 39).ne
.0) then
18 if (b(i
).ne
.(modulo (i
- 52, 39) - 39)) stop 2
20 if (b(i
).ne
.(modulo (i
- 52, 39))) stop 3
24 if (k
.ne
.(4 + 3 * 1024).or
.s
.ne
.1596127) stop 4
30 if (a(i
).ne
.((i
- 513) * b(i
))) stop 5
31 if (i
.lt
.52.and
.modulo (i
- 52, 39).ne
.0) then
32 if (b(i
).ne
.(modulo (i
- 52, 39) - 39)) stop 6
34 if (b(i
).ne
.(modulo (i
- 52, 39))) stop 7
38 if (k
.ne
.(4 + 3 * 1024).or
.s
.ne
.1596127) stop 8
44 if (a(i
).ne
.((i
- 513) * b(i
))) stop 9
45 if (i
.lt
.52.and
.modulo (i
- 52, 39).ne
.0) then
46 if (b(i
).ne
.(modulo (i
- 52, 39) - 39)) stop 10
48 if (b(i
).ne
.(modulo (i
- 52, 39))) stop 11
51 if (k
.ne
.(4 + 3 * 1024).or
.s
.ne
.1596127) stop 12
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) stop 13
67 if (u
.ne
.(36 + 4 + 3 * 1023).or
.v
.ne
.(36 + 4 + 3 * 1024)) stop 14
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) stop 15
84 if (u
.ne
.(36 + 4 + 3 * 1023).or
.v
.ne
.(36 + 4 + 3 * 1024)) stop 16
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) stop 17
100 if (u
.ne
.(36 + 4 + 3 * 1023).or
.v
.ne
.(36 + 4 + 3 * 1024)) stop 18