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