@cpp-linter/clang-tidy-win32-x64 20.1.0 → 22.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 (309) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/22/include/__clang_cuda_complex_builtins.h +229 -0
  4. package/lib/clang/{20 → 22}/include/__clang_cuda_device_functions.h +1 -1
  5. package/lib/clang/{20 → 22}/include/__clang_cuda_intrinsics.h +295 -8
  6. package/lib/clang/{20 → 22}/include/__clang_cuda_runtime_wrapper.h +19 -0
  7. package/lib/clang/{20 → 22}/include/__clang_cuda_texture_intrinsics.h +437 -2
  8. package/lib/clang/{20 → 22}/include/__clang_hip_cmath.h +9 -8
  9. package/lib/clang/{20 → 22}/include/__clang_hip_libdevice_declares.h +29 -42
  10. package/lib/clang/{20 → 22}/include/__clang_hip_math.h +107 -31
  11. package/lib/clang/{20 → 22}/include/__clang_hip_runtime_wrapper.h +6 -0
  12. package/lib/clang/22/include/__clang_spirv_builtins.h +217 -0
  13. package/lib/clang/{20/include/float.h → 22/include/__float_float.h} +14 -34
  14. package/lib/clang/22/include/__float_header_macro.h +12 -0
  15. package/lib/clang/22/include/__float_infinity_nan.h +20 -0
  16. package/lib/clang/{20 → 22}/include/__stdarg_va_arg.h +2 -2
  17. package/lib/clang/{20 → 22}/include/altivec.h +82 -79
  18. package/lib/clang/{20 → 22}/include/amdgpuintrin.h +23 -26
  19. package/lib/clang/22/include/amo.h +131 -0
  20. package/lib/clang/{20 → 22}/include/amxavx512intrin.h +216 -2
  21. package/lib/clang/{20 → 22}/include/amxcomplexintrin.h +4 -6
  22. package/lib/clang/{20 → 22}/include/amxintrin.h +0 -2
  23. package/lib/clang/22/include/andes_vector.h +16 -0
  24. package/lib/clang/{20 → 22}/include/arm_acle.h +48 -68
  25. package/lib/clang/{20 → 22}/include/arm_fp16.h +89 -89
  26. package/lib/clang/{20 → 22}/include/arm_neon.h +22413 -19759
  27. package/lib/clang/{20 → 22}/include/arm_sme.h +702 -8
  28. package/lib/clang/{20 → 22}/include/arm_sve.h +6346 -5626
  29. package/lib/clang/{20 → 22}/include/avx10_2_512bf16intrin.h +19 -12
  30. package/lib/clang/{20 → 22}/include/avx10_2_512convertintrin.h +25 -23
  31. package/lib/clang/{20 → 22}/include/avx10_2_512niintrin.h +31 -31
  32. package/lib/clang/{20 → 22}/include/avx10_2_512satcvtdsintrin.h +29 -25
  33. package/lib/clang/{20 → 22}/include/avx10_2_512satcvtintrin.h +84 -84
  34. package/lib/clang/{20 → 22}/include/avx10_2bf16intrin.h +54 -45
  35. package/lib/clang/22/include/avx10_2convertintrin.h +3257 -0
  36. package/lib/clang/{20 → 22}/include/avx10_2copyintrin.h +1 -1
  37. package/lib/clang/{20 → 22}/include/avx10_2minmaxintrin.h +18 -63
  38. package/lib/clang/22/include/avx10_2niintrin.h +409 -0
  39. package/lib/clang/22/include/avx10_2satcvtdsintrin.h +376 -0
  40. package/lib/clang/22/include/avx10_2satcvtintrin.h +312 -0
  41. package/lib/clang/{20 → 22}/include/avx2intrin.h +275 -377
  42. package/lib/clang/{20 → 22}/include/avx512bf16intrin.h +25 -16
  43. package/lib/clang/{20 → 22}/include/avx512bitalgintrin.h +19 -30
  44. package/lib/clang/{20 → 22}/include/avx512bwintrin.h +386 -505
  45. package/lib/clang/22/include/avx512cdintrin.h +112 -0
  46. package/lib/clang/{20 → 22}/include/avx512dqintrin.h +132 -161
  47. package/lib/clang/{20 → 22}/include/avx512fintrin.h +1015 -1424
  48. package/lib/clang/{20 → 22}/include/avx512fp16intrin.h +114 -111
  49. package/lib/clang/22/include/avx512ifmaintrin.h +68 -0
  50. package/lib/clang/22/include/avx512ifmavlintrin.h +138 -0
  51. package/lib/clang/{20 → 22}/include/avx512vbmi2intrin.h +43 -32
  52. package/lib/clang/{20 → 22}/include/avx512vbmiintrin.h +19 -27
  53. package/lib/clang/{20 → 22}/include/avx512vbmivlintrin.h +35 -49
  54. package/lib/clang/{20 → 22}/include/avx512vlbf16intrin.h +32 -22
  55. package/lib/clang/{20 → 22}/include/avx512vlbitalgintrin.h +37 -53
  56. package/lib/clang/{20 → 22}/include/avx512vlbwintrin.h +470 -573
  57. package/lib/clang/22/include/avx512vlcdintrin.h +202 -0
  58. package/lib/clang/{20 → 22}/include/avx512vldqintrin.h +110 -127
  59. package/lib/clang/{20 → 22}/include/avx512vlfp16intrin.h +130 -111
  60. package/lib/clang/{20 → 22}/include/avx512vlintrin.h +945 -1299
  61. package/lib/clang/{20 → 22}/include/avx512vlvbmi2intrin.h +78 -63
  62. package/lib/clang/{20 → 22}/include/avx512vlvnniintrin.h +21 -18
  63. package/lib/clang/{20 → 22}/include/avx512vlvp2intersectintrin.h +2 -2
  64. package/lib/clang/{20 → 22}/include/avx512vnniintrin.h +10 -10
  65. package/lib/clang/{20 → 22}/include/avx512vp2intersectintrin.h +1 -2
  66. package/lib/clang/{20 → 22}/include/avx512vpopcntdqintrin.h +8 -10
  67. package/lib/clang/{20 → 22}/include/avx512vpopcntdqvlintrin.h +17 -15
  68. package/lib/clang/{20 → 22}/include/avxifmaintrin.h +16 -0
  69. package/lib/clang/{20 → 22}/include/avxintrin.h +165 -241
  70. package/lib/clang/{20 → 22}/include/avxvnniint16intrin.h +118 -99
  71. package/lib/clang/{20 → 22}/include/avxvnniint8intrin.h +56 -32
  72. package/lib/clang/{20 → 22}/include/avxvnniintrin.h +16 -8
  73. package/lib/clang/{20 → 22}/include/bmiintrin.h +0 -4
  74. package/lib/clang/{20 → 22}/include/cpuid.h +125 -26
  75. package/lib/clang/22/include/cuda_wrappers/__utility/declval.h +28 -0
  76. package/lib/clang/22/include/cuda_wrappers/bits/c++config.h +61 -0
  77. package/lib/clang/{20 → 22}/include/cuda_wrappers/cmath +0 -50
  78. package/lib/clang/{20 → 22}/include/emmintrin.h +168 -168
  79. package/lib/clang/{20 → 22}/include/f16cintrin.h +23 -9
  80. package/lib/clang/22/include/float.h +48 -0
  81. package/lib/clang/22/include/fma4intrin.h +220 -0
  82. package/lib/clang/{20 → 22}/include/fmaintrin.h +96 -66
  83. package/lib/clang/{20 → 22}/include/gfniintrin.h +21 -16
  84. package/lib/clang/{20 → 22}/include/gpuintrin.h +117 -11
  85. package/lib/clang/{20 → 22}/include/hexagon_types.h +23 -20
  86. package/lib/clang/{20/include/hlsl/hlsl_intrinsics.h → 22/include/hlsl/hlsl_alias_intrinsics.h} +643 -296
  87. package/lib/clang/22/include/hlsl/hlsl_basic_types.h +370 -0
  88. package/lib/clang/22/include/hlsl/hlsl_compat_overloads.h +520 -0
  89. package/lib/clang/22/include/hlsl/hlsl_detail.h +54 -0
  90. package/lib/clang/22/include/hlsl/hlsl_intrinsic_helpers.h +190 -0
  91. package/lib/clang/22/include/hlsl/hlsl_intrinsics.h +794 -0
  92. package/lib/clang/22/include/hlsl/hlsl_spirv.h +28 -0
  93. package/lib/clang/{20 → 22}/include/hlsl.h +12 -0
  94. package/lib/clang/{20 → 22}/include/hvx_hexagon_protos.h +649 -860
  95. package/lib/clang/{20 → 22}/include/immintrin.h +0 -236
  96. package/lib/clang/{20 → 22}/include/intrin.h +25 -4
  97. package/lib/clang/{20 → 22}/include/keylockerintrin.h +0 -9
  98. package/lib/clang/{20 → 22}/include/lasxintrin.h +113 -0
  99. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/assert.h +3 -5
  100. package/lib/clang/22/include/llvm_libc_wrappers/ctype.h +28 -0
  101. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/inttypes.h +3 -5
  102. package/lib/clang/22/include/llvm_libc_wrappers/stdio.h +52 -0
  103. package/lib/clang/22/include/llvm_libc_wrappers/stdlib.h +32 -0
  104. package/lib/clang/22/include/llvm_libc_wrappers/string.h +28 -0
  105. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/time.h +4 -10
  106. package/lib/clang/{20 → 22}/include/lzcntintrin.h +6 -4
  107. package/lib/clang/{20 → 22}/include/mmintrin.h +188 -257
  108. package/lib/clang/{20 → 22}/include/module.modulemap +36 -4
  109. package/lib/clang/{20 → 22}/include/movrs_avx10_2_512intrin.h +2 -2
  110. package/lib/clang/{20 → 22}/include/movrs_avx10_2intrin.h +4 -4
  111. package/lib/clang/{20 → 22}/include/movrsintrin.h +1 -1
  112. package/lib/clang/{20 → 22}/include/nvptxintrin.h +48 -31
  113. package/lib/clang/{20 → 22}/include/opencl-c-base.h +18 -93
  114. package/lib/clang/{20 → 22}/include/opencl-c.h +360 -55
  115. package/lib/clang/{20 → 22}/include/pmmintrin.h +12 -24
  116. package/lib/clang/{20 → 22}/include/prfchwintrin.h +10 -13
  117. package/lib/clang/{20 → 22}/include/ptrauth.h +73 -2
  118. package/lib/clang/{20 → 22}/include/riscv_corev_alu.h +4 -4
  119. package/lib/clang/22/include/riscv_mips.h +34 -0
  120. package/lib/clang/22/include/riscv_nds.h +89 -0
  121. package/lib/clang/{20 → 22}/include/riscv_vector.h +0 -4
  122. package/lib/clang/{20 → 22}/include/shaintrin.h +3 -2
  123. package/lib/clang/{20 → 22}/include/sifive_vector.h +58 -2
  124. package/lib/clang/{20 → 22}/include/sm4evexintrin.h +2 -2
  125. package/lib/clang/{20 → 22}/include/smmintrin.h +77 -59
  126. package/lib/clang/22/include/spirvintrin.h +194 -0
  127. package/lib/clang/22/include/stdcountof.h +15 -0
  128. package/lib/clang/22/include/stddefer.h +19 -0
  129. package/lib/clang/{20 → 22}/include/stdint.h +18 -129
  130. package/lib/clang/{20 → 22}/include/tmmintrin.h +116 -147
  131. package/lib/clang/{20 → 22}/include/vaesintrin.h +1 -2
  132. package/lib/clang/{20 → 22}/include/vecintrin.h +5 -0
  133. package/lib/clang/{20 → 22}/include/x86gprintrin.h +0 -14
  134. package/lib/clang/{20 → 22}/include/x86intrin.h +0 -18
  135. package/lib/clang/{20 → 22}/include/xmmintrin.h +47 -72
  136. package/lib/clang/{20 → 22}/include/xopintrin.h +20 -10
  137. package/package.json +6 -6
  138. package/lib/clang/20/include/__clang_cuda_complex_builtins.h +0 -285
  139. package/lib/clang/20/include/amxbf16transposeintrin.h +0 -94
  140. package/lib/clang/20/include/amxcomplextransposeintrin.h +0 -303
  141. package/lib/clang/20/include/amxfp16transposeintrin.h +0 -94
  142. package/lib/clang/20/include/amxmovrstransposeintrin.h +0 -200
  143. package/lib/clang/20/include/amxtf32transposeintrin.h +0 -105
  144. package/lib/clang/20/include/amxtransposeintrin.h +0 -248
  145. package/lib/clang/20/include/avx10_2convertintrin.h +0 -589
  146. package/lib/clang/20/include/avx10_2niintrin.h +0 -2075
  147. package/lib/clang/20/include/avx10_2satcvtdsintrin.h +0 -496
  148. package/lib/clang/20/include/avx10_2satcvtintrin.h +0 -444
  149. package/lib/clang/20/include/avx512cdintrin.h +0 -125
  150. package/lib/clang/20/include/avx512ifmaintrin.h +0 -70
  151. package/lib/clang/20/include/avx512ifmavlintrin.h +0 -111
  152. package/lib/clang/20/include/avx512vlcdintrin.h +0 -230
  153. package/lib/clang/20/include/fma4intrin.h +0 -218
  154. package/lib/clang/20/include/hlsl/hlsl_basic_types.h +0 -120
  155. package/lib/clang/20/include/hlsl/hlsl_detail.h +0 -84
  156. package/lib/clang/20/include/llvm_libc_wrappers/ctype.h +0 -140
  157. package/lib/clang/20/include/llvm_libc_wrappers/stdio.h +0 -80
  158. package/lib/clang/20/include/llvm_libc_wrappers/stdlib.h +0 -53
  159. package/lib/clang/20/include/llvm_libc_wrappers/string.h +0 -96
  160. /package/lib/clang/{20 → 22}/include/__clang_cuda_builtin_vars.h +0 -0
  161. /package/lib/clang/{20 → 22}/include/__clang_cuda_cmath.h +0 -0
  162. /package/lib/clang/{20 → 22}/include/__clang_cuda_libdevice_declares.h +0 -0
  163. /package/lib/clang/{20 → 22}/include/__clang_cuda_math.h +0 -0
  164. /package/lib/clang/{20 → 22}/include/__clang_cuda_math_forward_declares.h +0 -0
  165. /package/lib/clang/{20 → 22}/include/__clang_hip_stdlib.h +0 -0
  166. /package/lib/clang/{20 → 22}/include/__stdarg___gnuc_va_list.h +0 -0
  167. /package/lib/clang/{20 → 22}/include/__stdarg___va_copy.h +0 -0
  168. /package/lib/clang/{20 → 22}/include/__stdarg_header_macro.h +0 -0
  169. /package/lib/clang/{20 → 22}/include/__stdarg_va_copy.h +0 -0
  170. /package/lib/clang/{20 → 22}/include/__stdarg_va_list.h +0 -0
  171. /package/lib/clang/{20 → 22}/include/__stddef_header_macro.h +0 -0
  172. /package/lib/clang/{20 → 22}/include/__stddef_max_align_t.h +0 -0
  173. /package/lib/clang/{20 → 22}/include/__stddef_null.h +0 -0
  174. /package/lib/clang/{20 → 22}/include/__stddef_nullptr_t.h +0 -0
  175. /package/lib/clang/{20 → 22}/include/__stddef_offsetof.h +0 -0
  176. /package/lib/clang/{20 → 22}/include/__stddef_ptrdiff_t.h +0 -0
  177. /package/lib/clang/{20 → 22}/include/__stddef_rsize_t.h +0 -0
  178. /package/lib/clang/{20 → 22}/include/__stddef_size_t.h +0 -0
  179. /package/lib/clang/{20 → 22}/include/__stddef_unreachable.h +0 -0
  180. /package/lib/clang/{20 → 22}/include/__stddef_wchar_t.h +0 -0
  181. /package/lib/clang/{20 → 22}/include/__stddef_wint_t.h +0 -0
  182. /package/lib/clang/{20 → 22}/include/__wmmintrin_aes.h +0 -0
  183. /package/lib/clang/{20 → 22}/include/__wmmintrin_pclmul.h +0 -0
  184. /package/lib/clang/{20 → 22}/include/adcintrin.h +0 -0
  185. /package/lib/clang/{20 → 22}/include/adxintrin.h +0 -0
  186. /package/lib/clang/{20 → 22}/include/ammintrin.h +0 -0
  187. /package/lib/clang/{20 → 22}/include/amxfp16intrin.h +0 -0
  188. /package/lib/clang/{20 → 22}/include/amxfp8intrin.h +0 -0
  189. /package/lib/clang/{20 → 22}/include/amxmovrsintrin.h +0 -0
  190. /package/lib/clang/{20 → 22}/include/amxtf32intrin.h +0 -0
  191. /package/lib/clang/{20 → 22}/include/arm64intr.h +0 -0
  192. /package/lib/clang/{20 → 22}/include/arm_bf16.h +0 -0
  193. /package/lib/clang/{20 → 22}/include/arm_cde.h +0 -0
  194. /package/lib/clang/{20 → 22}/include/arm_cmse.h +0 -0
  195. /package/lib/clang/{20 → 22}/include/arm_mve.h +0 -0
  196. /package/lib/clang/{20 → 22}/include/arm_neon_sve_bridge.h +0 -0
  197. /package/lib/clang/{20 → 22}/include/arm_vector_types.h +0 -0
  198. /package/lib/clang/{20 → 22}/include/armintr.h +0 -0
  199. /package/lib/clang/{20 → 22}/include/avx10_2_512minmaxintrin.h +0 -0
  200. /package/lib/clang/{20 → 22}/include/avxneconvertintrin.h +0 -0
  201. /package/lib/clang/{20 → 22}/include/bmi2intrin.h +0 -0
  202. /package/lib/clang/{20 → 22}/include/builtins.h +0 -0
  203. /package/lib/clang/{20 → 22}/include/cet.h +0 -0
  204. /package/lib/clang/{20 → 22}/include/cetintrin.h +0 -0
  205. /package/lib/clang/{20 → 22}/include/cldemoteintrin.h +0 -0
  206. /package/lib/clang/{20 → 22}/include/clflushoptintrin.h +0 -0
  207. /package/lib/clang/{20 → 22}/include/clwbintrin.h +0 -0
  208. /package/lib/clang/{20 → 22}/include/clzerointrin.h +0 -0
  209. /package/lib/clang/{20 → 22}/include/cmpccxaddintrin.h +0 -0
  210. /package/lib/clang/{20 → 22}/include/crc32intrin.h +0 -0
  211. /package/lib/clang/{20 → 22}/include/cuda_wrappers/algorithm +0 -0
  212. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/basic_string.h +0 -0
  213. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  214. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  215. /package/lib/clang/{20 → 22}/include/cuda_wrappers/complex +0 -0
  216. /package/lib/clang/{20 → 22}/include/cuda_wrappers/new +0 -0
  217. /package/lib/clang/{20 → 22}/include/enqcmdintrin.h +0 -0
  218. /package/lib/clang/{20 → 22}/include/fxsrintrin.h +0 -0
  219. /package/lib/clang/{20 → 22}/include/hexagon_circ_brev_intrinsics.h +0 -0
  220. /package/lib/clang/{20 → 22}/include/hexagon_protos.h +0 -0
  221. /package/lib/clang/{20 → 22}/include/hresetintrin.h +0 -0
  222. /package/lib/clang/{20 → 22}/include/htmintrin.h +0 -0
  223. /package/lib/clang/{20 → 22}/include/htmxlintrin.h +0 -0
  224. /package/lib/clang/{20 → 22}/include/ia32intrin.h +0 -0
  225. /package/lib/clang/{20 → 22}/include/intrin0.h +0 -0
  226. /package/lib/clang/{20 → 22}/include/inttypes.h +0 -0
  227. /package/lib/clang/{20 → 22}/include/invpcidintrin.h +0 -0
  228. /package/lib/clang/{20 → 22}/include/iso646.h +0 -0
  229. /package/lib/clang/{20 → 22}/include/larchintrin.h +0 -0
  230. /package/lib/clang/{20 → 22}/include/limits.h +0 -0
  231. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload.h +0 -0
  232. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload_device.h +0 -0
  233. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload_host.h +0 -0
  234. /package/lib/clang/{20 → 22}/include/lsxintrin.h +0 -0
  235. /package/lib/clang/{20 → 22}/include/lwpintrin.h +0 -0
  236. /package/lib/clang/{20 → 22}/include/mm3dnow.h +0 -0
  237. /package/lib/clang/{20 → 22}/include/mm_malloc.h +0 -0
  238. /package/lib/clang/{20 → 22}/include/movdirintrin.h +0 -0
  239. /package/lib/clang/{20 → 22}/include/msa.h +0 -0
  240. /package/lib/clang/{20 → 22}/include/mwaitxintrin.h +0 -0
  241. /package/lib/clang/{20 → 22}/include/nmmintrin.h +0 -0
  242. /package/lib/clang/{20 → 22}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  243. /package/lib/clang/{20 → 22}/include/openmp_wrappers/cmath +0 -0
  244. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex +0 -0
  245. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex.h +0 -0
  246. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex_cmath.h +0 -0
  247. /package/lib/clang/{20 → 22}/include/openmp_wrappers/math.h +0 -0
  248. /package/lib/clang/{20 → 22}/include/openmp_wrappers/new +0 -0
  249. /package/lib/clang/{20 → 22}/include/pconfigintrin.h +0 -0
  250. /package/lib/clang/{20 → 22}/include/pkuintrin.h +0 -0
  251. /package/lib/clang/{20 → 22}/include/popcntintrin.h +0 -0
  252. /package/lib/clang/{20 → 22}/include/ppc_wrappers/bmi2intrin.h +0 -0
  253. /package/lib/clang/{20 → 22}/include/ppc_wrappers/bmiintrin.h +0 -0
  254. /package/lib/clang/{20 → 22}/include/ppc_wrappers/emmintrin.h +0 -0
  255. /package/lib/clang/{20 → 22}/include/ppc_wrappers/immintrin.h +0 -0
  256. /package/lib/clang/{20 → 22}/include/ppc_wrappers/mm_malloc.h +0 -0
  257. /package/lib/clang/{20 → 22}/include/ppc_wrappers/mmintrin.h +0 -0
  258. /package/lib/clang/{20 → 22}/include/ppc_wrappers/nmmintrin.h +0 -0
  259. /package/lib/clang/{20 → 22}/include/ppc_wrappers/pmmintrin.h +0 -0
  260. /package/lib/clang/{20 → 22}/include/ppc_wrappers/smmintrin.h +0 -0
  261. /package/lib/clang/{20 → 22}/include/ppc_wrappers/tmmintrin.h +0 -0
  262. /package/lib/clang/{20 → 22}/include/ppc_wrappers/x86gprintrin.h +0 -0
  263. /package/lib/clang/{20 → 22}/include/ppc_wrappers/x86intrin.h +0 -0
  264. /package/lib/clang/{20 → 22}/include/ppc_wrappers/xmmintrin.h +0 -0
  265. /package/lib/clang/{20 → 22}/include/prfchiintrin.h +0 -0
  266. /package/lib/clang/{20 → 22}/include/ptwriteintrin.h +0 -0
  267. /package/lib/clang/{20 → 22}/include/raointintrin.h +0 -0
  268. /package/lib/clang/{20 → 22}/include/rdpruintrin.h +0 -0
  269. /package/lib/clang/{20 → 22}/include/rdseedintrin.h +0 -0
  270. /package/lib/clang/{20 → 22}/include/riscv_bitmanip.h +0 -0
  271. /package/lib/clang/{20 → 22}/include/riscv_crypto.h +0 -0
  272. /package/lib/clang/{20 → 22}/include/riscv_ntlh.h +0 -0
  273. /package/lib/clang/{20 → 22}/include/rtmintrin.h +0 -0
  274. /package/lib/clang/{20 → 22}/include/s390intrin.h +0 -0
  275. /package/lib/clang/{20 → 22}/include/serializeintrin.h +0 -0
  276. /package/lib/clang/{20 → 22}/include/sgxintrin.h +0 -0
  277. /package/lib/clang/{20 → 22}/include/sha512intrin.h +0 -0
  278. /package/lib/clang/{20 → 22}/include/sm3intrin.h +0 -0
  279. /package/lib/clang/{20 → 22}/include/sm4intrin.h +0 -0
  280. /package/lib/clang/{20 → 22}/include/stdalign.h +0 -0
  281. /package/lib/clang/{20 → 22}/include/stdarg.h +0 -0
  282. /package/lib/clang/{20 → 22}/include/stdatomic.h +0 -0
  283. /package/lib/clang/{20 → 22}/include/stdbool.h +0 -0
  284. /package/lib/clang/{20 → 22}/include/stdckdint.h +0 -0
  285. /package/lib/clang/{20 → 22}/include/stddef.h +0 -0
  286. /package/lib/clang/{20 → 22}/include/stdnoreturn.h +0 -0
  287. /package/lib/clang/{20 → 22}/include/tbmintrin.h +0 -0
  288. /package/lib/clang/{20 → 22}/include/tgmath.h +0 -0
  289. /package/lib/clang/{20 → 22}/include/tsxldtrkintrin.h +0 -0
  290. /package/lib/clang/{20 → 22}/include/uintrintrin.h +0 -0
  291. /package/lib/clang/{20 → 22}/include/unwind.h +0 -0
  292. /package/lib/clang/{20 → 22}/include/usermsrintrin.h +0 -0
  293. /package/lib/clang/{20 → 22}/include/vadefs.h +0 -0
  294. /package/lib/clang/{20 → 22}/include/varargs.h +0 -0
  295. /package/lib/clang/{20 → 22}/include/velintrin.h +0 -0
  296. /package/lib/clang/{20 → 22}/include/velintrin_approx.h +0 -0
  297. /package/lib/clang/{20 → 22}/include/velintrin_gen.h +0 -0
  298. /package/lib/clang/{20 → 22}/include/vpclmulqdqintrin.h +0 -0
  299. /package/lib/clang/{20 → 22}/include/waitpkgintrin.h +0 -0
  300. /package/lib/clang/{20 → 22}/include/wasm_simd128.h +0 -0
  301. /package/lib/clang/{20 → 22}/include/wbnoinvdintrin.h +0 -0
  302. /package/lib/clang/{20 → 22}/include/wmmintrin.h +0 -0
  303. /package/lib/clang/{20 → 22}/include/xsavecintrin.h +0 -0
  304. /package/lib/clang/{20 → 22}/include/xsaveintrin.h +0 -0
  305. /package/lib/clang/{20 → 22}/include/xsaveoptintrin.h +0 -0
  306. /package/lib/clang/{20 → 22}/include/xsavesintrin.h +0 -0
  307. /package/lib/clang/{20 → 22}/include/xtestintrin.h +0 -0
  308. /package/lib/clang/{20 → 22}/include/yvals_core.h +0 -0
  309. /package/lib/clang/{20 → 22}/include/zos_wrappers/builtins.h +0 -0
