aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite/libgomp.oacc-fortran/default-1.f90
blob: 6177de2a50a0d6bf81590f38305ac6d3ddb2d75a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
! { dg-do run }

program main
  implicit none
  real a, b
  real c
  !$acc declare create (c)

  a = 2.0
  b = 0.0

  !$acc parallel copy (a) create (b) default (none)
    b = a
    a = 1.0
    a = a + b
  !$acc end parallel

  if (a .ne. 3.0) STOP 1

  !$acc kernels copy (a) create (b) default (none)
    b = a
    a = 1.0
    a = a + b
  !$acc end kernels

  if (a .ne. 4.0) STOP 2

  !$acc parallel default (none) copy (a) create (b)
    b = a
    a = 1.0
    a = a + b
  !$acc end parallel

  if (a .ne. 5.0) STOP 3

  !$acc parallel default (none) copy (a)
    c = a
    a = 1.0
    a = a + c
  !$acc end parallel

  if (a .ne. 6.0) STOP 4

  !$acc data copy (a)
  !$acc parallel default (none)
    c = a
    a = 1.0
    a = a + c
  !$acc end parallel
  !$acc end data

  if (a .ne. 7.0) STOP 5

  ! The default (present) clause doesn't affect scalar variables; these will
  ! still get an implicit copy clause added.
  !$acc kernels default (present)
    c = a
    a = 1.0
    a = a + c
  !$acc end kernels

  if (a .ne. 8.0) STOP 6

end program main