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.

Reply via email to