Warning, /include/llvm/TargetParser/AArch64CPUFeatures.inc is written in an unsupported language. File is not indexed.
0001 //===- AArch64CPUFeatures.inc - AArch64 CPU Features enum -------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 // This file defines the CPUFeatures enum for AArch64 to facilitate better
0010 // testing of this code between LLVM and compiler-rt, primarily that the files
0011 // are an exact match.
0012 //
0013 // This file has two identical copies. The primary copy lives in LLVM and
0014 // the other one sits in compiler-rt/lib/builtins/cpu_model directory. To make
0015 // changes in this file, first modify the primary copy and copy it over to
0016 // compiler-rt. compiler-rt tests will fail if the two files are not synced up.
0017 //
0018 //===----------------------------------------------------------------------===//
0019
0020 #ifndef AARCH64_CPU_FEATURS_INC_H
0021 #define AARCH64_CPU_FEATURS_INC_H
0022
0023 // Function Multi Versioning CPU features.
0024 enum CPUFeatures {
0025 FEAT_RNG,
0026 FEAT_FLAGM,
0027 FEAT_FLAGM2,
0028 FEAT_FP16FML,
0029 FEAT_DOTPROD,
0030 FEAT_SM4,
0031 FEAT_RDM,
0032 FEAT_LSE,
0033 FEAT_FP,
0034 FEAT_SIMD,
0035 FEAT_CRC,
0036 RESERVED_FEAT_SHA1, // previously used and now ABI legacy
0037 FEAT_SHA2,
0038 FEAT_SHA3,
0039 RESERVED_FEAT_AES, // previously used and now ABI legacy
0040 FEAT_PMULL,
0041 FEAT_FP16,
0042 FEAT_DIT,
0043 FEAT_DPB,
0044 FEAT_DPB2,
0045 FEAT_JSCVT,
0046 FEAT_FCMA,
0047 FEAT_RCPC,
0048 FEAT_RCPC2,
0049 FEAT_FRINTTS,
0050 RESERVED_FEAT_DGH, // previously used and now ABI legacy
0051 FEAT_I8MM,
0052 FEAT_BF16,
0053 RESERVED_FEAT_EBF16, // previously used and now ABI legacy
0054 RESERVED_FEAT_RPRES, // previously used and now ABI legacy
0055 FEAT_SVE,
0056 RESERVED_FEAT_SVE_BF16, // previously used and now ABI legacy
0057 RESERVED_FEAT_SVE_EBF16, // previously used and now ABI legacy
0058 RESERVED_FEAT_SVE_I8MM, // previously used and now ABI legacy
0059 FEAT_SVE_F32MM,
0060 FEAT_SVE_F64MM,
0061 FEAT_SVE2,
0062 RESERVED_FEAT_SVE_AES, // previously used and now ABI legacy
0063 FEAT_SVE_PMULL128,
0064 FEAT_SVE_BITPERM,
0065 FEAT_SVE_SHA3,
0066 FEAT_SVE_SM4,
0067 FEAT_SME,
0068 RESERVED_FEAT_MEMTAG, // previously used and now ABI legacy
0069 FEAT_MEMTAG2,
0070 RESERVED_FEAT_MEMTAG3, // previously used and now ABI legacy
0071 FEAT_SB,
0072 RESERVED_FEAT_PREDRES, // previously used and now ABI legacy
0073 RESERVED_FEAT_SSBS, // previously used and now ABI legacy
0074 FEAT_SSBS2,
0075 FEAT_BTI,
0076 RESERVED_FEAT_LS64, // previously used and now ABI legacy
0077 RESERVED_FEAT_LS64_V, // previously used and now ABI legacy
0078 RESERVED_FEAT_LS64_ACCDATA, // previously used and now ABI legacy
0079 FEAT_WFXT,
0080 FEAT_SME_F64,
0081 FEAT_SME_I64,
0082 FEAT_SME2,
0083 FEAT_RCPC3,
0084 FEAT_MOPS,
0085 FEAT_MAX,
0086 FEAT_EXT = 62, // Reserved to indicate presence of additional features field
0087 // in __aarch64_cpu_features
0088 FEAT_INIT // Used as flag of features initialization completion
0089 };
0090
0091 #endif