2
0
mirror of https://github.com/boostorg/json.git synced 2026-02-15 13:12:17 +00:00

Fix sse treatment of chars

This commit is contained in:
Vinnie Falco
2019-11-03 09:16:03 -08:00
parent 2b730cdb85
commit 347abdf087

View File

@@ -30,6 +30,7 @@ count_unescaped(
__m128i const q1 = _mm_set1_epi8( '"' );
__m128i const q2 = _mm_set1_epi8( '\\' );
__m128i const q3 = _mm_set1_epi8( 0x20 );
__m128i const q4 = _mm_set1_epi8( -1 );
char const * s0 = s;
@@ -39,7 +40,7 @@ count_unescaped(
__m128i v2 = _mm_cmpeq_epi8( v1, q1 );
__m128i v3 = _mm_cmpeq_epi8( v1, q2 );
__m128i v4 = _mm_cmplt_epi8( v1, q3 );
__m128i v4 = _mm_and_si128( _mm_cmplt_epi8( v1, q3 ), _mm_cmpgt_epi8( v1, q4 ) ); // ch > -1 && ch < 0x20
__m128i v5 = _mm_or_si128( v2, v3 );
__m128i v6 = _mm_or_si128( v5, v4 );