@@ -0,0 +1,131 @@
1
+ /*===---- amo.h - PowerPC Atomic Memory Operations ------------------------===*\
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 header provides compatibility for GCC's AMO functions.
10
+ * The functions here call Clang's underlying AMO builtins.
11
+ */
12
+
13
+ #ifndef _AMO_H
14
+ #define _AMO_H
15
+
16
+ #include <stdint.h>
17
+
18
+ #ifdef __cplusplus
19
+ extern "C" {
20
+ #endif
21
+
22
+ /* AMO Load Operation Codes (FC values) */
23
+ enum {
24
+ _AMO_LD_ADD = 0x00, /* Fetch and Add */
25
+ _AMO_LD_XOR = 0x01, /* Fetch and XOR */
26
+ _AMO_LD_IOR = 0x02, /* Fetch and OR */
27
+ _AMO_LD_AND = 0x03, /* Fetch and AND */
28
+ _AMO_LD_UMAX = 0x04, /* Fetch and Maximum Unsigned */
29
+ _AMO_LD_SMAX = 0x05, /* Fetch and Maximum Signed */
30
+ _AMO_LD_UMIN = 0x06, /* Fetch and Minimum Unsigned */
31
+ _AMO_LD_SMIN = 0x07, /* Fetch and Minimum Signed */
32
+ _AMO_LD_SWAP = 0x08 /* Swap */
33
+ };
34
+
35
+ /* 32-bit unsigned AMO load operations */
36
+ static inline uint32_t amo_lwat_add(uint32_t *ptr, uint32_t val) {
37
+ return __builtin_amo_lwat(ptr, val, _AMO_LD_ADD);
38
+ }
39
+
40
+ static inline uint32_t amo_lwat_xor(uint32_t *ptr, uint32_t val) {
41
+ return __builtin_amo_lwat(ptr, val, _AMO_LD_XOR);
42
+ }
43
+
44
+ static inline uint32_t amo_lwat_ior(uint32_t *ptr, uint32_t val) {
45
+ return __builtin_amo_lwat(ptr, val, _AMO_LD_IOR);
46
+ }
47
+
48
+ static inline uint32_t amo_lwat_and(uint32_t *ptr, uint32_t val) {
49
+ return __builtin_amo_lwat(ptr, val, _AMO_LD_AND);
50
+ }
51
+
52
+ static inline uint32_t amo_lwat_umax(uint32_t *ptr, uint32_t val) {
53
+ return __builtin_amo_lwat(ptr, val, _AMO_LD_UMAX);
54
+ }
55
+
56
+ static inline uint32_t amo_lwat_umin(uint32_t *ptr, uint32_t val) {
57
+ return __builtin_amo_lwat(ptr, val, _AMO_LD_UMIN);
58
+ }
59
+
60
+ static inline uint32_t amo_lwat_swap(uint32_t *ptr, uint32_t val) {
61
+ return __builtin_amo_lwat(ptr, val, _AMO_LD_SWAP);
62
+ }
63
+
64
+ /* 32-bit signed AMO load operations */
65
+ static inline int32_t amo_lwat_sadd(int32_t *ptr, int32_t val) {
66
+ return __builtin_amo_lwat_s(ptr, val, _AMO_LD_ADD);
67
+ }
68
+
69
+ static inline int32_t amo_lwat_smax(int32_t *ptr, int32_t val) {
70
+ return __builtin_amo_lwat_s(ptr, val, _AMO_LD_SMAX);
71
+ }
72
+
73
+ static inline int32_t amo_lwat_smin(int32_t *ptr, int32_t val) {
74
+ return __builtin_amo_lwat_s(ptr, val, _AMO_LD_SMIN);
75
+ }
76
+
77
+ static inline int32_t amo_lwat_sswap(int32_t *ptr, int32_t val) {
78
+ return __builtin_amo_lwat_s(ptr, val, _AMO_LD_SWAP);
79
+ }
80
+
81
+ /* 64-bit unsigned AMO load operations */
82
+ static inline uint64_t amo_ldat_add(uint64_t *ptr, uint64_t val) {
83
+ return __builtin_amo_ldat(ptr, val, _AMO_LD_ADD);
84
+ }
85
+
86
+ static inline uint64_t amo_ldat_xor(uint64_t *ptr, uint64_t val) {
87
+ return __builtin_amo_ldat(ptr, val, _AMO_LD_XOR);
88
+ }
89
+
90
+ static inline uint64_t amo_ldat_ior(uint64_t *ptr, uint64_t val) {
91
+ return __builtin_amo_ldat(ptr, val, _AMO_LD_IOR);
92
+ }
93
+
94
+ static inline uint64_t amo_ldat_and(uint64_t *ptr, uint64_t val) {
95
+ return __builtin_amo_ldat(ptr, val, _AMO_LD_AND);
96
+ }
97
+
98
+ static inline uint64_t amo_ldat_umax(uint64_t *ptr, uint64_t val) {
99
+ return __builtin_amo_ldat(ptr, val, _AMO_LD_UMAX);
100
+ }
101
+
102
+ static inline uint64_t amo_ldat_umin(uint64_t *ptr, uint64_t val) {
103
+ return __builtin_amo_ldat(ptr, val, _AMO_LD_UMIN);
104
+ }
105
+
106
+ static inline uint64_t amo_ldat_swap(uint64_t *ptr, uint64_t val) {
107
+ return __builtin_amo_ldat(ptr, val, _AMO_LD_SWAP);
108
+ }
109
+
110
+ /* 64-bit signed AMO load operations */
111
+ static inline int64_t amo_ldat_sadd(int64_t *ptr, int64_t val) {
112
+ return __builtin_amo_ldat_s(ptr, val, _AMO_LD_ADD);
113
+ }
114
+
115
+ static inline int64_t amo_ldat_smax(int64_t *ptr, int64_t val) {
116
+ return __builtin_amo_ldat_s(ptr, val, _AMO_LD_SMAX);
117
+ }
118
+
119
+ static inline int64_t amo_ldat_smin(int64_t *ptr, int64_t val) {
120
+ return __builtin_amo_ldat_s(ptr, val, _AMO_LD_SMIN);
121
+ }
122
+
123
+ static inline int64_t amo_ldat_sswap(int64_t *ptr, int64_t val) {
124
+ return __builtin_amo_ldat_s(ptr, val, _AMO_LD_SWAP);
125
+ }
126
+
127
+ #ifdef __cplusplus
128
+ }
129
+ #endif
130
+
131
+ #endif /* _AMO_H */
@@ -16,7 +16,7 @@
16
16
 
