diff options
| author | robot-contrib <[email protected]> | 2025-02-15 14:32:01 +0300 |
|---|---|---|
| committer | robot-contrib <[email protected]> | 2025-02-15 14:47:40 +0300 |
| commit | db6fa67d60db987184fd5eef86d347e2cad85daa (patch) | |
| tree | 58631d8b2f338160a6596883f8af77813bb47f03 /contrib/libs/simdjson/include | |
| parent | b78775e5a25dfb7551cdc06dba96cdfe6e9bd6fb (diff) | |
Update contrib/libs/simdjson to 3.12.2
commit_hash:1da1e7f4c8215c30ac33f0a481944ca35188e1fa
Diffstat (limited to 'contrib/libs/simdjson/include')
| -rw-r--r-- | contrib/libs/simdjson/include/simdjson/icelake/simd.h | 8 | ||||
| -rw-r--r-- | contrib/libs/simdjson/include/simdjson/simdjson_version.h | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/contrib/libs/simdjson/include/simdjson/icelake/simd.h b/contrib/libs/simdjson/include/simdjson/icelake/simd.h index 04203f4b9a5..a37ef957c9f 100644 --- a/contrib/libs/simdjson/include/simdjson/icelake/simd.h +++ b/contrib/libs/simdjson/include/simdjson/icelake/simd.h @@ -148,14 +148,18 @@ namespace simd { // Copies to 'output" all bytes corresponding to a 0 in the mask (interpreted as a bitset). // Passing a 0 value for mask would be equivalent to writing out every byte to output. - // Only the first 32 - count_ones(mask) bytes of the result are significant but 32 bytes + // Only the first 64 - count_ones(mask) bytes of the result are significant but 64 bytes // get written. // Design consideration: it seems like a function with the // signature simd8<L> compress(uint32_t mask) would be // sensible, but the AVX ISA makes this kind of approach difficult. template<typename L> simdjson_inline void compress(uint64_t mask, L * output) const { - _mm512_mask_compressstoreu_epi8 (output,~mask,*this); + // we deliberately avoid _mm512_mask_compressstoreu_epi8 for portability + // (AMD Zen4 has terrible performance with it, it is effectively broken) + // _mm512_mask_compressstoreu_epi8 (output,~mask,*this); + __m512i compressed = _mm512_maskz_compress_epi8(~mask, *this); + _mm512_storeu_si512(output, compressed); // could use a mask } template<typename L> diff --git a/contrib/libs/simdjson/include/simdjson/simdjson_version.h b/contrib/libs/simdjson/include/simdjson/simdjson_version.h index ae279016397..d61c07c01fb 100644 --- a/contrib/libs/simdjson/include/simdjson/simdjson_version.h +++ b/contrib/libs/simdjson/include/simdjson/simdjson_version.h @@ -4,7 +4,7 @@ #define SIMDJSON_SIMDJSON_VERSION_H /** The version of simdjson being used (major.minor.revision) */ -#define SIMDJSON_VERSION "3.12.1" +#define SIMDJSON_VERSION "3.12.2" namespace simdjson { enum { @@ -19,7 +19,7 @@ enum { /** * The revision (major.minor.REVISION) of simdjson being used. */ - SIMDJSON_VERSION_REVISION = 1 + SIMDJSON_VERSION_REVISION = 2 }; } // namespace simdjson |
