brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 46a45a1 Raw
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