aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-ssa-forwprop.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 622d648..64326df 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-01-04 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * tree-ssa-forwprop.c (is_combined_permutation_identity): Allow
+ the VEC_PERM_EXPR fold to fail.
+
2018-01-04 Jakub Jelinek <jakub@redhat.com>
PR debug/83585
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index 1aad176..58ec6b4 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -1865,7 +1865,8 @@ is_combined_permutation_identity (tree mask1, tree mask2)
gcc_checking_assert (TREE_CODE (mask1) == VECTOR_CST
&& TREE_CODE (mask2) == VECTOR_CST);
mask = fold_ternary (VEC_PERM_EXPR, TREE_TYPE (mask1), mask1, mask1, mask2);
- gcc_assert (TREE_CODE (mask) == VECTOR_CST);
+ if (mask == NULL_TREE || TREE_CODE (mask) != VECTOR_CST)
+ return 0;
if (!VECTOR_CST_NELTS (mask).is_constant (&nelts))
return 0;