17
17
  #define __DEFAULT_FN_ATTRS_AVX512 \
18
18
  __attribute__((__always_inline__, __nodebug__, \
19
- __target__("amx-avx512,avx10.2-512")))
19
+ __target__("amx-avx512,avx10.2"), __min_vector_width__(512)))
20
20
 
21
21
  /// Moves a row from a tile register to a zmm destination register, converting
22
22
  /// the int32 source elements to fp32. The row of the tile is selected by a
@@ -52,6 +52,40 @@
52
52
  /// The row of the source tile
53
53
  #define _tile_cvtrowd2ps(tsrc, row) __builtin_ia32_tcvtrowd2ps(tsrc, row)
54
54
 
55
+ /// Moves a row from a tile register to a zmm destination register, converting
56
+ /// the int32 source elements to fp32. The row of the tile is selected by a
57
+ /// 8b immediate value.
58
+ ///
59
+ /// \headerfile <x86intrin.h>
60
+ ///
61
+ /// \code
62
+ /// __m512i _tile_cvtrowd2psi(__tile tsrc, const unsigned int imm8);
63
+ /// \endcode
64
+ ///
65
+ /// \code{.operation}
66
+ /// VL := 512
67
+ /// VL_bytes := VL >> 3
68
+ /// row_index := imm8 & 0x3f
69
+ /// row_chunk := (imm8 >> 6) * VL_bytes
70
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
71
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
72
+ /// dst.dword[i] := 0
73
+ /// ELSE
74
+ /// dst.f32[i] := CONVERT_INT32_TO_FP32(tsrc.row[row_index].dword[row_chunk/4+i], RNE)
75
+ /// FI
76
+ /// ENDFOR
77
+ /// dst[MAX_VL-1:VL] := 0
78
+ /// zero_tileconfig_start()
79
+ /// \endcode
80
+ ///
81
+ /// This intrinsic corresponds to the \c TCVTROWD2PS instruction.
82
+ ///
83
+ /// \param tsrc
84
+ /// The source tile. Max size is 1024 Bytes.
85
+ /// \param imm8
86
+ /// The row of the source tile
87
+ #define _tile_cvtrowd2psi(tsrc, imm8) __builtin_ia32_tcvtrowd2psi(tsrc, imm8)
88
+
55
89
  /// Moves a row from a tile register to a zmm destination register, converting
