1#if __has_include(<sys/hwcap.h>)
2#include <sys/hwcap.h>
3#define HAVE_SYS_HWCAP_H
4#endif
5
6#ifndef _IFUNC_ARG_HWCAP
7#define _IFUNC_ARG_HWCAP (1ULL << 62)
8#endif
9#ifndef AT_HWCAP
10#define AT_HWCAP 16
11#endif
12#ifndef HWCAP_CPUID
13#define HWCAP_CPUID (1 << 11)
14#endif
15#ifndef HWCAP_FP
16#define HWCAP_FP (1 << 0)
17#endif
18#ifndef HWCAP_ASIMD
19#define HWCAP_ASIMD (1 << 1)
20#endif
21#ifndef HWCAP_AES
22#define HWCAP_AES (1 << 3)
23#endif
24#ifndef HWCAP_PMULL
25#define HWCAP_PMULL (1 << 4)
26#endif
27#ifndef HWCAP_SHA1
28#define HWCAP_SHA1 (1 << 5)
29#endif
30#ifndef HWCAP_SHA2
31#define HWCAP_SHA2 (1 << 6)
32#endif
33#ifndef HWCAP_CRC32
34#define HWCAP_CRC32 (1 << 7)
35#endif
36#ifndef HWCAP_ATOMICS
37#define HWCAP_ATOMICS (1 << 8)
38#endif
39#ifndef HWCAP_FPHP
40#define HWCAP_FPHP (1 << 9)
41#endif
42#ifndef HWCAP_ASIMDHP
43#define HWCAP_ASIMDHP (1 << 10)
44#endif
45#ifndef HWCAP_ASIMDRDM
46#define HWCAP_ASIMDRDM (1 << 12)
47#endif
48#ifndef HWCAP_JSCVT
49#define HWCAP_JSCVT (1 << 13)
50#endif
51#ifndef HWCAP_FCMA
52#define HWCAP_FCMA (1 << 14)
53#endif
54#ifndef HWCAP_LRCPC
55#define HWCAP_LRCPC (1 << 15)
56#endif
57#ifndef HWCAP_DCPOP
58#define HWCAP_DCPOP (1 << 16)
59#endif
60#ifndef HWCAP_SHA3
61#define HWCAP_SHA3 (1 << 17)
62#endif
63#ifndef HWCAP_SM3
64#define HWCAP_SM3 (1 << 18)
65#endif
66#ifndef HWCAP_SM4
67#define HWCAP_SM4 (1 << 19)
68#endif
69#ifndef HWCAP_ASIMDDP
70#define HWCAP_ASIMDDP (1 << 20)
71#endif
72#ifndef HWCAP_SHA512
73#define HWCAP_SHA512 (1 << 21)
74#endif
75#ifndef HWCAP_SVE
76#define HWCAP_SVE (1 << 22)
77#endif
78#ifndef HWCAP_ASIMDFHM
79#define HWCAP_ASIMDFHM (1 << 23)
80#endif
81#ifndef HWCAP_DIT
82#define HWCAP_DIT (1 << 24)
83#endif
84#ifndef HWCAP_ILRCPC
85#define HWCAP_ILRCPC (1 << 26)
86#endif
87#ifndef HWCAP_FLAGM
88#define HWCAP_FLAGM (1 << 27)
89#endif
90#ifndef HWCAP_SSBS
91#define HWCAP_SSBS (1 << 28)
92#endif
93#ifndef HWCAP_SB
94#define HWCAP_SB (1 << 29)
95#endif
96
97#ifndef AT_HWCAP2
98#define AT_HWCAP2 26
99#endif
100#ifndef HWCAP2_DCPODP
101#define HWCAP2_DCPODP (1 << 0)
102#endif
103#ifndef HWCAP2_SVE2
104#define HWCAP2_SVE2 (1 << 1)
105#endif
106#ifndef HWCAP2_SVEAES
107#define HWCAP2_SVEAES (1 << 2)
108#endif
109#ifndef HWCAP2_SVEPMULL
110#define HWCAP2_SVEPMULL (1 << 3)
111#endif
112#ifndef HWCAP2_SVEBITPERM
113#define HWCAP2_SVEBITPERM (1 << 4)
114#endif
115#ifndef HWCAP2_SVESHA3
116#define HWCAP2_SVESHA3 (1 << 5)
117#endif
118#ifndef HWCAP2_SVESM4
119#define HWCAP2_SVESM4 (1 << 6)
120#endif
121#ifndef HWCAP2_FLAGM2
122#define HWCAP2_FLAGM2 (1 << 7)
123#endif
124#ifndef HWCAP2_FRINT
125#define HWCAP2_FRINT (1 << 8)
126#endif
127#ifndef HWCAP2_SVEI8MM
128#define HWCAP2_SVEI8MM (1 << 9)
129#endif
130#ifndef HWCAP2_SVEF32MM
131#define HWCAP2_SVEF32MM (1 << 10)
132#endif
133#ifndef HWCAP2_SVEF64MM
134#define HWCAP2_SVEF64MM (1 << 11)
135#endif
136#ifndef HWCAP2_SVEBF16
137#define HWCAP2_SVEBF16 (1 << 12)
138#endif
139#ifndef HWCAP2_I8MM
140#define HWCAP2_I8MM (1 << 13)
141#endif
142#ifndef HWCAP2_BF16
143#define HWCAP2_BF16 (1 << 14)
144#endif
145#ifndef HWCAP2_DGH
146#define HWCAP2_DGH (1 << 15)
147#endif
148#ifndef HWCAP2_RNG
149#define HWCAP2_RNG (1 << 16)
150#endif
151#ifndef HWCAP2_BTI
152#define HWCAP2_BTI (1 << 17)
153#endif
154#ifndef HWCAP2_MTE
155#define HWCAP2_MTE (1 << 18)
156#endif
157#ifndef HWCAP2_RPRES
158#define HWCAP2_RPRES (1 << 21)
159#endif
160#ifndef HWCAP2_MTE3
161#define HWCAP2_MTE3 (1 << 22)
162#endif
163#ifndef HWCAP2_SME
164#define HWCAP2_SME (1 << 23)
165#endif
166#ifndef HWCAP2_SME_I16I64
167#define HWCAP2_SME_I16I64 (1 << 24)
168#endif
169#ifndef HWCAP2_SME_F64F64
170#define HWCAP2_SME_F64F64 (1 << 25)
171#endif
172#ifndef HWCAP2_WFXT
173#define HWCAP2_WFXT (1UL << 31)
174#endif
175#ifndef HWCAP2_EBF16
176#define HWCAP2_EBF16 (1ULL << 32)
177#endif
178#ifndef HWCAP2_SVE_EBF16
179#define HWCAP2_SVE_EBF16 (1ULL << 33)
180#endif
181#ifndef HWCAP2_MOPS
182#define HWCAP2_MOPS (1ULL << 43)
183#endif
184