@cpp-linter/clang-tidy-darwin-x64 17.0.6 → 18.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy +2 -2
  3. package/lib/clang/{17 → 18}/include/__clang_cuda_device_functions.h +2 -2
  4. package/lib/clang/{17 → 18}/include/__clang_cuda_libdevice_declares.h +2 -2
  5. package/lib/clang/{17 → 18}/include/__clang_cuda_math.h +2 -2
  6. package/lib/clang/{17 → 18}/include/__clang_cuda_runtime_wrapper.h +2 -2
  7. package/lib/clang/{17 → 18}/include/__clang_hip_math.h +192 -171
  8. package/lib/clang/{17 → 18}/include/__clang_hip_runtime_wrapper.h +34 -26
  9. package/lib/clang/18/include/__stdarg___gnuc_va_list.h +13 -0
  10. package/lib/clang/18/include/__stdarg___va_copy.h +12 -0
  11. package/lib/clang/18/include/__stdarg_va_arg.h +22 -0
  12. package/lib/clang/18/include/__stdarg_va_copy.h +12 -0
  13. package/lib/clang/18/include/__stdarg_va_list.h +13 -0
  14. package/lib/clang/{17 → 18}/include/__stddef_max_align_t.h +1 -1
  15. package/lib/clang/18/include/__stddef_null.h +29 -0
  16. package/lib/clang/18/include/__stddef_nullptr_t.h +29 -0
  17. package/lib/clang/18/include/__stddef_offsetof.h +17 -0
  18. package/lib/clang/18/include/__stddef_ptrdiff_t.h +20 -0
  19. package/lib/clang/18/include/__stddef_rsize_t.h +20 -0
  20. package/lib/clang/18/include/__stddef_size_t.h +20 -0
  21. package/lib/clang/18/include/__stddef_unreachable.h +21 -0
  22. package/lib/clang/18/include/__stddef_wchar_t.h +28 -0
  23. package/lib/clang/18/include/__stddef_wint_t.h +15 -0
  24. package/lib/clang/{17/include/adxintrin.h → 18/include/adcintrin.h} +27 -94
  25. package/lib/clang/18/include/adxintrin.h +102 -0
  26. package/lib/clang/{17 → 18}/include/altivec.h +31 -12
  27. package/lib/clang/{17 → 18}/include/ammintrin.h +4 -4
  28. package/lib/clang/{17 → 18}/include/arm_acle.h +111 -31
  29. package/lib/clang/{17 → 18}/include/arm_neon.h +85 -327
  30. package/lib/clang/18/include/arm_sme.h +2412 -0
  31. package/lib/clang/{17 → 18}/include/arm_sve.h +7386 -351
  32. package/lib/clang/18/include/arm_vector_types.h +345 -0
  33. package/lib/clang/{17 → 18}/include/avx2intrin.h +24 -3
  34. package/lib/clang/{17 → 18}/include/avx512bf16intrin.h +3 -2
  35. package/lib/clang/{17 → 18}/include/avx512bitalgintrin.h +4 -1
  36. package/lib/clang/{17 → 18}/include/avx512bwintrin.h +28 -38
  37. package/lib/clang/{17 → 18}/include/avx512cdintrin.h +3 -1
  38. package/lib/clang/{17 → 18}/include/avx512dqintrin.h +4 -2
  39. package/lib/clang/{17 → 18}/include/avx512fintrin.h +7 -3
  40. package/lib/clang/{17 → 18}/include/avx512fp16intrin.h +6 -4
  41. package/lib/clang/{17 → 18}/include/avx512ifmaintrin.h +3 -1
  42. package/lib/clang/{17 → 18}/include/avx512ifmavlintrin.h +8 -2
  43. package/lib/clang/{17 → 18}/include/avx512pfintrin.h +0 -5
  44. package/lib/clang/{17 → 18}/include/avx512vbmi2intrin.h +1 -1
  45. package/lib/clang/{17 → 18}/include/avx512vbmiintrin.h +3 -2
  46. package/lib/clang/{17 → 18}/include/avx512vbmivlintrin.h +8 -3
  47. package/lib/clang/{17 → 18}/include/avx512vlbf16intrin.h +8 -6
  48. package/lib/clang/{17 → 18}/include/avx512vlbitalgintrin.h +8 -2
  49. package/lib/clang/{17 → 18}/include/avx512vlbwintrin.h +8 -2
  50. package/lib/clang/{17 → 18}/include/avx512vlcdintrin.h +8 -3
  51. package/lib/clang/{17 → 18}/include/avx512vldqintrin.h +8 -2
  52. package/lib/clang/{17 → 18}/include/avx512vlfp16intrin.h +2 -2
  53. package/lib/clang/{17 → 18}/include/avx512vlintrin.h +8 -2
  54. package/lib/clang/{17 → 18}/include/avx512vlvbmi2intrin.h +8 -2
  55. package/lib/clang/{17 → 18}/include/avx512vlvnniintrin.h +8 -2
  56. package/lib/clang/{17 → 18}/include/avx512vlvp2intersectintrin.h +6 -4
  57. package/lib/clang/{17 → 18}/include/avx512vnniintrin.h +3 -2
  58. package/lib/clang/{17 → 18}/include/avx512vp2intersectintrin.h +3 -2
  59. package/lib/clang/{17 → 18}/include/avx512vpopcntdqintrin.h +3 -1
  60. package/lib/clang/{17 → 18}/include/avx512vpopcntdqvlintrin.h +6 -2
  61. package/lib/clang/{17 → 18}/include/avxintrin.h +9 -5
  62. package/lib/clang/{17 → 18}/include/bmiintrin.h +231 -46
  63. package/lib/clang/{17 → 18}/include/emmintrin.h +10 -10
  64. package/lib/clang/{17 → 18}/include/gfniintrin.h +23 -6
  65. package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +624 -0
  66. package/lib/clang/18/include/ia32intrin.h +863 -0
  67. package/lib/clang/{17 → 18}/include/immintrin.h +66 -3
  68. package/lib/clang/{17 → 18}/include/intrin.h +16 -0
  69. package/lib/clang/{17 → 18}/include/larchintrin.h +13 -1
  70. package/lib/clang/18/include/lasxintrin.h +3884 -0
  71. package/lib/clang/{17 → 18}/include/limits.h +2 -4
  72. package/lib/clang/{17/include/llvm_libc_wrappers/stdio.h → 18/include/llvm_libc_wrappers/assert.h} +7 -7
  73. package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/ctype.h +17 -0
  74. package/lib/clang/18/include/llvm_libc_wrappers/stdio.h +80 -0
  75. package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/stdlib.h +4 -1
  76. package/lib/clang/18/include/llvm_libc_wrappers/string.h +96 -0
  77. package/lib/clang/{17/include/llvm_libc_wrappers/string.h → 18/include/llvm_libc_wrappers/time.h} +9 -12
  78. package/lib/clang/18/include/lsxintrin.h +3750 -0
  79. package/lib/clang/{17 → 18}/include/mmintrin.h +7 -5
  80. package/lib/clang/{17 → 18}/include/module.modulemap +155 -2
  81. package/lib/clang/{17 → 18}/include/opencl-c-base.h +5 -0
  82. package/lib/clang/{17 → 18}/include/openmp_wrappers/cmath +1 -1
  83. package/lib/clang/{17 → 18}/include/pmmintrin.h +3 -2
  84. package/lib/clang/18/include/ppc_wrappers/nmmintrin.h +26 -0
  85. package/lib/clang/{17 → 18}/include/ppc_wrappers/smmintrin.h +35 -15
  86. package/lib/clang/18/include/riscv_bitmanip.h +195 -0
  87. package/lib/clang/18/include/riscv_crypto.h +170 -0
  88. package/lib/clang/{17 → 18}/include/riscv_ntlh.h +3 -5
  89. package/lib/clang/{17 → 18}/include/riscv_vector.h +31 -0
  90. package/lib/clang/{17 → 18}/include/smmintrin.h +3 -3
  91. package/lib/clang/{17 → 18}/include/stdalign.h +1 -3
  92. package/lib/clang/18/include/stdarg.h +79 -0
  93. package/lib/clang/{17 → 18}/include/stdatomic.h +3 -5
  94. package/lib/clang/18/include/stdckdint.h +42 -0
  95. package/lib/clang/18/include/stddef.h +123 -0
  96. package/lib/clang/{17 → 18}/include/stdint.h +19 -48
  97. package/lib/clang/{17 → 18}/include/stdnoreturn.h +2 -2
  98. package/lib/clang/{17 → 18}/include/tmmintrin.h +7 -2
  99. package/lib/clang/18/include/usermsrintrin.h +51 -0
  100. package/lib/clang/{17 → 18}/include/vaesintrin.h +4 -2
  101. package/lib/clang/{17 → 18}/include/vecintrin.h +217 -199
  102. package/lib/clang/{17 → 18}/include/x86gprintrin.h +5 -0
  103. package/lib/clang/{17 → 18}/include/xmmintrin.h +9 -5
  104. package/package.json +6 -6
  105. package/lib/clang/17/include/arm_sme_draft_spec_subject_to_change.h +0 -642
  106. package/lib/clang/17/include/hlsl/hlsl_intrinsics.h +0 -480
  107. package/lib/clang/17/include/ia32intrin.h +0 -441
  108. package/lib/clang/17/include/stdarg.h +0 -51
  109. package/lib/clang/17/include/stddef.h +0 -133
  110. /package/lib/clang/{17 → 18}/include/__clang_cuda_builtin_vars.h +0 -0
  111. /package/lib/clang/{17 → 18}/include/__clang_cuda_cmath.h +0 -0
  112. /package/lib/clang/{17 → 18}/include/__clang_cuda_complex_builtins.h +0 -0
  113. /package/lib/clang/{17 → 18}/include/__clang_cuda_intrinsics.h +0 -0
  114. /package/lib/clang/{17 → 18}/include/__clang_cuda_math_forward_declares.h +0 -0
  115. /package/lib/clang/{17 → 18}/include/__clang_cuda_texture_intrinsics.h +0 -0
  116. /package/lib/clang/{17 → 18}/include/__clang_hip_cmath.h +0 -0
  117. /package/lib/clang/{17 → 18}/include/__clang_hip_libdevice_declares.h +0 -0
  118. /package/lib/clang/{17 → 18}/include/__clang_hip_stdlib.h +0 -0
  119. /package/lib/clang/{17 → 18}/include/__wmmintrin_aes.h +0 -0
  120. /package/lib/clang/{17 → 18}/include/__wmmintrin_pclmul.h +0 -0
  121. /package/lib/clang/{17 → 18}/include/amxcomplexintrin.h +0 -0
  122. /package/lib/clang/{17 → 18}/include/amxfp16intrin.h +0 -0
  123. /package/lib/clang/{17 → 18}/include/amxintrin.h +0 -0
  124. /package/lib/clang/{17 → 18}/include/arm64intr.h +0 -0
  125. /package/lib/clang/{17 → 18}/include/arm_bf16.h +0 -0
  126. /package/lib/clang/{17 → 18}/include/arm_cde.h +0 -0
  127. /package/lib/clang/{17 → 18}/include/arm_cmse.h +0 -0
  128. /package/lib/clang/{17 → 18}/include/arm_fp16.h +0 -0
  129. /package/lib/clang/{17 → 18}/include/arm_mve.h +0 -0
  130. /package/lib/clang/{17 → 18}/include/arm_neon_sve_bridge.h +0 -0
  131. /package/lib/clang/{17 → 18}/include/armintr.h +0 -0
  132. /package/lib/clang/{17 → 18}/include/avx512erintrin.h +0 -0
  133. /package/lib/clang/{17 → 18}/include/avxifmaintrin.h +0 -0
  134. /package/lib/clang/{17 → 18}/include/avxneconvertintrin.h +0 -0
  135. /package/lib/clang/{17 → 18}/include/avxvnniint16intrin.h +0 -0
  136. /package/lib/clang/{17 → 18}/include/avxvnniint8intrin.h +0 -0
  137. /package/lib/clang/{17 → 18}/include/avxvnniintrin.h +0 -0
  138. /package/lib/clang/{17 → 18}/include/bmi2intrin.h +0 -0
  139. /package/lib/clang/{17 → 18}/include/builtins.h +0 -0
  140. /package/lib/clang/{17 → 18}/include/cet.h +0 -0
  141. /package/lib/clang/{17 → 18}/include/cetintrin.h +0 -0
  142. /package/lib/clang/{17 → 18}/include/cldemoteintrin.h +0 -0
  143. /package/lib/clang/{17 → 18}/include/clflushoptintrin.h +0 -0
  144. /package/lib/clang/{17 → 18}/include/clwbintrin.h +0 -0
  145. /package/lib/clang/{17 → 18}/include/clzerointrin.h +0 -0
  146. /package/lib/clang/{17 → 18}/include/cmpccxaddintrin.h +0 -0
  147. /package/lib/clang/{17 → 18}/include/cpuid.h +0 -0
  148. /package/lib/clang/{17 → 18}/include/crc32intrin.h +0 -0
  149. /package/lib/clang/{17 → 18}/include/cuda_wrappers/algorithm +0 -0
  150. /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/basic_string.h +0 -0
  151. /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  152. /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  153. /package/lib/clang/{17 → 18}/include/cuda_wrappers/cmath +0 -0
  154. /package/lib/clang/{17 → 18}/include/cuda_wrappers/complex +0 -0
  155. /package/lib/clang/{17 → 18}/include/cuda_wrappers/new +0 -0
  156. /package/lib/clang/{17 → 18}/include/enqcmdintrin.h +0 -0
  157. /package/lib/clang/{17 → 18}/include/f16cintrin.h +0 -0
  158. /package/lib/clang/{17 → 18}/include/float.h +0 -0
  159. /package/lib/clang/{17 → 18}/include/fma4intrin.h +0 -0
  160. /package/lib/clang/{17 → 18}/include/fmaintrin.h +0 -0
  161. /package/lib/clang/{17 → 18}/include/fxsrintrin.h +0 -0
  162. /package/lib/clang/{17 → 18}/include/hexagon_circ_brev_intrinsics.h +0 -0
  163. /package/lib/clang/{17 → 18}/include/hexagon_protos.h +0 -0
  164. /package/lib/clang/{17 → 18}/include/hexagon_types.h +0 -0
  165. /package/lib/clang/{17 → 18}/include/hlsl/hlsl_basic_types.h +0 -0
  166. /package/lib/clang/{17 → 18}/include/hlsl.h +0 -0
  167. /package/lib/clang/{17 → 18}/include/hresetintrin.h +0 -0
  168. /package/lib/clang/{17 → 18}/include/htmintrin.h +0 -0
  169. /package/lib/clang/{17 → 18}/include/htmxlintrin.h +0 -0
  170. /package/lib/clang/{17 → 18}/include/hvx_hexagon_protos.h +0 -0
  171. /package/lib/clang/{17 → 18}/include/inttypes.h +0 -0
  172. /package/lib/clang/{17 → 18}/include/invpcidintrin.h +0 -0
  173. /package/lib/clang/{17 → 18}/include/iso646.h +0 -0
  174. /package/lib/clang/{17 → 18}/include/keylockerintrin.h +0 -0
  175. /package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/inttypes.h +0 -0
  176. /package/lib/clang/{17 → 18}/include/lwpintrin.h +0 -0
  177. /package/lib/clang/{17 → 18}/include/lzcntintrin.h +0 -0
  178. /package/lib/clang/{17 → 18}/include/mm3dnow.h +0 -0
  179. /package/lib/clang/{17 → 18}/include/mm_malloc.h +0 -0
  180. /package/lib/clang/{17 → 18}/include/movdirintrin.h +0 -0
  181. /package/lib/clang/{17 → 18}/include/msa.h +0 -0
  182. /package/lib/clang/{17 → 18}/include/mwaitxintrin.h +0 -0
  183. /package/lib/clang/{17 → 18}/include/nmmintrin.h +0 -0
  184. /package/lib/clang/{17 → 18}/include/opencl-c.h +0 -0
  185. /package/lib/clang/{17 → 18}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  186. /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex +0 -0
  187. /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex.h +0 -0
  188. /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex_cmath.h +0 -0
  189. /package/lib/clang/{17 → 18}/include/openmp_wrappers/math.h +0 -0
  190. /package/lib/clang/{17 → 18}/include/openmp_wrappers/new +0 -0
  191. /package/lib/clang/{17 → 18}/include/pconfigintrin.h +0 -0
  192. /package/lib/clang/{17 → 18}/include/pkuintrin.h +0 -0
  193. /package/lib/clang/{17 → 18}/include/popcntintrin.h +0 -0
  194. /package/lib/clang/{17 → 18}/include/ppc_wrappers/bmi2intrin.h +0 -0
  195. /package/lib/clang/{17 → 18}/include/ppc_wrappers/bmiintrin.h +0 -0
  196. /package/lib/clang/{17 → 18}/include/ppc_wrappers/emmintrin.h +0 -0
  197. /package/lib/clang/{17 → 18}/include/ppc_wrappers/immintrin.h +0 -0
  198. /package/lib/clang/{17 → 18}/include/ppc_wrappers/mm_malloc.h +0 -0
  199. /package/lib/clang/{17 → 18}/include/ppc_wrappers/mmintrin.h +0 -0
  200. /package/lib/clang/{17 → 18}/include/ppc_wrappers/pmmintrin.h +0 -0
  201. /package/lib/clang/{17 → 18}/include/ppc_wrappers/tmmintrin.h +0 -0
  202. /package/lib/clang/{17 → 18}/include/ppc_wrappers/x86gprintrin.h +0 -0
  203. /package/lib/clang/{17 → 18}/include/ppc_wrappers/x86intrin.h +0 -0
  204. /package/lib/clang/{17 → 18}/include/ppc_wrappers/xmmintrin.h +0 -0
  205. /package/lib/clang/{17 → 18}/include/prfchiintrin.h +0 -0
  206. /package/lib/clang/{17 → 18}/include/prfchwintrin.h +0 -0
  207. /package/lib/clang/{17 → 18}/include/ptwriteintrin.h +0 -0
  208. /package/lib/clang/{17 → 18}/include/raointintrin.h +0 -0
  209. /package/lib/clang/{17 → 18}/include/rdpruintrin.h +0 -0
  210. /package/lib/clang/{17 → 18}/include/rdseedintrin.h +0 -0
  211. /package/lib/clang/{17 → 18}/include/rtmintrin.h +0 -0
  212. /package/lib/clang/{17 → 18}/include/s390intrin.h +0 -0
  213. /package/lib/clang/{17 → 18}/include/serializeintrin.h +0 -0
  214. /package/lib/clang/{17 → 18}/include/sgxintrin.h +0 -0
  215. /package/lib/clang/{17 → 18}/include/sha512intrin.h +0 -0
  216. /package/lib/clang/{17 → 18}/include/shaintrin.h +0 -0
  217. /package/lib/clang/{17 → 18}/include/sifive_vector.h +0 -0
  218. /package/lib/clang/{17 → 18}/include/sm3intrin.h +0 -0
  219. /package/lib/clang/{17 → 18}/include/sm4intrin.h +0 -0
  220. /package/lib/clang/{17 → 18}/include/stdbool.h +0 -0
  221. /package/lib/clang/{17 → 18}/include/tbmintrin.h +0 -0
  222. /package/lib/clang/{17 → 18}/include/tgmath.h +0 -0
  223. /package/lib/clang/{17 → 18}/include/tsxldtrkintrin.h +0 -0
  224. /package/lib/clang/{17 → 18}/include/uintrintrin.h +0 -0
  225. /package/lib/clang/{17 → 18}/include/unwind.h +0 -0
  226. /package/lib/clang/{17 → 18}/include/vadefs.h +0 -0
  227. /package/lib/clang/{17 → 18}/include/varargs.h +0 -0
  228. /package/lib/clang/{17 → 18}/include/velintrin.h +0 -0
  229. /package/lib/clang/{17 → 18}/include/velintrin_approx.h +0 -0
  230. /package/lib/clang/{17 → 18}/include/velintrin_gen.h +0 -0
  231. /package/lib/clang/{17 → 18}/include/vpclmulqdqintrin.h +0 -0
  232. /package/lib/clang/{17 → 18}/include/waitpkgintrin.h +0 -0
  233. /package/lib/clang/{17 → 18}/include/wasm_simd128.h +0 -0
  234. /package/lib/clang/{17 → 18}/include/wbnoinvdintrin.h +0 -0
  235. /package/lib/clang/{17 → 18}/include/wmmintrin.h +0 -0
  236. /package/lib/clang/{17 → 18}/include/x86intrin.h +0 -0
  237. /package/lib/clang/{17 → 18}/include/xopintrin.h +0 -0
  238. /package/lib/clang/{17 → 18}/include/xsavecintrin.h +0 -0
  239. /package/lib/clang/{17 → 18}/include/xsaveintrin.h +0 -0
  240. /package/lib/clang/{17 → 18}/include/xsaveoptintrin.h +0 -0
  241. /package/lib/clang/{17 → 18}/include/xsavesintrin.h +0 -0
  242. /package/lib/clang/{17 → 18}/include/xtestintrin.h +0 -0