56
90
  /// the fp32 source elements to bf16. It places the resulting bf16 elements
57
91
  /// in the high 16 bits within each dword. The row of the tile is selected
@@ -89,6 +123,43 @@
89
123
  #define _tile_cvtrowps2bf16h(tsrc, row) \
90
124
  __builtin_ia32_tcvtrowps2bf16h(tsrc, row)
91
125
 
126
+ /// Moves a row from a tile register to a zmm destination register, converting
127
+ /// the fp32 source elements to bf16. It places the resulting bf16 elements
128
+ /// in the high 16 bits within each dword. The row of the tile is selected
129
+ /// by a 8b immediate value.
130
+ ///
131
+ /// \headerfile <x86intrin.h>
132
+ ///
133
+ /// \code
134
+ /// __m512i _tile_cvtrowps2bf16hi(__tile tsrc, const unsigned int imm8);
135
+ /// \endcode
136
+ ///
137
+ /// \code{.operation}
138
+ /// VL := 512
139
+ /// VL_bytes := VL >> 3
140
+ /// row_index := imm8 & 0x3f
141
+ /// row_chunk := (imm8 >> 6) * VL_bytes
142
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
143
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
144
+ /// dst.dword[i] := 0
145
+ /// ELSE
146
+ /// dst.word[2*i+0] := 0
147
+ /// dst.bf16[2*i+1] := CONVERT_FP32_TO_BF16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
148
+ /// FI
149
+ /// ENDFOR
150
+ /// dst[MAX_VL-1:VL] := 0
151
+ /// zero_tileconfig_start()
152
+ /// \endcode
153
+ ///
154
+ /// This intrinsic corresponds to the \c TCVTROWPS2BF16H instruction.
155
+ ///
156
+ /// \param tsrc
157
+ /// The source tile. Max size is 1024 Bytes.
158
+ /// \param imm8
159
+ /// The the row of the source tile.
160
+ #define _tile_cvtrowps2bf16hi(tsrc, imm8) \
161
+ __builtin_ia32_tcvtrowps2bf16hi(tsrc, imm8)
162
+
92
163
  /// Moves a row from a tile register to a zmm destination register, converting
93
164
  /// the fp32 source elements to bf16. It places the resulting bf16 elements
94
165
  /// in the low 16 bits within each dword. The row of the tile is selected
@@ -126,6 +197,43 @@
126
197
  #define _tile_cvtrowps2bf16l(tsrc, row) \
127
198
  __builtin_ia32_tcvtrowps2bf16l(tsrc, row)
128
199
 
200
+ /// Moves a row from a tile register to a zmm destination register, converting
201
+ /// the fp32 source elements to bf16. It places the resulting bf16 elements
202
+ /// in the low 16 bits within each dword. The row of the tile is selected
203
+ /// by a 8b immediate value.
204
+ ///
205
+ /// \headerfile <x86intrin.h>
206
+ ///
207
+ /// \code
208
+ /// __m512i _tile_cvtrowps2bf16li(__tile tsrc, const unsigned int imm8);
209
+ /// \endcode
210
+ ///
211
+ /// \code{.operation}
212
+ /// VL := 512
213
+ /// VL_bytes := VL >> 3
214
+ /// row_index := imm8 & 0x3f
215
+ /// row_chunk := (imm8 >> 6) * VL_bytes
216
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
217
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
218
+ /// dst.dword[i] := 0
219
+ /// ELSE
220
+ /// dst.word[2*i+1] := 0
221
+ /// dst.bf16[2*i+0] := CONVERT_FP32_TO_BF16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
222
+ /// FI
223
+ /// ENDFOR
224
+ /// dst[MAX_VL-1:VL] := 0
225
+ /// zero_tileconfig_start()
226
+ /// \endcode
227
+ ///
228
+ /// This intrinsic corresponds to the \c TCVTROWPS2BF16L instruction.
229
+ ///
230
+ /// \param tsrc
231
+ /// The source tile. Max size is 1024 Bytes.
232
+ /// \param imm8
233
+ /// The the row of the source tile.
234
+ #define _tile_cvtrowps2bf16li(tsrc, imm8) \
235
+ __builtin_ia32_tcvtrowps2bf16li(tsrc, imm8)
236
+
129
237
  /// Moves a row from a tile register to a zmm destination register, converting
