PostgreSQL Source Code
git master
Loading...
Searching...
No Matches
pg_cpu.h
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
*
3
* pg_cpu.h
4
* Runtime CPU feature detection
5
*
6
* Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7
* Portions Copyright (c) 1994, Regents of the University of California
8
*
9
* src/include/port/pg_cpu.h
10
*
11
*-------------------------------------------------------------------------
12
*/
13
#ifndef PG_CPU_H
14
#define PG_CPU_H
15
16
#if defined(USE_SSE2) || defined(__i386__)
17
18
typedef
enum
X86FeatureId
19
{
20
/* Have we run feature detection? */
21
INIT_PG_X86
,
22
23
/* scalar registers and 128-bit XMM registers */
24
PG_SSE4_2
,
25
PG_POPCNT
,
26
27
/* 512-bit ZMM registers */
28
PG_AVX512_BW
,
29
PG_AVX512_VL
,
30
PG_AVX512_VPCLMULQDQ
,
31
PG_AVX512_VPOPCNTDQ
,
32
}
X86FeatureId
;
33
#define X86FeaturesSize (PG_AVX512_VPOPCNTDQ + 1)
34
35
extern
PGDLLIMPORT
bool
X86Features
[];
36
37
extern
void
set_x86_features
(
void
);
38
39
static
inline
bool
40
x86_feature_available
(
X86FeatureId
feature
)
41
{
42
if
(
X86Features
[
INIT_PG_X86
] ==
false
)
43
set_x86_features
();
44
45
return
X86Features
[
feature
];
46
}
47
48
#endif
/* defined(USE_SSE2) || defined(__i386__) */
49
50
#endif
/* PG_CPU_H */
PGDLLIMPORT
#define PGDLLIMPORT
Definition
c.h:1356
fb
static int fb(int x)
Definition
preproc-init.c:92
src
include
port
pg_cpu.h
Generated on Fri Feb 27 2026 18:13:16 for PostgreSQL Source Code by
1.9.8