LLVM
22.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
FEAT_CSSC
,
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
RESERVED_FEAT_PREDRES
,
// previously used and now ABI legacy
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
RESERVED_FEAT_LS64_ACCDATA
,
// previously used and now ABI legacy
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
llvm::AArch64::FEAT_BF16
@ FEAT_BF16
Definition
AArch64TargetParser.h:53
llvm::AArch64::FEAT_MAX
@ FEAT_MAX
Definition
AArch64TargetParser.h:86
llvm::AArch64::FEAT_PMULL
@ FEAT_PMULL
Definition
AArch64TargetParser.h:41
llvm::AArch64::FEAT_SME
@ FEAT_SME
Definition
AArch64TargetParser.h:68
llvm::AArch64::FEAT_SM4
@ FEAT_SM4
Definition
AArch64TargetParser.h:31
llvm::AArch64::FEAT_SME_I64
@ FEAT_SME_I64
Definition
AArch64TargetParser.h:82
llvm::AArch64::RESERVED_FEAT_SSBS
@ RESERVED_FEAT_SSBS
Definition
AArch64TargetParser.h:74
llvm::AArch64::FEAT_FRINTTS
@ FEAT_FRINTTS
Definition
AArch64TargetParser.h:50
llvm::AArch64::FEAT_DPB2
@ FEAT_DPB2
Definition
AArch64TargetParser.h:45
llvm::AArch64::FEAT_SHA2
@ FEAT_SHA2
Definition
AArch64TargetParser.h:38
llvm::AArch64::FEAT_MEMTAG2
@ FEAT_MEMTAG2
Definition
AArch64TargetParser.h:70
llvm::AArch64::RESERVED_FEAT_LS64_ACCDATA
@ RESERVED_FEAT_LS64_ACCDATA
Definition
AArch64TargetParser.h:79
llvm::AArch64::FEAT_DIT
@ FEAT_DIT
Definition
AArch64TargetParser.h:43
llvm::AArch64::FEAT_EXT
@ FEAT_EXT
Definition
AArch64TargetParser.h:87
llvm::AArch64::FEAT_RCPC
@ FEAT_RCPC
Definition
AArch64TargetParser.h:48
llvm::AArch64::FEAT_CRC
@ FEAT_CRC
Definition
AArch64TargetParser.h:36
llvm::AArch64::FEAT_FLAGM2
@ FEAT_FLAGM2
Definition
AArch64TargetParser.h:28
llvm::AArch64::FEAT_SVE_PMULL128
@ FEAT_SVE_PMULL128
Definition
AArch64TargetParser.h:64
llvm::AArch64::RESERVED_FEAT_SVE_I8MM
@ RESERVED_FEAT_SVE_I8MM
Definition
AArch64TargetParser.h:59
llvm::AArch64::FEAT_FCMA
@ FEAT_FCMA
Definition
AArch64TargetParser.h:47
llvm::AArch64::FEAT_MOPS
@ FEAT_MOPS
Definition
AArch64TargetParser.h:85
llvm::AArch64::RESERVED_FEAT_LS64_V
@ RESERVED_FEAT_LS64_V
Definition
AArch64TargetParser.h:78
llvm::AArch64::FEAT_CSSC
@ FEAT_CSSC
Definition
AArch64TargetParser.h:37
llvm::AArch64::RESERVED_FEAT_AES
@ RESERVED_FEAT_AES
Definition
AArch64TargetParser.h:40
llvm::AArch64::FEAT_SVE_F32MM
@ FEAT_SVE_F32MM
Definition
AArch64TargetParser.h:60
llvm::AArch64::FEAT_RCPC2
@ FEAT_RCPC2
Definition
AArch64TargetParser.h:49
llvm::AArch64::FEAT_RDM
@ FEAT_RDM
Definition
AArch64TargetParser.h:32
llvm::AArch64::RESERVED_FEAT_SVE_AES
@ RESERVED_FEAT_SVE_AES
Definition
AArch64TargetParser.h:63
llvm::AArch64::RESERVED_FEAT_MEMTAG
@ RESERVED_FEAT_MEMTAG
Definition
AArch64TargetParser.h:69
llvm::AArch64::RESERVED_FEAT_SVE_EBF16
@ RESERVED_FEAT_SVE_EBF16
Definition
AArch64TargetParser.h:58
llvm::AArch64::FEAT_SVE_BITPERM
@ FEAT_SVE_BITPERM
Definition
AArch64TargetParser.h:65
llvm::AArch64::FEAT_SVE_F64MM
@ FEAT_SVE_F64MM
Definition
AArch64TargetParser.h:61
llvm::AArch64::RESERVED_FEAT_RPRES
@ RESERVED_FEAT_RPRES
Definition
AArch64TargetParser.h:55
llvm::AArch64::FEAT_SVE_SHA3
@ FEAT_SVE_SHA3
Definition
AArch64TargetParser.h:66
llvm::AArch64::FEAT_SME2
@ FEAT_SME2
Definition
AArch64TargetParser.h:83
llvm::AArch64::RESERVED_FEAT_MEMTAG3
@ RESERVED_FEAT_MEMTAG3
Definition
AArch64TargetParser.h:71
llvm::AArch64::FEAT_FLAGM
@ FEAT_FLAGM
Definition
AArch64TargetParser.h:27
llvm::AArch64::RESERVED_FEAT_PREDRES
@ RESERVED_FEAT_PREDRES
Definition
AArch64TargetParser.h:73
llvm::AArch64::FEAT_JSCVT
@ FEAT_JSCVT
Definition
AArch64TargetParser.h:46
llvm::AArch64::RESERVED_FEAT_DGH
@ RESERVED_FEAT_DGH
Definition
AArch64TargetParser.h:51
llvm::AArch64::FEAT_BTI
@ FEAT_BTI
Definition
AArch64TargetParser.h:76
llvm::AArch64::FEAT_FP16
@ FEAT_FP16
Definition
AArch64TargetParser.h:42
llvm::AArch64::RESERVED_FEAT_EBF16
@ RESERVED_FEAT_EBF16
Definition
AArch64TargetParser.h:54
llvm::AArch64::FEAT_FP16FML
@ FEAT_FP16FML
Definition
AArch64TargetParser.h:29
llvm::AArch64::FEAT_WFXT
@ FEAT_WFXT
Definition
AArch64TargetParser.h:80
llvm::AArch64::FEAT_LSE
@ FEAT_LSE
Definition
AArch64TargetParser.h:33
llvm::AArch64::FEAT_DOTPROD
@ FEAT_DOTPROD
Definition
AArch64TargetParser.h:30
llvm::AArch64::FEAT_SME_F64
@ FEAT_SME_F64
Definition
AArch64TargetParser.h:81
llvm::AArch64::RESERVED_FEAT_LS64
@ RESERVED_FEAT_LS64
Definition
AArch64TargetParser.h:77
llvm::AArch64::FEAT_SHA3
@ FEAT_SHA3
Definition
AArch64TargetParser.h:39
llvm::AArch64::FEAT_DPB
@ FEAT_DPB
Definition
AArch64TargetParser.h:44
llvm::AArch64::FEAT_SB
@ FEAT_SB
Definition
AArch64TargetParser.h:72
llvm::AArch64::FEAT_SSBS2
@ FEAT_SSBS2
Definition
AArch64TargetParser.h:75
llvm::AArch64::FEAT_SVE
@ FEAT_SVE
Definition
AArch64TargetParser.h:56
llvm::AArch64::FEAT_SVE2
@ FEAT_SVE2
Definition
AArch64TargetParser.h:62
llvm::AArch64::FEAT_RNG
@ FEAT_RNG
Definition
AArch64TargetParser.h:26
llvm::AArch64::FEAT_FP
@ FEAT_FP
Definition
AArch64TargetParser.h:34
llvm::AArch64::FEAT_INIT
@ FEAT_INIT
Definition
AArch64TargetParser.h:89
llvm::AArch64::FEAT_RCPC3
@ FEAT_RCPC3
Definition
AArch64TargetParser.h:84
llvm::AArch64::FEAT_SIMD
@ FEAT_SIMD
Definition
AArch64TargetParser.h:35
llvm::AArch64::FEAT_I8MM
@ FEAT_I8MM
Definition
AArch64TargetParser.h:52
llvm::AArch64::FEAT_SVE_SM4
@ FEAT_SVE_SM4
Definition
AArch64TargetParser.h:67
llvm::AArch64::RESERVED_FEAT_SVE_BF16
@ RESERVED_FEAT_SVE_BF16
Definition
AArch64TargetParser.h:57
Generated on
for LLVM by
1.14.0