IBM Z: Implement TARGET_VECTORIZE_VEC_PERM_CONST for vector merge
authorAndreas Krebbel <krebbel@linux.ibm.com>
Wed, 4 Aug 2021 16:40:10 +0000 (18:40 +0200)
committerAndreas Krebbel <krebbel@linux.ibm.com>
Wed, 4 Aug 2021 16:40:10 +0000 (18:40 +0200)
commit6dc8c4656444153c9e2f98d382de39728a849672
tree6bef915786fd85474decd0f2e301e52d3e00d727
parent4e34925ef1aeab73e022d80149be8cec92c48667
IBM Z: Implement TARGET_VECTORIZE_VEC_PERM_CONST for vector merge

This patch implements the TARGET_VECTORIZE_VEC_PERM_CONST in the IBM Z
backend. The initial implementation only exploits the vector merge
instruction but there is more to come.

gcc/ChangeLog:

* config/s390/s390.c (MAX_VECT_LEN): Define macro.
(struct expand_vec_perm_d): Define struct.
(expand_perm_with_merge): New function.
(vectorize_vec_perm_const_1): New function.
(s390_vectorize_vec_perm_const): New function.
(TARGET_VECTORIZE_VEC_PERM_CONST): Define target macro.

gcc/testsuite/ChangeLog:

* gcc.target/s390/vector/perm-merge.c: New test.
* gcc.target/s390/vector/vec-types.h: New test.
gcc/config/s390/s390.c
gcc/testsuite/gcc.target/s390/vector/perm-merge.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/vector/vec-types.h [new file with mode: 0644]