]> git.ipfire.org Git - thirdparty/gcc.git/commit
GIMPLE_FOLD: Apply LEN_MASK_{LOAD,STORE} into GIMPLE_FOLD
authorJu-Zhe Zhong <juzhe.zhong@rivai.ai>
Fri, 23 Jun 2023 13:48:27 +0000 (21:48 +0800)
committerPan Li <pan2.li@intel.com>
Sun, 25 Jun 2023 05:58:55 +0000 (13:58 +0800)
commitef09afa4767c25e23d5d837ce68a5b7ebd9bad1d
tree1dac02af0c878c2642c89b9fbb48fdeaf117c852
parentc79476da46728e2ab17e0e546262d2f6377081aa
GIMPLE_FOLD: Apply LEN_MASK_{LOAD,STORE} into GIMPLE_FOLD

Hi, since we are going to have LEN_MASK_{LOAD,STORE} into loopVectorizer.

Currenly,
1. we can fold MASK_{LOAD,STORE} into MEM when mask is all ones.
2. we can fold LEN_{LOAD,STORE} into MEM when (len - bias) is VF.

Now, I think it makes sense that we can support

fold LEN_MASK_{LOAD,STORE} into MEM when both mask = all ones and (len - bias) is VF.

gcc/ChangeLog:

* gimple-fold.cc (arith_overflowed_p): Apply LEN_MASK_{LOAD,STORE}.
(gimple_fold_partial_load_store_mem_ref): Ditto.
(gimple_fold_partial_store): Ditto.
(gimple_fold_call): Ditto.
gcc/gimple-fold.cc