1! { dg-do run }
2! { dg-additional-options "-cpp" }
3!
4! TODO: Have to disable the acc_on_device builtin for we want to test
5! the libgomp library function?  The command line option
6! '-fno-builtin-acc_on_device' is valid for C/C++/ObjC/ObjC++ but not
7! for Fortran.
8
9      USE OPENACC
10      IMPLICIT NONE
11
12!Host.
13
14      IF (.NOT. ACC_ON_DEVICE (ACC_DEVICE_NONE)) STOP 1
15      IF (.NOT. ACC_ON_DEVICE (ACC_DEVICE_HOST)) STOP 2
16      IF (ACC_ON_DEVICE (ACC_DEVICE_NOT_HOST)) STOP 3
17      IF (ACC_ON_DEVICE (ACC_DEVICE_NVIDIA)) STOP 4
18
19
20!Host via offloading fallback mode.
21
22!$ACC PARALLEL IF(.FALSE.)
23      IF (.NOT. ACC_ON_DEVICE (ACC_DEVICE_NONE)) STOP 5
24      IF (.NOT. ACC_ON_DEVICE (ACC_DEVICE_HOST)) STOP 6
25      IF (ACC_ON_DEVICE (ACC_DEVICE_NOT_HOST)) STOP 7
26      IF (ACC_ON_DEVICE (ACC_DEVICE_NVIDIA)) STOP 8
27!$ACC END PARALLEL
28
29
30#if !ACC_DEVICE_TYPE_host
31
32! Offloaded.
33
34!$ACC PARALLEL
35      IF (ACC_ON_DEVICE (ACC_DEVICE_NONE)) STOP 9
36      IF (ACC_ON_DEVICE (ACC_DEVICE_HOST)) STOP 10
37      IF (.NOT. ACC_ON_DEVICE (ACC_DEVICE_NOT_HOST)) STOP 11
38#if ACC_DEVICE_TYPE_nvidia
39      IF (.NOT. ACC_ON_DEVICE (ACC_DEVICE_NVIDIA)) STOP 12
40#else
41      IF (ACC_ON_DEVICE (ACC_DEVICE_NVIDIA)) STOP 13
42#endif
43!$ACC END PARALLEL
44
45#endif
46
47      END
48