forked from suyu/suyu
common/bit_util: Make CountLeading/CountTrailing functions have the same return types
Makes the return type consistently uniform (like the intrinsics we're wrapping). This also conveniently silences a truncation warning within the kernel multi_level_queue.
This commit is contained in:
parent
66be5150d6
commit
33db37e669
1 changed files with 8 additions and 8 deletions
|
@ -32,7 +32,7 @@ inline u32 CountLeadingZeroes32(u32 value) {
|
||||||
return 32;
|
return 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline u64 CountLeadingZeroes64(u64 value) {
|
inline u32 CountLeadingZeroes64(u64 value) {
|
||||||
unsigned long leading_zero = 0;
|
unsigned long leading_zero = 0;
|
||||||
|
|
||||||
if (_BitScanReverse64(&leading_zero, value) != 0) {
|
if (_BitScanReverse64(&leading_zero, value) != 0) {
|
||||||
|
@ -47,15 +47,15 @@ inline u32 CountLeadingZeroes32(u32 value) {
|
||||||
return 32;
|
return 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
return __builtin_clz(value);
|
return static_cast<u32>(__builtin_clz(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline u64 CountLeadingZeroes64(u64 value) {
|
inline u32 CountLeadingZeroes64(u64 value) {
|
||||||
if (value == 0) {
|
if (value == 0) {
|
||||||
return 64;
|
return 64;
|
||||||
}
|
}
|
||||||
|
|
||||||
return __builtin_clzll(value);
|
return static_cast<u32>(__builtin_clzll(value));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ inline u32 CountTrailingZeroes32(u32 value) {
|
||||||
return 32;
|
return 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline u64 CountTrailingZeroes64(u64 value) {
|
inline u32 CountTrailingZeroes64(u64 value) {
|
||||||
unsigned long trailing_zero = 0;
|
unsigned long trailing_zero = 0;
|
||||||
|
|
||||||
if (_BitScanForward64(&trailing_zero, value) != 0) {
|
if (_BitScanForward64(&trailing_zero, value) != 0) {
|
||||||
|
@ -85,15 +85,15 @@ inline u32 CountTrailingZeroes32(u32 value) {
|
||||||
return 32;
|
return 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
return __builtin_ctz(value);
|
return static_cast<u32>(__builtin_ctz(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline u64 CountTrailingZeroes64(u64 value) {
|
inline u32 CountTrailingZeroes64(u64 value) {
|
||||||
if (value == 0) {
|
if (value == 0) {
|
||||||
return 64;
|
return 64;
|
||||||
}
|
}
|
||||||
|
|
||||||
return __builtin_ctzll(value);
|
return static_cast<u32>(__builtin_ctzll(value));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue