diff options
author | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2017-10-06 09:18:37 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2017-10-06 09:18:37 +0000 |
commit | 6fcb90c624db95f1b483e0d403e95215d4732bd6 (patch) | |
tree | 220413c5fde8142ea2819958451e6004c3df1d12 /gcc/testsuite/gcc.target | |
parent | 3d28cdc2cdab4fca880e737602c29e08ba01ef76 (diff) | |
download | gcc-6fcb90c624db95f1b483e0d403e95215d4732bd6.zip gcc-6fcb90c624db95f1b483e0d403e95215d4732bd6.tar.gz gcc-6fcb90c624db95f1b483e0d403e95215d4732bd6.tar.bz2 |
PR82317: S/390: Fix vec_min/vec_max builtins for IBM z13.
With IBM z14 a hardware instruction for floating point min and max has
been added while for IBM z13 we emulated min/max for vector double with
compare and select. This testcase makes sure that we fall back to the
emulated variant when compiling for z13.
gcc/ChangeLog:
2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/82317
* config/s390/s390-builtin-types.def: Regenerate.
* config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
Change flag from B_VXE to B_VX.
(s390_vec_min_dbl): Remove B_VXE flag.
gcc/testsuite/ChangeLog:
2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/82317
* gcc.target/s390/zvector/pr82317.c: New test.
From-SVN: r253480
Diffstat (limited to 'gcc/testsuite/gcc.target')
-rw-r--r-- | gcc/testsuite/gcc.target/s390/zvector/pr82317.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/s390/zvector/pr82317.c b/gcc/testsuite/gcc.target/s390/zvector/pr82317.c new file mode 100644 index 0000000..4b7cc83 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/zvector/pr82317.c @@ -0,0 +1,19 @@ +/* { dg-do compile { target { s390*-*-* } } } */ +/* { dg-options "-march=z13 -mzarch -mzvector" } */ + +/* With IBM z14 a hardware instruction for floating point min and max + has been added while for IBM z13 we emulated min/max for vector + double with compare and select. This testcase makes sure that we + fall back to the emulated variant when compiling for z13. */ + +#include <vecintrin.h> + +vector double +foo (vector double a, vector double b) { + return vec_min (a, b); +} + +vector double +bar (vector double a, vector double b) { + return vec_max (a, b); +} |