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.