Allow single-element interleaving for non-power-of-2 strides

Christophe Lyon christophe.lyon@linaro.org
Mon Jan 15 10:25:00 GMT 2018


On 7 January 2018 at 21:55, James Greenhalgh <james.greenhalgh@arm.com> wrote:
> On Fri, Nov 17, 2017 at 06:40:13PM +0000, Jeff Law wrote:
>> On 11/17/2017 08:33 AM, Richard Sandiford wrote:
>> > This allows LD3 to be used for isolated a[i * 3] accesses, in a similar
>> > way to the current a[i * 2] and a[i * 4] for LD2 and LD4 respectively.
>> > Given the problems with the cost model underestimating the cost of
>> > elementwise accesses, the patch continues to reject the VMAT_ELEMENTWISE
>> > cases that are currently rejected.
>> >
>> > Tested on aarch64-linux-gnu (with and without SVE), x86_64-linux-gnu
>> > and powerpc64le-linux-gnu.  OK to install?
>> >
>> > Richard
>> >
>> >
>> > 2017-11-17  Richard Sandiford  <richard.sandiford@linaro.org>
>> >         Alan Hayward  <alan.hayward@arm.com>
>> >         David Sherwood  <david.sherwood@arm.com>
>> >
>> > gcc/
>> >     * tree-vect-data-refs.c (vect_analyze_group_access_1): Allow
>> >     single-element interleaving even if the size is not a power of 2.
>> >     * tree-vect-stmts.c (get_load_store_type): Disallow elementwise
>> >     accesses for single-element interleaving if the group size is
>> >     not a power of 2.
>> >
>> > gcc/testsuite/
>> >     * gcc.target/aarch64/sve_struct_vect_18.c: New test.
>> >     * gcc.target/aarch64/sve_struct_vect_18_run.c: Likewise.
>> >     * gcc.target/aarch64/sve_struct_vect_19.c: Likewise.
>> >     * gcc.target/aarch64/sve_struct_vect_19_run.c: Likewise.
>> OK.
>> jeff
>
> The AArch64 tests are OK.
>

Hi,

After this commit (r256634), I have reported regressions on armeb in:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83851

Christophe

> Thanks,
> James
>



More information about the Gcc-patches mailing list