1#ifndef SIMDJSON_ICELAKE_H
2#define SIMDJSON_ICELAKE_H
3
4#include "simdjson/implementation-base.h"
5
6#if SIMDJSON_IMPLEMENTATION_ICELAKE
7
8#if SIMDJSON_CAN_ALWAYS_RUN_ICELAKE
9#define SIMDJSON_TARGET_ICELAKE
10#define SIMDJSON_UNTARGET_ICELAKE
11#else
12#define SIMDJSON_TARGET_ICELAKE SIMDJSON_TARGET_REGION("avx512f,avx512dq,avx512cd,avx512bw,avx512vbmi,avx512vbmi2,avx512vl,avx2,bmi,pclmul,lzcnt")
13#define SIMDJSON_UNTARGET_ICELAKE SIMDJSON_UNTARGET_REGION
14#endif
15
16namespace simdjson {
17/**
18 * Implementation for Icelake (Intel AVX512).
19 */
20namespace icelake {
21} // namespace icelake
22} // namespace simdjson
23
24//
25// These two need to be included outside SIMDJSON_TARGET_ICELAKE
26//
27#include "simdjson/icelake/implementation.h"
28#include "simdjson/icelake/intrinsics.h"
29
30//
31// The rest need to be inside the region
32//
33#include "simdjson/icelake/begin.h"
34
35// Declarations
36#include "simdjson/generic/dom_parser_implementation.h"
37#include "simdjson/icelake/bitmanipulation.h"
38#include "simdjson/icelake/bitmask.h"
39#include "simdjson/icelake/simd.h"
40#include "simdjson/generic/jsoncharutils.h"
41#include "simdjson/generic/atomparsing.h"
42#include "simdjson/icelake/stringparsing.h"
43#include "simdjson/icelake/numberparsing.h"
44#include "simdjson/icelake/end.h"
45
46#endif // SIMDJSON_IMPLEMENTATION_ICELAKE
47#endif // SIMDJSON_ICELAKE_H
48