tree-optimization/113385 - wrong loop father with early exit vectorization
[official-gcc.git] / gcc / testsuite / gfortran.dg / gomp / masked-combined-1.f90
blob23ffb084ee1df6d9703e00e2da7dad4cf348d04d
1 subroutine foo (a, f)
2 implicit none (type, external)
3 interface
4 subroutine bar (x)
5 integer :: x
6 end subroutine
7 end interface
9 integer, value :: f
10 integer, contiguous :: a(0:)
11 integer :: i, j, k, u, v, w, x, y, z
13 !$omp parallel masked default(none) private (k) filter (f) firstprivate (f)
14 call bar (k)
15 !$omp end parallel masked
17 !$omp parallel masked default(none) private (k)
18 call bar (k)
19 !$omp end parallel masked
21 !$omp parallel default(none) firstprivate(a, f) shared(x, y, z)
22 !$omp masked taskloop reduction (+:x) default(none) firstprivate(a) filter (f)
23 do i = 0, 63
24 x = x + a(i)
25 end do
26 !$omp end masked taskloop
27 !$omp masked taskloop simd reduction (+:y) default(none) firstprivate(a) private (i) filter (f)
28 do i = 0, 63
29 y = y + a(i)
30 end do
31 !$omp end masked taskloop simd
32 !$omp masked taskloop simd reduction (+:y) default(none) firstprivate(a) private (i)
33 do i = 0, 63
34 y = y + a(i)
35 end do
36 !$omp end masked taskloop simd
37 !$omp masked taskloop simd collapse(2) reduction (+:z) default(none) firstprivate(a) private (i, j) filter (f)
38 do j = 0, 0
39 do i = 0, 63
40 z = z + a(i)
41 end do
42 end do
43 !$omp end masked taskloop simd
44 !$omp end parallel
46 !$omp parallel masked taskloop reduction (+:u) default(none) firstprivate(a, f) filter (f)
47 do i = 0, 63
48 u = u + a(i)
49 end do
50 !$omp end parallel masked taskloop
52 !$omp parallel masked taskloop simd reduction (+:v) default(none) firstprivate(a, f) filter (f)
53 do i = 0, 63
54 v = v + a(i)
55 end do
56 !$omp end parallel masked taskloop simd
58 !$omp parallel masked taskloop simd collapse(2) reduction (+:w) default(none) firstprivate(a, f) filter (f)
59 do j = 0, 0
60 do i = 0, 63
61 w = w + a(i)
62 end do
63 end do
64 !$omp end parallel masked taskloop simd
65 end