This commit is contained in:
Бранимир Караџић
2023-11-18 14:43:35 -08:00
parent 4c87a58af0
commit fe540e7657
3 changed files with 32 additions and 28 deletions

View File

@@ -544,32 +544,6 @@ namespace bx
return result;
}
inline BX_CONSTEXPR_FUNC uint32_t uint64_cntbits(uint64_t _val)
{
const uint32_t lo = uint32_t(_val&UINT32_MAX);
const uint32_t hi = uint32_t(_val>>32);
const uint32_t total = bx::uint32_cntbits(lo)
+ bx::uint32_cntbits(hi);
return total;
}
inline BX_CONSTEXPR_FUNC uint32_t uint64_cntlz(uint64_t _val)
{
return _val & UINT64_C(0xffffffff00000000)
? uint32_cntlz(uint32_t(_val>>32) )
: uint32_cntlz(uint32_t(_val) ) + 32
;
}
inline BX_CONSTEXPR_FUNC uint32_t uint64_cnttz(uint64_t _val)
{
return _val & UINT64_C(0xffffffff)
? uint32_cnttz(uint32_t(_val) )
: uint32_cnttz(uint32_t(_val>>32) ) + 32
;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_li(uint64_t _a)
{
return _a;
@@ -670,6 +644,21 @@ namespace bx
return _a * _b;
}
inline BX_CONSTEXPR_FUNC uint32_t uint64_cntbits(uint64_t _val)
{
return uint32_cntbits(_val);
}
inline BX_CONSTEXPR_FUNC uint32_t uint64_cntlz(uint64_t _val)
{
return uint32_cntlz(_val);
}
inline BX_CONSTEXPR_FUNC uint32_t uint64_cnttz(uint64_t _val)
{
return uint32_cnttz(_val);
}
inline BX_CONSTEXPR_FUNC uint32_t uint32_gcd(uint32_t _a, uint32_t _b)
{
do

View File

@@ -239,6 +239,15 @@ namespace bx
///
BX_CONSTEXPR_FUNC uint64_t uint64_mul(uint64_t _a, uint64_t _b);
///
BX_CONSTEXPR_FUNC uint32_t uint64_cntbits(uint64_t _val);
///
BX_CONSTEXPR_FUNC uint32_t uint64_cntlz(uint64_t _val);
///
BX_CONSTEXPR_FUNC uint32_t uint64_cnttz(uint64_t _val);
/// Greatest common divisor.
///
BX_CONSTEXPR_FUNC uint32_t uint32_gcd(uint32_t _a, uint32_t _b);