https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68861
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|law at redhat dot com |rguenth at gcc dot
gnu.org
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed with -O3 -fno-tree-loop-vectorize -fdbg-cnt=vect_slp:3, so it's at
least
vla8.f90:187:0: note: basic block vectorized
causing the abort.
Ok, so we hit some operand swapping plus build-from-scalars (both got recent
fixes but indeed those don't help).
Oh.
vla8.f90:187:0: note: node
vla8.f90:187:0: note: stmt 0 [vla8.f90:185:0] _7724 = _232 + _7725;
vla8.f90:187:0: note: stmt 1 [vla8.f90:185:0] _7718 = _6710 + _7725;
vla8.f90:187:0: note: stmt 2 [vla8.f90:185:0] _7718 = _6710 + _7725;
vla8.f90:187:0: note: stmt 3 [vla8.f90:185:0] _7699 = _7725 + _8020;
vla8.f90:187:0: note: stmt 4 [vla8.f90:185:0] _7699 = _7725 + _8020;
so we have duplicates here (hooray) and thus
for (j = 0; j < group_size; ++j)
if (!matches[j])
{
gimple *stmt = SLP_TREE_SCALAR_STMTS (*node)[j];
swap_ssa_operands (stmt, gimple_assign_rhs1_ptr (stmt),
gimple_assign_rhs2_ptr (stmt));
}
will swap and then re-swap ...