]> git.ipfire.org Git - thirdparty/gcc.git/commit
LoongArch: implement count_{leading,trailing}_zeros
authorXi Ruoyao <xry111@xry111.site>
Wed, 12 Oct 2022 14:06:07 +0000 (22:06 +0800)
committerXi Ruoyao <xry111@xry111.site>
Thu, 13 Oct 2022 10:05:22 +0000 (18:05 +0800)
commit6f653a2c85a450714bac905ea4f153234bc6cd5f
treed6218ef805fa751f65760f726dbf7b77bbfbe3cf
parent7f9a7465c863e482708d2a00f5f7ff91ae3a7e0b
LoongArch: implement count_{leading,trailing}_zeros

LoongArch always support clz and ctz instructions, so we can always use
__builtin_{clz,ctz} for count_{leading,trailing}_zeros.  This improves
the code of libgcc, and also benefits Glibc once we merge longlong.h
there.

Bootstrapped and regtested on loongarch64-linux-gnu.

include/ChangeLog:

* longlong.h [__loongarch__] (count_leading_zeros): Define.
[__loongarch__] (count_trailing_zeros): Likewise.
[__loongarch__] (COUNT_LEADING_ZEROS_0): Likewise.
include/longlong.h