AArch64CPUFeatures.inc 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. #ifndef AARCH64_CPU_FEATURS_INC_H
  20. #define AARCH64_CPU_FEATURS_INC_H
  21. // Function Multi Versioning CPU features.
  22. enum CPUFeatures {
  23. FEAT_RNG,
  24. FEAT_FLAGM,
  25. FEAT_FLAGM2,
  26. FEAT_FP16FML,
  27. FEAT_DOTPROD,
  28. FEAT_SM4,
  29. FEAT_RDM,
  30. FEAT_LSE,
  31. FEAT_FP,
  32. FEAT_SIMD,
  33. FEAT_CRC,
  34. FEAT_SHA1,
  35. FEAT_SHA2,
  36. FEAT_SHA3,
  37. FEAT_AES,
  38. FEAT_PMULL,
  39. FEAT_FP16,
  40. FEAT_DIT,
  41. FEAT_DPB,
  42. FEAT_DPB2,
  43. FEAT_JSCVT,
  44. FEAT_FCMA,
  45. FEAT_RCPC,
  46. FEAT_RCPC2,
  47. FEAT_FRINTTS,
  48. FEAT_DGH,
  49. FEAT_I8MM,
  50. FEAT_BF16,
  51. FEAT_EBF16,
  52. FEAT_RPRES,
  53. FEAT_SVE,
  54. FEAT_SVE_BF16,
  55. FEAT_SVE_EBF16,
  56. FEAT_SVE_I8MM,
  57. FEAT_SVE_F32MM,
  58. FEAT_SVE_F64MM,
  59. FEAT_SVE2,
  60. FEAT_SVE_AES,
  61. FEAT_SVE_PMULL128,
  62. FEAT_SVE_BITPERM,
  63. FEAT_SVE_SHA3,
  64. FEAT_SVE_SM4,
  65. FEAT_SME,
  66. FEAT_MEMTAG,
  67. FEAT_MEMTAG2,
  68. FEAT_MEMTAG3,
  69. FEAT_SB,
  70. FEAT_PREDRES,
  71. FEAT_SSBS,
  72. FEAT_SSBS2,
  73. FEAT_BTI,
  74. FEAT_LS64,
  75. FEAT_LS64_V,
  76. FEAT_LS64_ACCDATA,
  77. FEAT_WFXT,
  78. FEAT_SME_F64,
  79. FEAT_SME_I64,
  80. FEAT_SME2,
  81. FEAT_RCPC3,
  82. FEAT_MOPS,
  83. FEAT_MAX,
  84. FEAT_EXT = 62, // Reserved to indicate presence of additional features field
  85. // in __aarch64_cpu_features
  86. FEAT_INIT // Used as flag of features initialization completion
  87. };
  88. #endif