https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120982
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|rguenth at gcc dot gnu.org |unassigned at gcc dot gnu.org CC| |rguenth at gcc dot gnu.org, | |rsandifo at gcc dot gnu.org, | |tnfchris at gcc dot gnu.org Status|ASSIGNED |NEW --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- This is /* 2. Create the vector-load in the loop. */ switch (alignment_support_scheme) { case dr_aligned: case dr_unaligned_supported: ... align = known_alignment (DR_TARGET_ALIGNMENT (first_dr_info)); if (alignment_support_scheme == dr_aligned) misalign = 0; ... if (dataref_offset == NULL_TREE && TREE_CODE (dataref_ptr) == SSA_NAME) set_ptr_info_alignment (get_ptr_info (dataref_ptr), align, misalign); the issue is that early break vectorization "abuses" DR_TARGET_ALIGNMENT here. But that only specifies alignment of the whole group, not that of the individual accesses.