diff options
author | Richard Guenther <rguenther@suse.de> | 2012-03-21 08:05:51 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-03-21 08:05:51 +0000 |
commit | 50eeef0975bf57ba5c1d5f1da1c74fbc09de6473 (patch) | |
tree | 455c53145697cc607344039987499d98da735d3d | |
parent | be147e848b387d23d421587059e1d45ae17f01d3 (diff) | |
download | gcc-50eeef0975bf57ba5c1d5f1da1c74fbc09de6473.zip gcc-50eeef0975bf57ba5c1d5f1da1c74fbc09de6473.tar.gz gcc-50eeef0975bf57ba5c1d5f1da1c74fbc09de6473.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-vect-slp.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a115969..6345f67 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 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) dependencies. * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function, diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index dbfe78d..c142bbb 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -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) |