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

--- Comment #7 from rguenther at suse dot de <rguenther at suse dot de> ---
On Wed, 26 Feb 2025, tnfchris at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119016
> 
> --- Comment #6 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
> At the start of the second iteration len = 2, so start becomes misaligned at
> 0x7fffffffe2f2
> 
> but the peeling iteration code checks (0x7fffffffe2f2 / 8) & 1 which is 0, so
> it doesn't peel to align it.
> 
> Indeed the dump says:
> 
> oel.c:6:14: note:  created buf_15(D)
> oel.c:6:14: note:  niters for prolog loop: (size_t) ((unsigned long) buf_15(D)
> >> 3) & 1
> 
> Because of the scalar code doing DI mode loads, and the misalignment being
> HImode,  I don't think the alignment can be reached by peeling.
> 
> i.e. I don't think you can reach target alignment, and unless I'm missing
> something, get_misalign_in_elems does not have a failure mode for when target
> alignment can't be reached?

get_misalign_in_elems of course returns garbage when the access isn't
element aligned - we're not supposed to compute it in this case.

Reply via email to