diff options
author | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2015-09-10 14:04:28 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2015-09-10 14:04:28 +0000 |
commit | 1ce8ee743ff570443f520e68afedea03ae664a64 (patch) | |
tree | 9148db89d4a4a18aecee33599859564a427dcac2 /gcc/config/s390/s390.c | |
parent | 47b653bd9f7fa1a34bddeec249d8ca65e5a00c15 (diff) | |
download | gcc-1ce8ee743ff570443f520e68afedea03ae664a64.zip gcc-1ce8ee743ff570443f520e68afedea03ae664a64.tar.gz gcc-1ce8ee743ff570443f520e68afedea03ae664a64.tar.bz2 |
S/390: Don't use vgm for v1ti and v1tf.
gcc/ChangeLog:
2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
the vector element is bigger than 64 bit.
gcc/testsuite/ChangeLog:
2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/vector/vec-genbytemask-1.c: Add check for V1TI
initialization with a byte mask. No change expected here.
* gcc.target/s390/vector/vec-genmask-1.c: Fix whitespace.
* gcc.target/s390/vector/vec-genmask-2.c: Add check for V1TI
initialization with contigious bitmask. Literal pool is expectd
to be used here.
From-SVN: r227637
Diffstat (limited to 'gcc/config/s390/s390.c')
-rw-r--r-- | gcc/config/s390/s390.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index a664443..d276ab2 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -2265,6 +2265,11 @@ s390_contiguous_bitmask_vector_p (rtx op, int *start, int *end) return false; size = GET_MODE_UNIT_BITSIZE (GET_MODE (op)); + + /* We cannot deal with V1TI/V1TF. This would require a vgmq. */ + if (size > 64) + return false; + mask = UINTVAL (elt); if (s390_contiguous_bitmask_p (mask, size, start, end != NULL ? &length : NULL)) |