S/390: arch13: vec_revb vector byte swap builtin
authorAndreas Krebbel <krebbel@linux.ibm.com>
Tue, 2 Apr 2019 11:01:06 +0000 (11:01 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Tue, 2 Apr 2019 11:01:06 +0000 (11:01 +0000)
commit1b3bbaf6475b2605192dc9c2f9cd61dfa4649f7e
treeabf6d85389bdd0d60308e3008c6ed6ebc965d9e3
parente633a4f2550bbeafaba60249518cd59d82e4e2c8
S/390: arch13: vec_revb vector byte swap builtin

gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/s390-builtin-types.def: Add new builtin function types.
* config/s390/s390-builtins.def: Add overloaded builtin
s390_vec_revb. Add low-level builtins for vlbr and vstbr
instructions.
* config/s390/vecintrin.h (vec_revb): New builtin name definition.
* config/s390/vector.md (VT_HW_HSDT): New mode iterator.
("bswap<mode>"): New expander.
("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

* gcc.target/s390/zvector/vec-revb-load-double-z14.c: New test.
* gcc.target/s390/zvector/vec-revb-load-double.c: New test.
* gcc.target/s390/zvector/vec-revb-store-double-z14.c: New test.
* gcc.target/s390/zvector/vec-revb-store-double.c: New test.

From-SVN: r270084
gcc/ChangeLog
gcc/config/s390/s390-builtin-types.def
gcc/config/s390/s390-builtins.def
gcc/config/s390/vecintrin.h
gcc/config/s390/vector.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/s390/zvector/vec-revb-load-double-z14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/zvector/vec-revb-load-double.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/zvector/vec-revb-store-double-z14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/zvector/vec-revb-store-double.c [new file with mode: 0644]