1# Copyright (C) 1997-2016 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with GCC; see the file COPYING3. If not see 15# <http://www.gnu.org/licenses/>. 16 17# GCC testsuite that uses the `dg.exp' driver. 18 19# Load support procs. 20load_lib gcc-dg.exp 21 22# Exit immediately if this isn't a x86 target. 23if { ![istarget i?86*-*-*] && ![istarget x86_64-*-*] } then { 24 return 25} 26 27# Set up flags used for tests that don't specify options. 28set DEFAULT_VECTCFLAGS "" 29 30# These flags are used for all targets. 31lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize" "-fvect-cost-model=dynamic" 32 33# If the target system supports vector instructions, the default action 34# for a test is 'run', otherwise it's 'compile'. Save current default. 35# Executing vector instructions on a system without hardware vector support 36# is also disabled by a call to check_vect, but disabling execution here is 37# more efficient. 38global dg-do-what-default 39set save-dg-do-what-default ${dg-do-what-default} 40 41if { ![check_effective_target_sse2] } then { 42 return 43} 44lappend DEFAULT_VECTCFLAGS "-msse2" 45if [check_sse2_hw_available] { 46 set dg-do-what-default run 47} else { 48 set dg-do-what-default compile 49} 50 51# Initialize `dg'. 52dg-init 53 54lappend DEFAULT_VECTCFLAGS "-fdump-tree-vect-details" 55 56# Main loop. 57dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/costmodel-vect-*.\[cS\]]] \ 58 "" $DEFAULT_VECTCFLAGS 59 60#### Tests with special options 61global SAVED_DEFAULT_VECTCFLAGS 62set SAVED_DEFAULT_VECTCFLAGS $DEFAULT_VECTCFLAGS 63 64# -ffast-math tests 65set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS 66lappend DEFAULT_VECTCFLAGS "-ffast-math" 67dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/costmodel-fast-math-vect*.\[cS\]]] \ 68 "" $DEFAULT_VECTCFLAGS 69 70# Clean up. 71set dg-do-what-default ${save-dg-do-what-default} 72 73# All done. 74dg-finish 75