From: Richard Biener Date: Wed, 26 Jun 2024 17:23:26 +0000 (+0200) Subject: tree-optimization/115652 - amend last fix X-Git-Tag: basepoints/gcc-16~7883 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7cb0dd94589ab501bca27f93641b4074e5a2e99;p=thirdparty%2Fgcc.git tree-optimization/115652 - amend last fix The previous fix breaks in the degenerate case when the discovered last_stmt is equal to the first stmt in the block since then we undo a required stmt advancement. PR tree-optimization/115652 * tree-vect-slp.cc (vect_schedule_slp_node): Only insert at the start of the block if that strictly dominates the discovered dependent stmt. --- diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc index 1f5b3fccf41..1252b613125 100644 --- a/gcc/tree-vect-slp.cc +++ b/gcc/tree-vect-slp.cc @@ -9747,7 +9747,8 @@ vect_schedule_slp_node (vec_info *vinfo, { gimple_stmt_iterator si2 = gsi_after_labels (LOOP_VINFO_LOOP (loop_vinfo)->header); - if (vect_stmt_dominates_stmt_p (last_stmt, *si2)) + if (last_stmt != *si2 + && vect_stmt_dominates_stmt_p (last_stmt, *si2)) si = si2; } }