# Copyright (C) 1997-2018 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
# <http://www.gnu.org/licenses/>.

# GCC testsuite that uses the `dg.exp' driver.

# Load support procs.
load_lib gcc-dg.exp
load_lib clearcap.exp

# Set up flags used for tests that don't specify options.
global DEFAULT_VECTCFLAGS
set DEFAULT_VECTCFLAGS ""

# Set up a list of effective targets to run vector tests for all supported
# targets.
global EFFECTIVE_TARGETS
set EFFECTIVE_TARGETS ""

# If the target system supports vector instructions, the default action
# for a test is 'run', otherwise it's 'compile'.  Save current default.
# Executing vector instructions on a system without hardware vector support
# is also disabled by a call to check_vect, but disabling execution here is
# more efficient.
global dg-do-what-default
set save-dg-do-what-default ${dg-do-what-default}

# Skip these tests for targets that do not support generating vector
# code.  Set additional target-dependent vector flags, which can be
# overridden by using dg-options in individual tests.
if ![check_vect_support_and_set_flags] {
    return
}

# These flags are used for all targets.
lappend DEFAULT_VECTCFLAGS "-ftree-vectorize" "-fno-vect-cost-model" "-fno-common"

# Initialize `dg'.
dg-init
clearcap-init

global VEC_FLAGS
set VEC_FLAGS $DEFAULT_VECTCFLAGS

global O1_VECTCFLAGS
set O1_VECTCFLAGS $DEFAULT_VECTCFLAGS
lappend O1_VECTCFLAGS "-O1"
lappend O1_VECTCFLAGS "-fdump-tree-vect-details"

global O_VECTCFLAGS
set O_VECTCFLAGS $DEFAULT_VECTCFLAGS
lappend O_VECTCFLAGS "-O"
lappend O_VECTCFLAGS "-fdump-tree-vect-details"

lappend DEFAULT_VECTCFLAGS "-O2"

# Tests that should be run without generating dump info
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/nodump-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# "-O -fdump-tree-veclower2"
lappend VEC_FLAGS "-O" "-fdump-tree-veclower2"
et-dg-runtest dg-runtest [lsort [glob -nocomplain \
	$srcdir/$subdir/vec-scal-*.\[cS\]]] \
	"" $VEC_FLAGS

set VECT_SLP_CFLAGS $DEFAULT_VECTCFLAGS

lappend DEFAULT_VECTCFLAGS "-fdump-tree-vect-details" 
lappend VECT_SLP_CFLAGS "-fdump-tree-slp-details"

# Main loop.
set VECT_ADDITIONAL_FLAGS [list ""]
if { [check_effective_target_lto] } {
    lappend VECT_ADDITIONAL_FLAGS "-flto -ffat-lto-objects"
}
foreach flags $VECT_ADDITIONAL_FLAGS {
    et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/pr*.\[cS\]]] \
	$flags $DEFAULT_VECTCFLAGS
    et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/vect-*.\[cS\]]] \
	$flags $DEFAULT_VECTCFLAGS
    et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/slp-*.\[cS\]]] \
	$flags $DEFAULT_VECTCFLAGS
    et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/bb-slp*.\[cS\]]] \
	$flags $VECT_SLP_CFLAGS
}

#### Tests with special options
global SAVED_DEFAULT_VECTCFLAGS
set SAVED_DEFAULT_VECTCFLAGS $DEFAULT_VECTCFLAGS
set SAVED_VECT_SLP_CFLAGS $VECT_SLP_CFLAGS

# --param vect-max-version-for-alias-checks=0 tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "--param" "vect-max-version-for-alias-checks=0"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-vfa-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -ffast-math tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-ffast-math"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/fast-math-\[ipsv\]*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -ffast-math SLP tests
set VECT_SLP_CFLAGS $SAVED_VECT_SLP_CFLAGS
lappend VECT_SLP_CFLAGS "-ffast-math"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/fast-math-bb-slp-*.\[cS\]]] \
	"" $VECT_SLP_CFLAGS

# -fno-fast-math tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-fast-math"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-fast-math-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-math-errno tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-math-errno"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-math-errno-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fwrapv tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fwrapv"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/wrapv-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -ftrapv tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-ftrapv"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/trapv-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-tree-dce tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-tree-dce"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-tree-dce-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fsection-anchors tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fsection-anchors"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/section-anchors-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# alignment-sensitive -fsection-anchors tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fsection-anchors" \
	"-fdump-ipa-increase_alignment-details"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/aligned-section-anchors-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-section-anchors tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-section-anchors"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-section-anchors-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -funswitch-loops tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-funswitch-loops"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/unswitch-loops-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-trapping-math tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-trapping-math"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-trapping-math-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-tree-scev-cprop
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-tree-scev-cprop"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-scevccp-vect-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-tree-scev-cprop
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-tree-scev-cprop"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-scevccp-pr*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-tree-scev-cprop
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-tree-scev-cprop"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-scevccp-outer-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-tree-scev-cprop -fno-tree-reassoc
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-tree-scev-cprop" "-fno-tree-reassoc"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-scevccp-noreassoc-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-tree-scev-cprop
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-tree-scev-cprop"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-scevccp-slp-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-tree-dominator-opts
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-tree-dominator-opts"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-tree-dom-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-tree-pre
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-tree-pre"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-tree-pre-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# With -Os
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-Os"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/Os-vect-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# With --param ggc-min-expand=0 --param ggc-min-heapsize=0 
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "--param" "ggc-min-expand=0" "--param" "ggc-min-heapsize=0"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/ggc-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# With -O3.
# Don't allow IPA cloning, because it throws our counts out of whack.
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-O3" "-fno-ipa-cp-clone"
if  [istarget "spu-*-*"] {
  lappend DEFAULT_VECTCFLAGS "-funroll-loops"
}

et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/O3-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# With -O1
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/O1-*.\[cS\]]] \
	"" $O1_VECTCFLAGS

# With -O
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/O-*.\[cS\]]] \
	"" $O_VECTCFLAGS

# -fno-tree-reassoc
set VECT_SLP_CFLAGS $SAVED_VECT_SLP_CFLAGS
lappend VECT_SLP_CFLAGS "-fno-tree-reassoc"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-tree-reassoc-bb-slp-*.\[cS\]]] \
	"" $VECT_SLP_CFLAGS

# -fno-tree-fre
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-tree-fre"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-tree-fre-*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-tree-fre -fno-tree-pre
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-tree-fre" "-fno-tree-pre"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-fre-pre*.\[cS\]]] \
	"" $DEFAULT_VECTCFLAGS

# -fno-tree-sra
set VECT_SLP_CFLAGS $SAVED_VECT_SLP_CFLAGS
lappend VECT_SLP_CFLAGS "-fno-tree-sra"
et-dg-runtest dg-runtest [lsort \
	[glob -nocomplain $srcdir/$subdir/no-tree-sra-bb-slp-*.\[cS\]]] \
	"" $VECT_SLP_CFLAGS


# Clean up.
set dg-do-what-default ${save-dg-do-what-default}

# All done.
clearcap-finish
dg-finish
