LLVM 19.0.0git
AArch64CPUFeatures.inc
Go to the documentation of this file.
1//===- AArch64CPUFeatures.inc - AArch64 CPU Features enum -------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file defines the CPUFeatures enum for AArch64 to facilitate better
10// testing of this code between LLVM and compiler-rt, primarily that the files
11// are an exact match.
12//
13// This file has two identical copies. The primary copy lives in LLVM and
14// the other one sits in compiler-rt/lib/builtins/cpu_model directory. To make
15// changes in this file, first modify the primary copy and copy it over to
16// compiler-rt. compiler-rt tests will fail if the two files are not synced up.
17//
18//===----------------------------------------------------------------------===//
19
20#ifndef AARCH64_CPU_FEATURS_INC_H
21#define AARCH64_CPU_FEATURS_INC_H
22
23// Function Multi Versioning CPU features.
24enum CPUFeatures {
25 FEAT_RNG,
26 FEAT_FLAGM,
27 FEAT_FLAGM2,
28 FEAT_FP16FML,
29 FEAT_DOTPROD,
30 FEAT_SM4,
31 FEAT_RDM,
32 FEAT_LSE,
33 FEAT_FP,
34 FEAT_SIMD,
35 FEAT_CRC,
36 FEAT_SHA1,
37 FEAT_SHA2,
38 FEAT_SHA3,
39 FEAT_AES,
40 FEAT_PMULL,
41 FEAT_FP16,
42 FEAT_DIT,
43 FEAT_DPB,
44 FEAT_DPB2,
45 FEAT_JSCVT,
46 FEAT_FCMA,
47 FEAT_RCPC,
48 FEAT_RCPC2,
49 FEAT_FRINTTS,
50 FEAT_DGH,
51 FEAT_I8MM,
52 FEAT_BF16,
53 FEAT_EBF16,
54 FEAT_RPRES,
55 FEAT_SVE,
56 FEAT_SVE_BF16,
57 FEAT_SVE_EBF16,
58 FEAT_SVE_I8MM,
59 FEAT_SVE_F32MM,
60 FEAT_SVE_F64MM,
61 FEAT_SVE2,
62 FEAT_SVE_AES,
63 FEAT_SVE_PMULL128,
64 FEAT_SVE_BITPERM,
65 FEAT_SVE_SHA3,
66 FEAT_SVE_SM4,
67 FEAT_SME,
68 FEAT_MEMTAG,
69 FEAT_MEMTAG2,
70 FEAT_MEMTAG3,
71 FEAT_SB,
72 FEAT_PREDRES,
73 FEAT_SSBS,
74 FEAT_SSBS2,
75 FEAT_BTI,
76 FEAT_LS64,
77 FEAT_LS64_V,
78 FEAT_LS64_ACCDATA,
79 FEAT_WFXT,
80 FEAT_SME_F64,
81 FEAT_SME_I64,
82 FEAT_SME2,
83 FEAT_RCPC3,
84 FEAT_MOPS,
85 FEAT_MAX,
86 FEAT_EXT = 62, // Reserved to indicate presence of additional features field
87 // in __aarch64_cpu_features
88 FEAT_INIT // Used as flag of features initialization completion
89};
90
91#endif