130
238
  /// the fp32 source elements to fp16. It places the resulting fp16 elements
131
239
  /// in the high 16 bits within each dword. The row of the tile is selected
@@ -162,6 +270,43 @@
162
270
  /// The the row of the source tile.
163
271
  #define _tile_cvtrowps2phh(tsrc, row) __builtin_ia32_tcvtrowps2phh(tsrc, row)
164
272
 
273
+ /// Moves a row from a tile register to a zmm destination register, converting
274
+ /// the fp32 source elements to fp16. It places the resulting fp16 elements
275
+ /// in the high 16 bits within each dword. The row of the tile is selected
276
+ /// by a 8b immediate value.
277
+ ///
278
+ /// \headerfile <x86intrin.h>
279
+ ///
280
+ /// \code
281
+ /// __m512i _tile_cvtrowps2phhi(__tile tsrc, constunsigned int imm8);
282
+ /// \endcode
283
+ ///
284
+ /// \code{.operation}
285
+ /// VL := 512
286
+ /// VL_bytes := VL >> 3
287
+ /// row_index := imm8 & 0x3f
288
+ /// row_chunk := (imm8 >> 6) * VL_bytes
289
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
290
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
291
+ /// dst.dword[i] := 0
292
+ /// ELSE
293
+ /// dst.word[2*i+0] := 0
294
+ /// dst.fp16[2*i+1] := CONVERT_FP32_TO_FP16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
295
+ /// FI
296
+ /// ENDFOR
297
+ /// dst[MAX_VL-1:VL] := 0
298
+ /// zero_tileconfig_start()
299
+ /// \endcode
300
+ ///
301
+ /// This intrinsic corresponds to the \c TCVTROWPS2PHH instruction.
302
+ ///
303
+ /// \param tsrc
304
+ /// The source tile. Max size is 1024 Bytes.
305
+ /// \param imm8
306
+ /// The the row of the source tile.
307
+ #define _tile_cvtrowps2phhi(tsrc, imm8) \
308
+ __builtin_ia32_tcvtrowps2phhi(tsrc, imm8)
309
+
165
310
  /// Moves a row from a tile register to a zmm destination register, converting
166
311
  /// the fp32 source elements to fp16. It places the resulting fp16 elements
167
312
  /// in the low 16 bits within each dword. The row of the tile is selected
