diff options
author | Richard Biener <rguenther@suse.de> | 2017-06-28 13:02:01 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2017-06-28 13:02:01 +0000 |
commit | 62cf73356918189f84ad9fcc83c1ffe8f86d7595 (patch) | |
tree | df8c84fa418f106eeef7cb0c7803df63dbede91a /gcc/tree-vect-slp.c | |
parent | 17a7218b811ffe1f8524ae04bc018f526186549f (diff) | |
download | gcc-62cf73356918189f84ad9fcc83c1ffe8f86d7595.zip gcc-62cf73356918189f84ad9fcc83c1ffe8f86d7595.tar.gz gcc-62cf73356918189f84ad9fcc83c1ffe8f86d7595.tar.bz2 |
tree-vect-loop.c (vectorizable_reduction): Move special cond reduction IV var creation ...
2017-06-28 Richard Biener <rguenther@suse.de>
* tree-vect-loop.c (vectorizable_reduction): Move special
cond reduction IV var creation ...
(vect_create_epilog_for_reduction): ... here. Remove induction_index
parameter. Use STMT_VINFO_VECTYPE.
* tree-vect-slp.c (vect_get_constant_vectors): Properly reset
constant_p.
From-SVN: r249736
Diffstat (limited to 'gcc/tree-vect-slp.c')
-rw-r--r-- | gcc/tree-vect-slp.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index b755562..eb7bc55 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -3016,11 +3016,6 @@ vect_get_constant_vectors (tree op, slp_tree slp_node, gcc_assert (op); - if (CONSTANT_CLASS_P (op)) - constant_p = true; - else - constant_p = false; - /* NUMBER_OF_COPIES is the number of times we need to use the same values in created vectors. It is greater than 1 if unrolling is performed. @@ -3040,6 +3035,7 @@ vect_get_constant_vectors (tree op, slp_tree slp_node, number_of_copies = nunits * number_of_vectors / group_size; number_of_places_left_in_vector = nunits; + constant_p = true; elts = XALLOCAVEC (tree, nunits); bool place_after_defs = false; for (j = 0; j < number_of_copies; j++) @@ -3156,8 +3152,6 @@ vect_get_constant_vectors (tree op, slp_tree slp_node, if (number_of_places_left_in_vector == 0) { - number_of_places_left_in_vector = nunits; - if (constant_p) vec_cst = build_vector (vector_type, elts); else @@ -3188,6 +3182,8 @@ vect_get_constant_vectors (tree op, slp_tree slp_node, } voprnds.quick_push (init); place_after_defs = false; + number_of_places_left_in_vector = nunits; + constant_p = true; } } } |