S/390: Fix zvector vec_double builtin
commita00ccce85885e1ddafe83c177dffa17cb7aff89d
authorAndreas Krebbel <krebbel@linux.ibm.com>
Thu, 13 Dec 2018 11:57:16 +0000 (13 11:57 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Thu, 13 Dec 2018 11:57:16 +0000 (13 11:57 +0000)
treef42b23690eea8d7a5c6efe7c7b3d50a968e2076d
parent99daf8e848ce7a0f7f80e86543a98e79143c3648
S/390: Fix zvector vec_double builtin

The (unsigned) long int to double vector conversion instructions
expect 2 immediate parameters. One for the inexact suppression
control and another one for the rounding mode.  However, the
vec_double builtin has just the vector source operand.  The 2
addtional operands need to be added with an intermediate expander.
The expanders were already there but unfortunately not wired up
correctly to the builtin.

gcc/ChangeLog:

2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/s390-builtins.def (s390_vec_double_s64): Map to
s390_vec_double_s64 instead of s390_vcdgb.
(s390_vec_double_u64): Map to s390_vec_double_u64 instead of
s390_vcdlgb.

gcc/testsuite/ChangeLog:

2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>

* gcc.target/s390/zvector/vec-double-1.c: New test.
* gcc.target/s390/zvector/vec-double-2.c: New test.

From-SVN: r267084
gcc/ChangeLog
gcc/config/s390/s390-builtins.def
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/s390/zvector/vec-double-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/zvector/vec-double-2.c [new file with mode: 0644]