aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/utils.cc
diff options
context:
space:
mode:
authorLi Wei <liwei@loongson.cn>2023-11-28 15:39:00 +0800
committerLulu Cheng <chenglulu@loongson.cn>2023-12-02 16:50:02 +0800
commit6b226c2611f0ec01f2cc1319bc41af37518f2dfd (patch)
treee4b567d572ac474cf80c51581d9f0f2313d008cf /gcc/ada/gcc-interface/utils.cc
parenta68ae55883113c10320b164738eebadaf08df5b0 (diff)
downloadgcc-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