On Wed, Dec 13, 2017 at 04:53:27PM +0000, Jeff Law wrote:
> On 11/17/2017 03:04 PM, Richard Sandiford wrote:
> > Following on from the previous patch for strided accesses, this patch
> > allows gather loads to be used with grouped accesses, if we otherwise
> > would need to fall back to VMAT_ELEMENTWISE.  However, as the comment
> > says, this is restricted to single-element groups for now:
> > 
> >      ??? Although the code can handle all group sizes correctly,
> >      it probably isn't a win to use separate strided accesses based
> >      on nearby locations.  Or, even if it's a win over scalar code,
> >      it might not be a win over vectorizing at a lower VF, if that
> >      allows us to use contiguous accesses.
> > 
> > Single-element groups are an important special case though,
> > and this means that code is less sensitive to GCC's classification
> > of single accesses with constant steps as "grouped" and ones with
> > variable steps as "strided".
> > 
> > 2017-11-17  Richard Sandiford  <richard.sandif...@linaro.org>
> >         Alan Hayward  <alan.hayw...@arm.com>
> >         David Sherwood  <david.sherw...@arm.com>
> > 
> > gcc/
> >     * tree-vectorizer.h (vect_gather_scatter_fn_p): Declare.
> >     * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public.
> >     * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New
> >     function.
> >     (vect_use_strided_gather_scatters_p): Take a masked_p argument.
> >     Use vect_truncate_gather_scatter_offset if we can't treat the
> >     operation as a normal gather load or scatter store.
> >     (get_group_load_store_type): Take the gather_scatter_info
> >     as argument.  Try using a gather load or scatter store for
> >     single-element groups.
> >     (get_load_store_type): Update calls to get_group_load_store_type
> >     and vect_use_strided_gather_scatters_p.
> > 
> > gcc/testsuite/
> >     * gcc.target/aarch64/sve_strided_load_4.c: New test.
> >     * gcc.target/aarch64/sve_strided_load_5.c: Likewise.
> >     * gcc.target/aarch64/sve_strided_load_6.c: Likewise.
> >     * gcc.target/aarch64/sve_strided_load_7.c: Likewise.
> OK.
> jeff

The AArch64 tests are OK.

Thanks,
James

Reply via email to