| ! { dg-additional-options "-cpp" } |
| ! TODO: Have to disable the acc_on_device builtin for we want to test the |
| ! libgomp library function? The command line option |
| ! '-fno-builtin-acc_on_device' is valid for C/C++/ObjC/ObjC++ but not for |
| ! Fortran. |
| |
| use openacc |
| implicit none |
| |
| ! Host. |
| |
| if (.not. acc_on_device (acc_device_none)) call abort |
| if (.not. acc_on_device (acc_device_host)) call abort |
| if (acc_on_device (acc_device_host_nonshm)) call abort |
| if (acc_on_device (acc_device_not_host)) call abort |
| if (acc_on_device (acc_device_nvidia)) call abort |
| |
| |
| ! Host via offloading fallback mode. |
| |
| !$acc parallel if(.false.) |
| if (.not. acc_on_device (acc_device_none)) call abort |
| if (.not. acc_on_device (acc_device_host)) call abort |
| if (acc_on_device (acc_device_host_nonshm)) call abort |
| if (acc_on_device (acc_device_not_host)) call abort |
| if (acc_on_device (acc_device_nvidia)) call abort |
| !$acc end parallel |
| |
| |
| #if !ACC_DEVICE_TYPE_host |
| |
| ! Offloaded. |
| |
| !$acc parallel |
| if (acc_on_device (acc_device_none)) call abort |
| if (acc_on_device (acc_device_host)) call abort |
| #if ACC_DEVICE_TYPE_host_nonshm |
| if (.not. acc_on_device (acc_device_host_nonshm)) call abort |
| #else |
| if (acc_on_device (acc_device_host_nonshm)) call abort |
| #endif |
| if (.not. acc_on_device (acc_device_not_host)) call abort |
| #if ACC_DEVICE_TYPE_nvidia |
| if (.not. acc_on_device (acc_device_nvidia)) call abort |
| #else |
| if (acc_on_device (acc_device_nvidia)) call abort |
| #endif |
| !$acc end parallel |
| |
| #endif |
| |
| end |