diff options
author | Xi Ruoyao <xry111@xry111.site> | 2023-12-09 18:02:35 +0800 |
---|---|---|
committer | Xi Ruoyao <xry111@xry111.site> | 2023-12-17 19:23:29 +0800 |
commit | fbaac6f1f090f98391207346c1dc156799a11bc5 (patch) | |
tree | 18f22bc518c52ba4687d3d632794e0c201ebdfe1 /libphobos/libdruntime/gcc | |
parent | 50b3f596bd943ec6110c1987f14e5497ce39622f (diff) | |
download | gcc-fbaac6f1f090f98391207346c1dc156799a11bc5.zip gcc-fbaac6f1f090f98391207346c1dc156799a11bc5.tar.gz gcc-fbaac6f1f090f98391207346c1dc156799a11bc5.tar.bz2 |
LoongArch: Add alslsi3_extend
Following the instruction cost fix, we are generating
alsl.w $a0, $a0, $a0, 4
instead of
li.w $t0, 17
mul.w $a0, $t0
for "x * 4", because alsl.w is 4 times faster than mul.w. But we didn't
have a sign-extending pattern for alsl.w, causing an extra slli.w
instruction generated to sign-extend $a0. Add the pattern to remove the
redundant extension.
gcc/ChangeLog:
* config/loongarch/loongarch.md (alslsi3_extend): New
define_insn.
Diffstat (limited to 'libphobos/libdruntime/gcc')
0 files changed, 0 insertions, 0 deletions