diff options
author | Li Wei <liwei@loongson.cn> | 2023-11-28 15:39:00 +0800 |
---|---|---|
committer | Lulu Cheng <chenglulu@loongson.cn> | 2023-12-02 16:50:02 +0800 |
commit | 6b226c2611f0ec01f2cc1319bc41af37518f2dfd (patch) | |
tree | e4b567d572ac474cf80c51581d9f0f2313d008cf /gcc/ada/gcc-interface/utils.cc | |
parent | a68ae55883113c10320b164738eebadaf08df5b0 (diff) | |
download | gcc-6b226c2611f0ec01f2cc1319bc41af37518f2dfd.zip gcc-6b226c2611f0ec01f2cc1319bc41af37518f2dfd.tar.gz gcc-6b226c2611f0ec01f2cc1319bc41af37518f2dfd.tar.bz2 |
LoongArch: Optimize vector constant extract-{even/odd} permutation.
For vector constant extract-{even/odd} permutation replace the default
[x]vshuf instruction combination with [x]vilv{l/h} instruction, which
can reduce instructions and improves performance.
gcc/ChangeLog:
* config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
Supplementary function prototype.
(loongarch_is_even_extraction): Adjust.
(loongarch_try_expand_lsx_vshuf_const): Adjust.
(loongarch_is_extraction_permutation): Adjust.
(loongarch_expand_vec_perm_const_2): Adjust.
gcc/testsuite/ChangeLog:
* gcc.target/loongarch/lasx-extract-even_odd-opt.c: New test.
Diffstat (limited to 'gcc/ada/gcc-interface/utils.cc')
0 files changed, 0 insertions, 0 deletions