aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/s390/s390.c
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2015-09-10 14:04:28 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2015-09-10 14:04:28 +0000
commit1ce8ee743ff570443f520e68afedea03ae664a64 (patch)
tree9148db89d4a4a18aecee33599859564a427dcac2 /gcc/config/s390/s390.c
parent47b653bd9f7fa1a34bddeec249d8ca65e5a00c15 (diff)
downloadgcc-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.c5
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))