r246238 - in /branches/ARM/sve-branch/gcc: test...

rsandifo@gcc.gnu.org rsandifo@gcc.gnu.org
Fri Mar 17 18:09:00 GMT 2017


Author: rsandifo
Date: Fri Mar 17 18:09:56 2017
New Revision: 246238

URL: https://gcc.gnu.org/viewcvs?rev=246238&root=gcc&view=rev
Log:
Allow single-element interleaving for non-power-of-2 strides

This has two related effects:

(1) It makes the handling of large power-of-2 strides equivalent
    to the handling of non-power-of-2-strides (requires both the
    vect_analyze_group_access_1 and get_load_store_type changes).

(2) 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.

We can now vectorize pr65518.c using elementwise accesses,
just as we would have done if the array size had been 17
rather than 16.  Whether that's a good idea is up to the
cost model (again like it was previously for non-power-of-2
array sizes).

Added:
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_struct_vect_21.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_struct_vect_21_run.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_struct_vect_22.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_struct_vect_22_run.c
Modified:
    branches/ARM/sve-branch/gcc/testsuite/gcc.dg/vect/pr65518.c
    branches/ARM/sve-branch/gcc/tree-vect-data-refs.c
    branches/ARM/sve-branch/gcc/tree-vect-stmts.c



More information about the Gcc-cvs mailing list