LLVM
20.0.0git
include
llvm
TargetParser
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.
24
enum
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
RESERVED_FEAT_SHA1,
// previously used and now ABI legacy
37
FEAT_SHA2,
38
FEAT_SHA3,
39
RESERVED_FEAT_AES,
// previously used and now ABI legacy
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
RESERVED_FEAT_DGH,
// previously used and now ABI legacy
51
FEAT_I8MM,
52
FEAT_BF16,
53
RESERVED_FEAT_EBF16,
// previously used and now ABI legacy
54
RESERVED_FEAT_RPRES,
// previously used and now ABI legacy
55
FEAT_SVE,
56
RESERVED_FEAT_SVE_BF16,
// previously used and now ABI legacy
57
RESERVED_FEAT_SVE_EBF16,
// previously used and now ABI legacy
58
RESERVED_FEAT_SVE_I8MM,
// previously used and now ABI legacy
59
FEAT_SVE_F32MM,
60
FEAT_SVE_F64MM,
61
FEAT_SVE2,
62
RESERVED_FEAT_SVE_AES,
// previously used and now ABI legacy
63
FEAT_SVE_PMULL128,
64
FEAT_SVE_BITPERM,
65
FEAT_SVE_SHA3,
66
FEAT_SVE_SM4,
67
FEAT_SME,
68
RESERVED_FEAT_MEMTAG,
// previously used and now ABI legacy
69
FEAT_MEMTAG2,
70
RESERVED_FEAT_MEMTAG3,
// previously used and now ABI legacy
71
FEAT_SB,
72
FEAT_PREDRES,
73
RESERVED_FEAT_SSBS,
// previously used and now ABI legacy
74
FEAT_SSBS2,
75
FEAT_BTI,
76
RESERVED_FEAT_LS64,
// previously used and now ABI legacy
77
RESERVED_FEAT_LS64_V,
// previously used and now ABI legacy
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
Generated on Sat Dec 21 2024 21:12:56 for LLVM by
1.9.6