IBM Z: Build autovec-*-signaling-eq.c tests with exceptions
commit72217b5ddb2a15e2606f4b15b147dd59fe8e6216
authorIlya Leoshkevich <iii@linux.ibm.com>
Thu, 3 Dec 2020 01:02:20 +0000 (3 02:02 +0100)
committerIlya Leoshkevich <iii@linux.ibm.com>
Wed, 9 Dec 2020 12:47:14 +0000 (9 13:47 +0100)
treeef19f44ec6f21787b29e7ae5d99f8b8884006394
parentaa0432005f36f6ac51dc9dcecb717fe739d39b88
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.
gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq.c
gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-eq.c