1 #ifndef SIMDJSON_BUILTIN_H
2 #define SIMDJSON_BUILTIN_H
4 #include "simdjson/implementations.h"
7 #ifndef SIMDJSON_BUILTIN_IMPLEMENTATION
8 #if SIMDJSON_CAN_ALWAYS_RUN_ICELAKE
9 #define SIMDJSON_BUILTIN_IMPLEMENTATION icelake
10 #elif SIMDJSON_CAN_ALWAYS_RUN_HASWELL
11 #define SIMDJSON_BUILTIN_IMPLEMENTATION haswell
12 #elif SIMDJSON_CAN_ALWAYS_RUN_WESTMERE
13 #define SIMDJSON_BUILTIN_IMPLEMENTATION westmere
14 #elif SIMDJSON_CAN_ALWAYS_RUN_ARM64
15 #define SIMDJSON_BUILTIN_IMPLEMENTATION arm64
16 #elif SIMDJSON_CAN_ALWAYS_RUN_PPC64
17 #define SIMDJSON_BUILTIN_IMPLEMENTATION ppc64
18 #elif SIMDJSON_CAN_ALWAYS_RUN_FALLBACK
19 #define SIMDJSON_BUILTIN_IMPLEMENTATION fallback
21 #error "All possible implementations (including fallback) have been disabled! simdjson will not run."
25 #define SIMDJSON_IMPLEMENTATION SIMDJSON_BUILTIN_IMPLEMENTATION
30 #include "simdjson/generic/implementation_simdjson_result_base.h"
31 #include "simdjson/generic/ondemand.h"
34 #include "simdjson/generic/implementation_simdjson_result_base-inl.h"
35 #include "simdjson/generic/ondemand-inl.h"
37 #undef SIMDJSON_IMPLEMENTATION
50 namespace builtin = SIMDJSON_BUILTIN_IMPLEMENTATION;
54 namespace ondemand = SIMDJSON_BUILTIN_IMPLEMENTATION::ondemand;
An implementation of simdjson for a particular CPU architecture.
We want to support argument-dependent lookup (ADL).
const implementation * builtin_implementation()
Represents the best statically linked simdjson implementation that can be used by the compiling progr...