/src/simdjson/include/simdjson/icelake/implementation.h
Line | Count | Source |
1 | | #ifndef SIMDJSON_ICELAKE_IMPLEMENTATION_H |
2 | | #define SIMDJSON_ICELAKE_IMPLEMENTATION_H |
3 | | |
4 | | #include "simdjson/implementation.h" |
5 | | |
6 | | // The constructor may be executed on any host, so we take care not to use SIMDJSON_TARGET_ICELAKE |
7 | | namespace simdjson { |
8 | | namespace icelake { |
9 | | |
10 | | using namespace simdjson; |
11 | | |
12 | | /** |
13 | | * @private |
14 | | */ |
15 | | class implementation final : public simdjson::implementation { |
16 | | public: |
17 | | simdjson_inline implementation() : simdjson::implementation( |
18 | | "icelake", |
19 | | "Intel/AMD AVX512", |
20 | | internal::instruction_set::AVX2 | internal::instruction_set::PCLMULQDQ | internal::instruction_set::BMI1 | internal::instruction_set::BMI2 | internal::instruction_set::AVX512F | internal::instruction_set::AVX512DQ | internal::instruction_set::AVX512CD | internal::instruction_set::AVX512BW | internal::instruction_set::AVX512VL | internal::instruction_set::AVX512VBMI2 |
21 | 1 | ) {} |
22 | | simdjson_warn_unused error_code create_dom_parser_implementation( |
23 | | size_t capacity, |
24 | | size_t max_length, |
25 | | std::unique_ptr<internal::dom_parser_implementation>& dst |
26 | | ) const noexcept final; |
27 | | simdjson_warn_unused error_code minify(const uint8_t *buf, size_t len, uint8_t *dst, size_t &dst_len) const noexcept final; |
28 | | simdjson_warn_unused bool validate_utf8(const char *buf, size_t len) const noexcept final; |
29 | | }; |
30 | | |
31 | | } // namespace icelake |
32 | | } // namespace simdjson |
33 | | |
34 | | #endif // SIMDJSON_ICELAKE_IMPLEMENTATION_H |