| ! { dg-do compile } |
| ! { dg-options "-O2 -fopenmp -fdump-tree-ompexp" } |
| ! { dg-final { scan-tree-dump-times "GOMP_loop_start " 3 "ompexp" } } |
| ! { dg-final { scan-tree-dump-times "GOMP_loop_end_nowait " 3 "ompexp" } } |
| |
| module m |
| logical r |
| end module m |
| |
| subroutine foo (a) |
| use m |
| implicit none |
| logical a(:) |
| integer :: i |
| !$omp do lastprivate(conditional: r) |
| do i = 1, 64 |
| if (a(i)) & |
| r = a(i) |
| end do |
| !$omp end do nowait |
| end |
| |
| subroutine bar (a) |
| use m |
| implicit none |
| logical a(:) |
| integer :: i |
| !$omp do lastprivate(conditional: r) schedule (static, 4) |
| do i = 1, 64 |
| if (a(i)) & |
| r = a(i) |
| end do |
| !$omp end do nowait |
| end |
| |
| subroutine baz (a) |
| use m |
| implicit none |
| logical a(:) |
| integer :: i |
| !$omp do lastprivate(conditional: r) schedule (runtime) |
| do i = 1, 64 |
| if (a(i)) & |
| r = a(i) |
| end do |
| !$omp end do nowait |
| end |