| /* Disable the acc_on_device builtin; we want to test the libgomp library |
| function. */ |
| /* { dg-additional-options "-fno-builtin-acc_on_device" } */ |
| |
| #include <stdlib.h> |
| #include <openacc.h> |
| |
| int |
| main (int argc, char *argv[]) |
| { |
| /* Host. */ |
| |
| { |
| if (!acc_on_device (acc_device_none)) |
| abort (); |
| if (!acc_on_device (acc_device_host)) |
| abort (); |
| if (acc_on_device (acc_device_host_nonshm)) |
| abort (); |
| if (acc_on_device (acc_device_not_host)) |
| abort (); |
| if (acc_on_device (acc_device_nvidia)) |
| abort (); |
| } |
| |
| |
| /* Host via offloading fallback mode. */ |
| |
| #pragma acc parallel if(0) |
| { |
| if (!acc_on_device (acc_device_none)) |
| abort (); |
| if (!acc_on_device (acc_device_host)) |
| abort (); |
| if (acc_on_device (acc_device_host_nonshm)) |
| abort (); |
| if (acc_on_device (acc_device_not_host)) |
| abort (); |
| if (acc_on_device (acc_device_nvidia)) |
| abort (); |
| } |
| |
| |
| #if !ACC_DEVICE_TYPE_host |
| |
| /* Offloaded. */ |
| |
| #pragma acc parallel |
| { |
| if (acc_on_device (acc_device_none)) |
| abort (); |
| if (acc_on_device (acc_device_host)) |
| abort (); |
| #if ACC_DEVICE_TYPE_host_nonshm |
| if (!acc_on_device (acc_device_host_nonshm)) |
| abort (); |
| #else |
| if (acc_on_device (acc_device_host_nonshm)) |
| abort (); |
| #endif |
| if (!acc_on_device (acc_device_not_host)) |
| abort (); |
| #if ACC_DEVICE_TYPE_nvidia |
| if (!acc_on_device (acc_device_nvidia)) |
| abort (); |
| #else |
| if (acc_on_device (acc_device_nvidia)) |
| abort (); |
| #endif |
| } |
| |
| #endif |
| |
| return 0; |
| } |