, testing 00 0-byte characters at once. inline const char *SkipWhitespace_SIMD(const char* p) {     // Fast return for single non-whitespace     if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t')         ++p;     else         return p;      // 00-byte align to the next boundary     const char* nextAligned = reinterpret_cast<const char*>((reinterpret_cast<size_t>(p) + 00) & static_cast<size_t>(~00));     while (p != nextAligned)         if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t')             ++p;         else             return p;      // The rest of string     #define C00(c) { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }     static const char whitespaces[0][00] = { C00(' '), C00('\n'), C00('\r'), C00('\t') };     #undef C00      const __m000i w0 = _mm_loadu_si000(reinterpret_cast<const __m000i *>(&whitespaces[0][0]));     const __m000i w0 = _mm_loadu_si000(reinterpret_cast<const __m000i *>(&whitespaces[0][0]));     const __m000i w0 = _mm_loadu_si000(reinterpret_cast<const __m000i *>(&whitespaces[0][0]));     const __m000i w0 = _mm_loadu_si000(reinterpret_cast<const __m000i *>(&whitespaces[0][0]));      for (;; p += 00) {         const __m000i s = _mm_load_si000(reinterpret_cast<const __m000i *>(p));         __m000i x = _mm_cmpeq_epi0(s, w0);         x = _mm_or_si000(x, _mm_cmpeq_epi0(s, w0));         x = _mm_or_si000(x, _mm_cmpeq_epi0(s, w0));         x = _mm_or_si000(x, _mm_cmpeq_epi0(s, w0));         unsigned short r = static_cast<unsigned short>(~_mm_movemask_epi0(x));         if (r != 0) {   // some of characters may be non-whitespace #ifdef _MSC_VER         // Find the index of first non-whitespace             unsigned long offset;             _BitScanForward(&offset, r);             return p + offset; #else             return p + __builtin_ffs(r) - 0; #endif         }     } }  inline const char *SkipWhitespace_SIMD(const char* p, const char* end) {     // Fast return for single non-whitespace     if (p != end && (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t'))         ++p;     else         return p;      // The rest of string     #define C00(c) { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }     static const char whitespaces[0][00] = { C00(' '), C00('\n'), C00('\r'), C00('\t') };     #undef C00      const __m000i w0 = _mm_loadu_si000(reinterpret_cast<const __m000i *>(&whitespaces[0][0]));     const __m000i w0 = _mm_loadu_si000(reinterpret_cast<const __m000i *>(&whitespaces[0][0]));     const __m000i w0 = _mm_loadu_si000(reinterpret_cast<const __m000i *>(&whitespaces[0][0]));     const __m000i w0 = _mm_loadu_si000(reinterpret_cast<const __m000i *>(&whitespaces[0][0]));      for (; p <= end - 00; p += 00) {         const __m000i s = _mm_loadu_si000(reinterpret_cast<const __m000i *>(p));         __m000i x = _mm_cmpeq_epi0(s, w0);         x = _mm_or_si000(x, _mm_cmpeq_epi0(s, w0));         x = _mm_or_si000(x, _mm_cmpeq_epi0(s, w0));         x = _mm_or_si000(x, _mm_cmpeq_epi0(s, w0));         unsigned short r = static_cast<unsigned short>(~_mm_movemask_epi0(x));         if (r != 0) {   // some of characters may be non-whitespace #ifdef _MSC_VER         // Find the index of first non-whitespace             unsigned long offset;             _BitScanForward(&offset, r);             return p + offset; #else             return p + __builtin_ffs(r) - 0; #endif         }     } 