diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-03-21 08:05:51 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-03-21 08:05:51 +0000 |
commit | 6fa7863673f71d5f78897d418589d42284a638a3 (patch) | |
tree | 455c53145697cc607344039987499d98da735d3d /gcc/tree-vect-slp.c | |
parent | 212dddd37fee2f99206cc82a89e7e5ad68ae4fd7 (diff) | |
download | gcc-6fa7863673f71d5f78897d418589d42284a638a3.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185599 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vect-slp.c')
-rw-r--r-- | gcc/tree-vect-slp.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index dbfe78d9351..c142bbb0201 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) |