testsuite: Unbork multilib setups using -march flags (RISC-V)
RISC-V multilib testing is currently busted with follow splat all over:
| Schedule of variations:
| riscv-sim/-march=rv64imafdc/-mabi=lp64d/-mcmodel=medlow
| riscv-sim/-march=rv32imafdc/-mabi=ilp32d/-mcmodel=medlow
| riscv-sim/-march=rv32imac/-mabi=ilp32/-mcmodel=medlow
| riscv-sim/-march=rv64imac/-mabi=lp64/-mcmodel=medlow
...
...
| ERROR: tcl error code NONE
| ERROR: torture-init: torture_without_loops is not empty as expected
causing insane amount of false failures.
| ========= Summary of gcc testsuite =========
| | # of unexpected case / # of unique unexpected case
| | gcc | g++ | gfortran |
| rv64imafdc/ lp64d/ medlow | 5421 / 4 | 1 / 1 | 6 / 1 |
| rv32imafdc/ ilp32d/ medlow | 5422 / 5 | 3 / 2 | 6 / 1 |
| rv32imac/ ilp32/ medlow | 391 / 5 | 3 / 2 | 43 / 8 |
| rv64imac/ lp64/ medlow | 5422 / 5 | 1 / 1 | 43 / 8 |
The error splat itself is from recent test harness improvements for stricter
checks for torture-{init,finish} pairing. But the real issue is a latent bug
from 2009: commit 3dd1415dc8
, ("i386-prefetch.exp: Skip tests when multilib
flags contain -march") which added an "early exit" condition to i386-prefetch.exp
which could potentially cause an unpaired torture-{init,finish}.
The early exit only happens in a multlib setup using -march in flags
which is what RISC-V happens to use, hence the reason this was only seen
on RISC-V multilib testing.
Moving the early exit outside of torture-{init,finish} bracket
reinstates RISC-V testing.
| rv64imafdc/ lp64d/ medlow | 3 / 2 | 1 / 1 | 6 / 1 |
| rv32imafdc/ ilp32d/ medlow | 4 / 3 | 3 / 2 | 6 / 1 |
| rv32imac/ ilp32/ medlow | 3 / 2 | 3 / 2 | 43 / 8 |
| rv64imac/ lp64/ medlow | 5 / 4 | 1 / 1 | 43 / 8 |
gcc/testsuite:
* gcc.misc-tests/i386-prefetch.exp: Move early return outside
the torture-{init,finish}
Signed-off-by: Vineet Gupta <vineetg@rivosinc.com>
This commit is contained in:
parent
5fccebdbd9
commit
8dde92fd8b
1 changed files with 7 additions and 7 deletions
|
@ -14,6 +14,13 @@
|
|||
# along with GCC; see the file COPYING3. If not see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
|
||||
if { [board_info target exists multilib_flags]
|
||||
&& [string match "* -march=*" " [board_info target multilib_flags] "] } {
|
||||
# Multilib flags come after the -march flags we pass and override
|
||||
# them, so skip these tests when such flags are passed.
|
||||
return
|
||||
}
|
||||
|
||||
# Test that the correct data prefetch instructions (SSE or 3DNow! variant,
|
||||
# or none) are used for various i386 cpu-type and instruction set
|
||||
# extension options for __builtin_prefetch. When using -mtune, specify
|
||||
|
@ -90,13 +97,6 @@ load_lib torture-options.exp
|
|||
dg-init
|
||||
torture-init
|
||||
|
||||
if { [board_info target exists multilib_flags]
|
||||
&& [string match "* -march=*" " [board_info target multilib_flags] "] } {
|
||||
# Multilib flags come after the -march flags we pass and override
|
||||
# them, so skip these tests when such flags are passed.
|
||||
return
|
||||
}
|
||||
|
||||
set-torture-options $PREFETCH_NONE
|
||||
gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/i386-pf-none-*.c]] "" ""
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue