https://gcc.gnu.org/g:2f31819a0ac7b000fa3a456e5b068242e954edac
commit r15-6742-g2f31819a0ac7b000fa3a456e5b068242e954edac Author: Stefan Schulze Frielinghaus <stefa...@gcc.gnu.org> Date: Thu Jan 9 17:49:02 2025 +0100 s390: Fix s390_constant_via_vgbm_p() [PR118362] Optimization s390_constant_via_vgbm_p() should only apply to constant vectors which can be expressed by the hardware, i.e., which have a size of at most 16-bytes, similar as it is done for s390_constant_via_vgm_p() and s390_constant_via_vrepi_p(). gcc/ChangeLog: PR target/118362 * config/s390/s390.cc (s390_constant_via_vgbm_p): Allow at most 16-byte vectors. Diff: --- gcc/config/s390/s390.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc index 918a2cd6c6df..08acb69de3e8 100644 --- a/gcc/config/s390/s390.cc +++ b/gcc/config/s390/s390.cc @@ -2818,7 +2818,7 @@ s390_constant_via_vgbm_p (rtx op, unsigned *mask) unsigned tmp_mask = 0; int nunit, unit_size; - if (GET_CODE (op) == CONST_VECTOR) + if (GET_CODE (op) == CONST_VECTOR && GET_MODE_SIZE (GET_MODE (op)) <= 16) { if (GET_MODE_INNER (GET_MODE (op)) == TImode || GET_MODE_INNER (GET_MODE (op)) == TFmode)