On Wed, Feb 28, 2018 at 02:20:27PM +0000, Richard Sandiford wrote:
> GCC 6 and 7 would vectorise:
> 
> void
> f (unsigned long incx, unsigned long incy,
>    float *restrict dx, float *restrict dy)
> {
>   unsigned long ix = 0, iy = 0;
>   for (unsigned long i = 0; i < 512; ++i)
>     {
>       dy[iy] += dx[ix];
>       ix += incx;
>       iy += incy;
>     }
> }
> 
> without first proving that incy is nonzero.  This is a regression from
> GCC 5.  It was fixed on trunk in r223486, which versioned the loop based

Are you sure about the revision?  This one is from 2015 and so should be in
all of GCC 6/7/8.

        Jakub

Reply via email to