1# Assembly-based regression-test driver for the SVE ACLE 2# Copyright (C) 2009-2020 Free Software Foundation, Inc. 3# 4# This file is part of GCC. 5# 6# GCC is free software; you can redistribute it and/or modify it 7# under the terms of the GNU General Public License as published by 8# the Free Software Foundation; either version 3, or (at your option) 9# any later version. 10# 11# GCC is distributed in the hope that it will be useful, but 12# WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14# General Public License for more details. 15# 16# You should have received a copy of the GNU General Public License 17# along with GCC; see the file COPYING3. If not see 18# <http://www.gnu.org/licenses/>. */ 19 20# GCC testsuite that uses the `dg.exp' driver. 21 22# Exit immediately if this isn't an AArch64 target. 23if { ![istarget aarch64*-*-*] } { 24 return 25} 26 27# Load support procs. 28load_lib g++-dg.exp 29 30# Initialize `dg'. 31dg-init 32 33# Force SVE if we're not testing it already. 34if { [check_effective_target_aarch64_sve2] } { 35 set sve2_flags "" 36} else { 37 set sve2_flags "-march=armv8.5-a+sve2" 38} 39 40set gcc_subdir [string replace $subdir 0 2 gcc] 41lappend extra_flags "-fno-ipa-icf" "-I$srcdir/$gcc_subdir/../../sve/acle/asm" 42 43global gcc_runtest_parallelize_limit_minor 44if { [info exists gcc_runtest_parallelize_limit_minor] } { 45 set old_limit_minor $gcc_runtest_parallelize_limit_minor 46 set gcc_runtest_parallelize_limit_minor 1 47} 48 49torture-init 50set-torture-options { 51 "-std=c++98 -O0 -g" 52 "-std=c++98 -O1 -g" 53 "-std=c++11 -O2 -g" 54 "-std=c++14 -O3 -g" 55 "-std=c++17 -Og -g" 56 "-std=c++2a -Os -g" 57 "-std=gnu++98 -O2 -fno-schedule-insns -DCHECK_ASM --save-temps" 58 "-std=gnu++11 -Ofast -g" 59 "-std=gnu++17 -O3 -g" 60 "-std=gnu++2a -O0 -g" 61} { 62 "-DTEST_FULL" 63 "-DTEST_OVERLOADS" 64} 65 66# Main loop. 67set files [glob -nocomplain $srcdir/$gcc_subdir/asm/*.c] 68set save-dg-do-what-default ${dg-do-what-default} 69if { [check_effective_target_aarch64_asm_sve_ok] 70 && [check_effective_target_aarch64_variant_pcs] } { 71 set dg-do-what-default assemble 72} else { 73 set dg-do-what-default compile 74} 75gcc-dg-runtest [lsort $files] "" "$sve2_flags $extra_flags" 76set dg-do-what-default ${save-dg-do-what-default} 77 78torture-finish 79 80if { [info exists gcc_runtest_parallelize_limit_minor] } { 81 set gcc_runtest_parallelize_limit_minor $old_limit_minor 82} 83 84# All done. 85dg-finish 86