simdjson
3.11.0
Ridiculously Fast JSON
intrinsics.h
1
#ifndef SIMDJSON_HASWELL_INTRINSICS_H
2
#define SIMDJSON_HASWELL_INTRINSICS_H
3
4
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
5
#include "simdjson/haswell/base.h"
6
#endif
// SIMDJSON_CONDITIONAL_INCLUDE
7
8
#if SIMDJSON_VISUAL_STUDIO
9
// under clang within visual studio, this will include <x86intrin.h>
10
#include <intrin.h>
// visual studio or clang
11
#else
12
#include <x86intrin.h>
// elsewhere
13
#endif
// SIMDJSON_VISUAL_STUDIO
14
15
#if SIMDJSON_CLANG_VISUAL_STUDIO
34
#include <bmiintrin.h>
// for _blsr_u64
35
#include <lzcntintrin.h>
// for __lzcnt64
36
#include <immintrin.h>
// for most things (AVX2, AVX512, _popcnt64)
37
#include <smmintrin.h>
38
#include <tmmintrin.h>
39
#include <avxintrin.h>
40
#include <avx2intrin.h>
41
#include <wmmintrin.h>
// for _mm_clmulepi64_si128
42
// unfortunately, we may not get _blsr_u64, but, thankfully, clang
43
// has it as a macro.
44
#ifndef _blsr_u64
45
// we roll our own
46
#define _blsr_u64(n) ((n - 1) & n)
47
#endif
// _blsr_u64
48
#endif
// SIMDJSON_CLANG_VISUAL_STUDIO
49
50
static_assert(
sizeof
(__m256i) <=
simdjson::SIMDJSON_PADDING
,
"insufficient padding for haswell kernel."
);
51
52
#endif
// SIMDJSON_HASWELL_INTRINSICS_H
simdjson::SIMDJSON_PADDING
constexpr size_t SIMDJSON_PADDING
The amount of padding needed in a buffer to parse JSON.
Definition:
base.h:32
include
simdjson
haswell
intrinsics.h
Generated by
1.9.1