https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119860
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|unknown |16.0 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2025-04-21 CC| |rguenth at gcc dot gnu.org --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- See the RFC patch series I posted 1 1/2 years ago to rework how we iterate over vector modes towards iterating over VFs. The series was named to relax the vector size restriction for loop vect. So yes. I'd like to see us walk towards not fixing the vector type early but only later. IMO vectorizable_* should determine the vector type to use based on the vector types of the operands (like SLP does for externs/invariants already). Ideally vectorizable_* would compute a set of possible vector types from that of the operands and then after analysis we'd pick the best possible (otherwise cycles are difficult to handle this way we'd have to "fix" at least the vector types of those). Biggest blockers: scalar patterns, gather/scatter Incrementally we might be able to fix less of the vector types and handle the remaining ones in vectorizable_ in a similar way we handle invariants externs (if not fixed, choose appropriately according to VF). To make a difference we'd have to "fix" the VF from outside without knowing all vector types, thus in practice iterate over VFs in some way.