aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-slp.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2017-06-28 13:02:01 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2017-06-28 13:02:01 +0000
commit62cf73356918189f84ad9fcc83c1ffe8f86d7595 (patch)
treedf8c84fa418f106eeef7cb0c7803df63dbede91a /gcc/tree-vect-slp.c
parent17a7218b811ffe1f8524ae04bc018f526186549f (diff)
downloadgcc-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.c10
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;
}
}
}