| # Assembly-based regression-test driver for the SVE ACLE |
| # Copyright (C) 2009-2021 Free Software Foundation, Inc. |
| # |
| # This file is part of GCC. |
| # |
| # GCC 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, or (at your option) |
| # any later version. |
| # |
| # GCC 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 |
| # <http://www.gnu.org/licenses/>. */ |
| |
| # GCC testsuite that uses the `dg.exp' driver. |
| |
| # Exit immediately if this isn't an AArch64 target. |
| if { ![istarget aarch64*-*-*] } { |
| return |
| } |
| |
| # Load support procs. |
| load_lib g++-dg.exp |
| |
| # Initialize `dg'. |
| dg-init |
| |
| # Force SVE if we're not testing it already. |
| if { [check_effective_target_aarch64_sve] } { |
| set sve_flags "" |
| } else { |
| set sve_flags "-march=armv8.2-a+sve" |
| } |
| |
| # Turn off any codegen tweaks by default that may affect expected assembly. |
| # Tests relying on those should turn them on explicitly. |
| set sve_flags "$sve_flags -mtune=generic -moverride=tune=none" |
| |
| global gcc_runtest_parallelize_limit_minor |
| if { [info exists gcc_runtest_parallelize_limit_minor] } { |
| set old_limit_minor $gcc_runtest_parallelize_limit_minor |
| set gcc_runtest_parallelize_limit_minor 1 |
| } |
| |
| torture-init |
| set-torture-options { |
| "-std=c++98 -O0 -g" |
| "-std=c++98 -O1 -g" |
| "-std=c++11 -O2 -g" |
| "-std=c++14 -O3 -g" |
| "-std=c++17 -Og -g" |
| "-std=c++2a -Os -g" |
| "-std=gnu++98 -O2 -fno-schedule-insns -DCHECK_ASM --save-temps" |
| "-std=gnu++11 -Ofast -g" |
| "-std=gnu++17 -O3 -g" |
| "-std=gnu++2a -O0 -g" |
| } { |
| "-DTEST_FULL" |
| "-DTEST_OVERLOADS" |
| } |
| |
| # Main loop. |
| set gcc_subdir [string replace $subdir 0 2 gcc] |
| set files [glob -nocomplain $srcdir/$gcc_subdir/asm/*.c] |
| set save-dg-do-what-default ${dg-do-what-default} |
| if { [check_effective_target_aarch64_asm_sve_ok] |
| && [check_effective_target_aarch64_variant_pcs] } { |
| set dg-do-what-default assemble |
| } else { |
| set dg-do-what-default compile |
| } |
| gcc-dg-runtest [lsort $files] "" "$sve_flags -fno-ipa-icf" |
| set dg-do-what-default ${save-dg-do-what-default} |
| |
| torture-finish |
| |
| if { [info exists gcc_runtest_parallelize_limit_minor] } { |
| set gcc_runtest_parallelize_limit_minor $old_limit_minor |
| } |
| |
| # All done. |
| dg-finish |