Commit 88654ce6 by Richard Sandiford Committed by Richard Sandiford

Allow VEC_PERM_EXPR folding to fail

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
parent 64d620ef
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
......
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment