]> git.ipfire.org Git - thirdparty/gcc.git/commit
s390: Floating point vector lane handling
authorJuergen Christ <jchrist@linux.ibm.com>
Thu, 8 May 2025 12:11:00 +0000 (14:11 +0200)
committerJuergen Christ <jchrist@linux.ibm.com>
Tue, 27 May 2025 11:15:38 +0000 (13:15 +0200)
commite9e6a7c9f59c1a304f66ab81ead8f58838cf81b6
tree1bfb6e7fe9096bd92646ef172b7ffc1e4b3d38c1
parente0c3066c14ad98d130ddd1183be3caaeea19c63b
s390: Floating point vector lane handling

Since floating point and vector registers overlap on s390, more
efficient code can be generated to extract FPRs from VRs.
Additionally, for double vectors, more efficient code can be generated
to load specific lanes.

gcc/ChangeLog:

* config/s390/vector.md (VF): New mode iterator.
(VEC_SET_NONFLOAT): New mode iterator.
(VEC_SET_SINGLEFLOAT): New mode iterator.
(*vec_set<mode>): Split pattern in two.
(*vec_setv2df): Extract special handling for V2DF mode.
(*vec_extract<mode>): Split pattern in two.

gcc/testsuite/ChangeLog:

* gcc.target/s390/vector/vec-extract-1.c: New test.
* gcc.target/s390/vector/vec-set-1.c: New test.

Signed-off-by: Juergen Christ <jchrist@linux.ibm.com>
gcc/config/s390/vector.md
gcc/testsuite/gcc.target/s390/vector/vec-extract-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/vector/vec-set-1.c [new file with mode: 0644]