@cpp-linter/clang-tidy-linux-arm64 18.1.5 → 20.1.0

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 (282) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy +2 -2
  3. package/lib/clang/{18 → 20}/include/__clang_cuda_device_functions.h +14 -0
  4. package/lib/clang/{18 → 20}/include/__clang_cuda_intrinsics.h +1 -3
  5. package/lib/clang/{18 → 20}/include/__clang_cuda_math.h +5 -0
  6. package/lib/clang/{18 → 20}/include/__clang_hip_cmath.h +6 -1
  7. package/lib/clang/{18 → 20}/include/__clang_hip_math.h +5 -0
  8. package/lib/clang/20/include/__stdarg_header_macro.h +12 -0
  9. package/lib/clang/20/include/__stddef_header_macro.h +12 -0
  10. package/lib/clang/{18 → 20}/include/adcintrin.h +5 -0
  11. package/lib/clang/{18 → 20}/include/adxintrin.h +5 -0
  12. package/lib/clang/{18 → 20}/include/altivec.h +8 -8
  13. package/lib/clang/20/include/amdgpuintrin.h +194 -0
  14. package/lib/clang/20/include/amxavx512intrin.h +382 -0
  15. package/lib/clang/20/include/amxbf16transposeintrin.h +94 -0
  16. package/lib/clang/20/include/amxcomplextransposeintrin.h +303 -0
  17. package/lib/clang/{18 → 20}/include/amxfp16intrin.h +35 -0
  18. package/lib/clang/20/include/amxfp16transposeintrin.h +94 -0
  19. package/lib/clang/20/include/amxfp8intrin.h +230 -0
  20. package/lib/clang/{18 → 20}/include/amxintrin.h +5 -35
  21. package/lib/clang/20/include/amxmovrsintrin.h +48 -0
  22. package/lib/clang/20/include/amxmovrstransposeintrin.h +200 -0
  23. package/lib/clang/20/include/amxtf32intrin.h +108 -0
  24. package/lib/clang/20/include/amxtf32transposeintrin.h +105 -0
  25. package/lib/clang/20/include/amxtransposeintrin.h +248 -0
  26. package/lib/clang/{18 → 20}/include/arm_acle.h +49 -26
  27. package/lib/clang/{18 → 20}/include/arm_fp16.h +1 -1
  28. package/lib/clang/{18 → 20}/include/arm_neon.h +45631 -43745
  29. package/lib/clang/{18 → 20}/include/arm_sme.h +641 -6
  30. package/lib/clang/{18 → 20}/include/arm_sve.h +28311 -27738
  31. package/lib/clang/{18 → 20}/include/arm_vector_types.h +92 -5
  32. package/lib/clang/20/include/avx10_2_512bf16intrin.h +561 -0
  33. package/lib/clang/20/include/avx10_2_512convertintrin.h +320 -0
  34. package/lib/clang/20/include/avx10_2_512minmaxintrin.h +127 -0
  35. package/lib/clang/20/include/avx10_2_512niintrin.h +314 -0
  36. package/lib/clang/20/include/avx10_2_512satcvtdsintrin.h +303 -0
  37. package/lib/clang/20/include/avx10_2_512satcvtintrin.h +301 -0
  38. package/lib/clang/20/include/avx10_2bf16intrin.h +1085 -0
  39. package/lib/clang/20/include/avx10_2convertintrin.h +589 -0
  40. package/lib/clang/20/include/avx10_2copyintrin.h +66 -0
  41. package/lib/clang/20/include/avx10_2minmaxintrin.h +277 -0
  42. package/lib/clang/20/include/avx10_2niintrin.h +2075 -0
  43. package/lib/clang/20/include/avx10_2satcvtdsintrin.h +496 -0
  44. package/lib/clang/20/include/avx10_2satcvtintrin.h +444 -0
  45. package/lib/clang/{18 → 20}/include/avx2intrin.h +9 -0
  46. package/lib/clang/{18 → 20}/include/avx512bitalgintrin.h +2 -2
  47. package/lib/clang/{18 → 20}/include/avx512fintrin.h +22 -14
  48. package/lib/clang/{18 → 20}/include/avx512fp16intrin.h +38 -38
  49. package/lib/clang/{18 → 20}/include/avx512vlbitalgintrin.h +4 -4
  50. package/lib/clang/{18 → 20}/include/avx512vpopcntdqintrin.h +12 -4
  51. package/lib/clang/{18 → 20}/include/avx512vpopcntdqvlintrin.h +16 -8
  52. package/lib/clang/{18 → 20}/include/avxintrin.h +88 -60
  53. package/lib/clang/{18 → 20}/include/avxvnniint16intrin.h +36 -77
  54. package/lib/clang/{18 → 20}/include/avxvnniint8intrin.h +36 -77
  55. package/lib/clang/{18 → 20}/include/bmi2intrin.h +15 -17
  56. package/lib/clang/{18 → 20}/include/bmiintrin.h +33 -41
  57. package/lib/clang/{18 → 20}/include/builtins.h +3 -0
  58. package/lib/clang/{18 → 20}/include/cmpccxaddintrin.h +1 -1
  59. package/lib/clang/{18 → 20}/include/cpuid.h +35 -14
  60. package/lib/clang/{18 → 20}/include/cuda_wrappers/algorithm +1 -1
  61. package/lib/clang/{18 → 20}/include/cuda_wrappers/cmath +4 -0
  62. package/lib/clang/{18 → 20}/include/cuda_wrappers/new +2 -0
  63. package/lib/clang/{18 → 20}/include/emmintrin.h +442 -277
  64. package/lib/clang/{18 → 20}/include/float.h +28 -0
  65. package/lib/clang/{18 → 20}/include/fmaintrin.h +32 -16
  66. package/lib/clang/{18 → 20}/include/gfniintrin.h +32 -10
  67. package/lib/clang/20/include/gpuintrin.h +224 -0
  68. package/lib/clang/{18 → 20}/include/hexagon_types.h +8 -4
  69. package/lib/clang/{18 → 20}/include/hlsl/hlsl_basic_types.h +57 -4
  70. package/lib/clang/20/include/hlsl/hlsl_detail.h +84 -0
  71. package/lib/clang/20/include/hlsl/hlsl_intrinsics.h +2814 -0
  72. package/lib/clang/{18 → 20}/include/hlsl.h +11 -0
  73. package/lib/clang/{18 → 20}/include/hvx_hexagon_protos.h +427 -0
  74. package/lib/clang/{18 → 20}/include/ia32intrin.h +36 -36
  75. package/lib/clang/{18 → 20}/include/immintrin.h +171 -161
  76. package/lib/clang/{18 → 20}/include/intrin.h +62 -228
  77. package/lib/clang/20/include/intrin0.h +256 -0
  78. package/lib/clang/{18 → 20}/include/inttypes.h +4 -0
  79. package/lib/clang/{18 → 20}/include/iso646.h +4 -0
  80. package/lib/clang/{18 → 20}/include/keylockerintrin.h +5 -8
  81. package/lib/clang/{18 → 20}/include/larchintrin.h +22 -8
  82. package/lib/clang/{18 → 20}/include/lasxintrin.h +27 -25
  83. package/lib/clang/{18 → 20}/include/limits.h +12 -4
  84. package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/assert.h +1 -1
  85. package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/ctype.h +38 -0
  86. package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/stdlib.h +8 -0
  87. package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  88. package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  89. package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  90. package/lib/clang/{18 → 20}/include/lsxintrin.h +27 -25
  91. package/lib/clang/{18 → 20}/include/lzcntintrin.h +10 -7
  92. package/lib/clang/20/include/mm3dnow.h +22 -0
  93. package/lib/clang/{18 → 20}/include/mmintrin.h +285 -239
  94. package/lib/clang/{18 → 20}/include/module.modulemap +16 -5
  95. package/lib/clang/20/include/movrs_avx10_2_512intrin.h +98 -0
  96. package/lib/clang/20/include/movrs_avx10_2intrin.h +174 -0
  97. package/lib/clang/20/include/movrsintrin.h +59 -0
  98. package/lib/clang/20/include/nvptxintrin.h +202 -0
  99. package/lib/clang/{18 → 20}/include/opencl-c-base.h +8 -0
  100. package/lib/clang/{18 → 20}/include/opencl-c.h +15 -0
  101. package/lib/clang/{18 → 20}/include/openmp_wrappers/__clang_openmp_device_functions.h +4 -5
  102. package/lib/clang/{18 → 20}/include/openmp_wrappers/complex_cmath.h +7 -2
  103. package/lib/clang/{18 → 20}/include/pmmintrin.h +16 -3
  104. package/lib/clang/{18 → 20}/include/popcntintrin.h +7 -7
  105. package/lib/clang/{18 → 20}/include/prfchwintrin.h +10 -8
  106. package/lib/clang/20/include/ptrauth.h +336 -0
  107. package/lib/clang/20/include/riscv_corev_alu.h +128 -0
  108. package/lib/clang/{18 → 20}/include/riscv_vector.h +0 -5
  109. package/lib/clang/20/include/sifive_vector.h +118 -0
  110. package/lib/clang/20/include/sm4evexintrin.h +32 -0
  111. package/lib/clang/{18 → 20}/include/smmintrin.h +18 -12
  112. package/lib/clang/{18 → 20}/include/stdarg.h +15 -19
  113. package/lib/clang/{18 → 20}/include/stdatomic.h +11 -1
  114. package/lib/clang/{18 → 20}/include/stdbool.h +5 -0
  115. package/lib/clang/{18 → 20}/include/stddef.h +38 -22
  116. package/lib/clang/{18 → 20}/include/stdint.h +5 -0
  117. package/lib/clang/{18 → 20}/include/stdnoreturn.h +6 -0
  118. package/lib/clang/{18 → 20}/include/tbmintrin.h +25 -37
  119. package/lib/clang/{18 → 20}/include/tmmintrin.h +84 -54
  120. package/lib/clang/{18 → 20}/include/varargs.h +5 -1
  121. package/lib/clang/{18 → 20}/include/vecintrin.h +1778 -60
  122. package/lib/clang/{18 → 20}/include/wasm_simd128.h +167 -21
  123. package/lib/clang/{18 → 20}/include/x86gprintrin.h +7 -14
  124. package/lib/clang/20/include/x86intrin.h +53 -0
  125. package/lib/clang/{18 → 20}/include/xmmintrin.h +455 -276
  126. package/lib/clang/20/include/yvals_core.h +25 -0
  127. package/lib/clang/20/include/zos_wrappers/builtins.h +18 -0
  128. package/package.json +6 -6
  129. package/lib/clang/18/include/avx512erintrin.h +0 -271
  130. package/lib/clang/18/include/avx512pfintrin.h +0 -92
  131. package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +0 -624
  132. package/lib/clang/18/include/mm3dnow.h +0 -157
  133. package/lib/clang/18/include/sifive_vector.h +0 -16
  134. package/lib/clang/18/include/x86intrin.h +0 -67
  135. /package/lib/clang/{18 → 20}/include/__clang_cuda_builtin_vars.h +0 -0
  136. /package/lib/clang/{18 → 20}/include/__clang_cuda_cmath.h +0 -0
  137. /package/lib/clang/{18 → 20}/include/__clang_cuda_complex_builtins.h +0 -0
  138. /package/lib/clang/{18 → 20}/include/__clang_cuda_libdevice_declares.h +0 -0
  139. /package/lib/clang/{18 → 20}/include/__clang_cuda_math_forward_declares.h +0 -0
  140. /package/lib/clang/{18 → 20}/include/__clang_cuda_runtime_wrapper.h +0 -0
  141. /package/lib/clang/{18 → 20}/include/__clang_cuda_texture_intrinsics.h +0 -0
  142. /package/lib/clang/{18 → 20}/include/__clang_hip_libdevice_declares.h +0 -0
  143. /package/lib/clang/{18 → 20}/include/__clang_hip_runtime_wrapper.h +0 -0
  144. /package/lib/clang/{18 → 20}/include/__clang_hip_stdlib.h +0 -0
  145. /package/lib/clang/{18 → 20}/include/__stdarg___gnuc_va_list.h +0 -0
  146. /package/lib/clang/{18 → 20}/include/__stdarg___va_copy.h +0 -0
  147. /package/lib/clang/{18 → 20}/include/__stdarg_va_arg.h +0 -0
  148. /package/lib/clang/{18 → 20}/include/__stdarg_va_copy.h +0 -0
  149. /package/lib/clang/{18 → 20}/include/__stdarg_va_list.h +0 -0
  150. /package/lib/clang/{18 → 20}/include/__stddef_max_align_t.h +0 -0
  151. /package/lib/clang/{18 → 20}/include/__stddef_null.h +0 -0
  152. /package/lib/clang/{18 → 20}/include/__stddef_nullptr_t.h +0 -0
  153. /package/lib/clang/{18 → 20}/include/__stddef_offsetof.h +0 -0
  154. /package/lib/clang/{18 → 20}/include/__stddef_ptrdiff_t.h +0 -0
  155. /package/lib/clang/{18 → 20}/include/__stddef_rsize_t.h +0 -0
  156. /package/lib/clang/{18 → 20}/include/__stddef_size_t.h +0 -0
  157. /package/lib/clang/{18 → 20}/include/__stddef_unreachable.h +0 -0
  158. /package/lib/clang/{18 → 20}/include/__stddef_wchar_t.h +0 -0
  159. /package/lib/clang/{18 → 20}/include/__stddef_wint_t.h +0 -0
  160. /package/lib/clang/{18 → 20}/include/__wmmintrin_aes.h +0 -0
  161. /package/lib/clang/{18 → 20}/include/__wmmintrin_pclmul.h +0 -0
  162. /package/lib/clang/{18 → 20}/include/ammintrin.h +0 -0
  163. /package/lib/clang/{18 → 20}/include/amxcomplexintrin.h +0 -0
  164. /package/lib/clang/{18 → 20}/include/arm64intr.h +0 -0
  165. /package/lib/clang/{18 → 20}/include/arm_bf16.h +0 -0
  166. /package/lib/clang/{18 → 20}/include/arm_cde.h +0 -0
  167. /package/lib/clang/{18 → 20}/include/arm_cmse.h +0 -0
  168. /package/lib/clang/{18 → 20}/include/arm_mve.h +0 -0
  169. /package/lib/clang/{18 → 20}/include/arm_neon_sve_bridge.h +0 -0
  170. /package/lib/clang/{18 → 20}/include/armintr.h +0 -0
  171. /package/lib/clang/{18 → 20}/include/avx512bf16intrin.h +0 -0
  172. /package/lib/clang/{18 → 20}/include/avx512bwintrin.h +0 -0
  173. /package/lib/clang/{18 → 20}/include/avx512cdintrin.h +0 -0
  174. /package/lib/clang/{18 → 20}/include/avx512dqintrin.h +0 -0
  175. /package/lib/clang/{18 → 20}/include/avx512ifmaintrin.h +0 -0
  176. /package/lib/clang/{18 → 20}/include/avx512ifmavlintrin.h +0 -0
  177. /package/lib/clang/{18 → 20}/include/avx512vbmi2intrin.h +0 -0
  178. /package/lib/clang/{18 → 20}/include/avx512vbmiintrin.h +0 -0
  179. /package/lib/clang/{18 → 20}/include/avx512vbmivlintrin.h +0 -0
  180. /package/lib/clang/{18 → 20}/include/avx512vlbf16intrin.h +0 -0
  181. /package/lib/clang/{18 → 20}/include/avx512vlbwintrin.h +0 -0
  182. /package/lib/clang/{18 → 20}/include/avx512vlcdintrin.h +0 -0
  183. /package/lib/clang/{18 → 20}/include/avx512vldqintrin.h +0 -0
  184. /package/lib/clang/{18 → 20}/include/avx512vlfp16intrin.h +0 -0
  185. /package/lib/clang/{18 → 20}/include/avx512vlintrin.h +0 -0
  186. /package/lib/clang/{18 → 20}/include/avx512vlvbmi2intrin.h +0 -0
  187. /package/lib/clang/{18 → 20}/include/avx512vlvnniintrin.h +0 -0
  188. /package/lib/clang/{18 → 20}/include/avx512vlvp2intersectintrin.h +0 -0
  189. /package/lib/clang/{18 → 20}/include/avx512vnniintrin.h +0 -0
  190. /package/lib/clang/{18 → 20}/include/avx512vp2intersectintrin.h +0 -0
  191. /package/lib/clang/{18 → 20}/include/avxifmaintrin.h +0 -0
  192. /package/lib/clang/{18 → 20}/include/avxneconvertintrin.h +0 -0
  193. /package/lib/clang/{18 → 20}/include/avxvnniintrin.h +0 -0
  194. /package/lib/clang/{18 → 20}/include/cet.h +0 -0
  195. /package/lib/clang/{18 → 20}/include/cetintrin.h +0 -0
  196. /package/lib/clang/{18 → 20}/include/cldemoteintrin.h +0 -0
  197. /package/lib/clang/{18 → 20}/include/clflushoptintrin.h +0 -0
  198. /package/lib/clang/{18 → 20}/include/clwbintrin.h +0 -0
  199. /package/lib/clang/{18 → 20}/include/clzerointrin.h +0 -0
  200. /package/lib/clang/{18 → 20}/include/crc32intrin.h +0 -0
  201. /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/basic_string.h +0 -0
  202. /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  203. /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  204. /package/lib/clang/{18 → 20}/include/cuda_wrappers/complex +0 -0
  205. /package/lib/clang/{18 → 20}/include/enqcmdintrin.h +0 -0
  206. /package/lib/clang/{18 → 20}/include/f16cintrin.h +0 -0
  207. /package/lib/clang/{18 → 20}/include/fma4intrin.h +0 -0
  208. /package/lib/clang/{18 → 20}/include/fxsrintrin.h +0 -0
  209. /package/lib/clang/{18 → 20}/include/hexagon_circ_brev_intrinsics.h +0 -0
  210. /package/lib/clang/{18 → 20}/include/hexagon_protos.h +0 -0
  211. /package/lib/clang/{18 → 20}/include/hresetintrin.h +0 -0
  212. /package/lib/clang/{18 → 20}/include/htmintrin.h +0 -0
  213. /package/lib/clang/{18 → 20}/include/htmxlintrin.h +0 -0
  214. /package/lib/clang/{18 → 20}/include/invpcidintrin.h +0 -0
  215. /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/inttypes.h +0 -0
  216. /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/stdio.h +0 -0
  217. /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/string.h +0 -0
  218. /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/time.h +0 -0
  219. /package/lib/clang/{18 → 20}/include/lwpintrin.h +0 -0
  220. /package/lib/clang/{18 → 20}/include/mm_malloc.h +0 -0
  221. /package/lib/clang/{18 → 20}/include/movdirintrin.h +0 -0
  222. /package/lib/clang/{18 → 20}/include/msa.h +0 -0
  223. /package/lib/clang/{18 → 20}/include/mwaitxintrin.h +0 -0
  224. /package/lib/clang/{18 → 20}/include/nmmintrin.h +0 -0
  225. /package/lib/clang/{18 → 20}/include/openmp_wrappers/cmath +0 -0
  226. /package/lib/clang/{18 → 20}/include/openmp_wrappers/complex +0 -0
  227. /package/lib/clang/{18 → 20}/include/openmp_wrappers/complex.h +0 -0
  228. /package/lib/clang/{18 → 20}/include/openmp_wrappers/math.h +0 -0
  229. /package/lib/clang/{18 → 20}/include/openmp_wrappers/new +0 -0
  230. /package/lib/clang/{18 → 20}/include/pconfigintrin.h +0 -0
  231. /package/lib/clang/{18 → 20}/include/pkuintrin.h +0 -0
  232. /package/lib/clang/{18 → 20}/include/ppc_wrappers/bmi2intrin.h +0 -0
  233. /package/lib/clang/{18 → 20}/include/ppc_wrappers/bmiintrin.h +0 -0
  234. /package/lib/clang/{18 → 20}/include/ppc_wrappers/emmintrin.h +0 -0
  235. /package/lib/clang/{18 → 20}/include/ppc_wrappers/immintrin.h +0 -0
  236. /package/lib/clang/{18 → 20}/include/ppc_wrappers/mm_malloc.h +0 -0
  237. /package/lib/clang/{18 → 20}/include/ppc_wrappers/mmintrin.h +0 -0
  238. /package/lib/clang/{18 → 20}/include/ppc_wrappers/nmmintrin.h +0 -0
  239. /package/lib/clang/{18 → 20}/include/ppc_wrappers/pmmintrin.h +0 -0
  240. /package/lib/clang/{18 → 20}/include/ppc_wrappers/smmintrin.h +0 -0
  241. /package/lib/clang/{18 → 20}/include/ppc_wrappers/tmmintrin.h +0 -0
  242. /package/lib/clang/{18 → 20}/include/ppc_wrappers/x86gprintrin.h +0 -0
  243. /package/lib/clang/{18 → 20}/include/ppc_wrappers/x86intrin.h +0 -0
  244. /package/lib/clang/{18 → 20}/include/ppc_wrappers/xmmintrin.h +0 -0
  245. /package/lib/clang/{18 → 20}/include/prfchiintrin.h +0 -0
  246. /package/lib/clang/{18 → 20}/include/ptwriteintrin.h +0 -0
  247. /package/lib/clang/{18 → 20}/include/raointintrin.h +0 -0
  248. /package/lib/clang/{18 → 20}/include/rdpruintrin.h +0 -0
  249. /package/lib/clang/{18 → 20}/include/rdseedintrin.h +0 -0
  250. /package/lib/clang/{18 → 20}/include/riscv_bitmanip.h +0 -0
  251. /package/lib/clang/{18 → 20}/include/riscv_crypto.h +0 -0
  252. /package/lib/clang/{18 → 20}/include/riscv_ntlh.h +0 -0
  253. /package/lib/clang/{18 → 20}/include/rtmintrin.h +0 -0
  254. /package/lib/clang/{18 → 20}/include/s390intrin.h +0 -0
  255. /package/lib/clang/{18 → 20}/include/serializeintrin.h +0 -0
  256. /package/lib/clang/{18 → 20}/include/sgxintrin.h +0 -0
  257. /package/lib/clang/{18 → 20}/include/sha512intrin.h +0 -0
  258. /package/lib/clang/{18 → 20}/include/shaintrin.h +0 -0
  259. /package/lib/clang/{18 → 20}/include/sm3intrin.h +0 -0
  260. /package/lib/clang/{18 → 20}/include/sm4intrin.h +0 -0
  261. /package/lib/clang/{18 → 20}/include/stdalign.h +0 -0
  262. /package/lib/clang/{18 → 20}/include/stdckdint.h +0 -0
  263. /package/lib/clang/{18 → 20}/include/tgmath.h +0 -0
  264. /package/lib/clang/{18 → 20}/include/tsxldtrkintrin.h +0 -0
  265. /package/lib/clang/{18 → 20}/include/uintrintrin.h +0 -0
  266. /package/lib/clang/{18 → 20}/include/unwind.h +0 -0
  267. /package/lib/clang/{18 → 20}/include/usermsrintrin.h +0 -0
  268. /package/lib/clang/{18 → 20}/include/vadefs.h +0 -0
  269. /package/lib/clang/{18 → 20}/include/vaesintrin.h +0 -0
  270. /package/lib/clang/{18 → 20}/include/velintrin.h +0 -0
  271. /package/lib/clang/{18 → 20}/include/velintrin_approx.h +0 -0
  272. /package/lib/clang/{18 → 20}/include/velintrin_gen.h +0 -0
  273. /package/lib/clang/{18 → 20}/include/vpclmulqdqintrin.h +0 -0
  274. /package/lib/clang/{18 → 20}/include/waitpkgintrin.h +0 -0
  275. /package/lib/clang/{18 → 20}/include/wbnoinvdintrin.h +0 -0
  276. /package/lib/clang/{18 → 20}/include/wmmintrin.h +0 -0
  277. /package/lib/clang/{18 → 20}/include/xopintrin.h +0 -0
  278. /package/lib/clang/{18 → 20}/include/xsavecintrin.h +0 -0
  279. /package/lib/clang/{18 → 20}/include/xsaveintrin.h +0 -0
  280. /package/lib/clang/{18 → 20}/include/xsaveoptintrin.h +0 -0
  281. /package/lib/clang/{18 → 20}/include/xsavesintrin.h +0 -0
  282. /package/lib/clang/{18 → 20}/include/xtestintrin.h +0 -0
