Some powerpc tests that require the fsqrt insn to be enabled explicitly use the -mpowerpc-gpopt option. This fails if the fsqrt opcode is not available on the target machine.
Switch to dg-add-options sqrt_insn for compile tests, that adds the option for the feature (pending approval of another patch for the same PR), and to dg-require-effective-target sqrt_insn for execution tests. This patch depends on the recent patch for PR99352, and on the proposed patch for PR99371. This was regstrapped on x86_64-linux-gnu, and tested with a cross to a ppc64-vxworks7r2 that has no -mpowerpc-gpopt disabled by default, and that raises Illegal Instruction exceptions upon encountering a fsqrt. I'm now regstrapping it on ppc64-linux-gnu, just to be sure. Ok to install? for gcc/testsuite/ChangeLog PR testsuite/99371 * gcc.target/powerpc/pr46728-10.c: Drop explicit -mpowerpc-gpopt in favor of dg-require-effective-target sqrt_insn. * gcc.target/powerpc/pr46728-11.c: Likewise. * gcc.target/powerpc/pr46728-13.c: Likewise. * gcc.target/powerpc/pr46728-14.c: Likewise. * gcc.target/powerpc/pr46728-15.c: Likewise. * gcc.target/powerpc/recip-7.c: Likewise. * gcc.target/powerpc/pr46728-1.c: Drop explicit -mpowerpc-gpopt in favor of dg-add-options sqrt_insn. * gcc.target/powerpc/pr46728-2.c: Likewise. * gcc.target/powerpc/pr46728-3.c: Likewise. * gcc.target/powerpc/pr46728-4.c: Likewise. * gcc.target/powerpc/pr46728-5.c: Likewise. * gcc.target/powerpc/pr46728-7.c: Likewise. * gcc.target/powerpc/pr46728-8.c: Likewise. TN: U302-010 --- gcc/testsuite/gcc.target/powerpc/pr46728-1.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-10.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-11.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-13.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-14.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-15.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-2.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-3.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-4.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-5.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-7.c | 3 ++- gcc/testsuite/gcc.target/powerpc/pr46728-8.c | 3 ++- gcc/testsuite/gcc.target/powerpc/recip-7.c | 3 ++- 13 files changed, 26 insertions(+), 13 deletions(-) diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-1.c b/gcc/testsuite/gcc.target/powerpc/pr46728-1.c index fc2cd7d7c9c56..b561d8b6e42f9 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-1.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt -fno-ident" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -fno-ident" } */ +/* { dg-add-options sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-10.c b/gcc/testsuite/gcc.target/powerpc/pr46728-10.c index 3be4728d333a4..cdde53b8de037 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-10.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-10.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-skip-if "-mpowerpc-gpopt not supported" { powerpc*-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm" } */ +/* { dg-require-effective-target sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-11.c b/gcc/testsuite/gcc.target/powerpc/pr46728-11.c index 43b6728a4b812..62b49b1479345 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-11.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-11.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-skip-if "-mpowerpc-gpopt not supported" { powerpc*-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm" } */ +/* { dg-require-effective-target sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-13.c b/gcc/testsuite/gcc.target/powerpc/pr46728-13.c index b9fd63973b728..3e55fa86e0b7c 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-13.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-13.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-skip-if "-mpowerpc-gpopt not supported" { powerpc*-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm" } */ +/* { dg-require-effective-target sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-14.c b/gcc/testsuite/gcc.target/powerpc/pr46728-14.c index 5affff13bdb6c..472b9d5b60120 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-14.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-14.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-skip-if "-mpowerpc-gpopt not supported" { powerpc*-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm" } */ +/* { dg-require-effective-target sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-15.c b/gcc/testsuite/gcc.target/powerpc/pr46728-15.c index b4c9660626962..7198a29794b4b 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-15.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-15.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-skip-if "-mpowerpc-gpopt not supported" { powerpc*-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm" } */ +/* { dg-require-effective-target sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-2.c b/gcc/testsuite/gcc.target/powerpc/pr46728-2.c index 77679873b957f..727dea6ff907e 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-2.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt -fno-ident" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -fno-ident" } */ +/* { dg-add-options sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-3.c b/gcc/testsuite/gcc.target/powerpc/pr46728-3.c index db972168cb953..ebd86de11ff67 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-3.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-3.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt -fno-ident" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -fno-ident" } */ +/* { dg-add-options sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-4.c b/gcc/testsuite/gcc.target/powerpc/pr46728-4.c index 249898ac0361b..184afabc72309 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-4.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-4.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-skip-if "No __builtin_cbrt" { powerpc*-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt -fno-ident" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -fno-ident" } */ +/* { dg-add-options sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-5.c b/gcc/testsuite/gcc.target/powerpc/pr46728-5.c index e15e7c0977e33..938a5f15a9faa 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-5.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-5.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-skip-if "No __builtin_cbrt" { powerpc*-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt -fno-ident" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -fno-ident" } */ +/* { dg-add-options sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-7.c b/gcc/testsuite/gcc.target/powerpc/pr46728-7.c index 2b7d0940a0f10..f1e49381bd4a0 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-7.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-7.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt -fno-ident" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -fno-ident" } */ +/* { dg-add-options sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/pr46728-8.c b/gcc/testsuite/gcc.target/powerpc/pr46728-8.c index 7d2af12db859f..786dfad378449 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr46728-8.c +++ b/gcc/testsuite/gcc.target/powerpc/pr46728-8.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-skip-if "No __builtin_cbrt" { powerpc*-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt -fno-ident" } */ +/* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -fno-ident" } */ +/* { dg-add-options sqrt_insn } */ #include <math.h> diff --git a/gcc/testsuite/gcc.target/powerpc/recip-7.c b/gcc/testsuite/gcc.target/powerpc/recip-7.c index 12b1e9cd6f9e6..a488bd6647697 100644 --- a/gcc/testsuite/gcc.target/powerpc/recip-7.c +++ b/gcc/testsuite/gcc.target/powerpc/recip-7.c @@ -1,7 +1,8 @@ /* { dg-do run { target { powerpc*-*-linux* powerpc*-ibm-aix* } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target ppc_recip_hw } */ -/* { dg-options "-O3 -ftree-vectorize -ffast-math -mrecip -mpowerpc-gfxopt -mpowerpc-gpopt -mpopcntb" } */ +/* { dg-require-effective-target sqrt_insn } */ +/* { dg-options "-O3 -ftree-vectorize -ffast-math -mrecip -mpowerpc-gfxopt -mpopcntb" } */ /* Check reciprocal estimate functions for accuracy. */ -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Vim, Vi, Voltei pro Emacs -- GNUlius Caesar