re PR tree-optimization/52636 (ICE: tree check: expected integer_cst, have string_cst in tree_to_double_int, at tree.h:4324)

2012-03-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimizer/52636
	* tree-vect-slp.c (vect_get_constant_vectors): Convert constants
	to the appropriate type.

From-SVN: r185599
This commit is contained in:
Richard Guenther 2012-03-21 08:05:51 +00:00 committed by Richard Biener
parent be147e848b
commit 50eeef0975
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2012-03-21 Richard Guenther <rguenther@suse.de>
PR tree-optimizer/52636
* tree-vect-slp.c (vect_get_constant_vectors): Convert constants
to the appropriate type.
2012-03-21 Richard Guenther <rguenther@suse.de>
* Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)

View File

@ -2363,6 +2363,12 @@ vect_get_constant_vectors (tree op, slp_tree slp_node,
/* Create 'vect_ = {op0,op1,...,opn}'. */
number_of_places_left_in_vector--;
if (constant_p
&& !types_compatible_p (TREE_TYPE (vector_type), TREE_TYPE (op)))
{
op = fold_unary (VIEW_CONVERT_EXPR, TREE_TYPE (vector_type), op);
gcc_assert (op && CONSTANT_CLASS_P (op));
}
elts[number_of_places_left_in_vector] = op;
if (number_of_places_left_in_vector == 0)