Always use SLP vector defs to determine insertion place

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.

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

	* tree-vect-slp.c (vect_schedule_slp_instance): Always use
	vector defs to determine insertion place.
This commit is contained in:
Richard Biener 2020-06-25 13:41:47 +02:00
parent c422e5f81f
commit d2adb79eac

View File

@ -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