diff options
author | Ilya Leoshkevich <iii@linux.ibm.com> | 2020-12-03 02:02:20 +0100 |
---|---|---|
committer | Ilya Leoshkevich <iii@linux.ibm.com> | 2020-12-09 13:47:14 +0100 |
commit | 72217b5ddb2a15e2606f4b15b147dd59fe8e6216 (patch) | |
tree | ef19f44ec6f21787b29e7ae5d99f8b8884006394 /gcc | |
parent | aa0432005f36f6ac51dc9dcecb717fe739d39b88 (diff) | |
download | gcc-72217b5ddb2a15e2606f4b15b147dd59fe8e6216.zip gcc-72217b5ddb2a15e2606f4b15b147dd59fe8e6216.tar.gz gcc-72217b5ddb2a15e2606f4b15b147dd59fe8e6216.tar.bz2 |
IBM Z: Build autovec-*-signaling-eq.c tests with exceptions
According to
https://gcc.gnu.org/pipermail/gcc/2020-November/234344.html, GCC is
allowed to perform optimizations that remove floating point traps,
since they do not affect the modeled control flow. This interferes with
two signaling comparison tests, where (a <= b && a >= b) is turned into
(a <= b && a == b) by test_for_singularity, into ((a <= b) & (a == b))
by vectorizer and then into (a == b) eliminate_redundant_comparison.
Fix by making traps affect the control flow by turning them into
exceptions.
gcc/testsuite/ChangeLog:
2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
* gcc.target/s390/zvector/autovec-double-signaling-eq.c: Build
with exceptions.
* gcc.target/s390/zvector/autovec-float-signaling-eq.c:
Likewise.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-eq.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq.c b/gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq.c index a8402b9..3645d3c 100644 --- a/gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq.c +++ b/gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O3 -march=z14 -mzvector -mzarch" } */ +/* { dg-options "-O3 -march=z14 -mzvector -mzarch -fexceptions -fnon-call-exceptions" } */ #include "autovec.h" diff --git a/gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-eq.c b/gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-eq.c index 7dd91a5..d98aa0c 100644 --- a/gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-eq.c +++ b/gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-eq.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O3 -march=z14 -mzvector -mzarch" } */ +/* { dg-options "-O3 -march=z14 -mzvector -mzarch -fexceptions -fnon-call-exceptions" } */ #include "autovec.h" |