# Copyright (C) 1997-2021 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-tree-loop-distribute-patterns" "-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"

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
