hwcap.inc 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. #if __has_include(<sys/hwcap.h>)
  2. #include <sys/hwcap.h>
  3. #define HAVE_SYS_HWCAP_H
  4. #endif
  5. #ifndef _IFUNC_ARG_HWCAP
  6. #define _IFUNC_ARG_HWCAP (1ULL << 62)
  7. #endif
  8. #ifndef AT_HWCAP
  9. #define AT_HWCAP 16
  10. #endif
  11. #ifndef HWCAP_CPUID
  12. #define HWCAP_CPUID (1 << 11)
  13. #endif
  14. #ifndef HWCAP_FP
  15. #define HWCAP_FP (1 << 0)
  16. #endif
  17. #ifndef HWCAP_ASIMD
  18. #define HWCAP_ASIMD (1 << 1)
  19. #endif
  20. #ifndef HWCAP_AES
  21. #define HWCAP_AES (1 << 3)
  22. #endif
  23. #ifndef HWCAP_PMULL
  24. #define HWCAP_PMULL (1 << 4)
  25. #endif
  26. #ifndef HWCAP_SHA1
  27. #define HWCAP_SHA1 (1 << 5)
  28. #endif
  29. #ifndef HWCAP_SHA2
  30. #define HWCAP_SHA2 (1 << 6)
  31. #endif
  32. #ifndef HWCAP_CRC32
  33. #define HWCAP_CRC32 (1 << 7)
  34. #endif
  35. #ifndef HWCAP_ATOMICS
  36. #define HWCAP_ATOMICS (1 << 8)
  37. #endif
  38. #ifndef HWCAP_FPHP
  39. #define HWCAP_FPHP (1 << 9)
  40. #endif
  41. #ifndef HWCAP_ASIMDHP
  42. #define HWCAP_ASIMDHP (1 << 10)
  43. #endif
  44. #ifndef HWCAP_ASIMDRDM
  45. #define HWCAP_ASIMDRDM (1 << 12)
  46. #endif
  47. #ifndef HWCAP_JSCVT
  48. #define HWCAP_JSCVT (1 << 13)
  49. #endif
  50. #ifndef HWCAP_FCMA
  51. #define HWCAP_FCMA (1 << 14)
  52. #endif
  53. #ifndef HWCAP_LRCPC
  54. #define HWCAP_LRCPC (1 << 15)
  55. #endif
  56. #ifndef HWCAP_DCPOP
  57. #define HWCAP_DCPOP (1 << 16)
  58. #endif
  59. #ifndef HWCAP_SHA3
  60. #define HWCAP_SHA3 (1 << 17)
  61. #endif
  62. #ifndef HWCAP_SM3
  63. #define HWCAP_SM3 (1 << 18)
  64. #endif
  65. #ifndef HWCAP_SM4
  66. #define HWCAP_SM4 (1 << 19)
  67. #endif
  68. #ifndef HWCAP_ASIMDDP
  69. #define HWCAP_ASIMDDP (1 << 20)
  70. #endif
  71. #ifndef HWCAP_SHA512
  72. #define HWCAP_SHA512 (1 << 21)
  73. #endif
  74. #ifndef HWCAP_SVE
  75. #define HWCAP_SVE (1 << 22)
  76. #endif
  77. #ifndef HWCAP_ASIMDFHM
  78. #define HWCAP_ASIMDFHM (1 << 23)
  79. #endif
  80. #ifndef HWCAP_DIT
  81. #define HWCAP_DIT (1 << 24)
  82. #endif
  83. #ifndef HWCAP_ILRCPC
  84. #define HWCAP_ILRCPC (1 << 26)
  85. #endif
  86. #ifndef HWCAP_FLAGM
  87. #define HWCAP_FLAGM (1 << 27)
  88. #endif
  89. #ifndef HWCAP_SSBS
  90. #define HWCAP_SSBS (1 << 28)
  91. #endif
  92. #ifndef HWCAP_SB
  93. #define HWCAP_SB (1 << 29)
  94. #endif
  95. #ifndef AT_HWCAP2
  96. #define AT_HWCAP2 26
  97. #endif
  98. #ifndef HWCAP2_DCPODP
  99. #define HWCAP2_DCPODP (1 << 0)
  100. #endif
  101. #ifndef HWCAP2_SVE2
  102. #define HWCAP2_SVE2 (1 << 1)
  103. #endif
  104. #ifndef HWCAP2_SVEAES
  105. #define HWCAP2_SVEAES (1 << 2)
  106. #endif
  107. #ifndef HWCAP2_SVEPMULL
  108. #define HWCAP2_SVEPMULL (1 << 3)
  109. #endif
  110. #ifndef HWCAP2_SVEBITPERM
  111. #define HWCAP2_SVEBITPERM (1 << 4)
  112. #endif
  113. #ifndef HWCAP2_SVESHA3
  114. #define HWCAP2_SVESHA3 (1 << 5)
  115. #endif
  116. #ifndef HWCAP2_SVESM4
  117. #define HWCAP2_SVESM4 (1 << 6)
  118. #endif
  119. #ifndef HWCAP2_FLAGM2
  120. #define HWCAP2_FLAGM2 (1 << 7)
  121. #endif
  122. #ifndef HWCAP2_FRINT
  123. #define HWCAP2_FRINT (1 << 8)
  124. #endif
  125. #ifndef HWCAP2_SVEI8MM
  126. #define HWCAP2_SVEI8MM (1 << 9)
  127. #endif
  128. #ifndef HWCAP2_SVEF32MM
  129. #define HWCAP2_SVEF32MM (1 << 10)
  130. #endif
  131. #ifndef HWCAP2_SVEF64MM
  132. #define HWCAP2_SVEF64MM (1 << 11)
  133. #endif
  134. #ifndef HWCAP2_SVEBF16
  135. #define HWCAP2_SVEBF16 (1 << 12)
  136. #endif
  137. #ifndef HWCAP2_I8MM
  138. #define HWCAP2_I8MM (1 << 13)
  139. #endif
  140. #ifndef HWCAP2_BF16
  141. #define HWCAP2_BF16 (1 << 14)
  142. #endif
  143. #ifndef HWCAP2_DGH
  144. #define HWCAP2_DGH (1 << 15)
  145. #endif
  146. #ifndef HWCAP2_RNG
  147. #define HWCAP2_RNG (1 << 16)
  148. #endif
  149. #ifndef HWCAP2_BTI
  150. #define HWCAP2_BTI (1 << 17)
  151. #endif
  152. #ifndef HWCAP2_MTE
  153. #define HWCAP2_MTE (1 << 18)
  154. #endif
  155. #ifndef HWCAP2_RPRES
  156. #define HWCAP2_RPRES (1 << 21)
  157. #endif
  158. #ifndef HWCAP2_MTE3
  159. #define HWCAP2_MTE3 (1 << 22)
  160. #endif
  161. #ifndef HWCAP2_SME
  162. #define HWCAP2_SME (1 << 23)
  163. #endif
  164. #ifndef HWCAP2_SME_I16I64
  165. #define HWCAP2_SME_I16I64 (1 << 24)
  166. #endif
  167. #ifndef HWCAP2_SME_F64F64
  168. #define HWCAP2_SME_F64F64 (1 << 25)
  169. #endif
  170. #ifndef HWCAP2_WFXT
  171. #define HWCAP2_WFXT (1UL << 31)
  172. #endif
  173. #ifndef HWCAP2_EBF16
  174. #define HWCAP2_EBF16 (1ULL << 32)
  175. #endif
  176. #ifndef HWCAP2_SVE_EBF16
  177. #define HWCAP2_SVE_EBF16 (1ULL << 33)
  178. #endif
  179. #ifndef HWCAP2_SME2
  180. #define HWCAP2_SME2 (1UL << 37)
  181. #endif
  182. #ifndef HWCAP2_MOPS
  183. #define HWCAP2_MOPS (1ULL << 43)
  184. #endif
  185. #ifndef HWCAP2_LRCPC3
  186. #define HWCAP2_LRCPC3 (1UL << 46)
  187. #endif