Handle patterns as SLP roots of only live stmts

gcc.dg/vect/vect-live-2.c shows it's important to handle live but
otherwise unused pattern stmts.

	* tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when
	discovering from only-live roots.
This commit is contained in:
Richard Biener 2024-09-20 13:35:49 +02:00 committed by Richard Biener
parent 09a52cf036
commit 4eba48a684

View File

@ -4723,6 +4723,7 @@ vect_analyze_slp (vec_info *vinfo, unsigned max_tree_size,
if (TREE_CODE (def) == SSA_NAME if (TREE_CODE (def) == SSA_NAME
&& !virtual_operand_p (def) && !virtual_operand_p (def)
&& (stmt_info = loop_vinfo->lookup_def (def)) && (stmt_info = loop_vinfo->lookup_def (def))
&& ((stmt_info = vect_stmt_to_vectorize (stmt_info)), true)
&& STMT_VINFO_RELEVANT (stmt_info) == vect_used_only_live && STMT_VINFO_RELEVANT (stmt_info) == vect_used_only_live
&& STMT_VINFO_LIVE_P (stmt_info) && STMT_VINFO_LIVE_P (stmt_info)
&& (STMT_VINFO_DEF_TYPE (stmt_info) == vect_induction_def && (STMT_VINFO_DEF_TYPE (stmt_info) == vect_induction_def