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.
{
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;
}
}