https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127206
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
So we schedule
t.c:7:6: note: node 0x51cb5e0 (refcnt=1) vector(2) int
t.c:7:6: note: op template: q_25 = _15 + l.7_18;
t.c:7:6: note: stmt 0 q_25 = _15 + l.7_18;
t.c:7:6: note: stmt 1 r_26 = _17 + a.9_19;
t.c:7:6: note: children 0x51cb690 0x51cbcc0
t.c:7:6: note: node 0x51cb690 (refcnt=2) vector(2) int
t.c:7:6: note: op template: _15 = _12 + _14;
t.c:7:6: note: stmt 0 _15 = _12 + _14;
t.c:7:6: note: stmt 1 _17 = _14 + _16;
t.c:7:6: note: children 0x51cb7f0 0x51cbb60
t.c:7:6: note: node 0x51cb7f0 (refcnt=1) vector(2) int
t.c:7:6: note: op template: _12 = _2 + -2;
t.c:7:6: note: stmt 0 _12 = _2 + -2;
t.c:7:6: note: stmt 1 _16 = _6 + -2;
t.c:7:6: note: children 0x51cb8a0 0x51cbab0
...
and fail it, removing the instance. Then we schedule
t.c:7:6: note: node 0x51cb690 (refcnt=1) vector(2) int
t.c:7:6: note: op template: _15 = _12 + _14;
t.c:7:6: note: stmt 0 _15 = _12 + _14;
t.c:7:6: note: stmt 1 _17 = _14 + _16;
t.c:7:6: note: children 0x51cb7f0 0x51cbb60
t.c:7:6: note: node 0x51cb7f0 (refcnt=1) vector(2) int @f_1.1_8 = f_1;
t.c:7:6: note: op template: _12 = _2 + -2;
t.c:7:6: note: stmt 0 _12 = _2 + -2;
t.c:7:6: note: stmt 1 _16 = _6 + -2;
t.c:7:6: note: children 0x51cb8a0 0x51cbab0
t.c:7:6: note: node 0x51cb8a0 (refcnt=1) vector(2) int @f_1.1_8 = f_1;
t.c:7:6: note: op: VEC_PERM_EXPR
t.c:7:6: note: stmt 0 _2 = (int) _1;
t.c:7:6: note: stmt 1 _6 = (int) _5;
t.c:7:6: note: lane permutation { 0[2] 0[3] }
t.c:7:6: note: children 0x51cbd70
...
ah, but
if (!scc_info.get (node))
res &= vect_schedule_scc (vinfo, node, instance, scc_info,
maxdfs, stack, place_only);
does not use the cached failure state. Oops.