On 10/23/2017 11:29 AM, Richard Sandiford wrote: > This patch makes vectorizable_load and vectorizable_store cope with > variable-length vectors. The reverse and permute cases will be > excluded by the code that checks the permutation mask (although a > patch after the main SVE submission adds support for the reversed > case). Here we also need to exclude VMAT_ELEMENTWISE and > VMAT_STRIDED_SLP, which split the operation up into a constant > number of constant-sized operations. We also don't try to extend > the current widening gather/scatter support to variable-length > vectors, since SVE uses a different approach. > > > 2017-10-23 Richard Sandiford <richard.sandif...@linaro.org> > Alan Hayward <alan.hayw...@arm.com> > David Sherwood <david.sherw...@arm.com> > > gcc/ > * tree-vect-stmts.c (get_load_store_type): Treat the number of > units as polynomial. Reject VMAT_ELEMENTWISE and VMAT_STRIDED_SLP > for variable-length vectors. > (vectorizable_mask_load_store): Treat the number of units as > polynomial, asserting that it is constant if the condition has > already been enforced. > (vectorizable_store, vectorizable_load): Likewise.
OK. jeff