@@ -198,6 +343,43 @@
198
343
  /// The the row of the source tile.
199
344
  #define _tile_cvtrowps2phl(tsrc, row) __builtin_ia32_tcvtrowps2phl(tsrc, row)
200
345
 
346
+ /// Moves a row from a tile register to a zmm destination register, converting
347
+ /// the fp32 source elements to fp16. It places the resulting fp16 elements
348
+ /// in the low 16 bits within each dword. The row of the tile is selected
349
+ /// by a 8b immediate value.
350
+ ///
351
+ /// \headerfile <x86intrin.h>
352
+ ///
353
+ /// \code
354
+ /// __m512i _tile_cvtrowps2phli(__tile tsrc, const unsigned int imm8);
355
+ /// \endcode
356
+ ///
357
+ /// \code{.operation}
358
+ /// VL := 512
359
+ /// VL_bytes := VL >> 3
360
+ /// row_index := imm8 & 0x3f
361
+ /// row_chunk := (imm8 >> 6) * VL_bytes
362
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
363
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
364
+ /// dst.dword[i] := 0
365
+ /// ELSE
366
+ /// dst.word[2*i+1] := 0
367
+ /// dst.fp16[2*i+0] := CONVERT_FP32_TO_FP16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
368
+ /// FI
369
+ /// ENDFOR
370
+ /// dst[MAX_VL-1:VL] := 0
371
+ /// zero_tileconfig_start()
372
+ /// \endcode
373
+ ///
374
+ /// This intrinsic corresponds to the \c TCVTROWPS2PHL instruction.
375
+ ///
376
+ /// \param tsrc
377
+ /// The source tile. Max size is 1024 Bytes.
378
+ /// \param imm8
379
+ /// The the row of the source tile.
380
+ #define _tile_cvtrowps2phli(tsrc, imm8) \
381
+ __builtin_ia32_tcvtrowps2phli(tsrc, imm8)
382
+
201
383
  /// Move one row of a tile data to a v16f32 data.
202
384
  /// The row of the tile is selected by a 32b GPR.
203
385
  ///
@@ -228,7 +410,39 @@
228
410
  /// dst.byte[i] := a.row[row_index].byte[row_chunk+i]
229
411
  /// ENDFOR
230
412
  /// \endcode
231
- #define _tile_movrow(a, b) __builtin_ia32_tilemovrow(a, b)
413
+ #define _tile_movrow(a, b) ((__m512i)__builtin_ia32_tilemovrow(a, b))
414
+
415
+ /// Move one row of a tile data to a v16f32 data.
416
+ /// The row of the tile is selected by a 8b immediate value.
417
+ ///
418
+ /// \headerfile <immintrin.h>
419
+ ///
420
+ /// \code
421
+ /// __m512 _tile_movrowi(__tile a, const unsigned b);
422
+ /// \endcode
423
+ ///
424
+ /// This intrinsic corresponds to the <c> TILEMOVROW </c> instruction.
425
+ ///
426
+ /// \param a
427
+ /// The 1st source tile. Max size is 1024 Bytes.
428
+ /// \param b
429
+ /// The 2nd source r32. Size is 4 Bytes.
430
+ /// \returns
431
+ /// The destination v16f32 data. Size is 64 Bytes.
432
+ ///
433
+ /// \code{.operation}
434
+ /// VL := 512
435
+ /// VL_bytes := VL>>3
436
+ /// row_index := b&0x3f
437
+ /// row_chunk := (b>>6) * VL_bytes
438
+ /// FOR i := 0 TO (VL_bytes-1)
439
+ /// IF (row_chunk + i >= a.colsb)
440
+ /// dst.byte[i] := 0
441
+ /// ELSE
442
+ /// dst.byte[i] := a.row[row_index].byte[row_chunk+i]
443
+ /// ENDFOR
444
+ /// \endcode
445
+ #define _tile_movrowi(a, b) ((__m512i)__builtin_ia32_tilemovrowi(a, b))
232
446
 
233
447
  /// This is internal intrinsic. C/C++ user should avoid calling it directly.
234
448
 
