tree-ssa-forwprop.c was asserting that a VEC_PERM_EXPR fold on three
VECTOR_CSTs would always succeed, but it's possible for it to fail
with variable-length vectors.
2017-12-22 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
* tree-ssa-forwprop.c (is_combined_permutation_identity): Allow
the VEC_PERM_EXPR fold to fail.
From-SVN: r256257
+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
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;