]> git.ipfire.org Git - thirdparty/gcc.git/commit
Middle-end: Change order of LEN_MASK_LOAD/LEN_MASK_STORE arguments
authorJu-Zhe Zhong <juzhe.zhong@rivai.ai>
Mon, 3 Jul 2023 09:10:26 +0000 (17:10 +0800)
committerPan Li <pan2.li@intel.com>
Mon, 3 Jul 2023 14:26:11 +0000 (22:26 +0800)
commitb8806f6ffbe72ed8fb7aba3b3a9196ec4d13e614
treebd7efbea19ffab2e324ffabd0a2d4799ae5f9248
parent37449332ddb5d34ac1cb4f25b0d8b5ba2ad9d0f4
Middle-end: Change order of LEN_MASK_LOAD/LEN_MASK_STORE arguments

Hi, Richard. I fix the order as you suggeted.

Before this patch, the order is {len,mask,bias}.

Now, after this patch, the order becomes {len,bias,mask}.

Since you said we should not need 'internal_fn_bias_index', the bias index should always be the len index + 1.
I notice LEN_STORE order is {len,vector,bias}, to make them consistent, I reorder into LEN_STORE {len,bias,vector}.
Just like MASK_STORE {mask,vector}.

Ok for trunk ?

gcc/ChangeLog:

* config/riscv/autovec.md: Change order of
LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
* config/riscv/riscv-v.cc (expand_load_store): Ditto.
* doc/md.texi: Ditto.
* gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Ditto.
* internal-fn.cc (len_maskload_direct): Ditto.
(len_maskstore_direct): Ditto.
(add_len_and_mask_args): New function.
(expand_partial_load_optab_fn): Change order of
LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
(expand_partial_store_optab_fn): Ditto.
(internal_fn_len_index): New function.
(internal_fn_mask_index): Change order of
LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
(internal_fn_stored_value_index): Ditto.
(internal_len_load_store_bias): Ditto.
* internal-fn.h (internal_fn_len_index): New function.
* tree-ssa-dse.cc (initialize_ao_ref_for_dse): Change order of
LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
* tree-vect-stmts.cc (vectorizable_store): Ditto.
(vectorizable_load): Ditto.
gcc/config/riscv/autovec.md
gcc/config/riscv/riscv-v.cc
gcc/doc/md.texi
gcc/gimple-fold.cc
gcc/internal-fn.cc
gcc/internal-fn.h
gcc/tree-ssa-dse.cc
gcc/tree-vect-stmts.cc