additional optimization of fraction reading for char. It's slow patch with really big numbers, so allow CPU to process it efficiently!

This commit is contained in:
HedgehogInTheCPP 2026-09-16 23:27:23 +03:00
parent fa8c3a711a
commit 016e7817be

View File

@ -347,6 +347,15 @@ parse_mantissa(bigint &result, const parsed_number_string_t<UC> &num) noexcept {
}
// process all digits, in increments of step per loop
while (p != pend) {
#if defined(FASTFLOAT_64BIT_LIMB) && defined(FASTFLOAT_X86_SIMD) && \
FASTFLOAT_X86_SIMD >= 31
if FASTFLOAT_CONSTEXPR17 (sizeof(UC) == 1) {
if (!is_constant_evaluated() && (std::distance(p, pend) >= 16) &&
(step - counter >= 16) && (max_digits - digits >= 16)) {
parse_sixteen_digits(p, value, counter, digits);
}
}
#endif
while ((std::distance(p, pend) >= 8) && (step - counter >= 8) &&
(max_digits - digits >= 8)) {
parse_eight_digits(p, value, counter, digits);