92 lines · plain
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-exception6//7//===----------------------------------------------------------------------===//8//9// This file defines the CPUFeatures enum for AArch64 to facilitate better10// testing of this code between LLVM and compiler-rt, primarily that the files11// are an exact match.12//13// This file has two identical copies. The primary copy lives in LLVM and14// the other one sits in compiler-rt/lib/builtins/cpu_model directory. To make15// changes in this file, first modify the primary copy and copy it over to16// compiler-rt. compiler-rt tests will fail if the two files are not synced up.17//18//===----------------------------------------------------------------------===//19 20#ifndef AARCH64_CPU_FEATURS_INC_H21#define AARCH64_CPU_FEATURS_INC_H22 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_CSSC,37 FEAT_SHA2,38 FEAT_SHA3,39 RESERVED_FEAT_AES, // previously used and now ABI legacy40 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 legacy51 FEAT_I8MM,52 FEAT_BF16,53 RESERVED_FEAT_EBF16, // previously used and now ABI legacy54 RESERVED_FEAT_RPRES, // previously used and now ABI legacy55 FEAT_SVE,56 RESERVED_FEAT_SVE_BF16, // previously used and now ABI legacy57 RESERVED_FEAT_SVE_EBF16, // previously used and now ABI legacy58 RESERVED_FEAT_SVE_I8MM, // previously used and now ABI legacy59 FEAT_SVE_F32MM,60 FEAT_SVE_F64MM,61 FEAT_SVE2,62 RESERVED_FEAT_SVE_AES, // previously used and now ABI legacy63 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 legacy69 FEAT_MEMTAG2,70 RESERVED_FEAT_MEMTAG3, // previously used and now ABI legacy71 FEAT_SB,72 RESERVED_FEAT_PREDRES, // previously used and now ABI legacy73 RESERVED_FEAT_SSBS, // previously used and now ABI legacy74 FEAT_SSBS2,75 FEAT_BTI,76 RESERVED_FEAT_LS64, // previously used and now ABI legacy77 RESERVED_FEAT_LS64_V, // previously used and now ABI legacy78 RESERVED_FEAT_LS64_ACCDATA, // previously used and now ABI legacy79 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 field87 // in __aarch64_cpu_features88 FEAT_INIT // Used as flag of features initialization completion89};90 91#endif92