On 13 January 2018 at 16:50, Jeff Law <l...@redhat.com> wrote: > On 01/12/2018 09:28 AM, Richard Sandiford wrote: >> >> Here's the patch with the updated docs. Does this version look OK? >> >> Thanks, >> Richard >> >> >> 2018-01-12 Richard Sandiford <richard.sandif...@linaro.org> >> Alan Hayward <alan.hayw...@arm.com> >> David Sherwood <david.sherw...@arm.com> >> >> gcc/ >> * doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document. >> (vec_mask_store_lanes@var{m}@var{n}): Likewise. >> * optabs.def (vec_mask_load_lanes_optab): New optab. >> (vec_mask_store_lanes_optab): Likewise. >> * internal-fn.def (MASK_LOAD_LANES): New internal function. >> (MASK_STORE_LANES): Likewise. >> * internal-fn.c (mask_load_lanes_direct): New macro. >> (mask_store_lanes_direct): Likewise. >> (expand_mask_load_optab_fn): Handle masked operations. >> (expand_mask_load_lanes_optab_fn): New macro. >> (expand_mask_store_optab_fn): Handle masked operations. >> (expand_mask_store_lanes_optab_fn): New macro. >> (direct_mask_load_lanes_optab_supported_p): Likewise. >> (direct_mask_store_lanes_optab_supported_p): Likewise. >> * tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p >> parameter. >> (vect_load_lanes_supported): Likewise. >> * tree-vect-data-refs.c (strip_conversion): New function. >> (can_group_stmts_p): Likewise. >> (vect_analyze_data_ref_accesses): Use it instead of checking >> for a pair of assignments. >> (vect_store_lanes_supported): Take a masked_p parameter. >> (vect_load_lanes_supported): Likewise. >> * tree-vect-loop.c (vect_analyze_loop_2): Update calls to >> vect_store_lanes_supported and vect_load_lanes_supported. >> * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. >> * tree-vect-stmts.c (get_group_load_store_type): Take a masked_p >> parameter. Don't allow gaps for masked accesses. >> Use vect_get_store_rhs. Update calls to vect_store_lanes_supported >> and vect_load_lanes_supported. >> (get_load_store_type): Take a masked_p parameter and update >> call to get_group_load_store_type. >> (vectorizable_store): Update call to get_load_store_type. >> Handle IFN_MASK_STORE_LANES. >> (vectorizable_load): Update call to get_load_store_type. >> Handle IFN_MASK_LOAD_LANES. >> >> gcc/testsuite/ >> * gcc.dg/vect/vect-ooo-group-1.c: New test. >> * gcc.target/aarch64/sve/mask_struct_load_1.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_load_1_run.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_load_2.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_load_2_run.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_load_3.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_load_3_run.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_load_4.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_load_5.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_load_6.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_load_7.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_load_8.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_store_1.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_store_1_run.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_store_2.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_store_2_run.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_store_3.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_store_3_run.c: Likewise. >> * gcc.target/aarch64/sve/mask_struct_store_4.c: Likewise. > OK. I guess in retrospect I should have made the assumption that the > docs were slightly off and reviewed the rest in that light. > > Sorry for making this wait. > > Hi Richard,
I've noticed that this commit (r256620) causes new failures, see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83845 > Jeff > >