diff options
author | Richard Biener <rguenther@suse.de> | 2023-08-23 14:28:26 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2023-08-24 11:38:55 +0200 |
commit | a1558e9ad856938f165f838733955b331ebbec09 (patch) | |
tree | 970eacbfa0fd5d24cd4d84934a8e3eea83805f95 /gcc/tree-vect-loop.cc | |
parent | e80f7c13f64e10c6a3354c5d6b42da60b21ed0b8 (diff) | |
download | gcc-a1558e9ad856938f165f838733955b331ebbec09.zip gcc-a1558e9ad856938f165f838733955b331ebbec09.tar.gz gcc-a1558e9ad856938f165f838733955b331ebbec09.tar.bz2 |
tree-optimization/111115 - SLP of masked stores
The following adds the capability to do SLP on .MASK_STORE, I do not
plan to add interleaving support.
PR tree-optimization/111115
gcc/
* tree-vectorizer.h (vect_slp_child_index_for_operand): New.
* tree-vect-data-refs.cc (can_group_stmts_p): Also group
.MASK_STORE.
* tree-vect-slp.cc (arg3_arg2_map): New.
(vect_get_operand_map): Handle IFN_MASK_STORE.
(vect_slp_child_index_for_operand): New function.
(vect_build_slp_tree_1): Handle statements with no LHS,
masked store ifns.
(vect_remove_slp_scalar_calls): Likewise.
* tree-vect-stmts.cc (vect_check_store_rhs): Lookup the
SLP child corresponding to the ifn value index.
(vectorizable_store): Likewise for the mask index. Support
masked stores.
(vectorizable_load): Lookup the SLP child corresponding to the
ifn mask index.
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_vect_masked_store):
Supported with check_avx_available.
* gcc.dg/vect/slp-mask-store-1.c: New testcase.
Diffstat (limited to 'gcc/tree-vect-loop.cc')
0 files changed, 0 insertions, 0 deletions