sse2neon
sse2neon copied to clipboard
Implement SSE4.2 text processing intrinsics
Apache Impala adopts SSE2NEON along with partial SSE4.2 text processing intrinsics support in file be/src/util/sse-util.h:
-
cmpestrm
-
cmpestri
However, the above were neither optimized nor generic. Instead, we can provide the full-functioned instrinsics in SSE2NEON. Reference:
Hi, I was wondering if mm_cmpestri
was implemented? I am getting the following error while compiling with sse2neon:
utils/http_parser.cc:119:11: error: ‘_SIDD_LEAST_SIGNIFICANT’ was not declared in this scope
119 | _SIDD_LEAST_SIGNIFICANT | _SIDD_CMP_RANGES | _SIDD_UBYTE_OPS);
| ^~~~~~~~~~~~~~~~~~~~~~~
utils/http_parser.cc:119:37: error: ‘_SIDD_CMP_RANGES’ was not declared in this scope
119 | _SIDD_LEAST_SIGNIFICANT | _SIDD_CMP_RANGES | _SIDD_UBYTE_OPS);
| ^~~~~~~~~~~~~~~~
utils/http_parser.cc:119:56: error: ‘_SIDD_UBYTE_OPS’ was not declared in this scope
119 | _SIDD_LEAST_SIGNIFICANT | _SIDD_CMP_RANGES | _SIDD_UBYTE_OPS);
| ^~~~~~~~~~~~~~~
utils/http_parser.cc:117:15: error: ‘_mm_cmpestri’ was not declared in this scope; did you mean ‘_mm_cmpeq_sd’?
117 | int r = _mm_cmpestri(
These are all defined in smmintrin.h
in x86.
@aagontuk, Both _mm_cmpestri
and _mm_cmpestrm
are being implemented recently. Please check #534 for details.
Currently, sse2neon supports these SSE4.2 text processing intrinsics:
- PCMPESTR
- _mm_cmpestri
- _mm_cmpestrm
- _mm_cmpestra
- _mm_cmpestrc
- _mm_cmpestro
- _mm_cmpestrs
- _mm_cmpestrz
- PCMPISTR
- _mm_cmpistri
- _mm_cmpistrm