# Copyright (C) 2014-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GCC; see the file COPYING3. If not see # . # GCC testsuite that uses the `dg.exp' driver. # Exit immediately if this isn't an ARM or AArch64 target. if {![istarget arm*-*-*] && ![istarget aarch64*-*-*]} then { return } # Load support procs. load_lib gcc-dg.exp # Initialize `dg'. load_lib c-torture.exp dg-init # The default action for a test is 'run'. Save current default. global dg-do-what-default set save-dg-do-what-default ${dg-do-what-default} # For ARM, make sure that we have a target compatible with NEON, and do # not attempt to run execution tests if the hardware doesn't support it. if {[istarget arm*-*-*]} then { if {![check_effective_target_arm_neon_ok]} then { return } if {![is-effective-target arm_neon_hw]} then { set dg-do-what-default compile } else { set dg-do-what-default run } } else { set dg-do-what-default run } torture-init set-torture-options $C_TORTURE_OPTIONS {{}} $LTO_TORTURE_OPTIONS # Make sure Neon flags are provided, if necessary. Use fp16 if we can. # Use fp16 arithmetic operations if the hardware supports it. if {[check_effective_target_arm_v8_2a_fp16_neon_hw]} then { set additional_flags [add_options_for_arm_v8_2a_fp16_neon ""] } elseif {[check_effective_target_arm_neon_fp16_ok]} then { set additional_flags [add_options_for_arm_neon_fp16 ""] } else { set additional_flags [add_options_for_arm_neon ""] } # Main loop. gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] \ "" ${additional_flags} # All done. set dg-do-what-default ${save-dg-do-what-default} torture-finish dg-finish