Simplify remove_trailing_zeros

This commit is contained in:
Junekey Jeon 2022-02-13 03:36:58 -08:00 committed by Victor Zverovich
parent b348caa9e9
commit c04af4bfc7

View File

@ -1876,12 +1876,9 @@ FMT_INLINE int remove_trailing_zeros(uint64_t& n) noexcept {
int s = 8;
while (true) {
auto q = rotr(n32 * mod_inv_25, 2);
if (q <= std::numeric_limits<uint32_t>::max() / 100) {
n32 = q;
s += 2;
} else {
break;
}
if (q > std::numeric_limits<uint32_t>::max() / 100) break;
n32 = q;
s += 2;
}
auto q = rotr(n32 * mod_inv_5, 1);
if (q <= std::numeric_limits<uint32_t>::max() / 10) {
@ -1900,12 +1897,9 @@ FMT_INLINE int remove_trailing_zeros(uint64_t& n) noexcept {
int s = 0;
while (true) {
auto q = rotr(n * mod_inv_25, 2);
if (q <= std::numeric_limits<uint64_t>::max() / 100) {
n = q;
s += 2;
} else {
break;
}
if (q > std::numeric_limits<uint64_t>::max() / 100) break;
n = q;
s += 2;
}
auto q = rotr(n * mod_inv_5, 1);
if (q <= std::numeric_limits<uint64_t>::max() / 10) {