| ! { dg-do link } |
| |
| ! Check whether 'acc_on_device()' is properly compile-time optimized. */ |
| |
| ! { dg-additional-options "-fdump-tree-gimple -fdump-tree-optimized" } |
| ! { dg-additional-options -foffload-options=-fdump-tree-optimized { target { offload_target_nvptx || offload_target_amdgcn } } } |
| |
| ! { dg-final { scan-tree-dump-times "acc_on_device" 1 "gimple" } } |
| |
| ! { dg-final { scan-tree-dump-not "acc_on_device" "optimized" } } |
| |
| ! { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-tree-dump-not "acc_on_device" "optimized" { target offload_target_amdgcn } } } |
| ! { dg-final { only_for_offload_target nvptx-none scan-offload-tree-dump-not "acc_on_device" "optimized" { target offload_target_nvptx } } } |
| |
| |
| module m |
| integer :: xxxx |
| !$acc declare device_resident(xxxx) |
| contains |
| subroutine set_var |
| !$acc routine |
| use openacc |
| implicit none (type, external) |
| if (acc_on_device(acc_device_host)) then |
| xxxx = 1234 |
| else |
| xxxx = 4242 |
| end if |
| end |
| end module m |
| |
| |
| program main |
| use m |
| call set_var |
| !$acc serial |
| ! { dg-warning "using 'vector_length \\(32\\)', ignoring 1" "" { target openacc_nvidia_accel_selected } .-1 } |
| call set_var |
| !$acc end serial |
| end |