# This whole file adapted from libgomp.c/c.exp. if [info exists lang_library_path] then { unset lang_library_path unset lang_link_flags } if [info exists lang_test_file] then { unset lang_test_file } if [info exists lang_include_flags] then { unset lang_include_flags } load_lib libgomp-dg.exp load_gcc_lib gcc-dg.exp # If a testcase doesn't have special options, use these. if ![info exists DEFAULT_CFLAGS] then { set DEFAULT_CFLAGS "-O2" } # Initialize dg. dg-init # Turn on OpenACC. lappend ALWAYS_CFLAGS "additional_flags=-fopenacc" # Gather a list of all tests. set tests [lsort [concat \ [find $srcdir/$subdir *.c] \ [find $srcdir/$subdir/../libgomp.oacc-c-c++-common *.c]]] set ld_library_path $always_ld_library_path append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST] set_ld_library_path_env_vars # Test OpenACC with available accelerators. set SAVE_ALWAYS_CFLAGS "$ALWAYS_CFLAGS" foreach offload_target_openacc $offload_targets_s_openacc { set ALWAYS_CFLAGS "$SAVE_ALWAYS_CFLAGS" set tagopt "-DACC_DEVICE_TYPE_$offload_target_openacc=1" switch $offload_target_openacc { host { set acc_mem_shared 1 } host_nonshm { set acc_mem_shared 0 } nvidia { if { ![check_effective_target_openacc_nvidia_accel_present] } { # Don't bother; execution testing is going to FAIL. untested "$subdir $offload_target_openacc offloading" continue } # Copy ptx file (TEMPORARY) remote_download host $srcdir/libgomp.oacc-c-c++-common/subr.ptx # Where timer.h lives lappend ALWAYS_CFLAGS "additional_flags=-I${srcdir}/libgomp.oacc-c-c++-common" set acc_mem_shared 0 } default { set acc_mem_shared 0 } } set tagopt "$tagopt -DACC_MEM_SHARED=$acc_mem_shared" setenv ACC_DEVICE_TYPE $offload_target_openacc dg-runtest $tests "$tagopt" $DEFAULT_CFLAGS } # All done. dg-finish