@@ -135,9 +135,8 @@ _tile_cmmrlfp16ps_internal(unsigned short m, unsigned short n, unsigned short k,
135
135
  /// The 1st source tile. Max size is 1024 Bytes.
136
136
  /// \param src1
137
137
  /// The 2nd source tile. Max size is 1024 Bytes.
138
- __DEFAULT_FN_ATTRS_COMPLEX
139
- static void __tile_cmmimfp16ps(__tile1024i *dst, __tile1024i src0,
140
- __tile1024i src1) {
138
+ static __inline__ void __DEFAULT_FN_ATTRS_COMPLEX
139
+ __tile_cmmimfp16ps(__tile1024i *dst, __tile1024i src0, __tile1024i src1) {
141
140
  dst->tile = _tile_cmmimfp16ps_internal(src0.row, src1.col, src0.col,
142
141
  dst->tile, src0.tile, src1.tile);
143
142
  }
@@ -158,9 +157,8 @@ static void __tile_cmmimfp16ps(__tile1024i *dst, __tile1024i src0,
158
157
  /// The 1st source tile. Max size is 1024 Bytes.
159
158
  /// \param src1
160
159
  /// The 2nd source tile. Max size is 1024 Bytes.
161
- __DEFAULT_FN_ATTRS_COMPLEX
162
- static void __tile_cmmrlfp16ps(__tile1024i *dst, __tile1024i src0,
163
- __tile1024i src1) {
160
+ static __inline__ void __DEFAULT_FN_ATTRS_COMPLEX
161
+ __tile_cmmrlfp16ps(__tile1024i *dst, __tile1024i src0, __tile1024i src1) {
164
162
  dst->tile = _tile_cmmrlfp16ps_internal(src0.row, src1.col, src0.col,
165
163
  dst->tile, src0.tile, src1.tile);
166
164
  }
@@ -230,8 +230,6 @@ static __inline__ void __DEFAULT_FN_ATTRS_TILE _tile_release(void) {
230
230
  /// bytes. Since there is no 2D type in llvm IR, we use vector type to
231
231
  /// represent 2D tile and the fixed size is maximum amx tile register size.
232
232
  typedef int _tile1024i __attribute__((__vector_size__(1024), __aligned__(64)));
233
- typedef int _tile1024i_1024a
234
- __attribute__((__vector_size__(1024), __aligned__(1024)));
235
233
 
236
234
  /// This is internal intrinsic. C/C++ user should avoid calling it directly.
237
235
  static __inline__ _tile1024i __DEFAULT_FN_ATTRS_TILE
@@ -0,0 +1,16 @@
1
+ //===----- andes_vector.h - Andes Vector definitions ----------------------===//
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
+ #ifndef _ANDES_VECTOR_H_
10
+ #define _ANDES_VECTOR_H_
11
+
12
+ #include "riscv_vector.h"
13
+
14
+ #pragma clang riscv intrinsic andes_vector
15
+
16
+ #endif //_ANDES_VECTOR_H_
@@ -29,47 +29,16 @@ extern "C" {
29
29
 
30
30
  /* 7 SYNCHRONIZATION, BARRIER AND HINT INTRINSICS */
31
31
  /* 7.3 Memory barriers */
32
- #if !__has_builtin(__dmb)
33
- #define __dmb(i) __builtin_arm_dmb(i)
34
- #endif
35
- #if !__has_builtin(__dsb)
36
- #define __dsb(i) __builtin_arm_dsb(i)
37
- #endif
38
- #if !__has_builtin(__isb)
39
- #define __isb(i) __builtin_arm_isb(i)
40
- #endif
32
+ void __dmb(unsigned int);
33
+ void __dsb(unsigned int);
34
+ void __isb(unsigned int);
41
35
 
42
36
  /* 7.4 Hints */
43
-
44
- #if !__has_builtin(__wfi)
45
- static __inline__ void __attribute__((__always_inline__, __nodebug__)) __wfi(void) {
46
- __builtin_arm_wfi();
47
- }
48
- #endif
49
-
50
- #if !__has_builtin(__wfe)
51
- static __inline__ void __attribute__((__always_inline__, __nodebug__)) __wfe(void) {
52
- __builtin_arm_wfe();
53
- }
54
- #endif
55
-
56
- #if !__has_builtin(__sev)
57
- static __inline__ void __attribute__((__always_inline__, __nodebug__)) __sev(void) {
58
- __builtin_arm_sev();
59
- }
60
- #endif
61
-
62
- #if !__has_builtin(__sevl)
63
- static __inline__ void __attribute__((__always_inline__, __nodebug__)) __sevl(void) {
64
- __builtin_arm_sevl();
65
- }
66
- #endif
67
-
68
- #if !__has_builtin(__yield)
69
- static __inline__ void __attribute__((__always_inline__, __nodebug__)) __yield(void) {
70
- __builtin_arm_yield();
71
- }
72
- #endif
37
+ void __wfi(void);
38
+ void __wfe(void);
39
+ void __sev(void);
40
+ void __sevl(void);
41
+ void __yield(void);
73
42
 
74
43
  #if defined(__ARM_32BIT_STATE) && __ARM_32BIT_STATE
75
44
  #define __dbg(t) __builtin_arm_dbg(t)
@@ -86,11 +55,37 @@ __chkfeat(uint64_t __features) {
86
55
  /* 7.5 Swap */
87
56
  static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
88
57
  __swp(uint32_t __x, volatile uint32_t *__p) {
89
- uint32_t v;
90
- do
91
- v = __builtin_arm_ldrex(__p);
92
- while (__builtin_arm_strex(__x, __p));
93
- return v;
58
+ uint32_t __v;
59
+ #if (__ARM_FEATURE_LDREX & 4) || __ARM_ARCH_6M__ || __linux__
60
+ /*
61
+ * Using this clang builtin is sensible in most situations. Where
62
+ * LDREX and STREX are available, it will compile to a loop using
63
+ * them. Otherwise it will compile to a libcall, requiring the
64
+ * runtime to provide that library function.
65
+ *
66
+ * That's unavoidable on Armv6-M, which has no atomic instructions
67
+ * at all (not even SWP), so in that situation the user will just
68
+ * have to provide an implementation of __atomic_exchange_4 (perhaps
69
+ * it would temporarily disable interrupts, and then do a separate
70
+ * load and store).
71
+ *
72
+ * We also use the libcall strategy on pre-Armv7 Linux targets, on
73
+ * the theory that Linux's runtime support library _will_ provide a
74
+ * suitable libcall, and it's better to use that than the SWP
75
+ * instruction because then when the same binary is run on a later
76
+ * Linux system the libcall implementation will use LDREX instead.
77
+ */
78
+ __v = __atomic_exchange_n(__p, __x, __ATOMIC_RELAXED);
79
+ #else
80
+ /*
81
+ * But for older Arm architectures when the target is not Linux, we
82
+ * fall back to using the SWP instruction via inline assembler. ACLE
83
+ * is clear that we're allowed to do this, but shouldn't do it if we
84
+ * have a better alternative.
85
+ */
86
+ __asm__("swp %0, %1, [%2]" : "=r"(__v) : "r"(__x), "r"(__p) : "memory");
87
+ #endif
88
+ return __v;
94
89
  }
95
90
 
96
91
  /* 7.6 Memory prefetch intrinsics */
@@ -103,6 +98,12 @@ __swp(uint32_t __x, volatile uint32_t *__p) {
103
98
  #else
104
99
  #define __pldx(access_kind, cache_level, retention_policy, addr) \
105
100
  __builtin_arm_prefetch(addr, access_kind, cache_level, retention_policy, 1)
101
+ #define __pldx_range(access_kind, retention_policy, length, count, stride, \
102
+ reuse_distance, addr) \
103
+ __builtin_arm_range_prefetch_x(addr, access_kind, retention_policy, length, \
104
+ count, stride, reuse_distance)
105
+ #define __pld_range(access_kind, retention_policy, metadata, addr) \
106
+ __builtin_arm_range_prefetch(addr, access_kind, retention_policy, metadata)
106
107
  #endif
107
108
 
108
109
  /* 7.6.2 Instruction prefetch */
@@ -826,28 +827,6 @@ __arm_st64bv0(void *__addr, data512_t __value) {
826
827
 
827
828
  #endif // __ARM_FEATURE_COPROC
828
829
 
829
- /* 17 Transactional Memory Extension (TME) Intrinsics */
830
- #if defined(__ARM_FEATURE_TME) && __ARM_FEATURE_TME
831
-
832
- #define _TMFAILURE_REASON 0x00007fffu
833
- #define _TMFAILURE_RTRY 0x00008000u
834
- #define _TMFAILURE_CNCL 0x00010000u
835
- #define _TMFAILURE_MEM 0x00020000u
836
- #define _TMFAILURE_IMP 0x00040000u
837
- #define _TMFAILURE_ERR 0x00080000u
838
- #define _TMFAILURE_SIZE 0x00100000u
839
- #define _TMFAILURE_NEST 0x00200000u
840
- #define _TMFAILURE_DBG 0x00400000u
841
- #define _TMFAILURE_INT 0x00800000u
842
- #define _TMFAILURE_TRIVIAL 0x01000000u
843
-
844
- #define __tstart() __builtin_arm_tstart()
845
- #define __tcommit() __builtin_arm_tcommit()
846
- #define __tcancel(__arg) __builtin_arm_tcancel(__arg)
847
- #define __ttest() __builtin_arm_ttest()
848
-
849
- #endif /* __ARM_FEATURE_TME */
850
-
851
830
  /* 8.7 Armv8.5-A Random number generation intrinsics */
852
831
  #if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
853
832
  static __inline__ int __attribute__((__always_inline__, __nodebug__, target("rand")))
@@ -872,8 +851,9 @@ __gcspopm() {
872
851
  return __builtin_arm_gcspopm(0);
873
852
  }
874
853
 
875
- static __inline__ const void * __attribute__((__always_inline__, __nodebug__, target("gcs")))
876
- __gcsss(const void *__stack) {
854
+ static __inline__ void *__attribute__((__always_inline__, __nodebug__,
855
+ target("gcs")))
856
+ __gcsss(void *__stack) {
877
857
  return __builtin_arm_gcsss(__stack);
878
858
  }
879
859
  #endif