1 /* Test case for <sys/platform/x86.h> interface
2    Copyright (C) 2015-2021 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4 
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9 
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14 
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <https://www.gnu.org/licenses/>.  */
18 
19 #include <stdlib.h>
20 #include <stdio.h>
21 #include <sys/platform/x86.h>
22 #include <support/check.h>
23 
24 #define CHECK_CPU_FEATURE_PRESENT(name)		\
25   {						\
26     if (CPU_FEATURE_PRESENT (name))		\
27       printf ("  " #name "\n");			\
28   }
29 
30 #define CHECK_CPU_FEATURE_ACTIVE(name)	\
31   {						\
32     if (CPU_FEATURE_ACTIVE(name))		\
33       printf ("  " #name "\n");			\
34   }
35 
36 static int
do_test(void)37 do_test (void)
38 {
39 #ifdef __SSE2__
40   TEST_VERIFY_EXIT (CPU_FEATURE_PRESENT (SSE2));
41 #endif
42 
43   printf ("CPU features:\n");
44   CHECK_CPU_FEATURE_PRESENT (SSE3);
45   CHECK_CPU_FEATURE_PRESENT (PCLMULQDQ);
46   CHECK_CPU_FEATURE_PRESENT (DTES64);
47   CHECK_CPU_FEATURE_PRESENT (MONITOR);
48   CHECK_CPU_FEATURE_PRESENT (DS_CPL);
49   CHECK_CPU_FEATURE_PRESENT (VMX);
50   CHECK_CPU_FEATURE_PRESENT (SMX);
51   CHECK_CPU_FEATURE_PRESENT (EIST);
52   CHECK_CPU_FEATURE_PRESENT (TM2);
53   CHECK_CPU_FEATURE_PRESENT (SSSE3);
54   CHECK_CPU_FEATURE_PRESENT (CNXT_ID);
55   CHECK_CPU_FEATURE_PRESENT (SDBG);
56   CHECK_CPU_FEATURE_PRESENT (FMA);
57   CHECK_CPU_FEATURE_PRESENT (CMPXCHG16B);
58   CHECK_CPU_FEATURE_PRESENT (XTPRUPDCTRL);
59   CHECK_CPU_FEATURE_PRESENT (PDCM);
60   CHECK_CPU_FEATURE_PRESENT (PCID);
61   CHECK_CPU_FEATURE_PRESENT (DCA);
62   CHECK_CPU_FEATURE_PRESENT (SSE4_1);
63   CHECK_CPU_FEATURE_PRESENT (SSE4_2);
64   CHECK_CPU_FEATURE_PRESENT (X2APIC);
65   CHECK_CPU_FEATURE_PRESENT (MOVBE);
66   CHECK_CPU_FEATURE_PRESENT (POPCNT);
67   CHECK_CPU_FEATURE_PRESENT (TSC_DEADLINE);
68   CHECK_CPU_FEATURE_PRESENT (AES);
69   CHECK_CPU_FEATURE_PRESENT (XSAVE);
70   CHECK_CPU_FEATURE_PRESENT (OSXSAVE);
71   CHECK_CPU_FEATURE_PRESENT (AVX);
72   CHECK_CPU_FEATURE_PRESENT (F16C);
73   CHECK_CPU_FEATURE_PRESENT (RDRAND);
74   CHECK_CPU_FEATURE_PRESENT (FPU);
75   CHECK_CPU_FEATURE_PRESENT (VME);
76   CHECK_CPU_FEATURE_PRESENT (DE);
77   CHECK_CPU_FEATURE_PRESENT (PSE);
78   CHECK_CPU_FEATURE_PRESENT (TSC);
79   CHECK_CPU_FEATURE_PRESENT (MSR);
80   CHECK_CPU_FEATURE_PRESENT (PAE);
81   CHECK_CPU_FEATURE_PRESENT (MCE);
82   CHECK_CPU_FEATURE_PRESENT (CX8);
83   CHECK_CPU_FEATURE_PRESENT (APIC);
84   CHECK_CPU_FEATURE_PRESENT (SEP);
85   CHECK_CPU_FEATURE_PRESENT (MTRR);
86   CHECK_CPU_FEATURE_PRESENT (PGE);
87   CHECK_CPU_FEATURE_PRESENT (MCA);
88   CHECK_CPU_FEATURE_PRESENT (CMOV);
89   CHECK_CPU_FEATURE_PRESENT (PAT);
90   CHECK_CPU_FEATURE_PRESENT (PSE_36);
91   CHECK_CPU_FEATURE_PRESENT (PSN);
92   CHECK_CPU_FEATURE_PRESENT (CLFSH);
93   CHECK_CPU_FEATURE_PRESENT (DS);
94   CHECK_CPU_FEATURE_PRESENT (ACPI);
95   CHECK_CPU_FEATURE_PRESENT (MMX);
96   CHECK_CPU_FEATURE_PRESENT (FXSR);
97   CHECK_CPU_FEATURE_PRESENT (SSE);
98   CHECK_CPU_FEATURE_PRESENT (SSE2);
99   CHECK_CPU_FEATURE_PRESENT (SS);
100   CHECK_CPU_FEATURE_PRESENT (HTT);
101   CHECK_CPU_FEATURE_PRESENT (TM);
102   CHECK_CPU_FEATURE_PRESENT (PBE);
103   CHECK_CPU_FEATURE_PRESENT (FSGSBASE);
104   CHECK_CPU_FEATURE_PRESENT (TSC_ADJUST);
105   CHECK_CPU_FEATURE_PRESENT (SGX);
106   CHECK_CPU_FEATURE_PRESENT (BMI1);
107   CHECK_CPU_FEATURE_PRESENT (HLE);
108   CHECK_CPU_FEATURE_PRESENT (AVX2);
109   CHECK_CPU_FEATURE_PRESENT (SMEP);
110   CHECK_CPU_FEATURE_PRESENT (BMI2);
111   CHECK_CPU_FEATURE_PRESENT (ERMS);
112   CHECK_CPU_FEATURE_PRESENT (INVPCID);
113   CHECK_CPU_FEATURE_PRESENT (RTM);
114   CHECK_CPU_FEATURE_PRESENT (RDT_M);
115   CHECK_CPU_FEATURE_PRESENT (DEPR_FPU_CS_DS);
116   CHECK_CPU_FEATURE_PRESENT (MPX);
117   CHECK_CPU_FEATURE_PRESENT (RDT_A);
118   CHECK_CPU_FEATURE_PRESENT (AVX512F);
119   CHECK_CPU_FEATURE_PRESENT (AVX512DQ);
120   CHECK_CPU_FEATURE_PRESENT (RDSEED);
121   CHECK_CPU_FEATURE_PRESENT (ADX);
122   CHECK_CPU_FEATURE_PRESENT (SMAP);
123   CHECK_CPU_FEATURE_PRESENT (AVX512_IFMA);
124   CHECK_CPU_FEATURE_PRESENT (CLFLUSHOPT);
125   CHECK_CPU_FEATURE_PRESENT (CLWB);
126   CHECK_CPU_FEATURE_PRESENT (TRACE);
127   CHECK_CPU_FEATURE_PRESENT (AVX512PF);
128   CHECK_CPU_FEATURE_PRESENT (AVX512ER);
129   CHECK_CPU_FEATURE_PRESENT (AVX512CD);
130   CHECK_CPU_FEATURE_PRESENT (SHA);
131   CHECK_CPU_FEATURE_PRESENT (AVX512BW);
132   CHECK_CPU_FEATURE_PRESENT (AVX512VL);
133   CHECK_CPU_FEATURE_PRESENT (PREFETCHWT1);
134   CHECK_CPU_FEATURE_PRESENT (AVX512_VBMI);
135   CHECK_CPU_FEATURE_PRESENT (UMIP);
136   CHECK_CPU_FEATURE_PRESENT (PKU);
137   CHECK_CPU_FEATURE_PRESENT (OSPKE);
138   CHECK_CPU_FEATURE_PRESENT (WAITPKG);
139   CHECK_CPU_FEATURE_PRESENT (AVX512_VBMI2);
140   CHECK_CPU_FEATURE_PRESENT (SHSTK);
141   CHECK_CPU_FEATURE_PRESENT (GFNI);
142   CHECK_CPU_FEATURE_PRESENT (VAES);
143   CHECK_CPU_FEATURE_PRESENT (VPCLMULQDQ);
144   CHECK_CPU_FEATURE_PRESENT (AVX512_VNNI);
145   CHECK_CPU_FEATURE_PRESENT (AVX512_BITALG);
146   CHECK_CPU_FEATURE_PRESENT (AVX512_VPOPCNTDQ);
147   CHECK_CPU_FEATURE_PRESENT (RDPID);
148   CHECK_CPU_FEATURE_PRESENT (KL);
149   CHECK_CPU_FEATURE_PRESENT (CLDEMOTE);
150   CHECK_CPU_FEATURE_PRESENT (MOVDIRI);
151   CHECK_CPU_FEATURE_PRESENT (MOVDIR64B);
152   CHECK_CPU_FEATURE_PRESENT (ENQCMD);
153   CHECK_CPU_FEATURE_PRESENT (SGX_LC);
154   CHECK_CPU_FEATURE_PRESENT (PKS);
155   CHECK_CPU_FEATURE_PRESENT (AVX512_4VNNIW);
156   CHECK_CPU_FEATURE_PRESENT (AVX512_4FMAPS);
157   CHECK_CPU_FEATURE_PRESENT (FSRM);
158   CHECK_CPU_FEATURE_PRESENT (UINTR);
159   CHECK_CPU_FEATURE_PRESENT (AVX512_VP2INTERSECT);
160   CHECK_CPU_FEATURE_PRESENT (MD_CLEAR);
161   CHECK_CPU_FEATURE_PRESENT (RTM_ALWAYS_ABORT);
162   CHECK_CPU_FEATURE_PRESENT (SERIALIZE);
163   CHECK_CPU_FEATURE_PRESENT (HYBRID);
164   CHECK_CPU_FEATURE_PRESENT (TSXLDTRK);
165   CHECK_CPU_FEATURE_PRESENT (PCONFIG);
166   CHECK_CPU_FEATURE_PRESENT (IBT);
167   CHECK_CPU_FEATURE_PRESENT (AMX_BF16);
168   CHECK_CPU_FEATURE_PRESENT (AVX512_FP16);
169   CHECK_CPU_FEATURE_PRESENT (AMX_TILE);
170   CHECK_CPU_FEATURE_PRESENT (AMX_INT8);
171   CHECK_CPU_FEATURE_PRESENT (IBRS_IBPB);
172   CHECK_CPU_FEATURE_PRESENT (STIBP);
173   CHECK_CPU_FEATURE_PRESENT (L1D_FLUSH);
174   CHECK_CPU_FEATURE_PRESENT (ARCH_CAPABILITIES);
175   CHECK_CPU_FEATURE_PRESENT (CORE_CAPABILITIES);
176   CHECK_CPU_FEATURE_PRESENT (SSBD);
177   CHECK_CPU_FEATURE_PRESENT (LAHF64_SAHF64);
178   CHECK_CPU_FEATURE_PRESENT (SVM);
179   CHECK_CPU_FEATURE_PRESENT (LZCNT);
180   CHECK_CPU_FEATURE_PRESENT (SSE4A);
181   CHECK_CPU_FEATURE_PRESENT (PREFETCHW);
182   CHECK_CPU_FEATURE_PRESENT (XOP);
183   CHECK_CPU_FEATURE_PRESENT (LWP);
184   CHECK_CPU_FEATURE_PRESENT (FMA4);
185   CHECK_CPU_FEATURE_PRESENT (TBM);
186   CHECK_CPU_FEATURE_PRESENT (SYSCALL_SYSRET);
187   CHECK_CPU_FEATURE_PRESENT (NX);
188   CHECK_CPU_FEATURE_PRESENT (PAGE1GB);
189   CHECK_CPU_FEATURE_PRESENT (RDTSCP);
190   CHECK_CPU_FEATURE_PRESENT (LM);
191   CHECK_CPU_FEATURE_PRESENT (XSAVEOPT);
192   CHECK_CPU_FEATURE_PRESENT (XSAVEC);
193   CHECK_CPU_FEATURE_PRESENT (XGETBV_ECX_1);
194   CHECK_CPU_FEATURE_PRESENT (XSAVES);
195   CHECK_CPU_FEATURE_PRESENT (XFD);
196   CHECK_CPU_FEATURE_PRESENT (INVARIANT_TSC);
197   CHECK_CPU_FEATURE_PRESENT (WBNOINVD);
198   CHECK_CPU_FEATURE_PRESENT (AVX_VNNI);
199   CHECK_CPU_FEATURE_PRESENT (AVX512_BF16);
200   CHECK_CPU_FEATURE_PRESENT (FZLRM);
201   CHECK_CPU_FEATURE_PRESENT (FSRS);
202   CHECK_CPU_FEATURE_PRESENT (FSRCS);
203   CHECK_CPU_FEATURE_PRESENT (HRESET);
204   CHECK_CPU_FEATURE_PRESENT (LAM);
205   CHECK_CPU_FEATURE_PRESENT (AESKLE);
206   CHECK_CPU_FEATURE_PRESENT (WIDE_KL);
207   CHECK_CPU_FEATURE_PRESENT (PTWRITE);
208 
209   printf ("Possible CPU features:\n");
210   CHECK_CPU_FEATURE_ACTIVE (SSE3);
211   CHECK_CPU_FEATURE_ACTIVE (PCLMULQDQ);
212   CHECK_CPU_FEATURE_ACTIVE (DTES64);
213   CHECK_CPU_FEATURE_ACTIVE (MONITOR);
214   CHECK_CPU_FEATURE_ACTIVE (DS_CPL);
215   CHECK_CPU_FEATURE_ACTIVE (VMX);
216   CHECK_CPU_FEATURE_ACTIVE (SMX);
217   CHECK_CPU_FEATURE_ACTIVE (EIST);
218   CHECK_CPU_FEATURE_ACTIVE (TM2);
219   CHECK_CPU_FEATURE_ACTIVE (SSSE3);
220   CHECK_CPU_FEATURE_ACTIVE (CNXT_ID);
221   CHECK_CPU_FEATURE_ACTIVE (SDBG);
222   CHECK_CPU_FEATURE_ACTIVE (FMA);
223   CHECK_CPU_FEATURE_ACTIVE (CMPXCHG16B);
224   CHECK_CPU_FEATURE_ACTIVE (XTPRUPDCTRL);
225   CHECK_CPU_FEATURE_ACTIVE (PDCM);
226   CHECK_CPU_FEATURE_ACTIVE (PCID);
227   CHECK_CPU_FEATURE_ACTIVE (DCA);
228   CHECK_CPU_FEATURE_ACTIVE (SSE4_1);
229   CHECK_CPU_FEATURE_ACTIVE (SSE4_2);
230   CHECK_CPU_FEATURE_ACTIVE (X2APIC);
231   CHECK_CPU_FEATURE_ACTIVE (MOVBE);
232   CHECK_CPU_FEATURE_ACTIVE (POPCNT);
233   CHECK_CPU_FEATURE_ACTIVE (TSC_DEADLINE);
234   CHECK_CPU_FEATURE_ACTIVE (AES);
235   CHECK_CPU_FEATURE_ACTIVE (XSAVE);
236   CHECK_CPU_FEATURE_ACTIVE (OSXSAVE);
237   CHECK_CPU_FEATURE_ACTIVE (AVX);
238   CHECK_CPU_FEATURE_ACTIVE (F16C);
239   CHECK_CPU_FEATURE_ACTIVE (RDRAND);
240   CHECK_CPU_FEATURE_ACTIVE (FPU);
241   CHECK_CPU_FEATURE_ACTIVE (VME);
242   CHECK_CPU_FEATURE_ACTIVE (DE);
243   CHECK_CPU_FEATURE_ACTIVE (PSE);
244   CHECK_CPU_FEATURE_ACTIVE (TSC);
245   CHECK_CPU_FEATURE_ACTIVE (MSR);
246   CHECK_CPU_FEATURE_ACTIVE (PAE);
247   CHECK_CPU_FEATURE_ACTIVE (MCE);
248   CHECK_CPU_FEATURE_ACTIVE (CX8);
249   CHECK_CPU_FEATURE_ACTIVE (APIC);
250   CHECK_CPU_FEATURE_ACTIVE (SEP);
251   CHECK_CPU_FEATURE_ACTIVE (MTRR);
252   CHECK_CPU_FEATURE_ACTIVE (PGE);
253   CHECK_CPU_FEATURE_ACTIVE (MCA);
254   CHECK_CPU_FEATURE_ACTIVE (CMOV);
255   CHECK_CPU_FEATURE_ACTIVE (PAT);
256   CHECK_CPU_FEATURE_ACTIVE (PSE_36);
257   CHECK_CPU_FEATURE_ACTIVE (PSN);
258   CHECK_CPU_FEATURE_ACTIVE (CLFSH);
259   CHECK_CPU_FEATURE_ACTIVE (DS);
260   CHECK_CPU_FEATURE_ACTIVE (ACPI);
261   CHECK_CPU_FEATURE_ACTIVE (MMX);
262   CHECK_CPU_FEATURE_ACTIVE (FXSR);
263   CHECK_CPU_FEATURE_ACTIVE (SSE);
264   CHECK_CPU_FEATURE_ACTIVE (SSE2);
265   CHECK_CPU_FEATURE_ACTIVE (SS);
266   CHECK_CPU_FEATURE_ACTIVE (HTT);
267   CHECK_CPU_FEATURE_ACTIVE (TM);
268   CHECK_CPU_FEATURE_ACTIVE (PBE);
269   CHECK_CPU_FEATURE_ACTIVE (FSGSBASE);
270   CHECK_CPU_FEATURE_ACTIVE (TSC_ADJUST);
271   CHECK_CPU_FEATURE_ACTIVE (SGX);
272   CHECK_CPU_FEATURE_ACTIVE (BMI1);
273   CHECK_CPU_FEATURE_ACTIVE (HLE);
274   CHECK_CPU_FEATURE_ACTIVE (AVX2);
275   CHECK_CPU_FEATURE_ACTIVE (SMEP);
276   CHECK_CPU_FEATURE_ACTIVE (BMI2);
277   CHECK_CPU_FEATURE_ACTIVE (ERMS);
278   CHECK_CPU_FEATURE_ACTIVE (INVPCID);
279   CHECK_CPU_FEATURE_ACTIVE (RTM);
280   CHECK_CPU_FEATURE_ACTIVE (RDT_M);
281   CHECK_CPU_FEATURE_ACTIVE (DEPR_FPU_CS_DS);
282   CHECK_CPU_FEATURE_ACTIVE (MPX);
283   CHECK_CPU_FEATURE_ACTIVE (RDT_A);
284   CHECK_CPU_FEATURE_ACTIVE (AVX512F);
285   CHECK_CPU_FEATURE_ACTIVE (AVX512DQ);
286   CHECK_CPU_FEATURE_ACTIVE (RDSEED);
287   CHECK_CPU_FEATURE_ACTIVE (ADX);
288   CHECK_CPU_FEATURE_ACTIVE (SMAP);
289   CHECK_CPU_FEATURE_ACTIVE (AVX512_IFMA);
290   CHECK_CPU_FEATURE_ACTIVE (CLFLUSHOPT);
291   CHECK_CPU_FEATURE_ACTIVE (CLWB);
292   CHECK_CPU_FEATURE_ACTIVE (TRACE);
293   CHECK_CPU_FEATURE_ACTIVE (AVX512PF);
294   CHECK_CPU_FEATURE_ACTIVE (AVX512ER);
295   CHECK_CPU_FEATURE_ACTIVE (AVX512CD);
296   CHECK_CPU_FEATURE_ACTIVE (SHA);
297   CHECK_CPU_FEATURE_ACTIVE (AVX512BW);
298   CHECK_CPU_FEATURE_ACTIVE (AVX512VL);
299   CHECK_CPU_FEATURE_ACTIVE (PREFETCHWT1);
300   CHECK_CPU_FEATURE_ACTIVE (AVX512_VBMI);
301   CHECK_CPU_FEATURE_ACTIVE (UMIP);
302   CHECK_CPU_FEATURE_ACTIVE (PKU);
303   CHECK_CPU_FEATURE_ACTIVE (OSPKE);
304   CHECK_CPU_FEATURE_ACTIVE (WAITPKG);
305   CHECK_CPU_FEATURE_ACTIVE (AVX512_VBMI2);
306   CHECK_CPU_FEATURE_ACTIVE (SHSTK);
307   CHECK_CPU_FEATURE_ACTIVE (GFNI);
308   CHECK_CPU_FEATURE_ACTIVE (VAES);
309   CHECK_CPU_FEATURE_ACTIVE (VPCLMULQDQ);
310   CHECK_CPU_FEATURE_ACTIVE (AVX512_VNNI);
311   CHECK_CPU_FEATURE_ACTIVE (AVX512_BITALG);
312   CHECK_CPU_FEATURE_ACTIVE (AVX512_VPOPCNTDQ);
313   CHECK_CPU_FEATURE_ACTIVE (RDPID);
314   CHECK_CPU_FEATURE_ACTIVE (KL);
315   CHECK_CPU_FEATURE_ACTIVE (CLDEMOTE);
316   CHECK_CPU_FEATURE_ACTIVE (MOVDIRI);
317   CHECK_CPU_FEATURE_ACTIVE (MOVDIR64B);
318   CHECK_CPU_FEATURE_ACTIVE (ENQCMD);
319   CHECK_CPU_FEATURE_ACTIVE (SGX_LC);
320   CHECK_CPU_FEATURE_ACTIVE (PKS);
321   CHECK_CPU_FEATURE_ACTIVE (AVX512_4VNNIW);
322   CHECK_CPU_FEATURE_ACTIVE (AVX512_4FMAPS);
323   CHECK_CPU_FEATURE_ACTIVE (FSRM);
324   CHECK_CPU_FEATURE_ACTIVE (AVX512_VP2INTERSECT);
325   CHECK_CPU_FEATURE_ACTIVE (MD_CLEAR);
326   CHECK_CPU_FEATURE_ACTIVE (RTM_ALWAYS_ABORT);
327   CHECK_CPU_FEATURE_ACTIVE (SERIALIZE);
328   CHECK_CPU_FEATURE_ACTIVE (HYBRID);
329   CHECK_CPU_FEATURE_ACTIVE (TSXLDTRK);
330   CHECK_CPU_FEATURE_ACTIVE (PCONFIG);
331   CHECK_CPU_FEATURE_ACTIVE (IBT);
332   CHECK_CPU_FEATURE_ACTIVE (AMX_BF16);
333   CHECK_CPU_FEATURE_ACTIVE (AVX512_FP16);
334   CHECK_CPU_FEATURE_ACTIVE (AMX_TILE);
335   CHECK_CPU_FEATURE_ACTIVE (AMX_INT8);
336   CHECK_CPU_FEATURE_ACTIVE (IBRS_IBPB);
337   CHECK_CPU_FEATURE_ACTIVE (STIBP);
338   CHECK_CPU_FEATURE_ACTIVE (L1D_FLUSH);
339   CHECK_CPU_FEATURE_ACTIVE (ARCH_CAPABILITIES);
340   CHECK_CPU_FEATURE_ACTIVE (CORE_CAPABILITIES);
341   CHECK_CPU_FEATURE_ACTIVE (SSBD);
342   CHECK_CPU_FEATURE_ACTIVE (LAHF64_SAHF64);
343   CHECK_CPU_FEATURE_ACTIVE (SVM);
344   CHECK_CPU_FEATURE_ACTIVE (LZCNT);
345   CHECK_CPU_FEATURE_ACTIVE (SSE4A);
346   CHECK_CPU_FEATURE_ACTIVE (PREFETCHW);
347   CHECK_CPU_FEATURE_ACTIVE (XOP);
348   CHECK_CPU_FEATURE_ACTIVE (LWP);
349   CHECK_CPU_FEATURE_ACTIVE (FMA4);
350   CHECK_CPU_FEATURE_ACTIVE (TBM);
351   CHECK_CPU_FEATURE_ACTIVE (SYSCALL_SYSRET);
352   CHECK_CPU_FEATURE_ACTIVE (NX);
353   CHECK_CPU_FEATURE_ACTIVE (PAGE1GB);
354   CHECK_CPU_FEATURE_ACTIVE (RDTSCP);
355   CHECK_CPU_FEATURE_ACTIVE (LM);
356   CHECK_CPU_FEATURE_ACTIVE (XSAVEOPT);
357   CHECK_CPU_FEATURE_ACTIVE (XSAVEC);
358   CHECK_CPU_FEATURE_ACTIVE (XGETBV_ECX_1);
359   CHECK_CPU_FEATURE_ACTIVE (XSAVES);
360   CHECK_CPU_FEATURE_ACTIVE (XFD);
361   CHECK_CPU_FEATURE_ACTIVE (INVARIANT_TSC);
362   CHECK_CPU_FEATURE_ACTIVE (WBNOINVD);
363   CHECK_CPU_FEATURE_ACTIVE (AVX_VNNI);
364   CHECK_CPU_FEATURE_ACTIVE (AVX512_BF16);
365   CHECK_CPU_FEATURE_ACTIVE (FZLRM);
366   CHECK_CPU_FEATURE_ACTIVE (FSRS);
367   CHECK_CPU_FEATURE_ACTIVE (FSRCS);
368   CHECK_CPU_FEATURE_ACTIVE (AESKLE);
369   CHECK_CPU_FEATURE_ACTIVE (WIDE_KL);
370   CHECK_CPU_FEATURE_ACTIVE (PTWRITE);
371 
372   return 0;
373 }
374 
375 #include <support/test-driver.c>
376