]> git.ipfire.org Git - thirdparty/gcc.git/commit
LoongArch: Optimize initializing fp resgister to zero
authorDeng Jianbo <dengjianbo@loongson.cn>
Tue, 31 Dec 2024 11:33:23 +0000 (19:33 +0800)
committerLulu Cheng <chenglulu@loongson.cn>
Tue, 7 Jan 2025 11:45:14 +0000 (19:45 +0800)
commit61400b669688848dc764d946a4d16fb51a27e286
tree9cd71139379f4a42711b02dc6a2768c0cf8608fe
parent1ea6fef426e37a09edd97bca65733930c214978d
LoongArch: Optimize initializing fp resgister to zero

In LoongArch, currently uses instruction movgr2fr.{d|w} to move zero
from fixed-point register to floating-pointer regsiter for initializing
fp register to zero. When LSX or LASX is enabled, we can use instruction
vxor.v which has lower latency than instruction movgr2fr.{d|w} to set fp
register to zero directly.

gcc/ChangeLog:

* config/loongarch/loongarch.cc (loongarch_output_move):
Optimize instructions for initializing fp regsiter to zero.

gcc/testsuite/ChangeLog:

* gcc.target/loongarch/mov-zero-1.c: New test.
* gcc.target/loongarch/mov-zero-2.c: New test.
gcc/config/loongarch/loongarch.cc
gcc/testsuite/gcc.target/loongarch/mov-zero-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/loongarch/mov-zero-2.c [new file with mode: 0644]