From 7c285ab9ae4726b4821379c82d16d2373cd46f8f Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 11 Jan 2016 18:55:38 +0100 Subject: [PATCH] re PR tree-optimization/69207 (gcc.target/aarch64/vldN_1.c ICEs at -O3) PR tree-optimization/69207 * tree-vect-slp.c (vect_get_constant_vectors): For VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of fold_convertible_p to vector_type's element type, and always use VCE for non-VECTOR_BOOLEAN_TYPE_P. From-SVN: r232233 --- gcc/ChangeLog | 8 ++++++++ gcc/tree-vect-slp.c | 5 +---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a256b34d978..6ae32488405 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2016-01-11 Jakub Jelinek + + PR tree-optimization/69207 + * tree-vect-slp.c (vect_get_constant_vectors): For + VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of + fold_convertible_p to vector_type's element type, and always + use VCE for non-VECTOR_BOOLEAN_TYPE_P. + 2016-01-11 Richard Biener PR tree-optimization/69173 diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index 0aac2e2f6cf..d1858387f11 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -2999,12 +2999,9 @@ vect_get_constant_vectors (tree op, slp_tree slp_node, gimple *init_stmt; if (VECTOR_BOOLEAN_TYPE_P (vector_type)) { - gcc_assert (fold_convertible_p (TREE_TYPE (vector_type), - op)); + gcc_assert (INTEGRAL_TYPE_P (TREE_TYPE (op))); init_stmt = gimple_build_assign (new_temp, NOP_EXPR, op); } - else if (fold_convertible_p (TREE_TYPE (vector_type), op)) - init_stmt = gimple_build_assign (new_temp, NOP_EXPR, op); else { op = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (vector_type),