A bunch of FP tests expecting specific FP asm output fail when built with zfa because different insns are generated. And this happens because those tests don't have an explicit -march and the default used to configure gcc could end up with zfa causing the false fails.
Fix that by adding the -march explicitly which doesn't have zfa. BTW it seems we have some duplication in tests for zfa and non-zfa and it would have been better if they were consolidated, but oh well. gcc/testsuite: * gcc.target/riscv/fle-ieee.c: Updates dg-options with explicit -march=rv64gc and -march=rv32gc. * gcc.target/riscv/fle-snan.c: Ditto. * gcc.target/riscv/fle.c: Ditto. * gcc.target/riscv/flef-ieee.c: Ditto. * gcc.target/riscv/flef.c: Ditto. * gcc.target/riscv/flef-snan.c: Ditto. * gcc.target/riscv/flt-ieee.c: Ditto. * gcc.target/riscv/flt-snan.c: Ditto. * gcc.target/riscv/fltf-ieee.c: Ditto. * gcc.target/riscv/fltf-snan.c: Ditto. Signed-off-by: Vineet Gupta <vine...@rivosinc.com> --- gcc/testsuite/gcc.target/riscv/fle-ieee.c | 3 ++- gcc/testsuite/gcc.target/riscv/fle-snan.c | 3 ++- gcc/testsuite/gcc.target/riscv/fle.c | 3 ++- gcc/testsuite/gcc.target/riscv/flef-ieee.c | 3 ++- gcc/testsuite/gcc.target/riscv/flef-snan.c | 3 ++- gcc/testsuite/gcc.target/riscv/flef.c | 3 ++- gcc/testsuite/gcc.target/riscv/flt-ieee.c | 3 ++- gcc/testsuite/gcc.target/riscv/flt-snan.c | 3 ++- gcc/testsuite/gcc.target/riscv/fltf-ieee.c | 3 ++- gcc/testsuite/gcc.target/riscv/fltf-snan.c | 3 ++- 10 files changed, 20 insertions(+), 10 deletions(-) diff --git a/gcc/testsuite/gcc.target/riscv/fle-ieee.c b/gcc/testsuite/gcc.target/riscv/fle-ieee.c index e55331f925d6..12d04514ca29 100644 --- a/gcc/testsuite/gcc.target/riscv/fle-ieee.c +++ b/gcc/testsuite/gcc.target/riscv/fle-ieee.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-fno-finite-math-only -ftrapping-math -fno-signaling-nans" } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-finite-math-only -ftrapping-math -fno-signaling-nans" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc -mabi=ilp32d -fno-finite-math-only -ftrapping-math -fno-signaling-nans" { target { rv32 } } } */ long fle (double x, double y) diff --git a/gcc/testsuite/gcc.target/riscv/fle-snan.c b/gcc/testsuite/gcc.target/riscv/fle-snan.c index f40bb2cbf662..146b7866e888 100644 --- a/gcc/testsuite/gcc.target/riscv/fle-snan.c +++ b/gcc/testsuite/gcc.target/riscv/fle-snan.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-fno-finite-math-only -ftrapping-math -fsignaling-nans" } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-finite-math-only -ftrapping-math -fsignaling-nans" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc -mabi=ilp32d -fno-finite-math-only -ftrapping-math -fsignaling-nans" { target { rv32 } } } */ long fle (double x, double y) diff --git a/gcc/testsuite/gcc.target/riscv/fle.c b/gcc/testsuite/gcc.target/riscv/fle.c index 97c8ab9ad864..2379e22d5062 100644 --- a/gcc/testsuite/gcc.target/riscv/fle.c +++ b/gcc/testsuite/gcc.target/riscv/fle.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-fno-finite-math-only -fno-trapping-math -fno-signaling-nans" } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-finite-math-only -fno-trapping-math -fno-signaling-nans" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc -mabi=ilp32d -fno-finite-math-only -fno-trapping-math -fno-signaling-nans" { target { rv32 } } } */ long fle (double x, double y) diff --git a/gcc/testsuite/gcc.target/riscv/flef-ieee.c b/gcc/testsuite/gcc.target/riscv/flef-ieee.c index f3e7e7d75d6c..b6ee6ed08a4d 100644 --- a/gcc/testsuite/gcc.target/riscv/flef-ieee.c +++ b/gcc/testsuite/gcc.target/riscv/flef-ieee.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-fno-finite-math-only -ftrapping-math -fno-signaling-nans" } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-finite-math-only -ftrapping-math -fno-signaling-nans" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc -mabi=ilp32f -fno-finite-math-only -ftrapping-math -fno-signaling-nans" { target { rv32 } } } */ long flef (float x, float y) diff --git a/gcc/testsuite/gcc.target/riscv/flef-snan.c b/gcc/testsuite/gcc.target/riscv/flef-snan.c index ef75b3523057..e8611e8c0215 100644 --- a/gcc/testsuite/gcc.target/riscv/flef-snan.c +++ b/gcc/testsuite/gcc.target/riscv/flef-snan.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-fno-finite-math-only -ftrapping-math -fsignaling-nans" } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-finite-math-only -ftrapping-math -fsignaling-nans" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc -mabi=ilp32f -fno-finite-math-only -ftrapping-math -fsignaling-nans" { target { rv32 } } } */ long flef (float x, float y) diff --git a/gcc/testsuite/gcc.target/riscv/flef.c b/gcc/testsuite/gcc.target/riscv/flef.c index 379f5119caa8..ce5420b46b79 100644 --- a/gcc/testsuite/gcc.target/riscv/flef.c +++ b/gcc/testsuite/gcc.target/riscv/flef.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-fno-finite-math-only -fno-trapping-math -fno-signaling-nans" } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-finite-math-only -fno-trapping-math -fno-signaling-nans" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc -mabi=ilp32f -fno-finite-math-only -fno-trapping-math -fno-signaling-nans" { target { rv32 } } } */ long flef (float x, float y) diff --git a/gcc/testsuite/gcc.target/riscv/flt-ieee.c b/gcc/testsuite/gcc.target/riscv/flt-ieee.c index c40a0fc11806..cff30c6f1bb1 100644 --- a/gcc/testsuite/gcc.target/riscv/flt-ieee.c +++ b/gcc/testsuite/gcc.target/riscv/flt-ieee.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-fno-finite-math-only -ftrapping-math -fno-signaling-nans" } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-finite-math-only -ftrapping-math -fno-signaling-nans" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc -mabi=ilp32d -fno-finite-math-only -ftrapping-math -fno-signaling-nans" { target { rv32 } } } */ long flt (double x, double y) diff --git a/gcc/testsuite/gcc.target/riscv/flt-snan.c b/gcc/testsuite/gcc.target/riscv/flt-snan.c index c958ec018422..238748ae2a6b 100644 --- a/gcc/testsuite/gcc.target/riscv/flt-snan.c +++ b/gcc/testsuite/gcc.target/riscv/flt-snan.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-fno-finite-math-only -ftrapping-math -fsignaling-nans" } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-finite-math-only -ftrapping-math -fsignaling-nans" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc -mabi=ilp32d -fno-finite-math-only -ftrapping-math -fsignaling-nans" { target { rv32 } } } */ long flt (double x, double y) diff --git a/gcc/testsuite/gcc.target/riscv/fltf-ieee.c b/gcc/testsuite/gcc.target/riscv/fltf-ieee.c index a9c0805037e6..024d5301413a 100644 --- a/gcc/testsuite/gcc.target/riscv/fltf-ieee.c +++ b/gcc/testsuite/gcc.target/riscv/fltf-ieee.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-fno-finite-math-only -ftrapping-math -fno-signaling-nans" } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-finite-math-only -ftrapping-math -fno-signaling-nans" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc -mabi=ilp32f -fno-finite-math-only -ftrapping-math -fno-signaling-nans" { target { rv32 } } } */ long fltf (float x, float y) diff --git a/gcc/testsuite/gcc.target/riscv/fltf-snan.c b/gcc/testsuite/gcc.target/riscv/fltf-snan.c index 34a51e3e800a..9e12f3732b38 100644 --- a/gcc/testsuite/gcc.target/riscv/fltf-snan.c +++ b/gcc/testsuite/gcc.target/riscv/fltf-snan.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-fno-finite-math-only -ftrapping-math -fsignaling-nans" } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-finite-math-only -ftrapping-math -fsignaling-nans" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc -mabi=ilp32f -fno-finite-math-only -ftrapping-math -fsignaling-nans" { target { rv32 } } } */ long fltf (float x, float y) -- 2.34.1