@@ -0,0 +1,248 @@
1
+ /* ===--- amxtransposeintrin.h - AMX_TRANSPOSE intrinsics -*- 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
+
10
+ #ifndef __IMMINTRIN_H
11
+ #error "Never use <amxtransposeintrin.h> directly; use <immintrin.h> instead."
12
+ #endif /* __IMMINTRIN_H */
13
+
14
+ #ifndef __AMX_TRANSPOSEINTRIN_H
15
+ #define __AMX_TRANSPOSEINTRIN_H
16
+ #ifdef __x86_64__
17
+
18
+ #define __DEFAULT_FN_ATTRS_TRANSPOSE \
19
+ __attribute__((__always_inline__, __nodebug__, __target__("amx-transpose")))
20
+
21
+ #define _tile_2rpntlvwz0(tdst, base, stride) \
22
+ __builtin_ia32_t2rpntlvwz0(tdst, base, stride)
23
+ #define _tile_2rpntlvwz0t1(tdst, base, stride) \
24
+ __builtin_ia32_t2rpntlvwz0t1(tdst, base, stride)
25
+ #define _tile_2rpntlvwz1(tdst, base, stride) \
26
+ __builtin_ia32_t2rpntlvwz1(tdst, base, stride)
27
+ #define _tile_2rpntlvwz1t1(tdst, base, stride) \
28
+ __builtin_ia32_t2rpntlvwz1t1(tdst, base, stride)
29
+
30
+ /// Transpose 32-bit elements from \a src and write the result to \a dst.
31
+ ///
32
+ /// \headerfile <immintrin.h>
33
+ ///
34
+ /// \code
35
+ /// void _tile_transposed(__tile dst, __tile src);
36
+ /// \endcode
37
+ ///
38
+ /// This intrinsic corresponds to the <c> TTRANSPOSED </c> instruction.
39
+ ///
40
+ /// \param dst
41
+ /// The destination tile. Max size is 1024 Bytes.
42
+ /// \param src
43
+ /// The source tile. Max size is 1024 Bytes.
44
+ ///
45
+ /// \code{.operation}
46
+ ///
47
+ /// FOR i := 0 TO (dst.rows-1)
48
+ /// tmp[511:0] := 0
49
+ /// FOR j := 0 TO (dst.colsb/4-1)
50
+ /// tmp.dword[j] := src.row[j].dword[i]
51
+ /// ENDFOR
52
+ /// dst.row[i] := tmp
53
+ /// ENDFOR
54
+ ///
55
+ /// zero_upper_rows(dst, dst.rows)
56
+ /// zero_tileconfig_start()
57
+ /// \endcode
58
+ #define _tile_transposed(dst, src) __builtin_ia32_ttransposed(dst, src)
59
+
60
+ static __inline__ void __DEFAULT_FN_ATTRS_TRANSPOSE _tile_2rpntlvwz0_internal(
61
+ unsigned short row, unsigned short col0, unsigned short col1,
62
+ _tile1024i *dst0, _tile1024i *dst1, const void *base,
63
+ __SIZE_TYPE__ stride) {
64
+ // Use __tile1024i_1024a* to escape the alignment check in
65
+ // clang/test/Headers/x86-intrinsics-headers-clean.cpp
66
+ __builtin_ia32_t2rpntlvwz0_internal(row, col0, col1, (_tile1024i_1024a *)dst0,
67
+ (_tile1024i_1024a *)dst1, base,
68
+ (__SIZE_TYPE__)(stride));
69
+ }
70
+
71
+ static __inline__ void __DEFAULT_FN_ATTRS_TRANSPOSE _tile_2rpntlvwz0t1_internal(
72
+ unsigned short row, unsigned short col0, unsigned short col1,
73
+ _tile1024i *dst0, _tile1024i *dst1, const void *base,
74
+ __SIZE_TYPE__ stride) {
75
+ __builtin_ia32_t2rpntlvwz0t1_internal(
76
+ row, col0, col1, (_tile1024i_1024a *)dst0, (_tile1024i_1024a *)dst1, base,
77
+ (__SIZE_TYPE__)(stride));
78
+ }
79
+
80
+ static __inline__ void __DEFAULT_FN_ATTRS_TRANSPOSE _tile_2rpntlvwz1_internal(
81
+ unsigned short row, unsigned short col0, unsigned short col1,
82
+ _tile1024i *dst0, _tile1024i *dst1, const void *base,
83
+ __SIZE_TYPE__ stride) {
84
+ __builtin_ia32_t2rpntlvwz1_internal(row, col0, col1, (_tile1024i_1024a *)dst0,
85
+ (_tile1024i_1024a *)dst1, base,
86
+ (__SIZE_TYPE__)(stride));
87
+ }
88
+
89
+ static __inline__ void __DEFAULT_FN_ATTRS_TRANSPOSE _tile_2rpntlvwz1t1_internal(
90
+ unsigned short row, unsigned short col0, unsigned short col1,
91
+ _tile1024i *dst0, _tile1024i *dst1, const void *base,
92
+ __SIZE_TYPE__ stride) {
93
+ __builtin_ia32_t2rpntlvwz1t1_internal(
94
+ row, col0, col1, (_tile1024i_1024a *)dst0, (_tile1024i_1024a *)dst1, base,
95
+ (__SIZE_TYPE__)(stride));
96
+ }
97
+
98
+ // This is internal intrinsic. C/C++ user should avoid calling it directly.
99
+ static __inline__ _tile1024i __DEFAULT_FN_ATTRS_TRANSPOSE
100
+ _tile_transposed_internal(unsigned short m, unsigned short n, _tile1024i src) {
101
+ return __builtin_ia32_ttransposed_internal(m, n, src);
102
+ }
103
+
104
+ /// Converts a pair of tiles from memory into VNNI format, and places the
105
+ /// results in a pair of destinations specified by dst. The pair of tiles
106
+ /// in memory is specified via a tsib; the second tile is after the first
107
+ /// one, separated by the same stride that separates each row.
108
+ /// The tile configuration for the destination tiles indicates the amount
109
+ /// of data to read from memory. The instruction will load a number of rows
110
+ /// that is equal to twice the number of rows in tmm1. The size of each row
111
+ /// is equal to the average width of the destination tiles. If the second
112
+ /// tile is configured with zero rows and columns, only the first tile will
113
+ /// be written.
114
+ /// Provides a hint to the implementation that the data will likely not be
115
+ /// reused in the near future and the data caching can be optimized.
116
+ ///
117
+ /// \headerfile <immintrin.h>
118
+ ///
119
+ /// This intrinsic corresponds to the <c> T2RPNTLVWZ0 </c> instruction.
120
+ ///
121
+ /// \param dst0
122
+ /// First tile of destination tile pair. Max size is 1024i*2 Bytes.
123
+ /// \param dst1
124
+ /// Second tile of destination tile pair. Max size is 1024i*2 Bytes.
125
+ /// \param base
126
+ /// A pointer to base address.
127
+ /// \param stride
128
+ /// The stride between the rows' data to be loaded in memory.
129
+ __DEFAULT_FN_ATTRS_TRANSPOSE
130
+ static void __tile_2rpntlvwz0(__tile1024i *dst0, __tile1024i *dst1,
131
+ const void *base, __SIZE_TYPE__ stride) {
132
+ _tile_2rpntlvwz0_internal(dst0->row, dst0->col, dst1->col, &dst0->tile,
133
+ &dst1->tile, base, stride);
134
+ }
135
+
136
+ /// Converts a pair of tiles from memory into VNNI format, and places the
137
+ /// results in a pair of destinations specified by dst. The pair of tiles
138
+ /// in memory is specified via a tsib; the second tile is after the first
139
+ /// one, separated by the same stride that separates each row.
140
+ /// The tile configuration for the destination tiles indicates the amount
141
+ /// of data to read from memory. The instruction will load a number of rows
142
+ /// that is equal to twice the number of rows in tmm1. The size of each row
143
+ /// is equal to the average width of the destination tiles. If the second
144
+ /// tile is configured with zero rows and columns, only the first tile will
145
+ /// be written.
146
+ ///
147
+ /// \headerfile <immintrin.h>
148
+ ///
149
+ /// This intrinsic corresponds to the <c> T2RPNTLVWZ0T1 </c> instruction.
150
+ ///
151
+ /// \param dst0
152
+ /// First tile of destination tile pair. Max size is 1024i*2 Bytes.
153
+ /// \param dst1
154
+ /// Second tile of destination tile pair. Max size is 1024i*2 Bytes.
155
+ /// \param base
156
+ /// A pointer to base address.
157
+ /// \param stride
158
+ /// The stride between the rows' data to be loaded in memory.
159
+ __DEFAULT_FN_ATTRS_TRANSPOSE
160
+ static void __tile_2rpntlvwz0t1(__tile1024i *dst0, __tile1024i *dst1,
161
+ const void *base, __SIZE_TYPE__ stride) {
162
+ _tile_2rpntlvwz0t1_internal(dst0->row, dst0->col, dst1->col, &dst0->tile,
163
+ &dst1->tile, base, stride);
164
+ }
165
+
166
+ /// Converts a pair of tiles from memory into VNNI format, and places the
167
+ /// results in a pair of destinations specified by dst. The pair of tiles
168
+ /// in memory is specified via a tsib; the second tile is after the first
169
+ /// one, separated by the same stride that separates each row.
170
+ /// The tile configuration for the destination tiles indicates the amount
171
+ /// of data to read from memory. The instruction will load a number of rows
172
+ /// that is equal to twice the number of rows in tmm1. The size of each row
173
+ /// is equal to the average width of the destination tiles. If the second
174
+ /// tile is configured with zero rows and columns, only the first tile will
175
+ /// be written. The last row will be not be read from memory but instead
176
+ /// filled with zeros.
177
+ /// Provides a hint to the implementation that the data will likely not be
178
+ /// reused in the near future and the data caching can be optimized.
179
+ ///
180
+ /// \headerfile <immintrin.h>
181
+ ///
182
+ /// This intrinsic corresponds to the <c> T2RPNTLVWZ1 </c> instruction.
183
+ ///
184
+ /// \param dst0
185
+ /// First tile of destination tile pair. Max size is 1024i*2 Bytes.
186
+ /// \param dst1
187
+ /// Second tile of destination tile pair. Max size is 1024i*2 Bytes.
188
+ /// \param base
189
+ /// A pointer to base address.
190
+ /// \param stride
191
+ /// The stride between the rows' data to be loaded in memory.
192
+ __DEFAULT_FN_ATTRS_TRANSPOSE
193
+ static void __tile_2rpntlvwz1(__tile1024i *dst0, __tile1024i *dst1,
194
+ const void *base, __SIZE_TYPE__ stride) {
195
+ _tile_2rpntlvwz1_internal(dst0->row, dst0->col, dst1->col, &dst0->tile,
196
+ &dst1->tile, base, stride);
197
+ }
198
+
199
+ /// Converts a pair of tiles from memory into VNNI format, and places the
200
+ /// results in a pair of destinations specified by dst. The pair of tiles
201
+ /// in memory is specified via a tsib; the second tile is after the first
202
+ /// one, separated by the same stride that separates each row.
203
+ /// The tile configuration for the destination tiles indicates the amount
204
+ /// of data to read from memory. The instruction will load a number of rows
205
+ /// that is equal to twice the number of rows in tmm1. The size of each row
206
+ /// is equal to the average width of the destination tiles. If the second
207
+ /// tile is configured with zero rows and columns, only the first tile will
208
+ /// be written. The last row will be not be read from memory but instead
209
+ /// filled with zeros.
210
+ /// Provides a hint to the implementation that the data will likely not be
211
+ /// reused in the near future and the data caching can be optimized.
212
+ ///
213
+ /// \headerfile <immintrin.h>
214
+ ///
215
+ /// This intrinsic corresponds to the <c> T2RPNTLVWZ1T1 </c> instruction.
216
+ ///
217
+ /// \param dst0
218
+ /// First tile of destination tile pair. Max size is 1024i*2 Bytes.
219
+ /// \param dst1
220
+ /// Second tile of destination tile pair. Max size is 1024i*2 Bytes.
221
+ /// \param base
222
+ /// A pointer to base address.
223
+ /// \param stride
224
+ /// The stride between the rows' data to be loaded in memory.
225
+ __DEFAULT_FN_ATTRS_TRANSPOSE
226
+ static void __tile_2rpntlvwz1t1(__tile1024i *dst0, __tile1024i *dst1,
227
+ const void *base, __SIZE_TYPE__ stride) {
228
+ _tile_2rpntlvwz1t1_internal(dst0->row, dst0->col, dst1->col, &dst0->tile,
229
+ &dst1->tile, base, stride);
230
+ }
231
+
232
+ /// Transpose 32-bit elements from src and write the result to dst.
233
+ ///
234
+ /// \headerfile <immintrin.h>
235
+ ///
236
+ /// This intrinsic corresponds to the <c> TTRANSPOSED </c> instruction.
237
+ ///
238
+ /// \param dst
239
+ /// The destination tile. Max size is 1024 Bytes.
240
+ /// \param src
241
+ /// The source tile. Max size is 1024 Bytes.
242
+ __DEFAULT_FN_ATTRS_TRANSPOSE
243
+ static void __tile_transposed(__tile1024i *dst, __tile1024i src) {
244
+ dst->tile = _tile_transposed_internal(dst->row, dst->col, src.tile);
245
+ }
246
+
247
+ #endif /* __x86_64__ */
248
+ #endif /* __AMX_TRANSPOSEINTRIN_H */
@@ -75,6 +75,14 @@ static __inline__ void __attribute__((__always_inline__, __nodebug__)) __yield(v
75
75
  #define __dbg(t) __builtin_arm_dbg(t)
76
76
  #endif
77
77
 
78
+ #if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
79
+ #define _CHKFEAT_GCS 1
80
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
81
+ __chkfeat(uint64_t __features) {
82
+ return __builtin_arm_chkfeat(__features) ^ __features;
83
+ }
84
+ #endif
85
+
78
86
  /* 7.5 Swap */
79
87
  static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
80
88
  __swp(uint32_t __x, volatile uint32_t *__p) {
@@ -109,7 +117,7 @@ __swp(uint32_t __x, volatile uint32_t *__p) {
109
117
  #endif
110
118
 
111
119
  /* 7.7 NOP */
112
- #if !defined(_MSC_VER) || !defined(__aarch64__)
120
+ #if !defined(_MSC_VER) || (!defined(__aarch64__) && !defined(__arm64ec__))
113
121
  static __inline__ void __attribute__((__always_inline__, __nodebug__)) __nop(void) {
114
122
  __builtin_arm_nop();
115
123
  }
@@ -256,28 +264,28 @@ __rbitl(unsigned long __t) {
256
264
  }
257
265
 
258
266
  /* 8.3 16-bit multiplications */
259
- #if defined(__ARM_FEATURE_DSP) && __ARM_FEATURE_DSP
260
- static __inline__ int32_t __attribute__((__always_inline__,__nodebug__))
267
+ #if defined(__ARM_32BIT_STATE) && __ARM_32BIT_STATE
268
+ static __inline__ int32_t __attribute__((__always_inline__,__nodebug__, target("dsp")))
261
269
  __smulbb(int32_t __a, int32_t __b) {
262
270
  return __builtin_arm_smulbb(__a, __b);
263
271
  }
264
- static __inline__ int32_t __attribute__((__always_inline__,__nodebug__))
272
+ static __inline__ int32_t __attribute__((__always_inline__,__nodebug__, target("dsp")))
265
273
  __smulbt(int32_t __a, int32_t __b) {
266
274
  return __builtin_arm_smulbt(__a, __b);
267
275
  }
268
- static __inline__ int32_t __attribute__((__always_inline__,__nodebug__))
276
+ static __inline__ int32_t __attribute__((__always_inline__,__nodebug__, target("dsp")))
269
277
  __smultb(int32_t __a, int32_t __b) {
270
278
  return __builtin_arm_smultb(__a, __b);
271
279
  }
272
- static __inline__ int32_t __attribute__((__always_inline__,__nodebug__))
280
+ static __inline__ int32_t __attribute__((__always_inline__,__nodebug__, target("dsp")))
273
281
  __smultt(int32_t __a, int32_t __b) {
274
282
  return __builtin_arm_smultt(__a, __b);
275
283
  }
276
- static __inline__ int32_t __attribute__((__always_inline__,__nodebug__))
284
+ static __inline__ int32_t __attribute__((__always_inline__,__nodebug__, target("dsp")))
277
285
  __smulwb(int32_t __a, int32_t __b) {
278
286
  return __builtin_arm_smulwb(__a, __b);
279
287
  }
280
- static __inline__ int32_t __attribute__((__always_inline__,__nodebug__))
288
+ static __inline__ int32_t __attribute__((__always_inline__,__nodebug__, target("dsp")))
281
289
  __smulwt(int32_t __a, int32_t __b) {
282
290
  return __builtin_arm_smulwt(__a, __b);
283
291
  }
@@ -296,46 +304,46 @@ __smulwt(int32_t __a, int32_t __b) {
296
304
  #endif
297
305
 
298
306
  /* 8.4.2 Saturating addition and subtraction intrinsics */
299
- #if defined(__ARM_FEATURE_DSP) && __ARM_FEATURE_DSP
300
- static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
307
+ #if defined(__ARM_32BIT_STATE) && __ARM_32BIT_STATE
308
+ static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("dsp")))
301
309
  __qadd(int32_t __t, int32_t __v) {
302
310
  return __builtin_arm_qadd(__t, __v);
303
311
  }
304
312
 
305
- static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
313
+ static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("dsp")))
306
314
  __qsub(int32_t __t, int32_t __v) {
307
315
  return __builtin_arm_qsub(__t, __v);
308
316
  }
