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
18typedef enum X86FeatureId
19{
20 /* Have we run feature detection? */
22
23 /* scalar registers and 128-bit XMM registers */
26
27 /* 512-bit ZMM registers */
33#define X86FeaturesSize (PG_AVX512_VPOPCNTDQ + 1)
34
35extern PGDLLIMPORT bool X86Features[];
36
37extern void set_x86_features(void);
38
39static inline bool
41{
42 if (X86Features[INIT_PG_X86] == false)
44
45 return X86Features[feature];
46}
47
48#endif /* defined(USE_SSE2) || defined(__i386__) */
49
50#endif /* PG_CPU_H */
#define PGDLLIMPORT
Definition c.h:1356
static int fb(int x)