]> git.ipfire.org Git - thirdparty/gcc.git/commit
VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer
authorJu-Zhe Zhong <juzhe.zhong@rivai.ai>
Thu, 22 Jun 2023 23:51:12 +0000 (07:51 +0800)
committerPan Li <pan2.li@intel.com>
Sat, 24 Jun 2023 00:49:29 +0000 (08:49 +0800)
commitd39f4889cc24c5c96cf9112045298e0945b9932c
treee44b171bcff238830b8e3344e87b61c6ed20a67f
parent6f78df4cdbfca94a0d36d339c14b9d81315d8339
VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer

Address comments from Richard and Bernhard from V5 patch.
V6 fixed all issues according their comments.

gcc/ChangeLog:

* internal-fn.cc (expand_partial_store_optab_fn): Adapt for LEN_MASK_STORE.
(internal_load_fn_p): Add LEN_MASK_LOAD.
(internal_store_fn_p): Add LEN_MASK_STORE.
(internal_fn_mask_index): Add LEN_MASK_{LOAD,STORE}.
(internal_fn_stored_value_index): Add LEN_MASK_STORE.
(internal_len_load_store_bias):  Add LEN_MASK_{LOAD,STORE}.
* optabs-tree.cc (can_vec_mask_load_store_p): Adapt for LEN_MASK_{LOAD,STORE}.
(get_len_load_store_mode): Ditto.
* optabs-tree.h (can_vec_mask_load_store_p): Ditto.
(get_len_load_store_mode): Ditto.
* tree-vect-stmts.cc (check_load_store_for_partial_vectors): Ditto.
(get_all_ones_mask): New function.
(vectorizable_store): Apply LEN_MASK_{LOAD,STORE} into vectorizer.
(vectorizable_load): Ditto.
gcc/internal-fn.cc
gcc/optabs-tree.cc
gcc/optabs-tree.h
gcc/tree-vect-stmts.cc