With the last vectorizable_shift patch we can now always use the
SLP vector defs to determine the vectorized stmt insertion place,
paving the way for a "verifier" for pending restructuring and
BB vectorization of reductions and other live stmts.

Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.

2020-06-25  Richard Biener  <rguent...@suse.de>

        * tree-vect-slp.c (vect_schedule_slp_instance): Always use
        vector defs to determine insertion place.
---
 gcc/tree-vect-slp.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index b2792c76ad2..5883ec58c7a 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -4262,13 +4262,6 @@ vect_schedule_slp_instance (vec_info *vinfo,
   else if (SLP_TREE_CHILDREN (node).is_empty ())
     /* This happens for reduction PHIs.  */
     si = gsi_for_stmt (vect_find_last_scalar_stmt_in_slp (node)->stmt);
-  else if (stmt_vec_info first_stmt_info
-            = vect_find_last_scalar_stmt_in_slp (node))
-    /* ???  Shifts by scalars hit us here again, we end up vectorizing
-       the shift operand but end up using the scalar operand anyway.
-       This needs to be better reflected in the SLP tree.  For now
-       use the last position if available.  */
-    si = gsi_for_stmt (first_stmt_info->stmt);
   else
     {
       /* Emit other stmts after the children vectorized defs which is
-- 
2.26.2

Reply via email to