@@ -155,9 +155,9 @@ _mm_insert_si64(__m128i __x, __m128i __y)
155
155
  /// \param __a
156
156
  /// The 64-bit double-precision floating-point register value to be stored.
157
157
  static __inline__ void __DEFAULT_FN_ATTRS
158
- _mm_stream_sd(double *__p, __m128d __a)
158
+ _mm_stream_sd(void *__p, __m128d __a)
159
159
  {
160
- __builtin_ia32_movntsd(__p, (__v2df)__a);
160
+ __builtin_ia32_movntsd((double *)__p, (__v2df)__a);
161
161
  }
162
162
 
163
163
  /// Stores a 32-bit single-precision floating-point value in a 32-bit
@@ -173,9 +173,9 @@ _mm_stream_sd(double *__p, __m128d __a)
173
173
  /// \param __a
174
174
  /// The 32-bit single-precision floating-point register value to be stored.
175
175
  static __inline__ void __DEFAULT_FN_ATTRS
176
- _mm_stream_ss(float *__p, __m128 __a)
176
+ _mm_stream_ss(void *__p, __m128 __a)
177
177
  {
178
- __builtin_ia32_movntss(__p, (__v4sf)__a);
178
+ __builtin_ia32_movntss((float *)__p, (__v4sf)__a);
179
179
  }
