{
#if defined(__SSSE3__) && !defined(MEMORY_SANITIZER)
    static constexpr UInt8 __attribute__((__aligned__(8))) masks[] =
    {
        0, 1, 2, 2, 4, 3, 2, 1, 
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 1, 0, 1, 0, 1, 0, 1,
        0, 1, 2, 0, 1, 2, 0, 1,
        0, 1, 2, 3, 0, 1, 2, 3,
        0, 1, 2, 3, 4, 0, 1, 2,
        0, 1, 2, 3, 4, 5, 0, 1,
        0, 1, 2, 3, 4, 5, 6, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 
    };
    _mm_storeu_si128(reinterpret_cast<__m128i *>(op),
        _mm_shuffle_epi8(
            _mm_loadu_si128(reinterpret_cast<const __m128i *>(match)),
            _mm_loadu_si128(reinterpret_cast<const __m128i *>(masks + 8 * offset))));
    match += masks[offset];
#else
    copyOverlap8(op, match, offset);
#endif
}
#endif
#ifdef __aarch64__
inline void copyOverlap8Shuffle(UInt8 * op, const UInt8 *& match, const size_t offset)