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
57 !$omp do simd linear(k : m + 1) reduction(+: s) lastprivate(u, v) &
58 !$omp & schedule (static, 32)
68 if (i
.ne
.1025) call abort
69 if (u
.ne
.(36 + 4 + 3 * 1023).or
.v
.ne
.(36 + 4 + 3 * 1024)) call abort
73 integer :: p(1024), u
, v
, i
, s
, bar
76 !$omp do simd linear(k : m + 1) reduction(+: s) lastprivate(u, v) &
77 !$omp & schedule (dynamic, 32)
87 if (i
.ne
.1025) call abort
88 if (u
.ne
.(36 + 4 + 3 * 1023).or
.v
.ne
.(36 + 4 + 3 * 1024)) call abort
92 integer :: p(1024), u
, v
, i
, s
, baz
95 !$omp do simd linear(k : m + 1) reduction(+: s) lastprivate(u, v) &
96 !$omp & linear(i : t) schedule (static, 8)
105 if (i
.ne
.1025) call abort
106 if (u
.ne
.(36 + 4 + 3 * 1023).or
.v
.ne
.(36 + 4 + 3 * 1024)) call abort