Add support for ARMv8-R architecture
[official-gcc.git] / libgomp / testsuite / libgomp.fortran / examples-4 / declare_target-1.f90
blobdcd2c4a0c25ad32e6ca3688381ac4e6f24bd03fe
1 ! { dg-do run }
3 module e_53_1_mod
4 integer :: THRESHOLD = 20
5 contains
6 integer recursive function fib (n) result (f)
7 !$omp declare target
8 integer :: n
9 if (n <= 0) then
10 f = 0
11 else if (n == 1) then
12 f = 1
13 else
14 f = fib (n - 1) + fib (n - 2)
15 end if
16 end function
18 integer function fib_wrapper (n)
19 integer :: x
20 !$omp target map(to: n) map(from: x) if(n > THRESHOLD)
21 x = fib (n)
22 !$omp end target
23 fib_wrapper = x
24 end function
25 end module
27 program e_53_1
28 use e_53_1_mod, only : fib, fib_wrapper
29 if (fib (15) /= fib_wrapper (15)) call abort
30 if (fib (25) /= fib_wrapper (25)) call abort
31 end program