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