s390: Fix s390_constant_via_vgbm_p() [PR118362]
Checks
Commit Message
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.
---
Bootstrap and regtest are still running. If both are successful, I
will push this one promptly.
gcc/config/s390/s390.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -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)