https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102767
Kewen Lin <linkw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |linkw at gcc dot gnu.org --- Comment #9 from Kewen Lin <linkw at gcc dot gnu.org> --- (In reply to Richard Biener from comment #8) > the backend says it can support misaligned V1TI via > rs6000_builtin_support_vector_misalignment: > > rs6000_builtin_support_vector_misalignment (mode=E_V1TImode, > type=<integer_type 0x7ffff66f41f8>, > misalignment=8, is_packed=false) at > ../../src/trunk/gcc/config/rs6000/rs6000.c:5069 > ... > /* VSX supports word-aligned vector. */ > if (misalignment % 4 == 0) > return true; > > so the vectorizer classifies it as dr_unaligned_supported and we of course > are then allowed to cost the supported unaligned store but the cost > hook doesn't consider elements == 1. > > Now, we probably should avoid 1-lane vector vectorization in BB vect but > that's > a different story. Yes, it's inconsistent between the hook and costing query. I'll make a patch.