view libgomp/testsuite/libgomp.fortran/target7.f90 @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
line wrap: on
line source

! { dg-do run }

  interface
    real function foo (x)
      !$omp declare target
      real, intent(in) :: x
    end function foo
  end interface
  integer, parameter :: n = 1000
  integer, parameter :: c = 100
  integer :: i, j
  real :: a(n)
  do i = 1, n
    a(i) = i
  end do
  !$omp parallel
  !$omp single
  do i = 1, n, c
    !$omp task shared(a)
      !$omp target map(a(i:i+c-1))
        !$omp parallel do
          do j = i, i + c - 1
            a(j) = foo (a(j))
          end do
      !$omp end target
    !$omp end task
  end do
  !$omp end single
  !$omp end parallel
  do i = 1, n
    if (a(i) /= i + 1) STOP 1
  end do
end
real function foo (x)
  !$omp declare target
  real, intent(in) :: x
  foo = x + 1
end function foo