Coverage Report

Created: 2026-11-12 07:14

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/cpuinfo/include/cpuinfo.h
Line
Count
Source
1
#pragma once
2
#ifndef CPUINFO_H
3
#define CPUINFO_H
4
5
#ifndef __cplusplus
6
#include <stdbool.h>
7
#endif
8
9
#ifdef __APPLE__
10
#include <TargetConditionals.h>
11
#endif
12
13
#include <stdint.h>
14
15
/* Identify architecture and define corresponding macro */
16
17
#if defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(_M_IX86)
18
#define CPUINFO_ARCH_X86 1
19
#endif
20
21
#if defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)
22
#define CPUINFO_ARCH_X86_64 1
23
#endif
24
25
#if defined(__arm__) || defined(_M_ARM)
26
#define CPUINFO_ARCH_ARM 1
27
#endif
28
29
#if defined(__aarch64__) || defined(_M_ARM64)
30
#define CPUINFO_ARCH_ARM64 1
31
#endif
32
33
#if defined(__PPC64__) || defined(__powerpc64__) || defined(_ARCH_PPC64)
34
#define CPUINFO_ARCH_PPC64 1
35
#endif
36
37
#if defined(__asmjs__)
38
#define CPUINFO_ARCH_ASMJS 1
39
#endif
40
41
#if defined(__wasm__)
42
#if defined(__wasm_simd128__)
43
#define CPUINFO_ARCH_WASMSIMD 1
44
#else
45
#define CPUINFO_ARCH_WASM 1
46
#endif
47
#endif
48
49
#if defined(__riscv)
50
#if (__riscv_xlen == 32)
51
#define CPUINFO_ARCH_RISCV32 1
52
#elif (__riscv_xlen == 64)
53
#define CPUINFO_ARCH_RISCV64 1
54
#endif
55
#endif
56
57
/* Define other architecture-specific macros as 0 */
58
59
#ifndef CPUINFO_ARCH_X86
60
#define CPUINFO_ARCH_X86 0
61
#endif
62
63
#ifndef CPUINFO_ARCH_X86_64
64
#define CPUINFO_ARCH_X86_64 0
65
#endif
66
67
#ifndef CPUINFO_ARCH_ARM
68
#define CPUINFO_ARCH_ARM 0
69
#endif
70
71
#ifndef CPUINFO_ARCH_ARM64
72
#define CPUINFO_ARCH_ARM64 0
73
#endif
74
75
#ifndef CPUINFO_ARCH_PPC64
76
#define CPUINFO_ARCH_PPC64 0
77
#endif
78
79
#ifndef CPUINFO_ARCH_ASMJS
80
#define CPUINFO_ARCH_ASMJS 0
81
#endif
82
83
#ifndef CPUINFO_ARCH_WASM
84
#define CPUINFO_ARCH_WASM 0
85
#endif
86
87
#ifndef CPUINFO_ARCH_WASMSIMD
88
#define CPUINFO_ARCH_WASMSIMD 0
89
#endif
90
91
#ifndef CPUINFO_ARCH_RISCV32
92
#define CPUINFO_ARCH_RISCV32 0
93
#endif
94
95
#ifndef CPUINFO_ARCH_RISCV64
96
#define CPUINFO_ARCH_RISCV64 0
97
#endif
98
99
#if CPUINFO_ARCH_X86 && defined(_MSC_VER)
100
#define CPUINFO_ABI __cdecl
101
#elif CPUINFO_ARCH_X86 && defined(__GNUC__)
102
#define CPUINFO_ABI __attribute__((__cdecl__))
103
#else
104
#define CPUINFO_ABI
105
#endif
106
107
#define CPUINFO_CACHE_UNIFIED 0x00000001
108
#define CPUINFO_CACHE_INCLUSIVE 0x00000002
109
#define CPUINFO_CACHE_COMPLEX_INDEXING 0x00000004
110
111
struct cpuinfo_cache {
112
  /** Cache size in bytes */
113
  uint32_t size;
114
  /** Number of ways of associativity */
115
  uint32_t associativity;
116
  /** Number of sets */
117
  uint32_t sets;
118
  /** Number of partitions */
119
  uint32_t partitions;
120
  /** Line size in bytes */
121
  uint32_t line_size;
122
  /**
123
   * Binary characteristics of the cache (unified cache, inclusive cache,
124
   * cache with complex indexing).
125
   *
126
   * @see CPUINFO_CACHE_UNIFIED, CPUINFO_CACHE_INCLUSIVE,
127
   * CPUINFO_CACHE_COMPLEX_INDEXING
128
   */
129
  uint32_t flags;
130
  /** Index of the first logical processor that shares this cache */
131
  uint32_t processor_start;
132
  /** Number of logical processors that share this cache */
133
  uint32_t processor_count;
134
};
135
136
struct cpuinfo_trace_cache {
137
  uint32_t uops;
138
  uint32_t associativity;
139
};
140
141
#define CPUINFO_PAGE_SIZE_4KB 0x1000
142
#define CPUINFO_PAGE_SIZE_1MB 0x100000
143
#define CPUINFO_PAGE_SIZE_2MB 0x200000
144
#define CPUINFO_PAGE_SIZE_4MB 0x400000
145
#define CPUINFO_PAGE_SIZE_16MB 0x1000000
146
#define CPUINFO_PAGE_SIZE_1GB 0x40000000
147
148
struct cpuinfo_tlb {
149
  uint32_t entries;
150
  uint32_t associativity;
151
  uint64_t pages;
152
};
153
154
/** Vendor of processor core design */
155
enum cpuinfo_vendor {
156
  /** Processor vendor is not known to the library, or the library failed
157
     to get vendor information from the OS. */
158
  cpuinfo_vendor_unknown = 0,
159
160
  /* Active vendors of modern CPUs */
161
162
  /**
163
   * Intel Corporation. Vendor of x86, x86-64, IA64, and ARM processor
164
   * microarchitectures.
165
   *
166
   * Sold its ARM design subsidiary in 2006. The last ARM processor design
167
   * was released in 2004.
168
   */
169
  cpuinfo_vendor_intel = 1,
170
  /** Advanced Micro Devices, Inc. Vendor of x86 and x86-64 processor
171
     microarchitectures. */
172
  cpuinfo_vendor_amd = 2,
173
  /** ARM Holdings plc. Vendor of ARM and ARM64 processor
174
     microarchitectures. */
175
  cpuinfo_vendor_arm = 3,
176
  /** Qualcomm Incorporated. Vendor of ARM and ARM64 processor
177
     microarchitectures. */
178
  cpuinfo_vendor_qualcomm = 4,
179
  /** Apple Inc. Vendor of ARM and ARM64 processor microarchitectures. */
180
  cpuinfo_vendor_apple = 5,
181
  /** Samsung Electronics Co., Ltd. Vendir if ARM64 processor
182
     microarchitectures. */
183
  cpuinfo_vendor_samsung = 6,
184
  /** Nvidia Corporation. Vendor of ARM64-compatible processor
185
     microarchitectures. */
186
  cpuinfo_vendor_nvidia = 7,
187
  /** MIPS Technologies, Inc. Vendor of MIPS processor microarchitectures.
188
   */
189
  cpuinfo_vendor_mips = 8,
190
  /** International Business Machines Corporation. Vendor of PowerPC
191
     processor microarchitectures. */
192
  cpuinfo_vendor_ibm = 9,
193
  /** Ingenic Semiconductor. Vendor of MIPS processor microarchitectures.
194
   */
195
  cpuinfo_vendor_ingenic = 10,
196
  /**
197
   * VIA Technologies, Inc. Vendor of x86 and x86-64 processor
198
   * microarchitectures.
199
   *
200
   * Processors are designed by Centaur Technology, a subsidiary of VIA
201
   * Technologies.
202
   */
203
  cpuinfo_vendor_via = 11,
204
  /** Cavium, Inc. Vendor of ARM64 processor microarchitectures. */
205
  cpuinfo_vendor_cavium = 12,
206
  /** Broadcom, Inc. Vendor of ARM processor microarchitectures. */
207
  cpuinfo_vendor_broadcom = 13,
208
  /** Applied Micro Circuits Corporation (APM). Vendor of ARM64 processor
209
     microarchitectures. */
210
  cpuinfo_vendor_apm = 14,
211
  /**
212
   * Huawei Technologies Co., Ltd. Vendor of ARM64 processor
213
   * microarchitectures.
214
   *
215
   * Processors are designed by HiSilicon, a subsidiary of Huawei.
216
   */
217
  cpuinfo_vendor_huawei = 15,
218
  /**
219
   * Hygon (Chengdu Haiguang Integrated Circuit Design Co., Ltd), Vendor
220
   * of x86-64 processor microarchitectures.
221
   *
222
   * Processors are variants of AMD cores.
223
   */
224
  cpuinfo_vendor_hygon = 16,
225
  /** SiFive, Inc. Vendor of RISC-V processor microarchitectures. */
226
  cpuinfo_vendor_sifive = 17,
227
228
  /* Active vendors of embedded CPUs */
229
230
  /** Texas Instruments Inc. Vendor of ARM processor microarchitectures.
231
   */
232
  cpuinfo_vendor_texas_instruments = 30,
233
  /** Marvell Technology Group Ltd. Vendor of ARM processor
234
   * microarchitectures.
235
   */
236
  cpuinfo_vendor_marvell = 31,
237
  /** RDC Semiconductor Co., Ltd. Vendor of x86 processor
238
     microarchitectures. */
239
  cpuinfo_vendor_rdc = 32,
240
  /** DM&P Electronics Inc. Vendor of x86 processor microarchitectures. */
241
  cpuinfo_vendor_dmp = 33,
242
  /** Motorola, Inc. Vendor of PowerPC and ARM processor
243
     microarchitectures. */
244
  cpuinfo_vendor_motorola = 34,
245
246
  /* Defunct CPU vendors */
247
248
  /**
249
   * Transmeta Corporation. Vendor of x86 processor microarchitectures.
250
   *
251
   * Now defunct. The last processor design was released in 2004.
252
   * Transmeta processors implemented VLIW ISA and used binary translation
253
   * to execute x86 code.
254
   */
255
  cpuinfo_vendor_transmeta = 50,
256
  /**
257
   * Cyrix Corporation. Vendor of x86 processor microarchitectures.
258
   *
259
   * Now defunct. The last processor design was released in 1996.
260
   */
261
  cpuinfo_vendor_cyrix = 51,
262
  /**
263
   * Rise Technology. Vendor of x86 processor microarchitectures.
264
   *
265
   * Now defunct. The last processor design was released in 1999.
266
   */
267
  cpuinfo_vendor_rise = 52,
268
  /**
269
   * National Semiconductor. Vendor of x86 processor microarchitectures.
270
   *
271
   * Sold its x86 design subsidiary in 1999. The last processor design was
272
   * released in 1998.
273
   */
274
  cpuinfo_vendor_nsc = 53,
275
  /**
276
   * Silicon Integrated Systems. Vendor of x86 processor
277
   * microarchitectures.
278
   *
279
   * Sold its x86 design subsidiary in 2001. The last processor design was
280
   * released in 2001.
281
   */
282
  cpuinfo_vendor_sis = 54,
283
  /**
284
   * NexGen. Vendor of x86 processor microarchitectures.
285
   *
286
   * Now defunct. The last processor design was released in 1994.
287
   * NexGen designed the first x86 microarchitecture which decomposed x86
288
   * instructions into simple microoperations.
289
   */
290
  cpuinfo_vendor_nexgen = 55,
291
  /**
292
   * United Microelectronics Corporation. Vendor of x86 processor
293
   * microarchitectures.
294
   *
295
   * Ceased x86 in the early 1990s. The last processor design was released
296
   * in 1991. Designed U5C and U5D processors. Both are 486 level.
297
   */
298
  cpuinfo_vendor_umc = 56,
299
  /**
300
   * Digital Equipment Corporation. Vendor of ARM processor
301
   * microarchitecture.
302
   *
303
   * Sold its ARM designs in 1997. The last processor design was released
304
   * in 1997.
305
   */
306
  cpuinfo_vendor_dec = 57,
307
};
308
309
/**
310
 * Processor microarchitecture
311
 *
312
 * Processors with different microarchitectures often have different instruction
313
 * performance characteristics, and may have dramatically different pipeline
314
 * organization.
315
 */
