https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92555

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
t.c:8:9: note:   === vect_update_vf_for_slp ===
t.c:8:9: note:   Loop contains only SLP stmts
t.c:8:9: note:   Updating vectorization factor to 8.

that's not true.  There is the inner loop induction that is live.

t.c:8:9: note:   init: phi relevant? x8_15 = PHI <x8_23(5)>
t.c:8:9: note:   vec_stmt_relevant_p: used out of loop.
t.c:8:9: note:   vec_stmt_relevant_p: stmt live but not relevant.
t.c:8:9: note:   mark relevant 1, live 1: x8_15 = PHI <x8_23(5)>
...
t.c:8:9: note:   worklist: examine stmt: x8_15 = PHI <x8_23(5)>
t.c:8:9: note:   vect_is_simple_use: operand x8_23 = PHI <0(4), x8_18(10)>,
type of def: induction
t.c:8:9: note:   inner-loop def-stmt defining outer-loop stmt.
t.c:8:9: note:   mark relevant 2, live 0: x8_23 = PHI <0(4), x8_18(10)>
t.c:8:9: note:   worklist: examine stmt: x8_23 = PHI <0(4), x8_18(10)>
t.c:8:9: note:   vect_is_simple_use: operand 0, type of def: constant
t.c:8:9: note:   vect_is_simple_use: operand x8_23 + 2, type of def: internal
t.c:8:9: note:   induction value on backedge.

I have a fix (I think).

Reply via email to