180
180
 
181
181
  #undef __DEFAULT_FN_ATTRS
@@ -4,6 +4,13 @@
4
4
  * See https://llvm.org/LICENSE.txt for license information.
5
5
  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
6
  *
7
+ * The Arm C Language Extensions specifications can be found in the following
8
+ * link: https://github.com/ARM-software/acle/releases
9
+ *
10
+ * The ACLE section numbers are subject to change. When consulting the
11
+ * specifications, it is recommended to search using section titles if
12
+ * the section numbers look outdated.
13
+ *
7
14
  *===-----------------------------------------------------------------------===
8
15
  */
9
16
 
@@ -20,8 +27,8 @@
20
27
  extern "C" {
21
28
  #endif
22
29
 
23
- /* 8 SYNCHRONIZATION, BARRIER AND HINT INTRINSICS */
24
- /* 8.3 Memory barriers */
30
+ /* 7 SYNCHRONIZATION, BARRIER AND HINT INTRINSICS */
31
+ /* 7.3 Memory barriers */
25
32
  #if !__has_builtin(__dmb)
26
33
  #define __dmb(i) __builtin_arm_dmb(i)
27
34
  #endif
@@ -32,7 +39,7 @@ extern "C" {
32
39
  #define __isb(i) __builtin_arm_isb(i)
33
40
  #endif
34
41
 
35
- /* 8.4 Hints */
42
+ /* 7.4 Hints */
36
43
 
37
44
  #if !__has_builtin(__wfi)
38
45
  static __inline__ void __attribute__((__always_inline__, __nodebug__)) __wfi(void) {
@@ -68,7 +75,7 @@ static __inline__ void __attribute__((__always_inline__, __nodebug__)) __yield(v
68
75
  #define __dbg(t) __builtin_arm_dbg(t)
69
76
  #endif
70
77
 
71
- /* 8.5 Swap */
78
+ /* 7.5 Swap */
72
79
  static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
73
80
  __swp(uint32_t __x, volatile uint32_t *__p) {
74
81
  uint32_t v;
@@ -78,8 +85,8 @@ __swp(uint32_t __x, volatile uint32_t *__p) {
78
85
  return v;
79
86
  }
80
87
 
81
- /* 8.6 Memory prefetch intrinsics */
82
- /* 8.6.1 Data prefetch */
88
+ /* 7.6 Memory prefetch intrinsics */
89
+ /* 7.6.1 Data prefetch */
83
90
  #define __pld(addr) __pldx(0, 0, 0, addr)
84
91
 
85
92
  #if defined(__ARM_32BIT_STATE) && __ARM_32BIT_STATE
@@ -90,7 +97,7 @@ __swp(uint32_t __x, volatile uint32_t *__p) {
90
97
  __builtin_arm_prefetch(addr, access_kind, cache_level, retention_policy, 1)
91
98
  #endif
92
99
 
93
- /* 8.6.2 Instruction prefetch */
100
+ /* 7.6.2 Instruction prefetch */
94
101
  #define __pli(addr) __plix(0, 0, addr)
95
102
 
96
103
  #if defined(__ARM_32BIT_STATE) && __ARM_32BIT_STATE
@@ -101,15 +108,15 @@ __swp(uint32_t __x, volatile uint32_t *__p) {
101
108
  __builtin_arm_prefetch(addr, 0, cache_level, retention_policy, 0)
102
109
  #endif
103
110
 
104
- /* 8.7 NOP */
111
+ /* 7.7 NOP */
105
112
  #if !defined(_MSC_VER) || !defined(__aarch64__)
106
113
  static __inline__ void __attribute__((__always_inline__, __nodebug__)) __nop(void) {
107
114
  __builtin_arm_nop();
108
115
  }
109
116
  #endif
110
117
 
111
- /* 9 DATA-PROCESSING INTRINSICS */
112
- /* 9.2 Miscellaneous data-processing intrinsics */
118
+ /* 8 DATA-PROCESSING INTRINSICS */
119
+ /* 8.2 Miscellaneous data-processing intrinsics */
113
120
  /* ROR */
114
121
  static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
115
122
  __ror(uint32_t __x, uint32_t __y) {
@@ -248,9 +255,7 @@ __rbitl(unsigned long __t) {
248
255
  #endif
249
256
  }
250
257
 
251
- /*
252
- * 9.3 16-bit multiplications
253
- */
258
+ /* 8.3 16-bit multiplications */
254
259
  #if defined(__ARM_FEATURE_DSP) && __ARM_FEATURE_DSP
255
260
  static __inline__ int32_t __attribute__((__always_inline__,__nodebug__))
256
261
  __smulbb(int32_t __a, int32_t __b) {
@@ -279,18 +284,18 @@ __smulwt(int32_t __a, int32_t __b) {
279
284
  #endif
280
285
 
281
286
  /*
282
- * 9.4 Saturating intrinsics
287
+ * 8.4 Saturating intrinsics
283
288
  *
284
289
  * FIXME: Change guard to their corresponding __ARM_FEATURE flag when Q flag
285
290
  * intrinsics are implemented and the flag is enabled.
286
291
  */
287
- /* 9.4.1 Width-specified saturation intrinsics */
292
+ /* 8.4.1 Width-specified saturation intrinsics */
288
293
  #if defined(__ARM_FEATURE_SAT) && __ARM_FEATURE_SAT
289
294
  #define __ssat(x, y) __builtin_arm_ssat(x, y)
290
295
  #define __usat(x, y) __builtin_arm_usat(x, y)
291
296
  #endif
292
297
 
293
- /* 9.4.2 Saturating addition and subtraction intrinsics */
298
+ /* 8.4.2 Saturating addition and subtraction intrinsics */
294
299
  #if defined(__ARM_FEATURE_DSP) && __ARM_FEATURE_DSP
295
300
  static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
296
301
  __qadd(int32_t __t, int32_t __v) {
@@ -308,7 +313,7 @@ __qdbl(int32_t __t) {
308
313
  }
309
314
  #endif
310
315
 
311
- /* 9.4.3 Accumultating multiplications */
316
+ /* 8.4.3 Accumultating multiplications */
312
317
  #if defined(__ARM_FEATURE_DSP) && __ARM_FEATURE_DSP
313
318
  static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
314
319
  __smlabb(int32_t __a, int32_t __b, int32_t __c) {
@@ -337,13 +342,13 @@ __smlawt(int32_t __a, int32_t __b, int32_t __c) {
337
342
  #endif
338
343
 
339
344
 
340
- /* 9.5.4 Parallel 16-bit saturation */
345
+ /* 8.5.4 Parallel 16-bit saturation */
341
346
  #if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
342
347
  #define __ssat16(x, y) __builtin_arm_ssat16(x, y)
343
348
  #define __usat16(x, y) __builtin_arm_usat16(x, y)
344
349
  #endif
345
350
 
346
- /* 9.5.5 Packing and unpacking */
351
+ /* 8.5.5 Packing and unpacking */
347
352
  #if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
348
353
  typedef int32_t int8x4_t;
349
354
  typedef int32_t int16x2_t;
@@ -368,7 +373,7 @@ __uxtb16(int8x4_t __a) {
368
373
  }
369
374
  #endif
370
375
 
371
- /* 9.5.6 Parallel selection */
376
+ /* 8.5.6 Parallel selection */
372
377
  #if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
373
378
  static __inline__ uint8x4_t __attribute__((__always_inline__, __nodebug__))
374
379
  __sel(uint8x4_t __a, uint8x4_t __b) {
@@ -376,7 +381,7 @@ __sel(uint8x4_t __a, uint8x4_t __b) {
376
381
  }
377
382
  #endif
378
383
 
379
- /* 9.5.7 Parallel 8-bit addition and subtraction */
384
+ /* 8.5.7 Parallel 8-bit addition and subtraction */
380
385
  #if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
381
386
  static __inline__ int8x4_t __attribute__((__always_inline__, __nodebug__))
382
387
  __qadd8(int8x4_t __a, int8x4_t __b) {
@@ -428,7 +433,7 @@ __usub8(uint8x4_t __a, uint8x4_t __b) {
428
433
  }
429
434
  #endif
430
435
 
431
- /* 9.5.8 Sum of 8-bit absolute differences */
436
+ /* 8.5.8 Sum of 8-bit absolute differences */
432
437
  #if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
433
438
  static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
434
439
  __usad8(uint8x4_t __a, uint8x4_t __b) {
@@ -440,7 +445,7 @@ __usada8(uint8x4_t __a, uint8x4_t __b, uint32_t __c) {
440
445
  }
441
446
  #endif
442
447
 
443
- /* 9.5.9 Parallel 16-bit addition and subtraction */
448
+ /* 8.5.9 Parallel 16-bit addition and subtraction */
444
449
  #if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
445
450
  static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__))
446
451
  __qadd16(int16x2_t __a, int16x2_t __b) {
@@ -540,7 +545,7 @@ __usub16(uint16x2_t __a, uint16x2_t __b) {
540
545
  }
541
546
  #endif
542
547
 
543
- /* 9.5.10 Parallel 16-bit multiplications */
548
+ /* 8.5.10 Parallel 16-bit multiplications */
544
549
  #if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
545
550
  static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
546
551
  __smlad(int16x2_t __a, int16x2_t __b, int32_t __c) {
@@ -592,7 +597,22 @@ __smusdx(int16x2_t __a, int16x2_t __b) {
592
597
  }
593
598
  #endif
594
599
 
595
- /* 9.7 CRC32 intrinsics */
600
+ /* 8.6 Floating-point data-processing intrinsics */
601
+ #if (defined(__ARM_FEATURE_DIRECTED_ROUNDING) && \
602
+ (__ARM_FEATURE_DIRECTED_ROUNDING)) && \
603
+ (defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE)
604
+ static __inline__ double __attribute__((__always_inline__, __nodebug__))
605
+ __rintn(double __a) {
606
+ return __builtin_roundeven(__a);
607
+ }
608
+
609
+ static __inline__ float __attribute__((__always_inline__, __nodebug__))
610
+ __rintnf(float __a) {
611
+ return __builtin_roundevenf(__a);
612
+ }
613
+ #endif
614
+
615
+ /* 8.8 CRC32 intrinsics */
596
616
  #if (defined(__ARM_FEATURE_CRC32) && __ARM_FEATURE_CRC32) || \
597
617
  (defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE)
598
618
  static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__, target("crc")))
@@ -636,6 +656,7 @@ __crc32cd(uint32_t __a, uint64_t __b) {
636
656
  }
637
657
  #endif
638
658
 
659
+ /* 8.6 Floating-point data-processing intrinsics */
639
660
  /* Armv8.3-A Javascript conversion intrinsic */
640
661
  #if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
641
662
  static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("v8.3a")))
@@ -687,7 +708,7 @@ __rint64x(double __a) {
687
708
  }
688
709
  #endif
689
710
 
690
- /* Armv8.7-A load/store 64-byte intrinsics */
711
+ /* 8.9 Armv8.7-A load/store 64-byte intrinsics */
691
712
  #if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
692
713
  typedef struct {
693
714
  uint64_t val[8];
@@ -713,7 +734,7 @@ __arm_st64bv0(void *__addr, data512_t __value) {
713
734
  }
714
735
  #endif
715
736
 
716
- /* 10.1 Special register intrinsics */
737
+ /* 11.1 Special register intrinsics */
717
738
  #define __arm_rsr(sysreg) __builtin_arm_rsr(sysreg)
718
739
  #define __arm_rsr64(sysreg) __builtin_arm_rsr64(sysreg)
719
740
  #define __arm_rsr128(sysreg) __builtin_arm_rsr128(sysreg)
@@ -727,7 +748,7 @@ __arm_st64bv0(void *__addr, data512_t __value) {
727
748
  #define __arm_wsrf(sysreg, v) __arm_wsr(sysreg, __builtin_bit_cast(uint32_t, v))
728
749
  #define __arm_wsrf64(sysreg, v) __arm_wsr64(sysreg, __builtin_bit_cast(uint64_t, v))
729
750
 
730
- /* Memory Tagging Extensions (MTE) Intrinsics */
751
+ /* 10.3 Memory Tagging Extensions (MTE) Intrinsics */
731
752
  #if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
732
753
  #define __arm_mte_create_random_tag(__ptr, __mask) __builtin_arm_irg(__ptr, __mask)
733
754
  #define __arm_mte_increment_tag(__ptr, __tag_offset) __builtin_arm_addg(__ptr, __tag_offset)
@@ -736,12 +757,71 @@ __arm_st64bv0(void *__addr, data512_t __value) {
736
757
  #define __arm_mte_set_tag(__ptr) __builtin_arm_stg(__ptr)
737
758
  #define __arm_mte_ptrdiff(__ptra, __ptrb) __builtin_arm_subp(__ptra, __ptrb)
738
759
 
739
- /* Memory Operations Intrinsics */
760
+ /* 18 Memory Operations Intrinsics */
740
761
  #define __arm_mops_memset_tag(__tagged_address, __value, __size) \
741
762
  __builtin_arm_mops_memset_tag(__tagged_address, __value, __size)
742
763
  #endif
743
764
 
744
- /* Transactional Memory Extension (TME) Intrinsics */
765
+ /* 11.3 Coprocessor Intrinsics */
766
+ #if defined(__ARM_FEATURE_COPROC)
767
+
768
+ #if (__ARM_FEATURE_COPROC & 0x1)
769
+
770
+ #if (__ARM_ARCH < 8)
771
+ #define __arm_cdp(coproc, opc1, CRd, CRn, CRm, opc2) \
772
+ __builtin_arm_cdp(coproc, opc1, CRd, CRn, CRm, opc2)
773
+ #endif /* __ARM_ARCH < 8 */
774
+
775
+ #define __arm_ldc(coproc, CRd, p) __builtin_arm_ldc(coproc, CRd, p)
776
+ #define __arm_stc(coproc, CRd, p) __builtin_arm_stc(coproc, CRd, p)
777
+
778
+ #define __arm_mcr(coproc, opc1, value, CRn, CRm, opc2) \
779
+ __builtin_arm_mcr(coproc, opc1, value, CRn, CRm, opc2)
780
+ #define __arm_mrc(coproc, opc1, CRn, CRm, opc2) \
781
+ __builtin_arm_mrc(coproc, opc1, CRn, CRm, opc2)
782
+
783
+ #if (__ARM_ARCH != 4) && (__ARM_ARCH < 8)
784
+ #define __arm_ldcl(coproc, CRd, p) __builtin_arm_ldcl(coproc, CRd, p)
785
+ #define __arm_stcl(coproc, CRd, p) __builtin_arm_stcl(coproc, CRd, p)
786
+ #endif /* (__ARM_ARCH != 4) && (__ARM_ARCH != 8) */
787
+
788
+ #if (__ARM_ARCH_8M_MAIN__) || (__ARM_ARCH_8_1M_MAIN__)
789
+ #define __arm_cdp(coproc, opc1, CRd, CRn, CRm, opc2) \
790
+ __builtin_arm_cdp(coproc, opc1, CRd, CRn, CRm, opc2)
791
+ #define __arm_ldcl(coproc, CRd, p) __builtin_arm_ldcl(coproc, CRd, p)
792
+ #define __arm_stcl(coproc, CRd, p) __builtin_arm_stcl(coproc, CRd, p)
793
+ #endif /* ___ARM_ARCH_8M_MAIN__ */
794
+
795
+ #endif /* __ARM_FEATURE_COPROC & 0x1 */
796
+
797
+ #if (__ARM_FEATURE_COPROC & 0x2)
798
+ #define __arm_cdp2(coproc, opc1, CRd, CRn, CRm, opc2) \
799
+ __builtin_arm_cdp2(coproc, opc1, CRd, CRn, CRm, opc2)
800
+ #define __arm_ldc2(coproc, CRd, p) __builtin_arm_ldc2(coproc, CRd, p)
801
+ #define __arm_stc2(coproc, CRd, p) __builtin_arm_stc2(coproc, CRd, p)
802
+ #define __arm_ldc2l(coproc, CRd, p) __builtin_arm_ldc2l(coproc, CRd, p)
803
+ #define __arm_stc2l(coproc, CRd, p) __builtin_arm_stc2l(coproc, CRd, p)
804
+ #define __arm_mcr2(coproc, opc1, value, CRn, CRm, opc2) \
805
+ __builtin_arm_mcr2(coproc, opc1, value, CRn, CRm, opc2)
806
+ #define __arm_mrc2(coproc, opc1, CRn, CRm, opc2) \
807
+ __builtin_arm_mrc2(coproc, opc1, CRn, CRm, opc2)
808
+ #endif
809
+
810
+ #if (__ARM_FEATURE_COPROC & 0x4)
811
+ #define __arm_mcrr(coproc, opc1, value, CRm) \
812
+ __builtin_arm_mcrr(coproc, opc1, value, CRm)
813
+ #define __arm_mrrc(coproc, opc1, CRm) __builtin_arm_mrrc(coproc, opc1, CRm)
814
+ #endif
815
+
816
+ #if (__ARM_FEATURE_COPROC & 0x8)
817
+ #define __arm_mcrr2(coproc, opc1, value, CRm) \
818
+ __builtin_arm_mcrr2(coproc, opc1, value, CRm)
819
+ #define __arm_mrrc2(coproc, opc1, CRm) __builtin_arm_mrrc2(coproc, opc1, CRm)
820
+ #endif
821
+
822
+ #endif // __ARM_FEATURE_COPROC
823
+
824
+ /* 17 Transactional Memory Extension (TME) Intrinsics */
745
825
  #if defined(__ARM_FEATURE_TME) && __ARM_FEATURE_TME
746
826
 
747
827
  #define _TMFAILURE_REASON 0x00007fffu
@@ -763,7 +843,7 @@ __arm_st64bv0(void *__addr, data512_t __value) {
763
843
 
764
844
  #endif /* __ARM_FEATURE_TME */
765
845
 
766
- /* Armv8.5-A Random number generation intrinsics */
846
+ /* 8.7 Armv8.5-A Random number generation intrinsics */
767
847
  #if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
768
848
  static __inline__ int __attribute__((__always_inline__, __nodebug__, target("rand")))
769
849
  __rndr(uint64_t *__p) {