309
317
 
310
- static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
318
+ static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("dsp")))
311
319
  __qdbl(int32_t __t) {
312
320
  return __builtin_arm_qadd(__t, __t);
313
321
  }
314
322
  #endif
315
323
 
316
- /* 8.4.3 Accumultating multiplications */
317
- #if defined(__ARM_FEATURE_DSP) && __ARM_FEATURE_DSP
318
- static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
324
+ /* 8.4.3 Accumulating multiplications */
325
+ #if defined(__ARM_32BIT_STATE) && __ARM_32BIT_STATE
326
+ static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("dsp")))
319
327
  __smlabb(int32_t __a, int32_t __b, int32_t __c) {
320
328
  return __builtin_arm_smlabb(__a, __b, __c);
321
329
  }
322
- static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
330
+ static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("dsp")))
323
331
  __smlabt(int32_t __a, int32_t __b, int32_t __c) {
324
332
  return __builtin_arm_smlabt(__a, __b, __c);
325
333
  }
326
- static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
334
+ static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("dsp")))
327
335
  __smlatb(int32_t __a, int32_t __b, int32_t __c) {
328
336
  return __builtin_arm_smlatb(__a, __b, __c);
329
337
  }
330
- static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
338
+ static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("dsp")))
331
339
  __smlatt(int32_t __a, int32_t __b, int32_t __c) {
332
340
  return __builtin_arm_smlatt(__a, __b, __c);
333
341
  }
