r242306 - in /branches/ARM/sve-branch/gcc: inte...
rsandifo@gcc.gnu.org
rsandifo@gcc.gnu.org
Fri Nov 11 17:37:00 GMT 2016
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
More information about the Gcc-cvs
mailing list