| ! { dg-additional-options "-ffree-line-length-none" } |
| subroutine foo (x, a) |
| implicit none |
| integer, value :: x |
| integer, contiguous :: a(0:) |
| external :: bar |
| integer :: i |
| |
| !$omp masked |
| call bar () |
| !$omp end masked |
| |
| !$omp masked filter (0) |
| call bar () |
| !$omp end masked |
| |
| !$omp masked filter (7) |
| call bar () |
| !$omp end masked |
| |
| !$omp masked filter (x) |
| call bar () |
| !$omp end masked |
| |
| !$omp masked taskloop simd filter (x) grainsize (12) simdlen (4) |
| do i = 0, 127 |
| a(i) = i |
| end do |
| !$omp end masked taskloop simd |
| |
| !$omp parallel masked filter (x) firstprivate (x) |
| call bar () |
| !$omp end parallel masked |
| |
| !$omp masked |
| !$omp masked filter (0) |
| !$omp masked filter (x) |
| !$omp end masked |
| !$omp end masked |
| !$omp end masked |
| end |
| |
| subroutine foobar (d, f, fi, p, s, g, i1, i2, l, ll, nth, ntm, pp, q, r, r2) |
| implicit none (type, external) |
| logical :: i1, i2, fi |
| integer :: i, d, f, p, s, g, l, ll, nth, ntm, pp, q, r, r2 |
| allocatable :: q |
| integer, save :: t |
| !$omp threadprivate (t) |
| |
| !$omp parallel masked & |
| !$omp& private (p) firstprivate (f) if (parallel: i2) default(shared) shared(s) reduction(+:r) & |
| !$omp& num_threads (nth) proc_bind(spread) copyin(t) filter (d) ! allocate (f) |
| ! |
| !$omp end parallel masked |
| |
| !$omp taskgroup task_reduction (+:r2) ! allocate (r2) |
| !$omp masked taskloop & |
| !$omp& private (p) firstprivate (f) lastprivate (l) shared (s) default(shared) grainsize (g) collapse(1) untied if(taskloop: i1) final(fi) mergeable priority (pp) & |
| !$omp& reduction(default, +:r) in_reduction(+:r2) filter (d) ! allocate (f) |
| do i = 0, 63 |
| ll = ll + 1 |
| end do |
| !$omp end masked taskloop |
| !$omp end taskgroup |
| |
| !$omp taskgroup task_reduction (+:r2) ! allocate (r2) |
| !$omp masked taskloop simd & |
| !$omp& private (p) firstprivate (f) lastprivate (l) shared (s) default(shared) grainsize (g) collapse(1) untied if(taskloop: i1) if(simd: i2) final(fi) mergeable priority (pp) & |
| !$omp& safelen(8) simdlen(4) linear(ll: 1) aligned(q: 32) reduction(default, +:r) in_reduction(+:r2) nontemporal(ntm) & |
| !$omp& order(concurrent) filter (d) ! allocate (f) |
| do i = 0, 63 |
| ll = ll + 1 |
| end do |
| !$omp end masked taskloop simd |
| !$omp end taskgroup |
| |
| !$omp parallel masked taskloop & |
| !$omp& private (p) firstprivate (f) lastprivate (l) shared (s) default(shared) grainsize (g) collapse(1) untied if(taskloop: i1) final(fi) mergeable priority (pp) & |
| !$omp& reduction(default, +:r) if (parallel: i2) num_threads (nth) proc_bind(spread) copyin(t) filter (d) ! allocate (f) |
| do i = 0, 63 |
| ll = ll + 1 |
| end do |
| !$omp end parallel masked taskloop |
| |
| !$omp parallel masked taskloop simd & |
| !$omp& private (p) firstprivate (f) lastprivate (l) shared (s) default(shared) grainsize (g) collapse(1) untied if(taskloop: i1) if(simd: i2) final(fi) mergeable priority (pp) & |
| !$omp& safelen(8) simdlen(4) linear(ll: 1) aligned(q: 32) reduction(default, +:r) nontemporal(ntm) if (parallel: i2) num_threads (nth) proc_bind(spread) copyin(t) & |
| !$omp& order(concurrent) filter (d) ! allocate (f) |
| do i = 0, 63 |
| ll = ll + 1 |
| end do |
| !$omp end parallel masked taskloop simd |
| end subroutine |