1#   Copyright (C) 2008-2020 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 gfortran-dg.exp
21
22if ![check_effective_target_fgraphite] {
23  return
24}
25
26# Remove VALUE from LIST_VARIABLE.
27proc lremove {list_variable value} {
28    upvar 1 $list_variable var
29    set idx [lsearch -exact $var $value]
30    set var [lreplace $var $idx $idx]
31}
32
33# The default action for a test is 'compile'.  Save current default.
34global dg-do-what-default
35set save-dg-do-what-default ${dg-do-what-default}
36
37# Initialize `dg'.
38dg-init
39
40set wait_to_run_files [lsort [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ]
41set id_files          [lsort [glob -nocomplain $srcdir/$subdir/id-*.\[fF\]{,90,95,03,08} ] ]
42set opt_files         [lsort [glob -nocomplain $srcdir/$subdir/interchange-*.\[fF\]{,90,95,03,08} \
43					       $srcdir/$subdir/block-*.\[fF\]{,90,95,03,08} ] ]
44set scop_files        [lsort [glob -nocomplain $srcdir/$subdir/scop-*.\[fF\]{,90,95,03,08} ] ]
45set run_id_files      [lsort [glob -nocomplain $srcdir/$subdir/run-id-*.\[fF\]{,90,95,03,08} ] ]
46set vect_files        [lsort [glob -nocomplain $srcdir/$subdir/vect-*.\[fF\]{,90,95,03,08} ] ]
47
48# Tests to be compiled.
49set dg-do-what-default compile
50gfortran-dg-runtest $scop_files        "" "-O2 -fgraphite -fdump-tree-graphite-all"
51gfortran-dg-runtest $id_files          "" "-O2 -fgraphite-identity -ffast-math"
52gfortran-dg-runtest $opt_files         "" "-O2 -floop-nest-optimize -ffast-math -fdump-tree-graphite-all"
53
54# Set up a list of effective targets to run vector tests for all supported
55# targets.
56global EFFECTIVE_TARGETS
57set EFFECTIVE_TARGETS ""
58
59# Vectorizer tests, to be run or compiled, depending on target capabilities.
60if [check_vect_support_and_set_flags] {
61   et-dg-runtest gfortran-dg-runtest $vect_files "" \
62      "-O2 -fgraphite-identity -ftree-vectorize -fno-vect-cost-model -fdump-tree-vect-details -ffast-math"
63}
64
65# Tests to be run.
66set dg-do-what-default run
67gfortran-dg-runtest $run_id_files      "" "-O2 -fgraphite-identity"
68
69# The default action for the rest of the files is 'compile'.
70set dg-do-what-default compile
71foreach f $id_files          {lremove wait_to_run_files $f}
72foreach f $opt_files         {lremove wait_to_run_files $f}
73foreach f $scop_files        {lremove wait_to_run_files $f}
74foreach f $run_id_files      {lremove wait_to_run_files $f}
75foreach f $vect_files        {lremove wait_to_run_files $f}
76gfortran-dg-runtest $wait_to_run_files "" ""
77
78# Clean up.
79set dg-do-what-default ${save-dg-do-what-default}
80
81# All done.
82dg-finish
83