**Describe the bug**
https://clickhouse-test-reports.s3.yandex.net/19702/c74631c650b42e4d107254a03bd82c2c2913039b/fuzzer_msan/server.log

Most likely introduced here: #11006
longest = a;
        cmp = 1;
    }
    else
    {
        max_size = b_size;
        longest = b;
        cmp = -1;
    }
    const __m128i zero16 = _mm_setzero_si128();
    for (size_t offset = min_size; offset < max_size; offset += 16)
    {
        uint16_t mask = _mm_movemask_epi8(_mm_cmpgt_epi8(
            _mm_loadu_si128(reinterpret_cast<const __m128i *>(longest + offset)),
            zero16));
        if (mask)
        {
            offset += __builtin_ctz(mask);
            if (offset >= max_size)
                return 0;
            return cmp;
        }
    }
    return 0;
}
/** Variant when memory regions have same size.
  * TODO Check if the compiler can optimize previous function when the caller pass identical sizes.
  */
template <typename Char>
inline int memcmpSmallAllowOverflow15(const Char * a, const Char * b, size_t size)