https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120982

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
That is, DR_TARGET_ALIGNMENT and dr_aligned do not mix well for "over-aligned"
DR_TARGET_ALIGNMENT.

The immediate issue might be best fixed by dropping the set_ptr_info_alignment
calls, but we are using the same wrong over-alignment for .MASK_LOAD for
example here:

            else if (final_mask)
              {
                tree ptr = build_int_cst (ref_type, align * BITS_PER_UNIT);

possibly harmless again in the end of course.

Instead of complicating uses of DR_TARGET_ALIGNMENT it might be better
to have DR_TARGET_LOOP_ALIGNMENT for the purpose of ensuring each
first access in the vector loop is aligned (or DR_TARGET_GROUP_ALIGNMENT).

Of course that would require handling that everywhere.

I also wonder why we even pass analysis with this large DR_TARGET_ALIGNMENT
when DR_STEP obviously does not maintain it ...

Reply via email to