aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-03-21 08:05:51 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-03-21 08:05:51 +0000
commit50eeef0975bf57ba5c1d5f1da1c74fbc09de6473 (patch)
tree455c53145697cc607344039987499d98da735d3d /gcc
parentbe147e848b387d23d421587059e1d45ae17f01d3 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-vect-slp.c6
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)