334
- static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
342
+ static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("dsp")))
335
343
  __smlawb(int32_t __a, int32_t __b, int32_t __c) {
336
344
  return __builtin_arm_smlawb(__a, __b, __c);
337
345
  }
338
- static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
346
+ static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("dsp")))
339
347
  __smlawt(int32_t __a, int32_t __b, int32_t __c) {
340
348
  return __builtin_arm_smlawt(__a, __b, __c);
341
349
  }
@@ -545,7 +553,7 @@ __usub16(uint16x2_t __a, uint16x2_t __b) {
545
553
  }
546
554
  #endif
547
555
 
548
- /* 8.5.10 Parallel 16-bit multiplications */
556
+ /* 8.5.10 Parallel 16-bit multiplication */
549
557
  #if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
550
558
  static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
551
559
  __smlad(int16x2_t __a, int16x2_t __b, int32_t __c) {
@@ -613,8 +621,6 @@ __rintnf(float __a) {
613
621
  #endif
614
622
 
615
623
  /* 8.8 CRC32 intrinsics */
616
- #if (defined(__ARM_FEATURE_CRC32) && __ARM_FEATURE_CRC32) || \
617
- (defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE)
618
624
  static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__, target("crc")))
619
625
  __crc32b(uint32_t __a, uint8_t __b) {
620
626
  return __builtin_arm_crc32b(__a, __b);
@@ -654,7 +660,6 @@ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__, target
654
660
  __crc32cd(uint32_t __a, uint64_t __b) {
655
661
  return __builtin_arm_crc32cd(__a, __b);
656
662
  }
657
- #endif
658
663
 
659
664
  /* 8.6 Floating-point data-processing intrinsics */
660
665
  /* Armv8.3-A Javascript conversion intrinsic */
@@ -748,7 +753,7 @@ __arm_st64bv0(void *__addr, data512_t __value) {
748
753
  #define __arm_wsrf(sysreg, v) __arm_wsr(sysreg, __builtin_bit_cast(uint32_t, v))
749
754
  #define __arm_wsrf64(sysreg, v) __arm_wsr64(sysreg, __builtin_bit_cast(uint64_t, v))
750
755
 
751
- /* 10.3 Memory Tagging Extensions (MTE) Intrinsics */
756
+ /* 10.3 MTE intrinsics */
752
757
  #if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
753
758
  #define __arm_mte_create_random_tag(__ptr, __mask) __builtin_arm_irg(__ptr, __mask)
754
759
  #define __arm_mte_increment_tag(__ptr, __tag_offset) __builtin_arm_addg(__ptr, __tag_offset)
@@ -757,7 +762,7 @@ __arm_st64bv0(void *__addr, data512_t __value) {
757
762
  #define __arm_mte_set_tag(__ptr) __builtin_arm_stg(__ptr)
758
763
  #define __arm_mte_ptrdiff(__ptra, __ptrb) __builtin_arm_subp(__ptra, __ptrb)
759
764
 
760
- /* 18 Memory Operations Intrinsics */
765
+ /* 18 memcpy family of operations intrinsics - MOPS */
761
766
  #define __arm_mops_memset_tag(__tagged_address, __value, __size) \
762
767
  __builtin_arm_mops_memset_tag(__tagged_address, __value, __size)
763
768
  #endif
@@ -855,6 +860,24 @@ __rndrrs(uint64_t *__p) {
855
860
  }
856
861
  #endif
857
862
 
863
+ /* 11.2 Guarded Control Stack intrinsics */
864
+ #if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
865
+ static __inline__ void * __attribute__((__always_inline__, __nodebug__))
866
+ __gcspr() {
867
+ return (void *)__builtin_arm_rsr64("gcspr_el0");
868
+ }
869
+
870
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__, target("gcs")))
871
+ __gcspopm() {
872
+ return __builtin_arm_gcspopm(0);
873
+ }
874
+
875
+ static __inline__ const void * __attribute__((__always_inline__, __nodebug__, target("gcs")))
876
+ __gcsss(const void *__stack) {
877
+ return __builtin_arm_gcsss(__stack);
878
+ }
879
+ #endif
880
+
858
881
  #if defined(__cplusplus)
859
882
  }
860
883
  #endif
@@ -29,7 +29,7 @@
29
29
  typedef __fp16 float16_t;
30
30
  #define __ai static __inline__ __attribute__((__always_inline__, __nodebug__))
31
31
 
32
- #if defined(__aarch64__)
32
+ #if defined(__aarch64__) || defined(__arm64ec__)
33
33
  #define vabdh_f16(__p0, __p1) __extension__ ({ \
34
34
  float16_t __ret; \
35
35
  float16_t __s0 = __p0; \