This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

r242306 - in /branches/ARM/sve-branch/gcc: inte...


Author: rsandifo
Date: Fri Nov 11 17:37:47 2016
New Revision: 242306

URL: https://gcc.gnu.org/viewcvs?rev=242306&root=gcc&view=rev
Log:
Add support for masked load/store_lanes

This patch adds support for vectorising conditional load-lanes and
store-lanes instructions.  This requires new internal functions to
represent the result (IFN_MASK_{LOAD,STORE}_LANES), as well as
associated optabs.

The normal IFN_{LOAD,STORE}_LANES functions are const operations
that logically just perform the permute: the load or store is
encoded as a MEM operand to the call statement.  In contrast,
the IFN_MASK_{LOAD,STORE}_LANES functions use the same kind of
interface as IFN_MASK_{LOAD,STORE}, since the memory is only
conditionally accessed.

The AArch64 patterns were added as part of the previous patch.

Added:
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_1.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_1_run.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_2.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_2_run.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_3.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_3_run.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_4.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_5.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_6.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_7.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_load_8.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_store_1.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_store_1_run.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_store_2.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_store_2_run.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_store_3.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_store_3_run.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_mask_struct_store_4.c
Modified:
    branches/ARM/sve-branch/gcc/internal-fn.c
    branches/ARM/sve-branch/gcc/internal-fn.def
    branches/ARM/sve-branch/gcc/optabs.def
    branches/ARM/sve-branch/gcc/tree-vect-data-refs.c
    branches/ARM/sve-branch/gcc/tree-vect-loop.c
    branches/ARM/sve-branch/gcc/tree-vect-slp.c
    branches/ARM/sve-branch/gcc/tree-vect-stmts.c
    branches/ARM/sve-branch/gcc/tree-vectorizer.h


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]