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?

Reply via email to