diff options
author | Guo Jie <guojie@loongson.cn> | 2023-11-23 11:04:17 +0800 |
---|---|---|
committer | Lulu Cheng <chenglulu@loongson.cn> | 2023-11-27 10:47:36 +0800 |
commit | 96577dfae97e49a052c0b4d9843fb10f89632fd9 (patch) | |
tree | 77ba052d5ad94a4bd471b931516b1b7c07742387 /libcpp | |
parent | df8dfd78379c33f788535a7813f07677d53966bf (diff) | |
download | gcc-96577dfae97e49a052c0b4d9843fb10f89632fd9.zip gcc-96577dfae97e49a052c0b4d9843fb10f89632fd9.tar.gz gcc-96577dfae97e49a052c0b4d9843fb10f89632fd9.tar.bz2 |
LoongArch: Optimize the loading of immediate numbers with the same high and low 32-bit values
For the following immediate load operation in gcc/testsuite/gcc.target/loongarch/imm-load1.c:
long long r = 0x0101010101010101;
Before this patch:
lu12i.w $r15,16842752>>12
ori $r15,$r15,257
lu32i.d $r15,0x1010100000000>>32
lu52i.d $r15,$r15,0x100000000000000>>52
After this patch:
lu12i.w $r15,16842752>>12
ori $r15,$r15,257
bstrins.d $r15,$r15,63,32
gcc/ChangeLog:
* config/loongarch/loongarch.cc
(enum loongarch_load_imm_method): Add new method.
(loongarch_build_integer): Add relevant implementations for
new method.
(loongarch_move_integer): Ditto.
gcc/testsuite/ChangeLog:
* gcc.target/loongarch/imm-load1.c: Change old check.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions