On Mon, Jul 27, 2020 at 11:09 AM Richard Sandiford <richard.sandif...@arm.com> wrote: > > Richard Biener via Gcc-patches <gcc-patches@gcc.gnu.org> writes: > > On Wed, Jul 22, 2020 at 5:18 PM Stefan Schulze Frielinghaus via > > Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > >> > >> This is a follow up to commit 5c9669a0e6c respectively discussion > >> https://gcc.gnu.org/pipermail/gcc-patches/2020-June/549132.html > >> > >> In case that an alignment constraint is less than the size of a > >> corresponding scalar type, ensure that we advance at least by one > >> iteration. For example, on s390x we have for a long double an alignment > >> constraint of 8 bytes whereas the size is 16 bytes. Therefore, > >> TARGET_ALIGN / DR_SIZE equals zero resulting in an infinite loop which > >> can be reproduced by the following MWE: > > > > But we guard this case with vector_alignment_reachable_p, so we shouldn't > > have ended up here and the patch looks bogus. > > The above sounds like it ought to count as reachable alignment though. > If a type requires a lower alignment than its size, then that's even > more easily reachable than a type that requires the same alignment as > the size. I guess at one extreme, a target alignment of 1 is always > reachable.
Well, if the element alignment is 8 but its size is 16 then when presumably the desired vector alignment is a multiple of 16 we can never reach it. Isn't this the case here? Richard. > Thanks, > Richard