blob: 003821289a6f86b4bf76d5bf17940d73e0652eda [file] [log] [blame]
! { dg-do compile }
! { dg-additional-options "-fdump-tree-omplower" }
module combined_if
implicit none
integer, parameter :: N = 100
integer, parameter :: LIMIT = 60
integer :: i, j
integer, dimension(N) :: a = (/ (i, i = 1,N) /)
contains
subroutine test_parallel_loop_simd
do j = 1, N
!$omp parallel do simd if(j .lt. LIMIT)
do i = 1, N
a(i) = a(i) + 1
end do
end do
end subroutine
subroutine test_target_parallel
do j = 1, N
!$omp target parallel if(j .lt. LIMIT) map(tofrom: a(1:N))
do i = 1, N
a(i) = a(i) + 1
end do
!$omp end target parallel
end do
end subroutine
subroutine test_target_parallel_loop
do j = 1, N
!$omp target parallel do if(j .lt. LIMIT) map(tofrom: a(1:N))
do i = 1, N
a(i) = a(i) + 1
end do
end do
end subroutine
subroutine test_target_parallel_loop_simd
do j = 1, N
!$omp target parallel do simd if(j .lt. LIMIT) map(tofrom: a(1:N))
do i = 1, N
a(i) = a(i) + 1
end do
end do
end subroutine
subroutine test_target_simd
do j = 1, N
!$omp target simd if(j .lt. LIMIT) map(tofrom: a(1:N))
do i = 1, N
a(i) = a(i) + 1
end do
end do
end subroutine
subroutine test_target_teams
do j = 1, N
!$omp target teams if(j .lt. LIMIT) map(tofrom: a(1:N))
do i = 1, N
a(i) = a(i) + 1
end do
!$omp end target teams
end do
end subroutine
subroutine test_target_teams_distribute
do j = 1, N
!$omp target teams distribute if(j .lt. LIMIT) map(tofrom: a(1:N))
do i = 1, N
a(i) = a(i) + 1
end do
end do
end subroutine
subroutine test_target_teams_distibute_simd
do j = 1, N
!$omp target teams distribute simd if(j .lt. LIMIT) map(tofrom: a(1:N))
do i = 1, N
a(i) = a(i) + 1
end do
end do
end subroutine
subroutine test_target_teams_distribute_parallel_loop
do j = 1, N
!$omp target teams distribute parallel do if(j .lt. LIMIT) map(tofrom: a(1:N))
do i = 1, N
a(i) = a(i) + 1
end do
end do
end subroutine
subroutine test_target_teams_distribute_parallel_loop_simd
do j = 1, N
!$omp target teams distribute parallel do simd if(j .lt. LIMIT) map(tofrom: a(1:N))
do i = 1, N
a(i) = a(i) + 1
end do
end do
end subroutine
end module
! { dg-final { scan-tree-dump-times "(?n)#pragma omp target.* if\\(" 9 "omplower" } }
! { dg-final { scan-tree-dump-times "(?n)#pragma omp simd.* if\\(" 5 "omplower" { target { ! offload_nvptx } } } }
! { dg-final { scan-tree-dump-times "(?n)#pragma omp simd.* if\\(" 9 "omplower" { target { offload_nvptx } } } }
! { dg-final { scan-tree-dump-times "(?n)#pragma omp parallel.* if\\(" 6 "omplower" } }