aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2021-03-16 18:29:11 +0000
committerSegher Boessenkool <segher@kernel.crashing.org>2021-03-16 19:21:34 +0000
commita0b5843a9b2b3e93bd119d5aef583f53ad2ef0bc (patch)
tree01e99c1039f3cc3ec2ae3e3c4cf07d1cbe950467 /gcc/testsuite
parentd55ce33a34a8e33d17285228b32cf1e564241a70 (diff)
downloadgcc-a0b5843a9b2b3e93bd119d5aef583f53ad2ef0bc.zip
gcc-a0b5843a9b2b3e93bd119d5aef583f53ad2ef0bc.tar.gz
gcc-a0b5843a9b2b3e93bd119d5aef583f53ad2ef0bc.tar.bz2
rs6000: Workaround for PR98092
The bcdinvalid_<mode> RTL instruction uses the "unordered" comparison, which cannot be used if we have -ffinite-math-only. We really need CCMODEs that describe what bits in a CR field are set by other insns than just comparisons, but that is a lot more surgery, and it is stage 4 now. This patch does a simple workaround. 2021-03-16 Segher Boessenkool <segher@kernel.crashing.org> PR target/98092 * config/rs6000/predicates.md (branch_comparison_operator): Allow ordered and unordered for CCFPmode, if flag_finite_math_only. gcc/testsuite/ PR target/98092 * gcc.target/powerpc/pr98092.c: New.
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr98092.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/powerpc/pr98092.c b/gcc/testsuite/gcc.target/powerpc/pr98092.c
new file mode 100644
index 0000000..03eab5a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr98092.c
@@ -0,0 +1,7 @@
+/* { dg-options "-mdejagnu-cpu=power9 -ffinite-math-only" } */
+
+int
+h9 (__attribute__ ((altivec (vector__))) char un)
+{
+ return (__builtin_vec_bcdinvalid (un));
+}