aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
authorLi Wei <liwei@loongson.cn>2023-12-28 20:26:46 +0800
committerLulu Cheng <chenglulu@loongson.cn>2024-01-04 14:17:57 +0800
commitcb666ded97fca46cacfeb6d86cec176158104f16 (patch)
tree3b966acc185fa9d17b9217f13ae4aa534d96534a /gcc/go
parentab80d838d5e0e039c7ff4d8eec20819d8a820797 (diff)
downloadgcc-cb666ded97fca46cacfeb6d86cec176158104f16.zip
gcc-cb666ded97fca46cacfeb6d86cec176158104f16.tar.gz
gcc-cb666ded97fca46cacfeb6d86cec176158104f16.tar.bz2
LoongArch: Merge constant vector permuatation implementations.
There are currently two versions of the implementations of constant vector permutation: loongarch_expand_vec_perm_const_1 and loongarch_expand_vec_perm_const_2. The implementations of the two versions are different. Currently, only the implementation of loongarch_expand_vec_perm_const_1 is used for 256-bit vectors. We hope to streamline the code as much as possible while retaining the better-performing implementation of the two. By repeatedly testing spec2006 and spec2017, we got the following Merged version. Compared with the pre-merger version, the number of lines of code in loongarch.cc has been reduced by 888 lines. At the same time, the performance of SPECint2006 under Ofast has been improved by 0.97%, and the performance of SPEC2017 fprate has been improved by 0.27%. gcc/ChangeLog: * config/loongarch/loongarch.cc (loongarch_is_odd_extraction): Remove useless forward declaration. (loongarch_is_even_extraction): Remove useless forward declaration. (loongarch_try_expand_lsx_vshuf_const): Removed. (loongarch_expand_vec_perm_const_1): Merged. (loongarch_is_double_duplicate): Removed. (loongarch_is_center_extraction): Ditto. (loongarch_is_reversing_permutation): Ditto. (loongarch_is_di_misalign_extract): Ditto. (loongarch_is_si_misalign_extract): Ditto. (loongarch_is_lasx_lowpart_extract): Ditto. (loongarch_is_op_reverse_perm): Ditto. (loongarch_is_single_op_perm): Ditto. (loongarch_is_divisible_perm): Ditto. (loongarch_is_triple_stride_extract): Ditto. (loongarch_expand_vec_perm_const_2): Merged. (loongarch_expand_vec_perm_const): New. (loongarch_vectorize_vec_perm_const): Adjust.
Diffstat (limited to 'gcc/go')
0 files changed, 0 insertions, 0 deletions