]> git.ipfire.org Git - thirdparty/gcc.git/commit
s390: Add some missing vector patterns.
authorJuergen Christ <jchrist@linux.ibm.com>
Mon, 23 Jun 2025 10:04:20 +0000 (12:04 +0200)
committerJuergen Christ <jchrist@linux.ibm.com>
Mon, 7 Jul 2025 11:10:26 +0000 (13:10 +0200)
commit188acc9e8bacdbba56ed2b32d09f191da759500a
tree400544c42ca5327804fa2cffa543e7a65e866c35
parent333e627e49597143b5837231be900603fdc72463
s390: Add some missing vector patterns.

Some patterns that are detected by the autovectorizer can be supported by
s390.  Add expanders such that autovectorization of these patterns works.

RTL for the builtins used unspec to represent highpart multiplication.
Replace this by the correct RTL to allow further simplification.

gcc/ChangeLog:

* config/s390/s390.md: Removed unused unspecs.
* config/s390/vector.md (avg<mode>3_ceil): New expander.
(uavg<mode>3_ceil): New expander.
(smul<mode>3_highpart): New expander.
(umul<mode>3_highpart): New expander.
* config/s390/vx-builtins.md (vec_umulh<mode>): Remove unspec.
(vec_smulh<mode>): Remove unspec.

gcc/testsuite/ChangeLog:

* gcc.target/s390/vector/pattern-avg-1.c: New test.
* gcc.target/s390/vector/pattern-mulh-1.c: New test.

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