316
enum cpuinfo_uarch {
317
  /** Microarchitecture is unknown, or the library failed to get
318
     information about the microarchitecture from OS */
319
  cpuinfo_uarch_unknown = 0,
320
321
  /** Pentium and Pentium MMX microarchitecture. */
322
  cpuinfo_uarch_p5 = 0x00100100,
323
  /** Intel Quark microarchitecture. */
324
  cpuinfo_uarch_quark = 0x00100101,
325
326
  /** Pentium Pro, Pentium II, and Pentium III. */
327
  cpuinfo_uarch_p6 = 0x00100200,
328
  /** Pentium M. */
329
  cpuinfo_uarch_dothan = 0x00100201,
330
  /** Intel Core microarchitecture. */
331
  cpuinfo_uarch_yonah = 0x00100202,
332
  /** Intel Core 2 microarchitecture on 65 nm process. */
333
  cpuinfo_uarch_conroe = 0x00100203,
334
  /** Intel Core 2 microarchitecture on 45 nm process. */
335
  cpuinfo_uarch_penryn = 0x00100204,
336
  /** Intel Nehalem and Westmere microarchitectures (Core i3/i5/i7 1st
337
     gen). */
338
  cpuinfo_uarch_nehalem = 0x00100205,
339
  /** Intel Sandy Bridge microarchitecture (Core i3/i5/i7 2nd gen). */
340
  cpuinfo_uarch_sandy_bridge = 0x00100206,
341
  /** Intel Ivy Bridge microarchitecture (Core i3/i5/i7 3rd gen). */
342
  cpuinfo_uarch_ivy_bridge = 0x00100207,
343
  /** Intel Haswell microarchitecture (Core i3/i5/i7 4th gen). */
344
  cpuinfo_uarch_haswell = 0x00100208,
345
  /** Intel Broadwell microarchitecture. */
346
  cpuinfo_uarch_broadwell = 0x00100209,
347
  /** Intel Sky Lake microarchitecture (14 nm, including
348
     Kaby/Coffee/Whiskey/Amber/Comet/Cascade/Cooper Lake). */
349
  cpuinfo_uarch_sky_lake = 0x0010020A,
350
  /** DEPRECATED (Intel Kaby Lake microarchitecture). */
351
  cpuinfo_uarch_kaby_lake = 0x0010020A,
352
  /** Intel Palm Cove microarchitecture (10 nm, Cannon Lake). */
353
  cpuinfo_uarch_palm_cove = 0x0010020B,
354
  /** Intel Sunny Cove microarchitecture (10 nm, Ice Lake). */
355
  cpuinfo_uarch_sunny_cove = 0x0010020C,
356
  /** Intel Willow Cove microarchitecture (10 nm, Tiger Lake). */
357
  cpuinfo_uarch_willow_cove = 0x0010020D,
358
  /** Intel Golden Cove microarchitecture (Sapphire Rapids). */
359
  cpuinfo_uarch_golden_cove = 0x0010020E,
360
  /** Intel Raptor Cove microarchitecture (Emerald Rapids). */
361
  cpuinfo_uarch_raptor_cove = 0x0010020F,
362
  /** Intel Redwood Cove microarchitecture (Granite Rapids). */
363
  cpuinfo_uarch_redwood_cove = 0x00100210,
364
  /** Intel Coyote Cove microarchitecture. */
365
  cpuinfo_uarch_coyote_cove = 0x00100211,
366
  /** Intel Lion Cove microarchitecture (Arrow Lake, Lunar Lake). */
367
  cpuinfo_uarch_lion_cove = 0x00100212,
368
  /** Intel Cougar Cove microarchitecture (Panther Lake, Wildcat Lake). */
369
  cpuinfo_uarch_cougar_cove = 0x00100213,
370
371
  /** Pentium 4 with Willamette, Northwood, or Foster cores. */
372
  cpuinfo_uarch_willamette = 0x00100300,
373
  /** Pentium 4 with Prescott and later cores. */
374
  cpuinfo_uarch_prescott = 0x00100301,
375
376
  /** Intel Atom on 45 nm process. */
377
  cpuinfo_uarch_bonnell = 0x00100400,
378
  /** Intel Atom on 32 nm process. */
379
  cpuinfo_uarch_saltwell = 0x00100401,
380
  /** Intel Silvermont microarchitecture (22 nm out-of-order Atom). */
381
  cpuinfo_uarch_silvermont = 0x00100402,
382
  /** Intel Airmont microarchitecture (14 nm out-of-order Atom). */
383
  cpuinfo_uarch_airmont = 0x00100403,
384
  /** Intel Goldmont microarchitecture (Denverton, Apollo Lake). */
385
  cpuinfo_uarch_goldmont = 0x00100404,
386
  /** Intel Goldmont Plus microarchitecture (Gemini Lake). */
387
  cpuinfo_uarch_goldmont_plus = 0x00100405,
388
  /** Intel Airmont microarchitecture (10 nm out-of-order Atom). */
389
  cpuinfo_uarch_tremont = 0x00100406,
390
  /** Intel Gracemont microarchitecture (AlderLake N). */
391
  cpuinfo_uarch_gracemont = 0x00100407,
392
  /** Intel Crestmont microarchitecture (Sierra Forest). */
393
  cpuinfo_uarch_crestmont = 0x00100408,
394
  /** Intel Darkmont microarchitecture (e-core used in Clearwater Forest). */
395
  cpuinfo_uarch_darkmont = 0x00100409,
396
  /** Intel Skymont microarchitecture (Arrow Lake, Lunar Lake). */
397
  cpuinfo_uarch_skymont = 0x0010040A,
398
  /** Intel Arctic Wolf microarchitecture (Nova Lake). */
399
  cpuinfo_uarch_arctic_wolf = 0x0010040B,
400
401
  /** Intel Knights Ferry HPC boards. */
402
  cpuinfo_uarch_knights_ferry = 0x00100500,
403
  /** Intel Knights Corner HPC boards (aka Xeon Phi). */
404
  cpuinfo_uarch_knights_corner = 0x00100501,
405
  /** Intel Knights Landing microarchitecture (second-gen MIC). */
406
  cpuinfo_uarch_knights_landing = 0x00100502,
407
  /** Intel Knights Hill microarchitecture (third-gen MIC). */
408
  cpuinfo_uarch_knights_hill = 0x00100503,
409
  /** Intel Knights Mill Xeon Phi. */
410
  cpuinfo_uarch_knights_mill = 0x00100504,
411
412
  /** Intel/Marvell XScale series. */
413
  cpuinfo_uarch_xscale = 0x00100600,
414
415
  /** AMD K5. */
416
  cpuinfo_uarch_k5 = 0x00200100,
417
  /** AMD K6 and alike. */
418
  cpuinfo_uarch_k6 = 0x00200101,
419
  /** AMD Athlon and Duron. */
420
  cpuinfo_uarch_k7 = 0x00200102,
421
  /** AMD Athlon 64, Opteron 64. */
422
  cpuinfo_uarch_k8 = 0x00200103,
423
  /** AMD Family 10h (Barcelona, Istambul, Magny-Cours). */
424
  cpuinfo_uarch_k10 = 0x00200104,
425
  /**
426
   * AMD Bulldozer microarchitecture
427
   * Zambezi FX-series CPUs, Zurich, Valencia and Interlagos Opteron CPUs.
428
   */
429
  cpuinfo_uarch_bulldozer = 0x00200105,
430
  /**
431
   * AMD Piledriver microarchitecture
432
   * Vishera FX-series CPUs, Trinity and Richland APUs, Delhi, Seoul, Abu
433
   * Dhabi Opteron CPUs.
434
   */
435
  cpuinfo_uarch_piledriver = 0x00200106,
436
  /** AMD Steamroller microarchitecture (Kaveri APUs). */
437
  cpuinfo_uarch_steamroller = 0x00200107,
438
  /** AMD Excavator microarchitecture (Carizzo APUs). */
439
  cpuinfo_uarch_excavator = 0x00200108,
440
  /** AMD Zen microarchitecture (12/14 nm Ryzen and EPYC CPUs). */
441
  cpuinfo_uarch_zen = 0x00200109,
442
  /** AMD Zen 2 microarchitecture (7 nm Ryzen and EPYC CPUs). */
443
  cpuinfo_uarch_zen2 = 0x0020010A,
444
  /** AMD Zen 3 microarchitecture. */
445
  cpuinfo_uarch_zen3 = 0x0020010B,
446
  /** AMD Zen 4 microarchitecture. */
447
  cpuinfo_uarch_zen4 = 0x0020010C,
448
  /** AMD Zen 5 microarchitecture. */
449
  cpuinfo_uarch_zen5 = 0x0020010D,
450
  /** AMD Zen 6 microarchitecture. */
451
  cpuinfo_uarch_zen6 = 0x0020010E,
452
  /** Sony PlayStation 5 (Oberon) microarchitecture (custom Zen 2 with 128-bit FPU). */
453
  cpuinfo_uarch_oberon = 0x0020010F,
454
  /** Microsoft Xbox Series X/S (Arden) microarchitecture (custom Zen 2 with 256-bit FPU). */
455
  cpuinfo_uarch_arden = 0x00200110,
456
457
  /** NSC Geode and AMD Geode GX and LX. */
458
  cpuinfo_uarch_geode = 0x00200200,
459
  /** AMD Bobcat mobile microarchitecture. */
460
  cpuinfo_uarch_bobcat = 0x00200201,
461
  /** AMD Jaguar mobile microarchitecture. */
462
  cpuinfo_uarch_jaguar = 0x00200202,
463
  /** AMD Puma mobile microarchitecture. */
464
  cpuinfo_uarch_puma = 0x00200203,
465
466
  /** ARM7 series. */
467
  cpuinfo_uarch_arm7 = 0x00300100,
468
  /** ARM9 series. */
469
  cpuinfo_uarch_arm9 = 0x00300101,
470
  /** ARM 1136, ARM 1156, ARM 1176, or ARM 11MPCore. */
471
  cpuinfo_uarch_arm11 = 0x00300102,
472
473
  /** ARM Cortex-A5. */
474
  cpuinfo_uarch_cortex_a5 = 0x00300205,
475
  /** ARM Cortex-A7. */
476
  cpuinfo_uarch_cortex_a7 = 0x00300207,
477
  /** ARM Cortex-A8. */
478
  cpuinfo_uarch_cortex_a8 = 0x00300208,
479
  /** ARM Cortex-A9. */
480
  cpuinfo_uarch_cortex_a9 = 0x00300209,
481
  /** ARM Cortex-A12. */
482
  cpuinfo_uarch_cortex_a12 = 0x00300212,
483
  /** ARM Cortex-A15. */
484
  cpuinfo_uarch_cortex_a15 = 0x00300215,
485
  /** ARM Cortex-A17. */
486
  cpuinfo_uarch_cortex_a17 = 0x00300217,
487
488
  /** ARM Cortex-A32. */
489
  cpuinfo_uarch_cortex_a32 = 0x00300332,
490
  /** ARM Cortex-A35. */
491
  cpuinfo_uarch_cortex_a35 = 0x00300335,
492
  /** ARM Cortex-A53. */
493
  cpuinfo_uarch_cortex_a53 = 0x00300353,
494
  /** ARM Cortex-A55 revision 0 (restricted dual-issue capabilities
495
     compared to revision 1+). */
496
  cpuinfo_uarch_cortex_a55r0 = 0x00300354,
497
  /** ARM Cortex-A55. */
498
  cpuinfo_uarch_cortex_a55 = 0x00300355,
499
  /** ARM Cortex-A57. */
500
  cpuinfo_uarch_cortex_a57 = 0x00300357,
501
  /** ARM Cortex-A65. */
502
  cpuinfo_uarch_cortex_a65 = 0x00300365,
503
  /** ARM Cortex-A72. */
504
  cpuinfo_uarch_cortex_a72 = 0x00300372,
505
  /** ARM Cortex-A73. */
506
  cpuinfo_uarch_cortex_a73 = 0x00300373,
507
  /** ARM Cortex-A75. */
508
  cpuinfo_uarch_cortex_a75 = 0x00300375,
509
  /** ARM Cortex-A76. */
510
  cpuinfo_uarch_cortex_a76 = 0x00300376,
511
  /** ARM Cortex-A77. */
512
  cpuinfo_uarch_cortex_a77 = 0x00300377,
513
  /** ARM Cortex-A78. */
514
  cpuinfo_uarch_cortex_a78 = 0x00300378,
515
516
  /** ARM Neoverse N1. */
517
  cpuinfo_uarch_neoverse_n1 = 0x00300400,
518
  /** ARM Neoverse E1. */
519
  cpuinfo_uarch_neoverse_e1 = 0x00300401,
520
  /** ARM Neoverse V1. */
521
  cpuinfo_uarch_neoverse_v1 = 0x00300402,
522
  /** ARM Neoverse N2. */
523
  cpuinfo_uarch_neoverse_n2 = 0x00300403,
524
  /** ARM Neoverse V2. */
525
  cpuinfo_uarch_neoverse_v2 = 0x00300404,
526
  /** ARM Neoverse V3 and V3AE. */
527
  cpuinfo_uarch_neoverse_v3 = 0x00300405,
528
529
  /** ARM Cortex-X1. */
530
  cpuinfo_uarch_cortex_x1 = 0x00300501,
531
  /** ARM Cortex-X2. */
532
  cpuinfo_uarch_cortex_x2 = 0x00300502,
533
  /** ARM Cortex-X3. */
534
  cpuinfo_uarch_cortex_x3 = 0x00300503,
535
  /** ARM Cortex-X4. */
536
  cpuinfo_uarch_cortex_x4 = 0x00300504,
537
  /** ARM Cortex-X925. */
538
  cpuinfo_uarch_cortex_x925 = 0x00300505,
539
540
  /** ARM Cortex-A510. */
541
  cpuinfo_uarch_cortex_a510 = 0x00300551,
542
  /** ARM Cortex-A520. */
543
  cpuinfo_uarch_cortex_a520 = 0x00300552,
544
  /** ARM Cortex-A320. */
545
  cpuinfo_uarch_cortex_a320 = 0x00300553,
546
  /** ARM Cortex-A710. */
547
  cpuinfo_uarch_cortex_a710 = 0x00300571,
548
  /** ARM Cortex-A715. */
549
  cpuinfo_uarch_cortex_a715 = 0x00300572,
550
  /** ARM Cortex-A720. */
551
  cpuinfo_uarch_cortex_a720 = 0x00300573,
552
  /** ARM Cortex-A725. */
553
  cpuinfo_uarch_cortex_a725 = 0x00300574,
554
555
  /** ARM Lumex-C1-Ultra. */
556
  cpuinfo_uarch_lumex_c1_ultra = 0x00300600,
557
  /** ARM Lumex-C1-Premium. */
558
  cpuinfo_uarch_lumex_c1_premium = 0x00300601,
559
  /** ARM Lumex-C1-Pro. */
560
  cpuinfo_uarch_lumex_c1_pro = 0x00300602,
561
  /** ARM Lumex-C1-Nano. */
562
  cpuinfo_uarch_lumex_c1_nano = 0x00300603,
563
564
  /** Qualcomm Scorpion. */
565
  cpuinfo_uarch_scorpion = 0x00400100,
566
  /** Qualcomm Krait. */
567
  cpuinfo_uarch_krait = 0x00400101,
568
  /** Qualcomm Kryo. */
569
  cpuinfo_uarch_kryo = 0x00400102,
570
  /** Qualcomm Falkor. */
571
  cpuinfo_uarch_falkor = 0x00400103,
572
  /** Qualcomm Saphira. */
573
  cpuinfo_uarch_saphira = 0x00400104,
574
  /** Qualcomm Oryon. */
575
  cpuinfo_uarch_oryon = 0x00400105,
576
  /** Qualcomm Oryon V3. */
577
  cpuinfo_uarch_oryon_v3 = 0x00400106,
578
579
  /** Nvidia Denver. */
580
  cpuinfo_uarch_denver = 0x00500100,
581
  /** Nvidia Denver 2. */
582
  cpuinfo_uarch_denver2 = 0x00500101,
583
  /** Nvidia Carmel. */
584
  cpuinfo_uarch_carmel = 0x00500102,
585
586
  /** Samsung Exynos M1 (Exynos 8890 big cores). */
587
  cpuinfo_uarch_exynos_m1 = 0x00600100,
588
  /** Samsung Exynos M2 (Exynos 8895 big cores). */
589
  cpuinfo_uarch_exynos_m2 = 0x00600101,
590
  /** Samsung Exynos M3 (Exynos 9810 big cores). */
591
  cpuinfo_uarch_exynos_m3 = 0x00600102,
592
  /** Samsung Exynos M4 (Exynos 9820 big cores). */
593
  cpuinfo_uarch_exynos_m4 = 0x00600103,
594
  /** Samsung Exynos M5 (Exynos 9830 big cores). */
595
  cpuinfo_uarch_exynos_m5 = 0x00600104,
596
597
  /* Deprecated synonym for Cortex-A76 */
598
  cpuinfo_uarch_cortex_a76ae = 0x00300376,
599
  /* Deprecated names for Exynos. */
600
  cpuinfo_uarch_mongoose_m1 = 0x00600100,
601
  cpuinfo_uarch_mongoose_m2 = 0x00600101,
602
  cpuinfo_uarch_meerkat_m3 = 0x00600102,
603
  cpuinfo_uarch_meerkat_m4 = 0x00600103,
604
605
  /** Apple A6 and A6X processors. */
606
  cpuinfo_uarch_swift = 0x00700100,
607
  /** Apple A7 processor. */
608
  cpuinfo_uarch_cyclone = 0x00700101,
609
  /** Apple A8 and A8X processor. */
610
  cpuinfo_uarch_typhoon = 0x00700102,
611
  /** Apple A9 and A9X processor. */
612
  cpuinfo_uarch_twister = 0x00700103,
613
  /** Apple A10 and A10X processor. */
614
  cpuinfo_uarch_hurricane = 0x00700104,
615
  /** Apple A11 processor (big cores). */
616
  cpuinfo_uarch_monsoon = 0x00700105,
617
  /** Apple A11 processor (little cores). */
618
  cpuinfo_uarch_mistral = 0x00700106,
619
  /** Apple A12 processor (big cores). */
620
  cpuinfo_uarch_vortex = 0x00700107,
621
  /** Apple A12 processor (little cores). */
622
  cpuinfo_uarch_tempest = 0x00700108,
623
  /** Apple A13 processor (big cores). */
624
  cpuinfo_uarch_lightning = 0x00700109,
625
  /** Apple A13 processor (little cores). */
626
  cpuinfo_uarch_thunder = 0x0070010A,
627
  /** Apple A14 / M1 processor (big cores). */
628
  cpuinfo_uarch_firestorm = 0x0070010B,
629
  /** Apple A14 / M1 processor (little cores). */
630
  cpuinfo_uarch_icestorm = 0x0070010C,
631
  /** Apple A15 / M2 processor (big cores). */
632
  cpuinfo_uarch_avalanche = 0x0070010D,
633
  /** Apple A15 / M2 processor (little cores). */
634
  cpuinfo_uarch_blizzard = 0x0070010E,
635
  /** Apple A16 processor (big cores). */
636
  cpuinfo_uarch_everest = 0x00700200,
637
  /** Apple A16 processor (little cores). */
638
  cpuinfo_uarch_sawtooth = 0x00700201,
639
  /** Apple A17 processor (big cores). */
640
  cpuinfo_uarch_coll_everest = 0x00700202,
641
  /** Apple A17 processor (little cores). */
642
  cpuinfo_uarch_coll_sawtooth = 0x00700203,
643
  /** Apple A18 processor (big cores). */
644
  cpuinfo_uarch_tupai_everest = 0x00700204,
645
  /** Apple A18 processor (little cores). */
646
  cpuinfo_uarch_tupai_sawtooth = 0x00700205,
647
  /** Apple A18 pro processor (big cores). */
648
  cpuinfo_uarch_tahiti_everest = 0x00700206,
649
  /** Apple A18 pro processor (little cores). */
650
  cpuinfo_uarch_tahiti_sawtooth = 0x00700207,
651
652
  /** Apple A19 processor (big cores). */
653
  cpuinfo_uarch_tilos_everest = 0x00700208,
654
  /** Apple A19 processor (little cores). */
655
  cpuinfo_uarch_tilos_sawtooth = 0x00700209,
656
657
  /** Apple M4 processor (big cores). */
658
  cpuinfo_uarch_donan_everest = 0x00700308,
659
  /** Apple M4 processor (little cores). */
660
  cpuinfo_uarch_donan_sawtooth = 0x00700309,
661
662
  /** Apple M5 Pro / Max processor (super cores). */
663
  cpuinfo_uarch_sotra_super = 0x0070030A,
664
  /** Apple M5 Pro / Max processor (performance cores). */
665
  cpuinfo_uarch_sotra_performance = 0x0070030B,
666
667
  /** Cavium ThunderX. */
668
  cpuinfo_uarch_thunderx = 0x00800100,
669
  /** Cavium ThunderX2 (originally Broadcom Vulkan). */
670
  cpuinfo_uarch_thunderx2 = 0x00800200,
671
672
  /** Marvell PJ4. */
673
  cpuinfo_uarch_pj4 = 0x00900100,
674
675
  /** Broadcom Brahma B15. */
676
  cpuinfo_uarch_brahma_b15 = 0x00A00100,
677
  /** Broadcom Brahma B53. */
678
  cpuinfo_uarch_brahma_b53 = 0x00A00101,
679
680
  /** Applied Micro X-Gene. */
681
  cpuinfo_uarch_xgene = 0x00B00100,
682
683
  /* Hygon Dhyana (a modification of AMD Zen for Chinese market). */
684
  cpuinfo_uarch_dhyana = 0x01000100,
685
686
  /** HiSilicon TaiShan v110 (Huawei Kunpeng 920 series processors). */
687
  cpuinfo_uarch_taishan_v110 = 0x00C00100,
688
};
689
690
struct cpuinfo_processor {
691
  /** SMT (hyperthread) ID within a core */
692
  uint32_t smt_id;
693
  /** Core containing this logical processor */
694
  const struct cpuinfo_core* core;
695
  /** Cluster of cores containing this logical processor */
696
  const struct cpuinfo_cluster* cluster;
697
  /** Physical package containing this logical processor */
698
  const struct cpuinfo_package* package;
699
#if defined(__linux__)
700
  /**
701
   * Linux-specific ID for the logical processor:
702
   * - Linux kernel exposes information about this logical processor in
703
   * /sys/devices/system/cpu/cpu<linux_id>/
704
   * - Bit <linux_id> in the cpu_set_t identifies this logical processor
705
   */
706
  int linux_id;
707
#endif
708
#if defined(_WIN32) || defined(__CYGWIN__)
709
  /** Windows-specific ID for the group containing the logical processor.
710
   */
711
  uint16_t windows_group_id;
712
  /**
713
   * Windows-specific ID of the logical processor within its group:
714
   * - Bit <windows_processor_id> in the KAFFINITY mask identifies this
715
   * logical processor within its group.
716
   */
717
  uint16_t windows_processor_id;
718
#endif
719
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
720
  /** APIC ID (unique x86-specific ID of the logical processor) */
721
  uint32_t apic_id;
722
#endif
723
  struct {
724
    /** Level 1 instruction cache */
725
    const struct cpuinfo_cache* l1i;
726
    /** Level 1 data cache */
727
    const struct cpuinfo_cache* l1d;
728
    /** Level 2 unified or data cache */
729
    const struct cpuinfo_cache* l2;
730
    /** Level 3 unified or data cache */
731
    const struct cpuinfo_cache* l3;
732
    /** Level 4 unified or data cache */
733
    const struct cpuinfo_cache* l4;
734
  } cache;
735
};
736
737
struct cpuinfo_core {
738
  /** Index of the first logical processor on this core. */
739
  uint32_t processor_start;
740
  /** Number of logical processors on this core */
741
  uint32_t processor_count;
742
  /** Core ID within a package */
743
  uint32_t core_id;
744
  /** Cluster containing this core */
745
  const struct cpuinfo_cluster* cluster;
746
  /** Physical package containing this core. */
747
  const struct cpuinfo_package* package;
748
  /** Vendor of the CPU microarchitecture for this core */
749
  enum cpuinfo_vendor vendor;
750
  /** CPU microarchitecture for this core */
751
  enum cpuinfo_uarch uarch;
752
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
753
  /** Value of CPUID leaf 1 EAX register for this core */
754
  uint32_t cpuid;
755
#elif CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
756
  /** Value of Main ID Register (MIDR) for this core */
757
  uint32_t midr;
758
#endif
759
  /** Clock rate (non-Turbo) of the core, in Hz */
760
  uint64_t frequency;
761
};
762
763
struct cpuinfo_cluster {
764
  /** Index of the first logical processor in the cluster */
765
  uint32_t processor_start;
766
  /** Number of logical processors in the cluster */
767
  uint32_t processor_count;
768
  /** Index of the first core in the cluster */
769
  uint32_t core_start;
770
  /** Number of cores on the cluster */
771
  uint32_t core_count;
772
  /** Cluster ID within a package */
773
  uint32_t cluster_id;
774
  /** Physical package containing the cluster */
775
  const struct cpuinfo_package* package;
776
  /** CPU microarchitecture vendor of the cores in the cluster */
777
  enum cpuinfo_vendor vendor;
778
  /** CPU microarchitecture of the cores in the cluster */
779
  enum cpuinfo_uarch uarch;
780
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
781
  /** Value of CPUID leaf 1 EAX register of the cores in the cluster */
782
  uint32_t cpuid;
783
#elif CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
784
  /** Value of Main ID Register (MIDR) of the cores in the cluster */
785
  uint32_t midr;
786
#endif
787
  /** Clock rate (non-Turbo) of the cores in the cluster, in Hz */
788
  uint64_t frequency;
789
};
790
791
#define CPUINFO_PACKAGE_NAME_MAX 64
792
793
struct cpuinfo_package {
794
  /** SoC or processor chip model name */
795
  char name[CPUINFO_PACKAGE_NAME_MAX];
796
  /** Index of the first logical processor on this physical package */
797
  uint32_t processor_start;
798
  /** Number of logical processors on this physical package */
799
  uint32_t processor_count;
800
  /** Index of the first core on this physical package */
801
  uint32_t core_start;
802
  /** Number of cores on this physical package */
803
  uint32_t core_count;
804
  /** Index of the first cluster of cores on this physical package */
805
  uint32_t cluster_start;
806
  /** Number of clusters of cores on this physical package */
807
  uint32_t cluster_count;
808
};
809
810
struct cpuinfo_uarch_info {
811
  /** Type of CPU microarchitecture */
812
  enum cpuinfo_uarch uarch;
813
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
814
  /** Value of CPUID leaf 1 EAX register for the microarchitecture */
815
  uint32_t cpuid;
816
#elif CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
817
  /** Value of Main ID Register (MIDR) for the microarchitecture */
818
  uint32_t midr;
819
#endif
820
  /** Number of logical processors with the microarchitecture */
821
  uint32_t processor_count;
822
  /** Number of cores with the microarchitecture */
823
  uint32_t core_count;
824
};
825
826
#ifdef __cplusplus
827
extern "C" {
828
#endif
829
830
bool CPUINFO_ABI cpuinfo_initialize(void);
831
832
void CPUINFO_ABI cpuinfo_deinitialize(void);
833
834
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
835
/* This structure is not a part of stable API. Use cpuinfo_has_x86_* functions
836
 * instead. */
837
struct cpuinfo_x86_isa {
838
#if CPUINFO_ARCH_X86
839
  bool rdtsc;
840
#endif
841
  bool rdtscp;
842
  bool rdpid;
843
  bool sysenter;
844
#if CPUINFO_ARCH_X86
845
  bool syscall;
846
#endif
847
  bool msr;
848
  bool clzero;
849
  bool clflush;
850
  bool clflushopt;
851
  bool mwait;
852
  bool mwaitx;
853
#if CPUINFO_ARCH_X86
854
  bool emmx;
855
#endif
856
  bool fxsave;
857
  bool xsave;
858
#if CPUINFO_ARCH_X86
859
  bool fpu;
860
  bool mmx;
861
  bool mmx_plus;
862
#endif
863
  bool three_d_now;
864
  bool three_d_now_plus;
865
#if CPUINFO_ARCH_X86
866
  bool three_d_now_geode;
867
#endif
868
  bool prefetch;
869
  bool prefetchw;
870
  bool prefetchwt1;
871
#if CPUINFO_ARCH_X86
872
  bool daz;
873
  bool sse;
874
  bool sse2;
875
#endif
876
  bool sse3;
877
  bool ssse3;
878
  bool sse4_1;
879
  bool sse4_2;
880
  bool sse4a;
881
  bool misaligned_sse;
882
  bool avx;
883
  bool avxvnni;
884
  bool fma3;
885
  bool fma4;
886
  bool xop;
887
  bool f16c;
888
  bool avx2;
889
  bool avx512f;
890
  bool avx512pf;
891
  bool avx512er;
892
  bool avx512cd;
893
  bool avx512dq;
894
  bool avx512bw;
895
  bool avx512vl;
896
  bool avx512ifma;
897
  bool avx512vbmi;
898
  bool avx512vbmi2;
899
  bool avx512bitalg;
900
  bool avx512vpopcntdq;
901
  bool avx512vnni;
902
  bool avx512bf16;
903
  bool avx512fp16;
904
  bool avx512vp2intersect;
905
  bool avx512_4vnniw;
906
  bool avx512_4fmaps;
907
  bool avx10_1;
908
  bool avx10_2;
909
  bool amx_bf16;
910
  bool amx_tile;
911
  bool amx_int8;
912
  bool amx_fp16;
913
  bool amx_fp8;
914
  bool avx_vnni_int8;
915
  bool avx_vnni_int16;
916
  bool avx_ne_convert;
917
  bool hle;
918
  bool rtm;
919
  bool xtest;
920
  bool mpx;
921
#if CPUINFO_ARCH_X86
922
  bool cmov;
923
  bool cmpxchg8b;
924
#endif
925
  bool cmpxchg16b;
926
  bool clwb;
927
  bool movbe;
928
#if CPUINFO_ARCH_X86_64
929
  bool lahf_sahf;
930
#endif
931
  bool fs_gs_base;
932
  bool lzcnt;
933
  bool popcnt;
934
  bool tbm;
935
  bool bmi;
936
  bool bmi2;
937
  bool adx;
938
  bool aes;
939
  bool vaes;
940
  bool pclmulqdq;
941
  bool vpclmulqdq;
942
  bool gfni;
943
  bool rdrand;
944
  bool rdseed;
945
  bool sha;
946
  bool rng;
947
  bool ace;
948
  bool ace2;
949
  bool phe;
950
  bool pmm;
951
  bool lwp;
952
};
953
954
extern struct cpuinfo_x86_isa cpuinfo_isa;
955
#endif
956
957
0
static inline bool cpuinfo_has_x86_rdtsc(void) {
958
0
#if CPUINFO_ARCH_X86_64
959
0
  return true;
960
0
#elif CPUINFO_ARCH_X86
961
0
#if defined(__ANDROID__)
962
0
  return true;
963
0
#else
964
0
  return cpuinfo_isa.rdtsc;
965
0
#endif
966
0
#else
967
0
  return false;
968
0
#endif
969
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_rdtsc
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_rdtsc
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_rdtsc
Unexecuted instantiation: processors.c:cpuinfo_has_x86_rdtsc
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_rdtsc
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_rdtsc
970
971
0
static inline bool cpuinfo_has_x86_rdtscp(void) {
972
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
973
0
  return cpuinfo_isa.rdtscp;
974
0
#else
975
0
  return false;
976
0
#endif
977
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_rdtscp
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_rdtscp
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_rdtscp
Unexecuted instantiation: processors.c:cpuinfo_has_x86_rdtscp
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_rdtscp
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_rdtscp
978
979
0
static inline bool cpuinfo_has_x86_rdpid(void) {
980
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
981
0
  return cpuinfo_isa.rdpid;
982
0
#else
983
0
  return false;
984
0
#endif
985
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_rdpid
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_rdpid
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_rdpid
Unexecuted instantiation: processors.c:cpuinfo_has_x86_rdpid
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_rdpid
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_rdpid
986
987
0
static inline bool cpuinfo_has_x86_clzero(void) {
988
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
989
0
  return cpuinfo_isa.clzero;
990
0
#else
991
0
  return false;
992
0
#endif
993
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_clzero
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_clzero
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_clzero
Unexecuted instantiation: processors.c:cpuinfo_has_x86_clzero
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_clzero
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_clzero
994
995
0
static inline bool cpuinfo_has_x86_mwait(void) {
996
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
997
0
  return cpuinfo_isa.mwait;
998
0
#else
999
0
  return false;
1000
0
#endif
1001
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_mwait
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_mwait
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_mwait
Unexecuted instantiation: processors.c:cpuinfo_has_x86_mwait
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_mwait
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_mwait
1002
1003
0
static inline bool cpuinfo_has_x86_mwaitx(void) {
1004
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1005
0
  return cpuinfo_isa.mwaitx;
1006
0
#else
1007
0
  return false;
1008
0
#endif
1009
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_mwaitx
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_mwaitx
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_mwaitx
Unexecuted instantiation: processors.c:cpuinfo_has_x86_mwaitx
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_mwaitx
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_mwaitx
1010
1011
0
static inline bool cpuinfo_has_x86_fxsave(void) {
1012
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1013
0
  return cpuinfo_isa.fxsave;
1014
0
#else
1015
0
  return false;
1016
0
#endif
1017
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_fxsave
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_fxsave
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_fxsave
Unexecuted instantiation: processors.c:cpuinfo_has_x86_fxsave
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_fxsave
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_fxsave
1018
1019
0
static inline bool cpuinfo_has_x86_xsave(void) {
1020
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1021
0
  return cpuinfo_isa.xsave;
1022
0
#else
1023
0
  return false;
1024
0
#endif
1025
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_xsave
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_xsave
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_xsave
Unexecuted instantiation: processors.c:cpuinfo_has_x86_xsave
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_xsave
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_xsave
1026
1027
0
static inline bool cpuinfo_has_x86_fpu(void) {
1028
0
#if CPUINFO_ARCH_X86_64
1029
0
  return true;
1030
0
#elif CPUINFO_ARCH_X86
1031
0
#if defined(__ANDROID__)
1032
0
  return true;
1033
0
#else
1034
0
  return cpuinfo_isa.fpu;
1035
0
#endif
1036
0
#else
1037
0
  return false;
1038
0
#endif
1039
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_fpu
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_fpu
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_fpu
Unexecuted instantiation: processors.c:cpuinfo_has_x86_fpu
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_fpu
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_fpu
1040
1041
0
static inline bool cpuinfo_has_x86_mmx(void) {
1042
0
#if CPUINFO_ARCH_X86_64
1043
0
  return true;
1044
0
#elif CPUINFO_ARCH_X86
1045
0
#if defined(__ANDROID__)
1046
0
  return true;
1047
0
#else
1048
0
  return cpuinfo_isa.mmx;
1049
0
#endif
1050
0
#else
1051
0
  return false;
1052
0
#endif
1053
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_mmx
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_mmx
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_mmx
Unexecuted instantiation: processors.c:cpuinfo_has_x86_mmx
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_mmx
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_mmx
1054
1055
0
static inline bool cpuinfo_has_x86_mmx_plus(void) {
1056
0
#if CPUINFO_ARCH_X86_64
1057
0
  return true;
1058
0
#elif CPUINFO_ARCH_X86
1059
0
#if defined(__ANDROID__)
1060
0
  return true;
1061
0
#else
1062
0
  return cpuinfo_isa.mmx_plus;
1063
0
#endif
1064
0
#else
1065
0
  return false;
1066
0
#endif
1067
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_mmx_plus
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_mmx_plus
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_mmx_plus
Unexecuted instantiation: processors.c:cpuinfo_has_x86_mmx_plus
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_mmx_plus
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_mmx_plus
1068
1069
0
static inline bool cpuinfo_has_x86_3dnow(void) {
1070
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1071
0
  return cpuinfo_isa.three_d_now;
1072
0
#else
1073
0
  return false;
1074
0
#endif
1075
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_3dnow
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_3dnow
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_3dnow
Unexecuted instantiation: processors.c:cpuinfo_has_x86_3dnow
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_3dnow
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_3dnow
1076
1077
0
static inline bool cpuinfo_has_x86_3dnow_plus(void) {
1078
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1079
0
  return cpuinfo_isa.three_d_now_plus;
1080
0
#else
1081
0
  return false;
1082
0
#endif
1083
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_3dnow_plus
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_3dnow_plus
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_3dnow_plus
Unexecuted instantiation: processors.c:cpuinfo_has_x86_3dnow_plus
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_3dnow_plus
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_3dnow_plus
1084
1085
0
static inline bool cpuinfo_has_x86_3dnow_geode(void) {
1086
0
#if CPUINFO_ARCH_X86_64
1087
0
  return false;
1088
0
#elif CPUINFO_ARCH_X86
1089
0
#if defined(__ANDROID__)
1090
0
  return false;
1091
0
#else
1092
0
  return cpuinfo_isa.three_d_now_geode;
1093
0
#endif
1094
0
#else
1095
0
  return false;
1096
0
#endif
1097
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_3dnow_geode
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_3dnow_geode
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_3dnow_geode
Unexecuted instantiation: processors.c:cpuinfo_has_x86_3dnow_geode
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_3dnow_geode
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_3dnow_geode
1098
1099
0
static inline bool cpuinfo_has_x86_prefetch(void) {
1100
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1101
0
  return cpuinfo_isa.prefetch;
1102
0
#else
1103
0
  return false;
1104
0
#endif
1105
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_prefetch
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_prefetch
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_prefetch
Unexecuted instantiation: processors.c:cpuinfo_has_x86_prefetch
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_prefetch
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_prefetch
1106
1107
0
static inline bool cpuinfo_has_x86_prefetchw(void) {
1108
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1109
0
  return cpuinfo_isa.prefetchw;
1110
0
#else
1111
0
  return false;
1112
0
#endif
1113
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_prefetchw
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_prefetchw
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_prefetchw
Unexecuted instantiation: processors.c:cpuinfo_has_x86_prefetchw
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_prefetchw
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_prefetchw
1114
1115
0
static inline bool cpuinfo_has_x86_prefetchwt1(void) {
1116
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1117
0
  return cpuinfo_isa.prefetchwt1;
1118
0
#else
1119
0
  return false;
1120
0
#endif
1121
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_prefetchwt1
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_prefetchwt1
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_prefetchwt1
Unexecuted instantiation: processors.c:cpuinfo_has_x86_prefetchwt1
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_prefetchwt1
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_prefetchwt1
1122
1123
0
static inline bool cpuinfo_has_x86_daz(void) {
1124
0
#if CPUINFO_ARCH_X86_64
1125
0
  return true;
1126
0
#elif CPUINFO_ARCH_X86
1127
0
#if defined(__ANDROID__)
1128
0
  return true;
1129
0
#else
1130
0
  return cpuinfo_isa.daz;
1131
0
#endif
1132
0
#else
1133
0
  return false;
1134
0
#endif
1135
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_daz
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_daz
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_daz
Unexecuted instantiation: processors.c:cpuinfo_has_x86_daz
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_daz
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_daz
1136
1137
0
static inline bool cpuinfo_has_x86_sse(void) {
1138
0
#if CPUINFO_ARCH_X86_64
1139
0
  return true;
1140
0
#elif CPUINFO_ARCH_X86
1141
0
#if defined(__ANDROID__)
1142
0
  return true;
1143
0
#else
1144
0
  return cpuinfo_isa.sse;
1145
0
#endif
1146
0
#else
1147
0
  return false;
1148
0
#endif
1149
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_sse
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_sse
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_sse
Unexecuted instantiation: processors.c:cpuinfo_has_x86_sse
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_sse
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_sse
1150
1151
0
static inline bool cpuinfo_has_x86_sse2(void) {
1152
0
#if CPUINFO_ARCH_X86_64
1153
0
  return true;
1154
0
#elif CPUINFO_ARCH_X86
1155
0
#if defined(__ANDROID__)
1156
0
  return true;
1157
0
#else
1158
0
  return cpuinfo_isa.sse2;
1159
0
#endif
1160
0
#else
1161
0
  return false;
1162
0
#endif
1163
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_sse2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_sse2
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_sse2
Unexecuted instantiation: processors.c:cpuinfo_has_x86_sse2
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_sse2
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_sse2
1164
1165
0
static inline bool cpuinfo_has_x86_sse3(void) {
1166
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1167
0
#if defined(__ANDROID__)
1168
0
  return true;
1169
0
#else
1170
0
  return cpuinfo_isa.sse3;
1171
0
#endif
1172
0
#else
1173
0
  return false;
1174
0
#endif
1175
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_sse3
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_sse3
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_sse3
Unexecuted instantiation: processors.c:cpuinfo_has_x86_sse3
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_sse3
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_sse3
1176
1177
0
static inline bool cpuinfo_has_x86_ssse3(void) {
1178
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1179
0
#if defined(__ANDROID__)
1180
0
  return true;
1181
0
#else
1182
0
  return cpuinfo_isa.ssse3;
1183
0
#endif
1184
0
#else
1185
0
  return false;
1186
0
#endif
1187
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_ssse3
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_ssse3
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_ssse3
Unexecuted instantiation: processors.c:cpuinfo_has_x86_ssse3
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_ssse3
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_ssse3
1188
1189
0
static inline bool cpuinfo_has_x86_sse4_1(void) {
1190
0
#if CPUINFO_ARCH_X86_64
1191
0
#if defined(__ANDROID__)
1192
0
  return true;
1193
0
#else
1194
0
  return cpuinfo_isa.sse4_1;
1195
0
#endif
1196
0
#elif CPUINFO_ARCH_X86
1197
0
  return cpuinfo_isa.sse4_1;
1198
0
#else
1199
0
  return false;
1200
0
#endif
1201
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_sse4_1
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_sse4_1
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_sse4_1
Unexecuted instantiation: processors.c:cpuinfo_has_x86_sse4_1
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_sse4_1
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_sse4_1
1202
1203
0
static inline bool cpuinfo_has_x86_sse4_2(void) {
1204
0
#if CPUINFO_ARCH_X86_64
1205
0
#if defined(__ANDROID__)
1206
0
  return true;
1207
0
#else
1208
0
  return cpuinfo_isa.sse4_2;
1209
0
#endif
1210
0
#elif CPUINFO_ARCH_X86
1211
0
  return cpuinfo_isa.sse4_2;
1212
0
#else
1213
0
  return false;
1214
0
#endif
1215
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_sse4_2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_sse4_2
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_sse4_2
Unexecuted instantiation: processors.c:cpuinfo_has_x86_sse4_2
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_sse4_2
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_sse4_2
1216
1217
0
static inline bool cpuinfo_has_x86_sse4a(void) {
1218
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1219
0
  return cpuinfo_isa.sse4a;
1220
0
#else
1221
0
  return false;
1222
0
#endif
1223
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_sse4a
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_sse4a
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_sse4a
Unexecuted instantiation: processors.c:cpuinfo_has_x86_sse4a
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_sse4a
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_sse4a
1224
1225
0
static inline bool cpuinfo_has_x86_misaligned_sse(void) {
1226
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1227
0
  return cpuinfo_isa.misaligned_sse;
1228
0
#else
1229
0
  return false;
1230
0
#endif
1231
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_misaligned_sse
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_misaligned_sse
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_misaligned_sse
Unexecuted instantiation: processors.c:cpuinfo_has_x86_misaligned_sse
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_misaligned_sse
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_misaligned_sse
1232
1233
0
static inline bool cpuinfo_has_x86_avx(void) {
1234
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1235
0
  return cpuinfo_isa.avx;
1236
0
#else
1237
0
  return false;
1238
0
#endif
1239
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx
1240
1241
0
static inline bool cpuinfo_has_x86_avxvnni(void) {
1242
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1243
0
  return cpuinfo_isa.avxvnni;
1244
0
#else
1245
0
  return false;
1246
0
#endif
1247
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avxvnni
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avxvnni
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avxvnni
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avxvnni
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avxvnni
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avxvnni
1248
1249
0
static inline bool cpuinfo_has_x86_fma3(void) {
1250
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1251
0
  return cpuinfo_isa.fma3;
1252
0
#else
1253
0
  return false;
1254
0
#endif
1255
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_fma3
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_fma3
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_fma3
Unexecuted instantiation: processors.c:cpuinfo_has_x86_fma3
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_fma3
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_fma3
1256
1257
0
static inline bool cpuinfo_has_x86_fma4(void) {
1258
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1259
0
  return cpuinfo_isa.fma4;
1260
0
#else
1261
0
  return false;
1262
0
#endif
1263
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_fma4
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_fma4
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_fma4
Unexecuted instantiation: processors.c:cpuinfo_has_x86_fma4
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_fma4
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_fma4
1264
1265
0
static inline bool cpuinfo_has_x86_xop(void) {
1266
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1267
0
  return cpuinfo_isa.xop;
1268
0
#else
1269
0
  return false;
1270
0
#endif
1271
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_xop
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_xop
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_xop
Unexecuted instantiation: processors.c:cpuinfo_has_x86_xop
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_xop
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_xop
1272
1273
0
static inline bool cpuinfo_has_x86_f16c(void) {
1274
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1275
0
  return cpuinfo_isa.f16c;
1276
0
#else
1277
0
  return false;
1278
0
#endif
1279
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_f16c
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_f16c
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_f16c
Unexecuted instantiation: processors.c:cpuinfo_has_x86_f16c
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_f16c
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_f16c
1280
1281
0
static inline bool cpuinfo_has_x86_avx2(void) {
1282
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1283
0
  return cpuinfo_isa.avx2;
1284
0
#else
1285
0
  return false;
1286
0
#endif
1287
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx2
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx2
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx2
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx2
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx2
1288
1289
0
static inline bool cpuinfo_has_x86_avx512f(void) {
1290
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1291
0
  return cpuinfo_isa.avx512f;
1292
0
#else
1293
0
  return false;
1294
0
#endif
1295
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512f
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512f
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512f
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512f
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512f
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512f
1296
1297
0
static inline bool cpuinfo_has_x86_avx512pf(void) {
1298
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1299
0
  return cpuinfo_isa.avx512pf;
1300
0
#else
1301
0
  return false;
1302
0
#endif
1303
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512pf
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512pf
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512pf
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512pf
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512pf
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512pf
1304
1305
0
static inline bool cpuinfo_has_x86_avx512er(void) {
1306
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1307
0
  return cpuinfo_isa.avx512er;
1308
0
#else
1309
0
  return false;
1310
0
#endif
1311
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512er
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512er
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512er
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512er
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512er
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512er
1312
1313
0
static inline bool cpuinfo_has_x86_avx512cd(void) {
1314
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1315
0
  return cpuinfo_isa.avx512cd;
1316
0
#else
1317
0
  return false;
1318
0
#endif
1319
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512cd
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512cd
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512cd
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512cd
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512cd
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512cd
1320
1321
0
static inline bool cpuinfo_has_x86_avx512dq(void) {
1322
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1323
0
  return cpuinfo_isa.avx512dq;
1324
0
#else
1325
0
  return false;
1326
0
#endif
1327
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512dq
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512dq
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512dq
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512dq
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512dq
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512dq
1328
1329
0
static inline bool cpuinfo_has_x86_avx512bw(void) {
1330
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1331
0
  return cpuinfo_isa.avx512bw;
1332
0
#else
1333
0
  return false;
1334
0
#endif
1335
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512bw
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512bw
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512bw
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512bw
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512bw
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512bw
1336
1337
0
static inline bool cpuinfo_has_x86_avx512vl(void) {
1338
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1339
0
  return cpuinfo_isa.avx512vl;
1340
0
#else
1341
0
  return false;
1342
0
#endif
1343
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512vl
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512vl
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512vl
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512vl
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512vl
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512vl
1344
1345
0
static inline bool cpuinfo_has_x86_avx512ifma(void) {
1346
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1347
0
  return cpuinfo_isa.avx512ifma;
1348
0
#else
1349
0
  return false;
1350
0
#endif
1351
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512ifma
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512ifma
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512ifma
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512ifma
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512ifma
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512ifma
1352
1353
0
static inline bool cpuinfo_has_x86_avx512vbmi(void) {
1354
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1355
0
  return cpuinfo_isa.avx512vbmi;
1356
0
#else
1357
0
  return false;
1358
0
#endif
1359
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512vbmi
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512vbmi
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512vbmi
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512vbmi
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512vbmi
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512vbmi
1360
1361
0
static inline bool cpuinfo_has_x86_avx512vbmi2(void) {
1362
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1363
0
  return cpuinfo_isa.avx512vbmi2;
1364
0
#else
1365
0
  return false;
1366
0
#endif
1367
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512vbmi2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512vbmi2
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512vbmi2
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512vbmi2
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512vbmi2
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512vbmi2
1368
1369
0
static inline bool cpuinfo_has_x86_avx512bitalg(void) {
1370
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1371
0
  return cpuinfo_isa.avx512bitalg;
1372
0
#else
1373
0
  return false;
1374
0
#endif
1375
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512bitalg
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512bitalg
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512bitalg
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512bitalg
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512bitalg
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512bitalg
1376
1377
0
static inline bool cpuinfo_has_x86_avx512vpopcntdq(void) {
1378
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1379
0
  return cpuinfo_isa.avx512vpopcntdq;
1380
0
#else
1381
0
  return false;
1382
0
#endif
1383
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512vpopcntdq
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512vpopcntdq
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512vpopcntdq
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512vpopcntdq
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512vpopcntdq
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512vpopcntdq
1384
1385
0
static inline bool cpuinfo_has_x86_avx512vnni(void) {
1386
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1387
0
  return cpuinfo_isa.avx512vnni;
1388
0
#else
1389
0
  return false;
1390
0
#endif
1391
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512vnni
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512vnni
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512vnni
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512vnni
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512vnni
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512vnni
1392
1393
0
static inline bool cpuinfo_has_x86_avx512bf16(void) {
1394
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1395
0
  return cpuinfo_isa.avx512bf16;
1396
0
#else
1397
0
  return false;
1398
0
#endif
1399
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512bf16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512bf16
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512bf16
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512bf16
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512bf16
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512bf16
1400
1401
0
static inline bool cpuinfo_has_x86_avx512fp16(void) {
1402
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1403
0
  return cpuinfo_isa.avx512fp16;
1404
0
#else
1405
0
  return false;
1406
0
#endif
1407
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512fp16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512fp16
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512fp16
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512fp16
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512fp16
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512fp16
1408
1409
0
static inline bool cpuinfo_has_x86_avx512vp2intersect(void) {
1410
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1411
0
  return cpuinfo_isa.avx512vp2intersect;
1412
0
#else
1413
0
  return false;
1414
0
#endif
1415
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512vp2intersect
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512vp2intersect
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512vp2intersect
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512vp2intersect
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512vp2intersect
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512vp2intersect
1416
1417
0
static inline bool cpuinfo_has_x86_avx512_4vnniw(void) {
1418
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1419
0
  return cpuinfo_isa.avx512_4vnniw;
1420
0
#else
1421
0
  return false;
1422
0
#endif
1423
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512_4vnniw
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512_4vnniw
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512_4vnniw
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512_4vnniw
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512_4vnniw
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512_4vnniw
1424
1425
0
static inline bool cpuinfo_has_x86_avx512_4fmaps(void) {
1426
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1427
0
  return cpuinfo_isa.avx512_4fmaps;
1428
0
#else
1429
0
  return false;
1430
0
#endif
1431
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx512_4fmaps
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx512_4fmaps
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx512_4fmaps
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx512_4fmaps
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx512_4fmaps
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx512_4fmaps
1432
1433
/* [NOTE] Intel Advanced Matrix Extensions (AMX) detection
1434
 *
1435
 * I.  AMX is a new extensions to the x86 ISA to work on matrices, consists of
1436
 *   1) 2-dimentional registers (tiles), hold sub-matrices from larger matrices in memory
1437
 *   2) Accelerator called Tile Matrix Multiply (TMUL), contains instructions operating on tiles
1438
 *
1439
 * II. Platforms that supports AMX:
1440
 * +-----------------+-----+----------+----------+----------+----------+
1441
 * |    Platforms    | Gen | amx-bf16 | amx-tile | amx-int8 | amx-fp16 |
1442
 * +-----------------+-----+----------+----------+----------+----------+
1443
 * | Sapphire Rapids | 4th |   YES    |   YES    |   YES    |    NO    |
1444
 * +-----------------+-----+----------+----------+----------+----------+
1445
 * | Emerald Rapids  | 5th |   YES    |   YES    |   YES    |    NO    |
1446
 * +-----------------+-----+----------+----------+----------+----------+
1447
 * | Granite Rapids  | 6th |   YES    |   YES    |   YES    |   YES    |
1448
 * +-----------------+-----+----------+----------+----------+----------+
1449
 *
1450
 * Reference: https://www.intel.com/content/www/us/en/products/docs
1451
 *    /accelerator-engines/advanced-matrix-extensions/overview.html
1452
 */
1453
0
static inline bool cpuinfo_has_x86_amx_bf16(void) {
1454
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1455
0
  return cpuinfo_isa.amx_bf16;
1456
0
#else
1457
0
  return false;
1458
0
#endif
1459
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_amx_bf16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_amx_bf16
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_amx_bf16
Unexecuted instantiation: processors.c:cpuinfo_has_x86_amx_bf16
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_amx_bf16
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_amx_bf16
1460
1461
0
static inline bool cpuinfo_has_x86_amx_tile(void) {
1462
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1463
0
  return cpuinfo_isa.amx_tile;
1464
0
#else
1465
0
  return false;
1466
0
#endif
1467
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_amx_tile
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_amx_tile
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_amx_tile
Unexecuted instantiation: processors.c:cpuinfo_has_x86_amx_tile
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_amx_tile
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_amx_tile
1468
1469
0
static inline bool cpuinfo_has_x86_amx_int8(void) {
1470
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1471
0
  return cpuinfo_isa.amx_int8;
1472
0
#else
1473
0
  return false;
1474
0
#endif
1475
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_amx_int8
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_amx_int8
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_amx_int8
Unexecuted instantiation: processors.c:cpuinfo_has_x86_amx_int8
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_amx_int8
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_amx_int8
1476
1477
0
static inline bool cpuinfo_has_x86_amx_fp16(void) {
1478
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1479
0
  return cpuinfo_isa.amx_fp16;
1480
0
#else
1481
0
  return false;
1482
0
#endif
1483
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_amx_fp16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_amx_fp16
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_amx_fp16
Unexecuted instantiation: processors.c:cpuinfo_has_x86_amx_fp16
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_amx_fp16
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_amx_fp16
1484
1485
0
static inline bool cpuinfo_has_x86_amx_fp8(void) {
1486
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1487
0
  return cpuinfo_isa.amx_fp8;
1488
0
#else
1489
0
  return false;
1490
0
#endif
1491
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_amx_fp8
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_amx_fp8
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_amx_fp8
Unexecuted instantiation: processors.c:cpuinfo_has_x86_amx_fp8
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_amx_fp8
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_amx_fp8
1492
1493
/*
1494
 * Intel AVX Vector Neural Network Instructions (VNNI) INT8
1495
 * Supported Platfroms: Sierra Forest, Arrow Lake, Lunar Lake
1496
 */
1497
0
static inline bool cpuinfo_has_x86_avx_vnni_int8(void) {
1498
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1499
0
  return cpuinfo_isa.avx_vnni_int8;
1500
0
#else
1501
0
  return false;
1502
0
#endif
1503
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx_vnni_int8
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx_vnni_int8
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx_vnni_int8
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx_vnni_int8
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx_vnni_int8
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx_vnni_int8
1504
1505
/*
1506
 * Intel AVX Vector Neural Network Instructions (VNNI) INT16
1507
 * Supported Platfroms: Arrow Lake, Lunar Lake
1508
 */
1509
0
static inline bool cpuinfo_has_x86_avx_vnni_int16(void) {
1510
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1511
0
  return cpuinfo_isa.avx_vnni_int16;
1512
0
#else
1513
0
  return false;
1514
0
#endif
1515
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx_vnni_int16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx_vnni_int16
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx_vnni_int16
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx_vnni_int16
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx_vnni_int16
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx_vnni_int16
1516
1517
/*
1518
 * A new set of instructions, which can convert low precision floating point
1519
 * like BF16/FP16 to high precision floating point FP32, as well as convert FP32
1520
 * elements to BF16. This instruction allows the platform to have improved AI
1521
 * capabilities and better compatibility.
1522
 *
1523
 * Supported Platforms: Sierra Forest, Arrow Lake, Lunar Lake
1524
 */
1525
0
static inline bool cpuinfo_has_x86_avx_ne_convert(void) {
1526
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1527
0
  return cpuinfo_isa.avx_ne_convert;
1528
0
#else
1529
0
  return false;
1530
0
#endif
1531
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx_ne_convert
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx_ne_convert
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx_ne_convert
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx_ne_convert
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx_ne_convert
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx_ne_convert
1532
1533
0
static inline bool cpuinfo_has_x86_avx10_1(void) {
1534
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1535
0
  return cpuinfo_isa.avx10_1;
1536
0
#else
1537
0
  return false;
1538
0
#endif
1539
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx10_1
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx10_1
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx10_1
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx10_1
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx10_1
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx10_1
1540
1541
0
static inline bool cpuinfo_has_x86_avx10_2(void) {
1542
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1543
0
  return cpuinfo_isa.avx10_2;
1544
0
#else
1545
0
  return false;
1546
0
#endif
1547
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_avx10_2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_avx10_2
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_avx10_2
Unexecuted instantiation: processors.c:cpuinfo_has_x86_avx10_2
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_avx10_2
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_avx10_2
1548
1549
0
static inline bool cpuinfo_has_x86_hle(void) {
1550
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1551
0
  return cpuinfo_isa.hle;
1552
0
#else
1553
0
  return false;
1554
0
#endif
1555
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_hle
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_hle
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_hle
Unexecuted instantiation: processors.c:cpuinfo_has_x86_hle
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_hle
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_hle
1556
1557
0
static inline bool cpuinfo_has_x86_rtm(void) {
1558
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1559
0
  return cpuinfo_isa.rtm;
1560
0
#else
1561
0
  return false;
1562
0
#endif
1563
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_rtm
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_rtm
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_rtm
Unexecuted instantiation: processors.c:cpuinfo_has_x86_rtm
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_rtm
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_rtm
1564
1565
0
static inline bool cpuinfo_has_x86_xtest(void) {
1566
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1567
0
  return cpuinfo_isa.xtest;
1568
0
#else
1569
0
  return false;
1570
0
#endif
1571
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_xtest
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_xtest
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_xtest
Unexecuted instantiation: processors.c:cpuinfo_has_x86_xtest
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_xtest
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_xtest
1572
1573
0
static inline bool cpuinfo_has_x86_mpx(void) {
1574
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1575
0
  return cpuinfo_isa.mpx;
1576
0
#else
1577
0
  return false;
1578
0
#endif
1579
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_mpx
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_mpx
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_mpx
Unexecuted instantiation: processors.c:cpuinfo_has_x86_mpx
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_mpx
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_mpx
1580
1581
0
static inline bool cpuinfo_has_x86_cmov(void) {
1582
0
#if CPUINFO_ARCH_X86_64
1583
0
  return true;
1584
0
#elif CPUINFO_ARCH_X86
1585
0
  return cpuinfo_isa.cmov;
1586
0
#else
1587
0
  return false;
1588
0
#endif
1589
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_cmov
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_cmov
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_cmov
Unexecuted instantiation: processors.c:cpuinfo_has_x86_cmov
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_cmov
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_cmov
1590
1591
0
static inline bool cpuinfo_has_x86_cmpxchg8b(void) {
1592
0
#if CPUINFO_ARCH_X86_64
1593
0
  return true;
1594
0
#elif CPUINFO_ARCH_X86
1595
0
  return cpuinfo_isa.cmpxchg8b;
1596
0
#else
1597
0
  return false;
1598
0
#endif
1599
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_cmpxchg8b
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_cmpxchg8b
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_cmpxchg8b
Unexecuted instantiation: processors.c:cpuinfo_has_x86_cmpxchg8b
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_cmpxchg8b
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_cmpxchg8b
1600
1601
0
static inline bool cpuinfo_has_x86_cmpxchg16b(void) {
1602
0
#if CPUINFO_ARCH_X86_64
1603
0
  return cpuinfo_isa.cmpxchg16b;
1604
0
#else
1605
0
  return false;
1606
0
#endif
1607
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_cmpxchg16b
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_cmpxchg16b
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_cmpxchg16b
Unexecuted instantiation: processors.c:cpuinfo_has_x86_cmpxchg16b
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_cmpxchg16b
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_cmpxchg16b
1608
1609
0
static inline bool cpuinfo_has_x86_clwb(void) {
1610
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1611
0
  return cpuinfo_isa.clwb;
1612
0
#else
1613
0
  return false;
1614
0
#endif
1615
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_clwb
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_clwb
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_clwb
Unexecuted instantiation: processors.c:cpuinfo_has_x86_clwb
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_clwb
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_clwb
1616
1617
0
static inline bool cpuinfo_has_x86_movbe(void) {
1618
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1619
0
  return cpuinfo_isa.movbe;
1620
0
#else
1621
0
  return false;
1622
0
#endif
1623
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_movbe
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_movbe
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_movbe
Unexecuted instantiation: processors.c:cpuinfo_has_x86_movbe
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_movbe
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_movbe
1624
1625
0
static inline bool cpuinfo_has_x86_lahf_sahf(void) {
1626
0
#if CPUINFO_ARCH_X86
1627
0
  return true;
1628
0
#elif CPUINFO_ARCH_X86_64
1629
0
  return cpuinfo_isa.lahf_sahf;
1630
0
#else
1631
0
  return false;
1632
0
#endif
1633
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_lahf_sahf
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_lahf_sahf
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_lahf_sahf
Unexecuted instantiation: processors.c:cpuinfo_has_x86_lahf_sahf
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_lahf_sahf
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_lahf_sahf
1634
1635
0
static inline bool cpuinfo_has_x86_lzcnt(void) {
1636
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1637
0
  return cpuinfo_isa.lzcnt;
1638
0
#else
1639
0
  return false;
1640
0
#endif
1641
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_lzcnt
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_lzcnt
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_lzcnt
Unexecuted instantiation: processors.c:cpuinfo_has_x86_lzcnt
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_lzcnt
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_lzcnt
1642
1643
0
static inline bool cpuinfo_has_x86_popcnt(void) {
1644
0
#if CPUINFO_ARCH_X86_64
1645
0
#if defined(__ANDROID__)
1646
0
  return true;
1647
0
#else
1648
0
  return cpuinfo_isa.popcnt;
1649
0
#endif
1650
0
#elif CPUINFO_ARCH_X86
1651
0
  return cpuinfo_isa.popcnt;
1652
0
#else
1653
0
  return false;
1654
0
#endif
1655
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_popcnt
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_popcnt
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_popcnt
Unexecuted instantiation: processors.c:cpuinfo_has_x86_popcnt
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_popcnt
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_popcnt
1656
1657
0
static inline bool cpuinfo_has_x86_tbm(void) {
1658
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1659
0
  return cpuinfo_isa.tbm;
1660
0
#else
1661
0
  return false;
1662
0
#endif
1663
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_tbm
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_tbm
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_tbm
Unexecuted instantiation: processors.c:cpuinfo_has_x86_tbm
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_tbm
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_tbm
1664
1665
0
static inline bool cpuinfo_has_x86_bmi(void) {
1666
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1667
0
  return cpuinfo_isa.bmi;
1668
0
#else
1669
0
  return false;
1670
0
#endif
1671
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_bmi
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_bmi
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_bmi
Unexecuted instantiation: processors.c:cpuinfo_has_x86_bmi
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_bmi
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_bmi
1672
1673
0
static inline bool cpuinfo_has_x86_bmi2(void) {
1674
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1675
0
  return cpuinfo_isa.bmi2;
1676
0
#else
1677
0
  return false;
1678
0
#endif
1679
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_bmi2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_bmi2
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_bmi2
Unexecuted instantiation: processors.c:cpuinfo_has_x86_bmi2
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_bmi2
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_bmi2
1680
1681
0
static inline bool cpuinfo_has_x86_adx(void) {
1682
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1683
0
  return cpuinfo_isa.adx;
1684
0
#else
1685
0
  return false;
1686
0
#endif
1687
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_adx
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_adx
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_adx
Unexecuted instantiation: processors.c:cpuinfo_has_x86_adx
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_adx
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_adx
1688
1689
0
static inline bool cpuinfo_has_x86_aes(void) {
1690
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1691
0
  return cpuinfo_isa.aes;
1692
0
#else
1693
0
  return false;
1694
0
#endif
1695
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_aes
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_aes
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_aes
Unexecuted instantiation: processors.c:cpuinfo_has_x86_aes
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_aes
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_aes
1696
1697
0
static inline bool cpuinfo_has_x86_vaes(void) {
1698
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1699
0
  return cpuinfo_isa.vaes;
1700
0
#else
1701
0
  return false;
1702
0
#endif
1703
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_vaes
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_vaes
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_vaes
Unexecuted instantiation: processors.c:cpuinfo_has_x86_vaes
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_vaes
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_vaes
1704
1705
0
static inline bool cpuinfo_has_x86_pclmulqdq(void) {
1706
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1707
0
  return cpuinfo_isa.pclmulqdq;
1708
0
#else
1709
0
  return false;
1710
0
#endif
1711
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_pclmulqdq
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_pclmulqdq
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_pclmulqdq
Unexecuted instantiation: processors.c:cpuinfo_has_x86_pclmulqdq
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_pclmulqdq
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_pclmulqdq
1712
1713
0
static inline bool cpuinfo_has_x86_vpclmulqdq(void) {
1714
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1715
0
  return cpuinfo_isa.vpclmulqdq;
1716
0
#else
1717
0
  return false;
1718
0
#endif
1719
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_vpclmulqdq
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_vpclmulqdq
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_vpclmulqdq
Unexecuted instantiation: processors.c:cpuinfo_has_x86_vpclmulqdq
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_vpclmulqdq
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_vpclmulqdq
1720
1721
0
static inline bool cpuinfo_has_x86_gfni(void) {
1722
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1723
0
  return cpuinfo_isa.gfni;
1724
0
#else
1725
0
  return false;
1726
0
#endif
1727
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_gfni
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_gfni
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_gfni
Unexecuted instantiation: processors.c:cpuinfo_has_x86_gfni
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_gfni
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_gfni
1728
1729
0
static inline bool cpuinfo_has_x86_rdrand(void) {
1730
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1731
0
  return cpuinfo_isa.rdrand;
1732
0
#else
1733
0
  return false;
1734
0
#endif
1735
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_rdrand
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_rdrand
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_rdrand
Unexecuted instantiation: processors.c:cpuinfo_has_x86_rdrand
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_rdrand
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_rdrand
1736
1737
0
static inline bool cpuinfo_has_x86_rdseed(void) {
1738
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1739
0
  return cpuinfo_isa.rdseed;
1740
0
#else
1741
0
  return false;
1742
0
#endif
1743
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_rdseed
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_rdseed
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_rdseed
Unexecuted instantiation: processors.c:cpuinfo_has_x86_rdseed
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_rdseed
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_rdseed
1744
1745
0
static inline bool cpuinfo_has_x86_sha(void) {
1746
0
#if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64
1747
0
  return cpuinfo_isa.sha;
1748
0
#else
1749
0
  return false;
1750
0
#endif
1751
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_x86_sha
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_x86_sha
Unexecuted instantiation: multiline.c:cpuinfo_has_x86_sha
Unexecuted instantiation: processors.c:cpuinfo_has_x86_sha
Unexecuted instantiation: smallfile.c:cpuinfo_has_x86_sha
Unexecuted instantiation: cpulist.c:cpuinfo_has_x86_sha
1752
1753
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
1754
/* This structure is not a part of stable API. Use cpuinfo_has_arm_* functions
1755
 * instead. */
1756
struct cpuinfo_arm_isa {
1757
#if CPUINFO_ARCH_ARM
1758
  bool thumb;
1759
  bool thumb2;
1760
  bool thumbee;
1761
  bool jazelle;
1762
  bool armv5e;
1763
  bool armv6;
1764
  bool armv6k;
1765
  bool armv7;
1766
  bool armv7mp;
1767
  bool armv8;
1768
  bool idiv;
1769
1770
  bool vfpv2;
1771
  bool vfpv3;
1772
  bool d32;
1773
  bool fp16;
1774
  bool fma;
1775
1776
  bool wmmx;
1777
  bool wmmx2;
1778
  bool neon;
1779
#endif
1780
#if CPUINFO_ARCH_ARM64
1781
  bool atomics;
1782
  bool bf16;
1783
  bool sve;
1784
  bool sve2;
1785
  bool sve2p1;
1786
  bool i8mm;
1787
  bool sme;
1788
  bool sme2;
1789
  bool sme2p1;
1790
  bool sme_mop4;
1791
  bool sme_i16i32;
1792
  bool sme_bi32i32;
1793
  bool sme_b16b16;
1794
  bool sme_f16f16;
1795
  bool fp8;
1796
  bool f8dot;
1797
  bool f8mm;
1798
  uint32_t svelen;
1799
  uint32_t smelen;
1800
#endif
1801
  bool rdm;
1802
  bool fp16arith;
1803
  bool dot;
1804
  bool jscvt;
1805
  bool fcma;
1806
  bool fhm;
1807
1808
  bool aes;
1809
  bool sha1;
1810
  bool sha2;
1811
  bool pmull;
1812
  bool crc32;
1813
};
1814
1815
extern struct cpuinfo_arm_isa cpuinfo_isa;
1816
#endif
1817
1818
0
static inline bool cpuinfo_has_arm_thumb(void) {
1819
0
#if CPUINFO_ARCH_ARM
1820
0
  return cpuinfo_isa.thumb;
1821
0
#else
1822
0
  return false;
1823
0
#endif
1824
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_thumb
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_thumb
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_thumb
Unexecuted instantiation: processors.c:cpuinfo_has_arm_thumb
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_thumb
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_thumb
1825
1826
0
static inline bool cpuinfo_has_arm_thumb2(void) {
1827
0
#if CPUINFO_ARCH_ARM
1828
0
  return cpuinfo_isa.thumb2;
1829
0
#else
1830
0
  return false;
1831
0
#endif
1832
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_thumb2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_thumb2
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_thumb2
Unexecuted instantiation: processors.c:cpuinfo_has_arm_thumb2
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_thumb2
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_thumb2
1833
1834
0
static inline bool cpuinfo_has_arm_v5e(void) {
1835
0
#if CPUINFO_ARCH_ARM
1836
0
  return cpuinfo_isa.armv5e;
1837
0
#else
1838
0
  return false;
1839
0
#endif
1840
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_v5e
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_v5e
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_v5e
Unexecuted instantiation: processors.c:cpuinfo_has_arm_v5e
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_v5e
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_v5e
1841
1842
0
static inline bool cpuinfo_has_arm_v6(void) {
1843
0
#if CPUINFO_ARCH_ARM
1844
0
  return cpuinfo_isa.armv6;
1845
0
#else
1846
0
  return false;
1847
0
#endif
1848
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_v6
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_v6
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_v6
Unexecuted instantiation: processors.c:cpuinfo_has_arm_v6
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_v6
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_v6
1849
1850
0
static inline bool cpuinfo_has_arm_v6k(void) {
1851
0
#if CPUINFO_ARCH_ARM
1852
0
  return cpuinfo_isa.armv6k;
1853
0
#else
1854
0
  return false;
1855
0
#endif
1856
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_v6k
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_v6k
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_v6k
Unexecuted instantiation: processors.c:cpuinfo_has_arm_v6k
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_v6k
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_v6k
1857
1858
0
static inline bool cpuinfo_has_arm_v7(void) {
1859
0
#if CPUINFO_ARCH_ARM
1860
0
  return cpuinfo_isa.armv7;
1861
0
#else
1862
0
  return false;
1863
0
#endif
1864
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_v7
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_v7
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_v7
Unexecuted instantiation: processors.c:cpuinfo_has_arm_v7
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_v7
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_v7
1865
1866
0
static inline bool cpuinfo_has_arm_v7mp(void) {
1867
0
#if CPUINFO_ARCH_ARM
1868
0
  return cpuinfo_isa.armv7mp;
1869
0
#else
1870
0
  return false;
1871
0
#endif
1872
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_v7mp
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_v7mp
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_v7mp
Unexecuted instantiation: processors.c:cpuinfo_has_arm_v7mp
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_v7mp
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_v7mp
1873
1874
0
static inline bool cpuinfo_has_arm_v8(void) {
1875
0
#if CPUINFO_ARCH_ARM64
1876
0
  return true;
1877
0
#elif CPUINFO_ARCH_ARM
1878
0
  return cpuinfo_isa.armv8;
1879
0
#else
1880
0
  return false;
1881
0
#endif
1882
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_v8
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_v8
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_v8
Unexecuted instantiation: processors.c:cpuinfo_has_arm_v8
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_v8
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_v8
1883
1884
0
static inline bool cpuinfo_has_arm_idiv(void) {
1885
0
#if CPUINFO_ARCH_ARM64
1886
0
  return true;
1887
0
#elif CPUINFO_ARCH_ARM
1888
0
  return cpuinfo_isa.idiv;
1889
0
#else
1890
0
  return false;
1891
0
#endif
1892
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_idiv
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_idiv
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_idiv
Unexecuted instantiation: processors.c:cpuinfo_has_arm_idiv
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_idiv
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_idiv
1893
1894
0
static inline bool cpuinfo_has_arm_vfpv2(void) {
1895
0
#if CPUINFO_ARCH_ARM
1896
0
  return cpuinfo_isa.vfpv2;
1897
0
#else
1898
0
  return false;
1899
0
#endif
1900
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_vfpv2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_vfpv2
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_vfpv2
Unexecuted instantiation: processors.c:cpuinfo_has_arm_vfpv2
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_vfpv2
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_vfpv2
1901
1902
0
static inline bool cpuinfo_has_arm_vfpv3(void) {
1903
0
#if CPUINFO_ARCH_ARM64
1904
0
  return true;
1905
0
#elif CPUINFO_ARCH_ARM
1906
0
  return cpuinfo_isa.vfpv3;
1907
0
#else
1908
0
  return false;
1909
0
#endif
1910
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_vfpv3
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_vfpv3
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_vfpv3
Unexecuted instantiation: processors.c:cpuinfo_has_arm_vfpv3
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_vfpv3
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_vfpv3
1911
1912
0
static inline bool cpuinfo_has_arm_vfpv3_d32(void) {
1913
0
#if CPUINFO_ARCH_ARM64
1914
0
  return true;
1915
0
#elif CPUINFO_ARCH_ARM
1916
0
  return cpuinfo_isa.vfpv3 && cpuinfo_isa.d32;
1917
0
#else
1918
0
  return false;
1919
0
#endif
1920
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_vfpv3_d32
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_vfpv3_d32
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_vfpv3_d32
Unexecuted instantiation: processors.c:cpuinfo_has_arm_vfpv3_d32
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_vfpv3_d32
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_vfpv3_d32
1921
1922
0
static inline bool cpuinfo_has_arm_vfpv3_fp16(void) {
1923
0
#if CPUINFO_ARCH_ARM64
1924
0
  return true;
1925
0
#elif CPUINFO_ARCH_ARM
1926
0
  return cpuinfo_isa.vfpv3 && cpuinfo_isa.fp16;
1927
0
#else
1928
0
  return false;
1929
0
#endif
1930
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_vfpv3_fp16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_vfpv3_fp16
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_vfpv3_fp16
Unexecuted instantiation: processors.c:cpuinfo_has_arm_vfpv3_fp16
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_vfpv3_fp16
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_vfpv3_fp16
1931
1932
0
static inline bool cpuinfo_has_arm_vfpv3_fp16_d32(void) {
1933
0
#if CPUINFO_ARCH_ARM64
1934
0
  return true;
1935
0
#elif CPUINFO_ARCH_ARM
1936
0
  return cpuinfo_isa.vfpv3 && cpuinfo_isa.fp16 && cpuinfo_isa.d32;
1937
0
#else
1938
0
  return false;
1939
0
#endif
1940
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_vfpv3_fp16_d32
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_vfpv3_fp16_d32
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_vfpv3_fp16_d32
Unexecuted instantiation: processors.c:cpuinfo_has_arm_vfpv3_fp16_d32
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_vfpv3_fp16_d32
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_vfpv3_fp16_d32
1941
1942
0
static inline bool cpuinfo_has_arm_vfpv4(void) {
1943
0
#if CPUINFO_ARCH_ARM64
1944
0
  return true;
1945
0
#elif CPUINFO_ARCH_ARM
1946
0
  return cpuinfo_isa.vfpv3 && cpuinfo_isa.fma;
1947
0
#else
1948
0
  return false;
1949
0
#endif
1950
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_vfpv4
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_vfpv4
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_vfpv4
Unexecuted instantiation: processors.c:cpuinfo_has_arm_vfpv4
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_vfpv4
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_vfpv4
1951
1952
0
static inline bool cpuinfo_has_arm_vfpv4_d32(void) {
1953
0
#if CPUINFO_ARCH_ARM64
1954
0
  return true;
1955
0
#elif CPUINFO_ARCH_ARM
1956
0
  return cpuinfo_isa.vfpv3 && cpuinfo_isa.fma && cpuinfo_isa.d32;
1957
0
#else
1958
0
  return false;
1959
0
#endif
1960
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_vfpv4_d32
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_vfpv4_d32
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_vfpv4_d32
Unexecuted instantiation: processors.c:cpuinfo_has_arm_vfpv4_d32
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_vfpv4_d32
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_vfpv4_d32
1961
1962
0
static inline bool cpuinfo_has_arm_fp16_arith(void) {
1963
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
1964
0
  return cpuinfo_isa.fp16arith;
1965
0
#else
1966
0
  return false;
1967
0
#endif
1968
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_fp16_arith
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_fp16_arith
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_fp16_arith
Unexecuted instantiation: processors.c:cpuinfo_has_arm_fp16_arith
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_fp16_arith
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_fp16_arith
1969
1970
0
static inline bool cpuinfo_has_arm_bf16(void) {
1971
0
#if CPUINFO_ARCH_ARM64
1972
0
  return cpuinfo_isa.bf16;
1973
0
#else
1974
0
  return false;
1975
0
#endif
1976
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_bf16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_bf16
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_bf16
Unexecuted instantiation: processors.c:cpuinfo_has_arm_bf16
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_bf16
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_bf16
1977
1978
0
static inline bool cpuinfo_has_arm_wmmx(void) {
1979
0
#if CPUINFO_ARCH_ARM
1980
0
  return cpuinfo_isa.wmmx;
1981
0
#else
1982
0
  return false;
1983
0
#endif
1984
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_wmmx
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_wmmx
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_wmmx
Unexecuted instantiation: processors.c:cpuinfo_has_arm_wmmx
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_wmmx
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_wmmx
1985
1986
0
static inline bool cpuinfo_has_arm_wmmx2(void) {
1987
0
#if CPUINFO_ARCH_ARM
1988
0
  return cpuinfo_isa.wmmx2;
1989
0
#else
1990
0
  return false;
1991
0
#endif
1992
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_wmmx2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_wmmx2
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_wmmx2
Unexecuted instantiation: processors.c:cpuinfo_has_arm_wmmx2
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_wmmx2
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_wmmx2
1993
1994
0
static inline bool cpuinfo_has_arm_neon(void) {
1995
0
#if CPUINFO_ARCH_ARM64
1996
0
  return true;
1997
0
#elif CPUINFO_ARCH_ARM
1998
0
  return cpuinfo_isa.neon;
1999
0
#else
2000
0
  return false;
2001
0
#endif
2002
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_neon
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_neon
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_neon
Unexecuted instantiation: processors.c:cpuinfo_has_arm_neon
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_neon
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_neon
2003
2004
0
static inline bool cpuinfo_has_arm_neon_fp16(void) {
2005
0
#if CPUINFO_ARCH_ARM64
2006
0
  return true;
2007
0
#elif CPUINFO_ARCH_ARM
2008
0
  return cpuinfo_isa.neon && cpuinfo_isa.fp16;
2009
0
#else
2010
0
  return false;
2011
0
#endif
2012
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_neon_fp16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_neon_fp16
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_neon_fp16
Unexecuted instantiation: processors.c:cpuinfo_has_arm_neon_fp16
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_neon_fp16
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_neon_fp16
2013
2014
0
static inline bool cpuinfo_has_arm_neon_fma(void) {
2015
0
#if CPUINFO_ARCH_ARM64
2016
0
  return true;
2017
0
#elif CPUINFO_ARCH_ARM
2018
0
  return cpuinfo_isa.neon && cpuinfo_isa.fma;
2019
0
#else
2020
0
  return false;
2021
0
#endif
2022
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_neon_fma
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_neon_fma
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_neon_fma
Unexecuted instantiation: processors.c:cpuinfo_has_arm_neon_fma
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_neon_fma
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_neon_fma
2023
2024
0
static inline bool cpuinfo_has_arm_neon_v8(void) {
2025
0
#if CPUINFO_ARCH_ARM64
2026
0
  return true;
2027
0
#elif CPUINFO_ARCH_ARM
2028
0
  return cpuinfo_isa.neon && cpuinfo_isa.armv8;
2029
0
#else
2030
0
  return false;
2031
0
#endif
2032
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_neon_v8
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_neon_v8
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_neon_v8
Unexecuted instantiation: processors.c:cpuinfo_has_arm_neon_v8
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_neon_v8
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_neon_v8
2033
2034
0
static inline bool cpuinfo_has_arm_atomics(void) {
2035
0
#if CPUINFO_ARCH_ARM64
2036
0
  return cpuinfo_isa.atomics;
2037
0
#else
2038
0
  return false;
2039
0
#endif
2040
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_atomics
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_atomics
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_atomics
Unexecuted instantiation: processors.c:cpuinfo_has_arm_atomics
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_atomics
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_atomics
2041
2042
0
static inline bool cpuinfo_has_arm_neon_rdm(void) {
2043
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
2044
0
  return cpuinfo_isa.rdm;
2045
0
#else
2046
0
  return false;
2047
0
#endif
2048
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_neon_rdm
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_neon_rdm
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_neon_rdm
Unexecuted instantiation: processors.c:cpuinfo_has_arm_neon_rdm
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_neon_rdm
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_neon_rdm
2049
2050
0
static inline bool cpuinfo_has_arm_neon_fp16_arith(void) {
2051
0
#if CPUINFO_ARCH_ARM
2052
0
  return cpuinfo_isa.neon && cpuinfo_isa.fp16arith;
2053
0
#elif CPUINFO_ARCH_ARM64
2054
0
  return cpuinfo_isa.fp16arith;
2055
0
#else
2056
0
  return false;
2057
0
#endif
2058
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_neon_fp16_arith
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_neon_fp16_arith
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_neon_fp16_arith
Unexecuted instantiation: processors.c:cpuinfo_has_arm_neon_fp16_arith
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_neon_fp16_arith
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_neon_fp16_arith
2059
2060
0
static inline bool cpuinfo_has_arm_fhm(void) {
2061
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
2062
0
  return cpuinfo_isa.fhm;
2063
0
#else
2064
0
  return false;
2065
0
#endif
2066
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_fhm
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_fhm
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_fhm
Unexecuted instantiation: processors.c:cpuinfo_has_arm_fhm
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_fhm
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_fhm
2067
2068
0
static inline bool cpuinfo_has_arm_neon_dot(void) {
2069
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
2070
0
  return cpuinfo_isa.dot;
2071
0
#else
2072
0
  return false;
2073
0
#endif
2074
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_neon_dot
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_neon_dot
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_neon_dot
Unexecuted instantiation: processors.c:cpuinfo_has_arm_neon_dot
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_neon_dot
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_neon_dot
2075
2076
0
static inline bool cpuinfo_has_arm_neon_bf16(void) {
2077
0
#if CPUINFO_ARCH_ARM64
2078
0
  return cpuinfo_isa.bf16;
2079
0
#else
2080
0
  return false;
2081
0
#endif
2082
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_neon_bf16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_neon_bf16
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_neon_bf16
Unexecuted instantiation: processors.c:cpuinfo_has_arm_neon_bf16
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_neon_bf16
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_neon_bf16
2083
2084
0
static inline bool cpuinfo_has_arm_jscvt(void) {
2085
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
2086
0
  return cpuinfo_isa.jscvt;
2087
0
#else
2088
0
  return false;
2089
0
#endif
2090
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_jscvt
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_jscvt
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_jscvt
Unexecuted instantiation: processors.c:cpuinfo_has_arm_jscvt
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_jscvt
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_jscvt
2091
2092
0
static inline bool cpuinfo_has_arm_fcma(void) {
2093
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
2094
0
  return cpuinfo_isa.fcma;
2095
0
#else
2096
0
  return false;
2097
0
#endif
2098
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_fcma
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_fcma
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_fcma
Unexecuted instantiation: processors.c:cpuinfo_has_arm_fcma
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_fcma
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_fcma
2099
2100
0
static inline bool cpuinfo_has_arm_i8mm(void) {
2101
0
#if CPUINFO_ARCH_ARM64
2102
0
  return cpuinfo_isa.i8mm;
2103
0
#else
2104
0
  return false;
2105
0
#endif
2106
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_i8mm
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_i8mm
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_i8mm
Unexecuted instantiation: processors.c:cpuinfo_has_arm_i8mm
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_i8mm
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_i8mm
2107
2108
0
static inline bool cpuinfo_has_arm_fp8(void) {
2109
0
#if CPUINFO_ARCH_ARM64
2110
0
  return cpuinfo_isa.fp8;
2111
0
#else
2112
0
  return false;
2113
0
#endif
2114
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_fp8
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_fp8
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_fp8
Unexecuted instantiation: processors.c:cpuinfo_has_arm_fp8
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_fp8
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_fp8
2115
2116
/* For backward compatibility */
2117
#define cpuinfo_has_arm_f8dot cpuinfo_has_arm_neon_f8dot4
2118
#define cpuinfo_has_arm_f8mm cpuinfo_has_arm_neon_f8mm
2119
2120
0
static inline bool cpuinfo_has_arm_neon_f8dot4(void) {
2121
0
#if CPUINFO_ARCH_ARM64
2122
0
  return cpuinfo_isa.f8dot;
2123
0
#else
2124
0
  return false;
2125
0
#endif
2126
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_neon_f8dot4
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_neon_f8dot4
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_neon_f8dot4
Unexecuted instantiation: processors.c:cpuinfo_has_arm_neon_f8dot4
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_neon_f8dot4
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_neon_f8dot4
2127
2128
0
static inline bool cpuinfo_has_arm_neon_f8mm(void) {
2129
0
#if CPUINFO_ARCH_ARM64
2130
0
  return cpuinfo_isa.f8mm;
2131
0
#else
2132
0
  return false;
2133
0
#endif
2134
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_neon_f8mm
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_neon_f8mm
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_neon_f8mm
Unexecuted instantiation: processors.c:cpuinfo_has_arm_neon_f8mm
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_neon_f8mm
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_neon_f8mm
2135
2136
0
static inline bool cpuinfo_has_arm_aes(void) {
2137
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
2138
0
  return cpuinfo_isa.aes;
2139
0
#else
2140
0
  return false;
2141
0
#endif
2142
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_aes
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_aes
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_aes
Unexecuted instantiation: processors.c:cpuinfo_has_arm_aes
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_aes
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_aes
2143
2144
0
static inline bool cpuinfo_has_arm_sha1(void) {
2145
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
2146
0
  return cpuinfo_isa.sha1;
2147
0
#else
2148
0
  return false;
2149
0
#endif
2150
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sha1
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sha1
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sha1
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sha1
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sha1
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sha1
2151
2152
0
static inline bool cpuinfo_has_arm_sha2(void) {
2153
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
2154
0
  return cpuinfo_isa.sha2;
2155
0
#else
2156
0
  return false;
2157
0
#endif
2158
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sha2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sha2
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sha2
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sha2
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sha2
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sha2
2159
2160
0
static inline bool cpuinfo_has_arm_pmull(void) {
2161
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
2162
0
  return cpuinfo_isa.pmull;
2163
0
#else
2164
0
  return false;
2165
0
#endif
2166
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_pmull
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_pmull
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_pmull
Unexecuted instantiation: processors.c:cpuinfo_has_arm_pmull
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_pmull
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_pmull
2167
2168
0
static inline bool cpuinfo_has_arm_crc32(void) {
2169
0
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
2170
0
  return cpuinfo_isa.crc32;
2171
0
#else
2172
0
  return false;
2173
0
#endif
2174
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_crc32
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_crc32
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_crc32
Unexecuted instantiation: processors.c:cpuinfo_has_arm_crc32
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_crc32
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_crc32
2175
2176
0
static inline bool cpuinfo_has_arm_sve(void) {
2177
0
#if CPUINFO_ARCH_ARM64
2178
0
  return cpuinfo_isa.sve;
2179
0
#else
2180
0
  return false;
2181
0
#endif
2182
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sve
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sve
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sve
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sve
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sve
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sve
2183
2184
0
static inline bool cpuinfo_has_arm_sve_bf16(void) {
2185
0
#if CPUINFO_ARCH_ARM64
2186
0
  return cpuinfo_isa.sve && cpuinfo_isa.bf16;
2187
0
#else
2188
0
  return false;
2189
0
#endif
2190
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sve_bf16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sve_bf16
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sve_bf16
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sve_bf16
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sve_bf16
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sve_bf16
2191
2192
0
static inline bool cpuinfo_has_arm_sve2(void) {
2193
0
#if CPUINFO_ARCH_ARM64
2194
0
  return cpuinfo_isa.sve2;
2195
0
#else
2196
0
  return false;
2197
0
#endif
2198
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sve2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sve2
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sve2
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sve2
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sve2
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sve2
2199
2200
0
static inline bool cpuinfo_has_arm_sve2p1(void) {
2201
0
#if CPUINFO_ARCH_ARM64
2202
0
  return cpuinfo_isa.sve2p1;
2203
0
#else
2204
0
  return false;
2205
0
#endif
2206
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sve2p1
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sve2p1
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sve2p1
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sve2p1
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sve2p1
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sve2p1
2207
2208
// Function to get the max SVE vector length on ARM CPU's which support SVE.
2209
0
static inline uint32_t cpuinfo_get_max_arm_sve_length(void) {
2210
0
#if CPUINFO_ARCH_ARM64
2211
0
  return cpuinfo_isa.svelen * 8; // bytes * 8 = bit length(vector length)
2212
0
#else
2213
0
  return 0;
2214
0
#endif
2215
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_get_max_arm_sve_length
Unexecuted instantiation: cpuinfo.c:cpuinfo_get_max_arm_sve_length
Unexecuted instantiation: multiline.c:cpuinfo_get_max_arm_sve_length
Unexecuted instantiation: processors.c:cpuinfo_get_max_arm_sve_length
Unexecuted instantiation: smallfile.c:cpuinfo_get_max_arm_sve_length
Unexecuted instantiation: cpulist.c:cpuinfo_get_max_arm_sve_length
2216
2217
// Function to get the max SME vector length on ARM CPU's which support SME.
2218
0
static inline uint32_t cpuinfo_get_max_arm_sme_length(void) {
2219
0
#if CPUINFO_ARCH_ARM64
2220
0
  return cpuinfo_isa.smelen * 8; // bytes * 8 = bit length(vector length)
2221
0
#else
2222
0
  return 0;
2223
0
#endif
2224
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_get_max_arm_sme_length
Unexecuted instantiation: cpuinfo.c:cpuinfo_get_max_arm_sme_length
Unexecuted instantiation: multiline.c:cpuinfo_get_max_arm_sme_length
Unexecuted instantiation: processors.c:cpuinfo_get_max_arm_sme_length
Unexecuted instantiation: smallfile.c:cpuinfo_get_max_arm_sme_length
Unexecuted instantiation: cpulist.c:cpuinfo_get_max_arm_sme_length
2225
2226
0
static inline bool cpuinfo_has_arm_sme(void) {
2227
0
#if CPUINFO_ARCH_ARM64
2228
0
  return cpuinfo_isa.sme;
2229
0
#else
2230
0
  return false;
2231
0
#endif
2232
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sme
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sme
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sme
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sme
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sme
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sme
2233
2234
0
static inline bool cpuinfo_has_arm_sme2(void) {
2235
0
#if CPUINFO_ARCH_ARM64
2236
0
  return cpuinfo_isa.sme2;
2237
0
#else
2238
0
  return false;
2239
0
#endif
2240
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sme2
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sme2
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sme2
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sme2
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sme2
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sme2
2241
2242
0
static inline bool cpuinfo_has_arm_sme2p1(void) {
2243
0
#if CPUINFO_ARCH_ARM64
2244
0
  return cpuinfo_isa.sme2p1;
2245
0
#else
2246
0
  return false;
2247
0
#endif
2248
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sme2p1
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sme2p1
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sme2p1
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sme2p1
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sme2p1
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sme2p1
2249
2250
0
static inline bool cpuinfo_has_arm_sme_mop4(void) {
2251
0
#if CPUINFO_ARCH_ARM64
2252
0
  return cpuinfo_isa.sme_mop4;
2253
0
#else
2254
0
  return false;
2255
0
#endif
2256
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sme_mop4
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sme_mop4
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sme_mop4
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sme_mop4
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sme_mop4
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sme_mop4
2257
2258
0
static inline bool cpuinfo_has_arm_sme_i16i32(void) {
2259
0
#if CPUINFO_ARCH_ARM64
2260
0
  return cpuinfo_isa.sme_i16i32;
2261
0
#else
2262
0
  return false;
2263
0
#endif
2264
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sme_i16i32
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sme_i16i32
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sme_i16i32
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sme_i16i32
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sme_i16i32
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sme_i16i32
2265
2266
0
static inline bool cpuinfo_has_arm_sme_bi32i32(void) {
2267
0
#if CPUINFO_ARCH_ARM64
2268
0
  return cpuinfo_isa.sme_bi32i32;
2269
0
#else
2270
0
  return false;
2271
0
#endif
2272
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sme_bi32i32
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sme_bi32i32
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sme_bi32i32
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sme_bi32i32
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sme_bi32i32
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sme_bi32i32
2273
2274
0
static inline bool cpuinfo_has_arm_sme_b16b16(void) {
2275
0
#if CPUINFO_ARCH_ARM64
2276
0
  return cpuinfo_isa.sme_b16b16;
2277
0
#else
2278
0
  return false;
2279
0
#endif
2280
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sme_b16b16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sme_b16b16
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sme_b16b16
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sme_b16b16
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sme_b16b16
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sme_b16b16
2281
2282
0
static inline bool cpuinfo_has_arm_sme_f16f16(void) {
2283
0
#if CPUINFO_ARCH_ARM64
2284
0
  return cpuinfo_isa.sme_f16f16;
2285
0
#else
2286
0
  return false;
2287
0
#endif
2288
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_arm_sme_f16f16
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_arm_sme_f16f16
Unexecuted instantiation: multiline.c:cpuinfo_has_arm_sme_f16f16
Unexecuted instantiation: processors.c:cpuinfo_has_arm_sme_f16f16
Unexecuted instantiation: smallfile.c:cpuinfo_has_arm_sme_f16f16
Unexecuted instantiation: cpulist.c:cpuinfo_has_arm_sme_f16f16
2289
2290
#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64
2291
/* This structure is not a part of stable API. Use cpuinfo_has_riscv_* functions
2292
 * instead. */
2293
struct cpuinfo_riscv_isa {
2294
  /**
2295
   * Keep fields in line with the canonical order as defined by
2296
   * Section 27.11 Subset Naming Convention.
2297
   */
2298
  /* RV32I/64I/128I Base ISA. */
2299
  bool i;
2300
#if CPUINFO_ARCH_RISCV32
2301
  /* RV32E Base ISA. */
2302
  bool e;
2303
#endif
2304
  /* Integer Multiply/Divide Extension. */
2305
  bool m;
2306
  /* Atomic Extension. */
2307
  bool a;
2308
  /* Single-Precision Floating-Point Extension. */
2309
  bool f;
2310
  /* Double-Precision Floating-Point Extension. */
2311
  bool d;
2312
  /* Compressed Extension. */
2313
  bool c;
2314
  /* Vector Extension. */
2315
  bool v;
2316
2317
  /* ISA Extensions */
2318
  /* Half-Precision Floating-Point Extension. */
2319
  bool zfh;
2320
  /* Half-Precision Floating-Point Vector Extension. */
2321
  bool zvfh;
2322
};
2323
2324
extern struct cpuinfo_riscv_isa cpuinfo_isa;
2325
#endif
2326
2327
0
static inline bool cpuinfo_has_riscv_i(void) {
2328
0
#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64
2329
0
  return cpuinfo_isa.i;
2330
0
#else
2331
0
  return false;
2332
0
#endif
2333
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_i
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_i
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_i
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_i
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_i
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_i
2334
2335
0
static inline bool cpuinfo_has_riscv_e(void) {
2336
0
#if CPUINFO_ARCH_RISCV32
2337
0
  return cpuinfo_isa.e;
2338
0
#else
2339
0
  return false;
2340
0
#endif
2341
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_e
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_e
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_e
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_e
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_e
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_e
2342
2343
0
static inline bool cpuinfo_has_riscv_m(void) {
2344
0
#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64
2345
0
  return cpuinfo_isa.m;
2346
0
#else
2347
0
  return false;
2348
0
#endif
2349
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_m
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_m
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_m
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_m
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_m
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_m
2350
2351
0
static inline bool cpuinfo_has_riscv_a(void) {
2352
0
#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64
2353
0
  return cpuinfo_isa.a;
2354
0
#else
2355
0
  return false;
2356
0
#endif
2357
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_a
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_a
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_a
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_a
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_a
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_a
2358
2359
0
static inline bool cpuinfo_has_riscv_f(void) {
2360
0
#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64
2361
0
  return cpuinfo_isa.f;
2362
0
#else
2363
0
  return false;
2364
0
#endif
2365
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_f
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_f
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_f
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_f
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_f
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_f
2366
2367
0
static inline bool cpuinfo_has_riscv_d(void) {
2368
0
#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64
2369
0
  return cpuinfo_isa.d;
2370
0
#else
2371
0
  return false;
2372
0
#endif
2373
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_d
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_d
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_d
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_d
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_d
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_d
2374
2375
0
static inline bool cpuinfo_has_riscv_g(void) {
2376
0
  // The 'G' extension is simply shorthand for 'IMAFD'.
2377
0
  return cpuinfo_has_riscv_i() && cpuinfo_has_riscv_m() && cpuinfo_has_riscv_a() && cpuinfo_has_riscv_f() &&
2378
0
    cpuinfo_has_riscv_d();
2379
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_g
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_g
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_g
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_g
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_g
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_g
2380
2381
0
static inline bool cpuinfo_has_riscv_c(void) {
2382
0
#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64
2383
0
  return cpuinfo_isa.c;
2384
0
#else
2385
0
  return false;
2386
0
#endif
2387
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_c
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_c
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_c
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_c
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_c
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_c
2388
2389
0
static inline bool cpuinfo_has_riscv_v(void) {
2390
0
#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64
2391
0
  return cpuinfo_isa.v;
2392
0
#else
2393
0
  return false;
2394
0
#endif
2395
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_v
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_v
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_v
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_v
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_v
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_v
2396
2397
0
static inline bool cpuinfo_has_riscv_zfh(void) {
2398
0
#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64
2399
0
  return cpuinfo_isa.zfh;
2400
0
#else
2401
0
  return false;
2402
0
#endif
2403
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_zfh
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_zfh
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_zfh
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_zfh
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_zfh
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_zfh
2404
2405
0
static inline bool cpuinfo_has_riscv_zvfh(void) {
2406
0
#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64
2407
0
  return cpuinfo_isa.zvfh;
2408
0
#else
2409
0
  return false;
2410
0
#endif
2411
0
}
Unexecuted instantiation: fuzz_cpuinfo.c:cpuinfo_has_riscv_zvfh
Unexecuted instantiation: cpuinfo.c:cpuinfo_has_riscv_zvfh
Unexecuted instantiation: multiline.c:cpuinfo_has_riscv_zvfh
Unexecuted instantiation: processors.c:cpuinfo_has_riscv_zvfh
Unexecuted instantiation: smallfile.c:cpuinfo_has_riscv_zvfh
Unexecuted instantiation: cpulist.c:cpuinfo_has_riscv_zvfh
2412
2413
const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_processors(void);
2414
const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_cores(void);
2415
const struct cpuinfo_cluster* CPUINFO_ABI cpuinfo_get_clusters(void);
2416
const struct cpuinfo_package* CPUINFO_ABI cpuinfo_get_packages(void);
2417
const struct cpuinfo_uarch_info* CPUINFO_ABI cpuinfo_get_uarchs(void);
2418
const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1i_caches(void);
2419
const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1d_caches(void);
2420
const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l2_caches(void);
2421
const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l3_caches(void);
2422
const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l4_caches(void);
2423
2424
const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_processor(uint32_t index);
2425
const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_core(uint32_t index);
2426
const struct cpuinfo_cluster* CPUINFO_ABI cpuinfo_get_cluster(uint32_t index);
2427
const struct cpuinfo_package* CPUINFO_ABI cpuinfo_get_package(uint32_t index);
2428
const struct cpuinfo_uarch_info* CPUINFO_ABI cpuinfo_get_uarch(uint32_t index);
2429
const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1i_cache(uint32_t index);
2430
const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1d_cache(uint32_t index);
2431
const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l2_cache(uint32_t index);
2432
const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l3_cache(uint32_t index);
2433
const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l4_cache(uint32_t index);
2434
2435
uint32_t CPUINFO_ABI cpuinfo_get_processors_count(void);
2436
uint32_t CPUINFO_ABI cpuinfo_get_cores_count(void);
2437
uint32_t CPUINFO_ABI cpuinfo_get_clusters_count(void);
2438
uint32_t CPUINFO_ABI cpuinfo_get_packages_count(void);
2439
uint32_t CPUINFO_ABI cpuinfo_get_uarchs_count(void);
2440
uint32_t CPUINFO_ABI cpuinfo_get_l1i_caches_count(void);
2441
uint32_t CPUINFO_ABI cpuinfo_get_l1d_caches_count(void);
2442
uint32_t CPUINFO_ABI cpuinfo_get_l2_caches_count(void);
2443
uint32_t CPUINFO_ABI cpuinfo_get_l3_caches_count(void);
2444
uint32_t CPUINFO_ABI cpuinfo_get_l4_caches_count(void);
2445
2446
/**
2447
 * Returns upper bound on cache size.
2448
 */
2449
uint32_t CPUINFO_ABI cpuinfo_get_max_cache_size(void);
2450
2451
/**
2452
 * Identify the logical processor that executes the current thread.
2453
 *
2454
 * There is no guarantee that the thread will stay on the same logical processor
2455
 * for any time. Callers should treat the result as only a hint, and be prepared
2456
 * to handle NULL return value.
2457
 */
2458
const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_current_processor(void);
2459
2460
/**
2461
 * Identify the core that executes the current thread.
2462
 *
2463
 * There is no guarantee that the thread will stay on the same core for any
2464
 * time. Callers should treat the result as only a hint, and be prepared to
2465
 * handle NULL return value.
2466
 */
2467
const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_current_core(void);
2468
2469
/**
2470
 * Identify the microarchitecture index of the core that executes the current
2471
 * thread. If the system does not support such identification, the function
2472
 * returns 0.
2473
 *
2474
 * There is no guarantee that the thread will stay on the same type of core for
2475
 * any time. Callers should treat the result as only a hint.
2476
 */
2477
uint32_t CPUINFO_ABI cpuinfo_get_current_uarch_index(void);
2478
2479
/**
2480
 * Identify the microarchitecture index of the core that executes the current
2481
 * thread. If the system does not support such identification, the function
2482
 * returns the user-specified default value.
2483
 *
2484
 * There is no guarantee that the thread will stay on the same type of core for
2485
 * any time. Callers should treat the result as only a hint.
2486
 */
2487
uint32_t CPUINFO_ABI cpuinfo_get_current_uarch_index_with_default(uint32_t default_uarch_index);
2488
2489
#ifdef __cplusplus
2490
} /* extern "C" */
2491
#endif
2492
2493
#endif /* CPUINFO_H */