view libgomp/testsuite/libgomp.fortran/target7.f90 @ 143:76e1cf5455ef

add cbc_gc test
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 19:24:05 +0900
parents 84e7813d76e9
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