llvm-runtime-resources-darwin 0.0.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 (350) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +33 -0
  3. package/include/__clang_cuda_builtin_vars.h +121 -0
  4. package/include/__clang_cuda_cmath.h +512 -0
  5. package/include/__clang_cuda_complex_builtins.h +229 -0
  6. package/include/__clang_cuda_device_functions.h +1572 -0
  7. package/include/__clang_cuda_intrinsics.h +994 -0
  8. package/include/__clang_cuda_libdevice_declares.h +468 -0
  9. package/include/__clang_cuda_math.h +353 -0
  10. package/include/__clang_cuda_math_forward_declares.h +284 -0
  11. package/include/__clang_cuda_runtime_wrapper.h +522 -0
  12. package/include/__clang_cuda_texture_intrinsics.h +1177 -0
  13. package/include/__clang_hip_cmath.h +848 -0
  14. package/include/__clang_hip_libdevice_declares.h +340 -0
  15. package/include/__clang_hip_math.h +1405 -0
  16. package/include/__clang_hip_runtime_wrapper.h +165 -0
  17. package/include/__clang_hip_stdlib.h +43 -0
  18. package/include/__clang_spirv_builtins.h +217 -0
  19. package/include/__float_float.h +176 -0
  20. package/include/__float_header_macro.h +12 -0
  21. package/include/__float_infinity_nan.h +20 -0
  22. package/include/__stdarg___gnuc_va_list.h +13 -0
  23. package/include/__stdarg___va_copy.h +12 -0
  24. package/include/__stdarg_header_macro.h +12 -0
  25. package/include/__stdarg_va_arg.h +22 -0
  26. package/include/__stdarg_va_copy.h +12 -0
  27. package/include/__stdarg_va_list.h +13 -0
  28. package/include/__stddef_header_macro.h +12 -0
  29. package/include/__stddef_max_align_t.h +27 -0
  30. package/include/__stddef_null.h +29 -0
  31. package/include/__stddef_nullptr_t.h +29 -0
  32. package/include/__stddef_offsetof.h +17 -0
  33. package/include/__stddef_ptrdiff_t.h +20 -0
  34. package/include/__stddef_rsize_t.h +20 -0
  35. package/include/__stddef_size_t.h +20 -0
  36. package/include/__stddef_unreachable.h +21 -0
  37. package/include/__stddef_wchar_t.h +28 -0
  38. package/include/__stddef_wint_t.h +15 -0
  39. package/include/__wmmintrin_aes.h +140 -0
  40. package/include/__wmmintrin_pclmul.h +48 -0
  41. package/include/adcintrin.h +165 -0
  42. package/include/adxintrin.h +107 -0
  43. package/include/altivec.h +19364 -0
  44. package/include/amdgpuintrin.h +191 -0
  45. package/include/ammintrin.h +183 -0
  46. package/include/amo.h +131 -0
  47. package/include/amxavx512intrin.h +596 -0
  48. package/include/amxcomplexintrin.h +167 -0
  49. package/include/amxfp16intrin.h +93 -0
  50. package/include/amxfp8intrin.h +230 -0
  51. package/include/amxintrin.h +492 -0
  52. package/include/amxmovrsintrin.h +48 -0
  53. package/include/amxtf32intrin.h +108 -0
  54. package/include/andes_vector.h +16 -0
  55. package/include/arm64intr.h +35 -0
  56. package/include/arm_acle.h +865 -0
  57. package/include/arm_bf16.h +20 -0
  58. package/include/arm_cde.h +410 -0
  59. package/include/arm_cmse.h +217 -0
  60. package/include/arm_fp16.h +596 -0
  61. package/include/arm_mve.h +19187 -0
  62. package/include/arm_neon.h +74183 -0
  63. package/include/arm_neon_sve_bridge.h +182 -0
  64. package/include/arm_sme.h +3741 -0
  65. package/include/arm_sve.h +32278 -0
  66. package/include/arm_vector_types.h +432 -0
  67. package/include/armintr.h +31 -0
  68. package/include/avx10_2_512bf16intrin.h +568 -0
  69. package/include/avx10_2_512convertintrin.h +322 -0
  70. package/include/avx10_2_512minmaxintrin.h +127 -0
  71. package/include/avx10_2_512niintrin.h +314 -0
  72. package/include/avx10_2_512satcvtdsintrin.h +307 -0
  73. package/include/avx10_2_512satcvtintrin.h +301 -0
  74. package/include/avx10_2bf16intrin.h +1094 -0
  75. package/include/avx10_2convertintrin.h +3257 -0
  76. package/include/avx10_2copyintrin.h +66 -0
  77. package/include/avx10_2minmaxintrin.h +232 -0
  78. package/include/avx10_2niintrin.h +409 -0
  79. package/include/avx10_2satcvtdsintrin.h +376 -0
  80. package/include/avx10_2satcvtintrin.h +312 -0
  81. package/include/avx2intrin.h +5191 -0
  82. package/include/avx512bf16intrin.h +292 -0
  83. package/include/avx512bitalgintrin.h +75 -0
  84. package/include/avx512bwintrin.h +1895 -0
  85. package/include/avx512cdintrin.h +112 -0
  86. package/include/avx512dqintrin.h +1350 -0
  87. package/include/avx512fintrin.h +9378 -0
  88. package/include/avx512fp16intrin.h +3355 -0
  89. package/include/avx512ifmaintrin.h +68 -0
  90. package/include/avx512ifmavlintrin.h +138 -0
  91. package/include/avx512vbmi2intrin.h +368 -0
  92. package/include/avx512vbmiintrin.h +98 -0
  93. package/include/avx512vbmivlintrin.h +179 -0
  94. package/include/avx512vlbf16intrin.h +527 -0
  95. package/include/avx512vlbitalgintrin.h +135 -0
  96. package/include/avx512vlbwintrin.h +3064 -0
  97. package/include/avx512vlcdintrin.h +202 -0
  98. package/include/avx512vldqintrin.h +1156 -0
  99. package/include/avx512vlfp16intrin.h +2090 -0
  100. package/include/avx512vlintrin.h +8083 -0
  101. package/include/avx512vlvbmi2intrin.h +710 -0
  102. package/include/avx512vlvnniintrin.h +313 -0
  103. package/include/avx512vlvp2intersectintrin.h +123 -0
  104. package/include/avx512vnniintrin.h +116 -0
  105. package/include/avx512vp2intersectintrin.h +77 -0
  106. package/include/avx512vpopcntdqintrin.h +62 -0
  107. package/include/avx512vpopcntdqvlintrin.h +105 -0
  108. package/include/avxifmaintrin.h +193 -0
  109. package/include/avxintrin.h +5064 -0
  110. package/include/avxneconvertintrin.h +484 -0
  111. package/include/avxvnniint16intrin.h +451 -0
  112. package/include/avxvnniint8intrin.h +454 -0
  113. package/include/avxvnniintrin.h +233 -0
  114. package/include/bmi2intrin.h +253 -0
  115. package/include/bmiintrin.h +604 -0
  116. package/include/builtins.h +19 -0
  117. package/include/cet.h +66 -0
  118. package/include/cetintrin.h +115 -0
  119. package/include/cldemoteintrin.h +36 -0
  120. package/include/clflushoptintrin.h +36 -0
  121. package/include/clwbintrin.h +38 -0
  122. package/include/clzerointrin.h +38 -0
  123. package/include/cmpccxaddintrin.h +70 -0
  124. package/include/cpuid.h +451 -0
  125. package/include/crc32intrin.h +100 -0
  126. package/include/cuda_wrappers/__utility/declval.h +28 -0
  127. package/include/cuda_wrappers/algorithm +116 -0
  128. package/include/cuda_wrappers/bits/basic_string.h +9 -0
  129. package/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  130. package/include/cuda_wrappers/bits/c++config.h +61 -0
  131. package/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  132. package/include/cuda_wrappers/cmath +44 -0
  133. package/include/cuda_wrappers/complex +90 -0
  134. package/include/cuda_wrappers/new +108 -0
  135. package/include/emmintrin.h +4940 -0
  136. package/include/enqcmdintrin.h +63 -0
  137. package/include/f16cintrin.h +176 -0
  138. package/include/float.h +48 -0
  139. package/include/fma4intrin.h +220 -0
  140. package/include/fmaintrin.h +826 -0
  141. package/include/fuzzer/FuzzedDataProvider.h +397 -0
  142. package/include/fxsrintrin.h +91 -0
  143. package/include/gfniintrin.h +238 -0
  144. package/include/gpuintrin.h +330 -0
  145. package/include/hexagon_circ_brev_intrinsics.h +298 -0
  146. package/include/hexagon_protos.h +8439 -0
  147. package/include/hexagon_types.h +2628 -0
  148. package/include/hresetintrin.h +49 -0
  149. package/include/htmintrin.h +212 -0
  150. package/include/htmxlintrin.h +345 -0
  151. package/include/hvx_hexagon_protos.h +5399 -0
  152. package/include/ia32intrin.h +863 -0
  153. package/include/immintrin.h +595 -0
  154. package/include/intrin.h +491 -0
  155. package/include/intrin0.h +256 -0
  156. package/include/inttypes.h +101 -0
  157. package/include/invpcidintrin.h +23 -0
  158. package/include/iso646.h +31 -0
  159. package/include/keylockerintrin.h +518 -0
  160. package/include/larchintrin.h +260 -0
  161. package/include/lasxintrin.h +3999 -0
  162. package/include/limits.h +133 -0
  163. package/include/llvm_libc_wrappers/assert.h +32 -0
  164. package/include/llvm_libc_wrappers/ctype.h +28 -0
  165. package/include/llvm_libc_wrappers/inttypes.h +32 -0
  166. package/include/llvm_libc_wrappers/stdio.h +52 -0
  167. package/include/llvm_libc_wrappers/stdlib.h +32 -0
  168. package/include/llvm_libc_wrappers/string.h +28 -0
  169. package/include/llvm_libc_wrappers/time.h +28 -0
  170. package/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  171. package/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  172. package/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  173. package/include/lsxintrin.h +3752 -0
  174. package/include/lwpintrin.h +136 -0
  175. package/include/lzcntintrin.h +109 -0
  176. package/include/mm3dnow.h +22 -0
  177. package/include/mm_malloc.h +67 -0
  178. package/include/mmintrin.h +1541 -0
  179. package/include/module.modulemap +360 -0
  180. package/include/movdirintrin.h +49 -0
  181. package/include/movrs_avx10_2_512intrin.h +98 -0
  182. package/include/movrs_avx10_2intrin.h +174 -0
  183. package/include/movrsintrin.h +59 -0
  184. package/include/msa.h +573 -0
  185. package/include/mwaitxintrin.h +62 -0
  186. package/include/nmmintrin.h +20 -0
  187. package/include/nvptxintrin.h +219 -0
  188. package/include/opencl-c-base.h +758 -0
  189. package/include/opencl-c.h +18676 -0
  190. package/include/openmp_wrappers/__clang_openmp_device_functions.h +104 -0
  191. package/include/openmp_wrappers/cmath +132 -0
  192. package/include/openmp_wrappers/complex +55 -0
  193. package/include/openmp_wrappers/complex.h +35 -0
  194. package/include/openmp_wrappers/complex_cmath.h +393 -0
  195. package/include/openmp_wrappers/math.h +61 -0
  196. package/include/openmp_wrappers/new +48 -0
  197. package/include/pconfigintrin.h +40 -0
  198. package/include/pkuintrin.h +34 -0
  199. package/include/pmmintrin.h +302 -0
  200. package/include/popcntintrin.h +59 -0
  201. package/include/ppc_wrappers/bmi2intrin.h +134 -0
  202. package/include/ppc_wrappers/bmiintrin.h +165 -0
  203. package/include/ppc_wrappers/emmintrin.h +2269 -0
  204. package/include/ppc_wrappers/immintrin.h +27 -0
  205. package/include/ppc_wrappers/mm_malloc.h +45 -0
  206. package/include/ppc_wrappers/mmintrin.h +1453 -0
  207. package/include/ppc_wrappers/nmmintrin.h +26 -0
  208. package/include/ppc_wrappers/pmmintrin.h +145 -0
  209. package/include/ppc_wrappers/smmintrin.h +683 -0
  210. package/include/ppc_wrappers/tmmintrin.h +453 -0
  211. package/include/ppc_wrappers/x86gprintrin.h +17 -0
  212. package/include/ppc_wrappers/x86intrin.h +28 -0
  213. package/include/ppc_wrappers/xmmintrin.h +1827 -0
  214. package/include/prfchiintrin.h +61 -0
  215. package/include/prfchwintrin.h +57 -0
  216. package/include/profile/InstrProfData.inc +1001 -0
  217. package/include/profile/instr_prof_interface.h +88 -0
  218. package/include/ptrauth.h +407 -0
  219. package/include/ptwriteintrin.h +37 -0
  220. package/include/raointintrin.h +203 -0
  221. package/include/rdpruintrin.h +57 -0
  222. package/include/rdseedintrin.h +105 -0
  223. package/include/riscv_bitmanip.h +195 -0
  224. package/include/riscv_corev_alu.h +128 -0
  225. package/include/riscv_crypto.h +170 -0
  226. package/include/riscv_mips.h +34 -0
  227. package/include/riscv_nds.h +89 -0
  228. package/include/riscv_ntlh.h +26 -0
  229. package/include/riscv_vector.h +422 -0
  230. package/include/rtmintrin.h +45 -0
  231. package/include/s390intrin.h +25 -0
  232. package/include/sanitizer/allocator_interface.h +106 -0
  233. package/include/sanitizer/asan_interface.h +348 -0
  234. package/include/sanitizer/common_interface_defs.h +544 -0
  235. package/include/sanitizer/coverage_interface.h +36 -0
  236. package/include/sanitizer/dfsan_interface.h +220 -0
  237. package/include/sanitizer/hwasan_interface.h +109 -0
  238. package/include/sanitizer/linux_syscall_hooks.h +3112 -0
  239. package/include/sanitizer/lsan_interface.h +89 -0
  240. package/include/sanitizer/msan_interface.h +135 -0
  241. package/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
  242. package/include/sanitizer/rtsan_interface.h +75 -0
  243. package/include/sanitizer/scudo_interface.h +38 -0
  244. package/include/sanitizer/tsan_interface.h +316 -0
  245. package/include/sanitizer/tsan_interface_atomic.h +223 -0
  246. package/include/sanitizer/ubsan_interface.h +34 -0
  247. package/include/serializeintrin.h +30 -0
  248. package/include/sgxintrin.h +60 -0
  249. package/include/sha512intrin.h +200 -0
  250. package/include/shaintrin.h +190 -0
  251. package/include/sifive_vector.h +174 -0
  252. package/include/sm3intrin.h +238 -0
  253. package/include/sm4evexintrin.h +32 -0
  254. package/include/sm4intrin.h +269 -0
  255. package/include/smmintrin.h +2352 -0
  256. package/include/spirvintrin.h +194 -0
  257. package/include/stdalign.h +24 -0
  258. package/include/stdarg.h +75 -0
  259. package/include/stdatomic.h +204 -0
  260. package/include/stdbool.h +39 -0
  261. package/include/stdckdint.h +42 -0
  262. package/include/stdcountof.h +15 -0
  263. package/include/stddef.h +139 -0
  264. package/include/stddefer.h +19 -0
  265. package/include/stdint.h +844 -0
  266. package/include/stdnoreturn.h +35 -0
  267. package/include/tbmintrin.h +128 -0
  268. package/include/tgmath.h +1368 -0
  269. package/include/tmmintrin.h +779 -0
  270. package/include/tsxldtrkintrin.h +56 -0
  271. package/include/uintrintrin.h +157 -0
  272. package/include/unwind.h +332 -0
  273. package/include/usermsrintrin.h +51 -0
  274. package/include/vadefs.h +51 -0
  275. package/include/vaesintrin.h +86 -0
  276. package/include/varargs.h +16 -0
  277. package/include/vecintrin.h +12868 -0
  278. package/include/velintrin.h +71 -0
  279. package/include/velintrin_approx.h +120 -0
  280. package/include/velintrin_gen.h +1257 -0
  281. package/include/vpclmulqdqintrin.h +30 -0
  282. package/include/waitpkgintrin.h +42 -0
  283. package/include/wasm_simd128.h +2143 -0
  284. package/include/wbnoinvdintrin.h +24 -0
  285. package/include/wmmintrin.h +23 -0
  286. package/include/x86gprintrin.h +49 -0
  287. package/include/x86intrin.h +35 -0
  288. package/include/xmmintrin.h +3175 -0
  289. package/include/xopintrin.h +780 -0
  290. package/include/xsavecintrin.h +84 -0
  291. package/include/xsaveintrin.h +63 -0
  292. package/include/xsaveoptintrin.h +34 -0
  293. package/include/xsavesintrin.h +44 -0
  294. package/include/xtestintrin.h +27 -0
  295. package/include/yvals_core.h +25 -0
  296. package/include/zos_wrappers/builtins.h +18 -0
  297. package/index.js +5 -0
  298. package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
  299. package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
  300. package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
  301. package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
  302. package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  303. package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  304. package/lib/darwin/libclang_rt.cc_kext.a +0 -0
  305. package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
  306. package/lib/darwin/libclang_rt.fuzzer_interceptors_ios.a +0 -0
  307. package/lib/darwin/libclang_rt.fuzzer_interceptors_iossim.a +0 -0
  308. package/lib/darwin/libclang_rt.fuzzer_interceptors_osx.a +0 -0
  309. package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
  310. package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
  311. package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
  312. package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
  313. package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
  314. package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
  315. package/lib/darwin/libclang_rt.ios.a +0 -0
  316. package/lib/darwin/libclang_rt.iossim.a +0 -0
  317. package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
  318. package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
  319. package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
  320. package/lib/darwin/libclang_rt.osx.a +0 -0
  321. package/lib/darwin/libclang_rt.profile_ios.a +0 -0
  322. package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
  323. package/lib/darwin/libclang_rt.profile_osx.a +0 -0
  324. package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
  325. package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
  326. package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
  327. package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
  328. package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
  329. package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
  330. package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
  331. package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
  332. package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
  333. package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
  334. package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
  335. package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
  336. package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
  337. package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
  338. package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
  339. package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
  340. package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  341. package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
  342. package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
  343. package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
  344. package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
  345. package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
  346. package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
  347. package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  348. package/package.json +40 -1
  349. package/share/asan_ignorelist.txt +14 -0
  350. package/share/cfi_ignorelist.txt +17 -0
@@ -0,0 +1,203 @@
1
+ /*===----------------------- raointintrin.h - RAOINT ------------------------===
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 __X86GPRINTRIN_H
11
+ #error "Never use <raointintrin.h> directly; include <x86gprintrin.h> instead."
12
+ #endif // __X86GPRINTRIN_H
13
+
14
+ #ifndef __RAOINTINTRIN_H
15
+ #define __RAOINTINTRIN_H
16
+
17
+ #define __DEFAULT_FN_ATTRS \
18
+ __attribute__((__always_inline__, __nodebug__, __target__("raoint")))
19
+
20
+ /// Atomically add a 32-bit value at memory operand \a __A and a 32-bit \a __B,
21
+ /// and store the result to the same memory location.
22
+ ///
23
+ /// This intrinsic should be used for contention or weak ordering. It may
24
+ /// result in bad performance for hot data used by single thread only.
25
+ ///
26
+ /// \headerfile <x86intrin.h>
27
+ ///
28
+ /// This intrinsic corresponds to the \c AADD instruction.
29
+ ///
30
+ /// \param __A
31
+ /// A pointer to a 32-bit memory location.
32
+ /// \param __B
33
+ /// A 32-bit integer value.
34
+ ///
35
+ /// \code{.operation}
36
+ /// MEM[__A+31:__A] := MEM[__A+31:__A] + __B[31:0]
37
+ /// \endcode
38
+ static __inline__ void __DEFAULT_FN_ATTRS _aadd_i32(int *__A, int __B) {
39
+ __builtin_ia32_aadd32((int *)__A, __B);
40
+ }
41
+
42
+ /// Atomically and a 32-bit value at memory operand \a __A and a 32-bit \a __B,
43
+ /// and store the result to the same memory location.
44
+ ///
45
+ /// This intrinsic should be used for contention or weak ordering. It may
46
+ /// result in bad performance for hot data used by single thread only.
47
+ ///
48
+ /// \headerfile <x86intrin.h>
49
+ ///
50
+ /// This intrinsic corresponds to the \c AAND instruction.
51
+ ///
52
+ /// \param __A
53
+ /// A pointer to a 32-bit memory location.
54
+ /// \param __B
55
+ /// A 32-bit integer value.
56
+ ///
57
+ /// \code{.operation}
58
+ /// MEM[__A+31:__A] := MEM[__A+31:__A] AND __B[31:0]
59
+ /// \endcode
60
+ static __inline__ void __DEFAULT_FN_ATTRS _aand_i32(int *__A, int __B) {
61
+ __builtin_ia32_aand32((int *)__A, __B);
62
+ }
63
+
64
+ /// Atomically or a 32-bit value at memory operand \a __A and a 32-bit \a __B,
65
+ /// and store the result to the same memory location.
66
+ ///
67
+ /// This intrinsic should be used for contention or weak ordering. It may
68
+ /// result in bad performance for hot data used by single thread only.
69
+ ///
70
+ /// \headerfile <x86intrin.h>
71
+ ///
72
+ /// This intrinsic corresponds to the \c AOR instruction.
73
+ ///
74
+ /// \param __A
75
+ /// A pointer to a 32-bit memory location.
76
+ /// \param __B
77
+ /// A 32-bit integer value.
78
+ ///
79
+ /// \code{.operation}
80
+ /// MEM[__A+31:__A] := MEM[__A+31:__A] OR __B[31:0]
81
+ /// \endcode
82
+ static __inline__ void __DEFAULT_FN_ATTRS _aor_i32(int *__A, int __B) {
83
+ __builtin_ia32_aor32((int *)__A, __B);
84
+ }
85
+
86
+ /// Atomically xor a 32-bit value at memory operand \a __A and a 32-bit \a __B,
87
+ /// and store the result to the same memory location.
88
+ ///
89
+ /// This intrinsic should be used for contention or weak ordering. It may
90
+ /// result in bad performance for hot data used by single thread only.
91
+ ///
92
+ /// \headerfile <x86intrin.h>
93
+ ///
94
+ /// This intrinsic corresponds to the \c AXOR instruction.
95
+ ///
96
+ /// \param __A
97
+ /// A pointer to a 32-bit memory location.
98
+ /// \param __B
99
+ /// A 32-bit integer value.
100
+ ///
101
+ /// \code{.operation}
102
+ /// MEM[__A+31:__A] := MEM[__A+31:__A] XOR __B[31:0]
103
+ /// \endcode
104
+ static __inline__ void __DEFAULT_FN_ATTRS _axor_i32(int *__A, int __B) {
105
+ __builtin_ia32_axor32((int *)__A, __B);
106
+ }
107
+
108
+ #ifdef __x86_64__
109
+ /// Atomically add a 64-bit value at memory operand \a __A and a 64-bit \a __B,
110
+ /// and store the result to the same memory location.
111
+ ///
112
+ /// This intrinsic should be used for contention or weak ordering. It may
113
+ /// result in bad performance for hot data used by single thread only.
114
+ ///
115
+ /// \headerfile <x86intrin.h>
116
+ ///
117
+ /// This intrinsic corresponds to the \c AADD instruction.
118
+ ///
119
+ /// \param __A
120
+ /// A pointer to a 64-bit memory location.
121
+ /// \param __B
122
+ /// A 64-bit integer value.
123
+ ///
124
+ /// \code{.operation}
125
+ /// MEM[__A+63:__A] := MEM[__A+63:__A] + __B[63:0]
126
+ /// \endcode
127
+ static __inline__ void __DEFAULT_FN_ATTRS _aadd_i64(long long *__A,
128
+ long long __B) {
129
+ __builtin_ia32_aadd64((long long *)__A, __B);
130
+ }
131
+
132
+ /// Atomically and a 64-bit value at memory operand \a __A and a 64-bit \a __B,
133
+ /// and store the result to the same memory location.
134
+ ///
135
+ /// This intrinsic should be used for contention or weak ordering. It may
136
+ /// result in bad performance for hot data used by single thread only.
137
+ ///
138
+ /// \headerfile <x86intrin.h>
139
+ ///
140
+ /// This intrinsic corresponds to the \c AAND instruction.
141
+ ///
142
+ /// \param __A
143
+ /// A pointer to a 64-bit memory location.
144
+ /// \param __B
145
+ /// A 64-bit integer value.
146
+ ///
147
+ /// \code{.operation}
148
+ /// MEM[__A+63:__A] := MEM[__A+63:__A] AND __B[63:0]
149
+ /// \endcode
150
+ static __inline__ void __DEFAULT_FN_ATTRS _aand_i64(long long *__A,
151
+ long long __B) {
152
+ __builtin_ia32_aand64((long long *)__A, __B);
153
+ }
154
+
155
+ /// Atomically or a 64-bit value at memory operand \a __A and a 64-bit \a __B,
156
+ /// and store the result to the same memory location.
157
+ ///
158
+ /// This intrinsic should be used for contention or weak ordering. It may
159
+ /// result in bad performance for hot data used by single thread only.
160
+ ///
161
+ /// \headerfile <x86intrin.h>
162
+ ///
163
+ /// This intrinsic corresponds to the \c AOR instruction.
164
+ ///
165
+ /// \param __A
166
+ /// A pointer to a 64-bit memory location.
167
+ /// \param __B
168
+ /// A 64-bit integer value.
169
+ ///
170
+ /// \code{.operation}
171
+ /// MEM[__A+63:__A] := MEM[__A+63:__A] OR __B[63:0]
172
+ /// \endcode
173
+ static __inline__ void __DEFAULT_FN_ATTRS _aor_i64(long long *__A,
174
+ long long __B) {
175
+ __builtin_ia32_aor64((long long *)__A, __B);
176
+ }
177
+
178
+ /// Atomically xor a 64-bit value at memory operand \a __A and a 64-bit \a __B,
179
+ /// and store the result to the same memory location.
180
+ ///
181
+ /// This intrinsic should be used for contention or weak ordering. It may
182
+ /// result in bad performance for hot data used by single thread only.
183
+ ///
184
+ /// \headerfile <x86intrin.h>
185
+ ///
186
+ /// This intrinsic corresponds to the \c AXOR instruction.
187
+ ///
188
+ /// \param __A
189
+ /// A pointer to a 64-bit memory location.
190
+ /// \param __B
191
+ /// A 64-bit integer value.
192
+ ///
193
+ /// \code{.operation}
194
+ /// MEM[__A+63:__A] := MEM[__A+63:__A] XOR __B[63:0]
195
+ /// \endcode
196
+ static __inline__ void __DEFAULT_FN_ATTRS _axor_i64(long long *__A,
197
+ long long __B) {
198
+ __builtin_ia32_axor64((long long *)__A, __B);
199
+ }
200
+ #endif // __x86_64__
201
+
202
+ #undef __DEFAULT_FN_ATTRS
203
+ #endif // __RAOINTINTRIN_H
@@ -0,0 +1,57 @@
1
+ /*===---- rdpruintrin.h - RDPRU intrinsics ---------------------------------===
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
+ #if !defined __X86INTRIN_H
11
+ #error "Never use <rdpruintrin.h> directly; include <x86intrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __RDPRUINTRIN_H
15
+ #define __RDPRUINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS \
19
+ __attribute__((__always_inline__, __nodebug__, __target__("rdpru")))
20
+
21
+
22
+ /// Reads the content of a processor register.
23
+ ///
24
+ /// \headerfile <x86intrin.h>
25
+ ///
26
+ /// This intrinsic corresponds to the <c> RDPRU </c> instruction.
27
+ ///
28
+ /// \param reg_id
29
+ /// A processor register identifier.
30
+ static __inline__ unsigned long long __DEFAULT_FN_ATTRS
31
+ __rdpru (int reg_id)
32
+ {
33
+ return __builtin_ia32_rdpru(reg_id);
34
+ }
35
+
36
+ #define __RDPRU_MPERF 0
37
+ #define __RDPRU_APERF 1
38
+
39
+ /// Reads the content of processor register MPERF.
40
+ ///
41
+ /// \headerfile <x86intrin.h>
42
+ ///
43
+ /// This intrinsic generates instruction <c> RDPRU </c> to read the value of
44
+ /// register MPERF.
45
+ #define __mperf() __builtin_ia32_rdpru(__RDPRU_MPERF)
46
+
47
+ /// Reads the content of processor register APERF.
48
+ ///
49
+ /// \headerfile <x86intrin.h>
50
+ ///
51
+ /// This intrinsic generates instruction <c> RDPRU </c> to read the value of
52
+ /// register APERF.
53
+ #define __aperf() __builtin_ia32_rdpru(__RDPRU_APERF)
54
+
55
+ #undef __DEFAULT_FN_ATTRS
56
+
57
+ #endif /* __RDPRUINTRIN_H */
@@ -0,0 +1,105 @@
1
+ /*===---- rdseedintrin.h - RDSEED intrinsics -------------------------------===
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 <rdseedintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __RDSEEDINTRIN_H
15
+ #define __RDSEEDINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("rdseed")))
19
+
20
+ /// Stores a hardware-generated 16-bit random value in the memory at \a __p.
21
+ ///
22
+ /// The random number generator complies with NIST SP800-90B and SP800-90C.
23
+ ///
24
+ /// \code{.operation}
25
+ /// IF HW_NRND_GEN.ready == 1
26
+ /// Store16(__p, HW_NRND_GEN.data)
27
+ /// result := 1
28
+ /// ELSE
29
+ /// Store16(__p, 0)
30
+ /// result := 0
31
+ /// END
32
+ /// \endcode
33
+ ///
34
+ /// \headerfile <immintrin.h>
35
+ ///
36
+ /// This intrinsic corresponds to the \c RDSEED instruction.
37
+ ///
38
+ /// \param __p
39
+ /// Pointer to memory for storing the 16-bit random number.
40
+ /// \returns 1 if a random number was generated, 0 if not.
41
+ static __inline__ int __DEFAULT_FN_ATTRS
42
+ _rdseed16_step(unsigned short *__p)
43
+ {
44
+ return (int) __builtin_ia32_rdseed16_step(__p);
45
+ }
46
+
47
+ /// Stores a hardware-generated 32-bit random value in the memory at \a __p.
48
+ ///
49
+ /// The random number generator complies with NIST SP800-90B and SP800-90C.
50
+ ///
51
+ /// \code{.operation}
52
+ /// IF HW_NRND_GEN.ready == 1
53
+ /// Store32(__p, HW_NRND_GEN.data)
54
+ /// result := 1
55
+ /// ELSE
56
+ /// Store32(__p, 0)
57
+ /// result := 0
58
+ /// END
59
+ /// \endcode
60
+ ///
61
+ /// \headerfile <immintrin.h>
62
+ ///
63
+ /// This intrinsic corresponds to the \c RDSEED instruction.
64
+ ///
65
+ /// \param __p
66
+ /// Pointer to memory for storing the 32-bit random number.
67
+ /// \returns 1 if a random number was generated, 0 if not.
68
+ static __inline__ int __DEFAULT_FN_ATTRS
69
+ _rdseed32_step(unsigned int *__p)
70
+ {
71
+ return (int) __builtin_ia32_rdseed32_step(__p);
72
+ }
73
+
74
+ #ifdef __x86_64__
75
+ /// Stores a hardware-generated 64-bit random value in the memory at \a __p.
76
+ ///
77
+ /// The random number generator complies with NIST SP800-90B and SP800-90C.
78
+ ///
79
+ /// \code{.operation}
80
+ /// IF HW_NRND_GEN.ready == 1
81
+ /// Store64(__p, HW_NRND_GEN.data)
82
+ /// result := 1
83
+ /// ELSE
84
+ /// Store64(__p, 0)
85
+ /// result := 0
86
+ /// END
87
+ /// \endcode
88
+ ///
89
+ /// \headerfile <immintrin.h>
90
+ ///
91
+ /// This intrinsic corresponds to the \c RDSEED instruction.
92
+ ///
93
+ /// \param __p
94
+ /// Pointer to memory for storing the 64-bit random number.
95
+ /// \returns 1 if a random number was generated, 0 if not.
96
+ static __inline__ int __DEFAULT_FN_ATTRS
97
+ _rdseed64_step(unsigned long long *__p)
98
+ {
99
+ return (int) __builtin_ia32_rdseed64_step(__p);
100
+ }
101
+ #endif
102
+
103
+ #undef __DEFAULT_FN_ATTRS
104
+
105
+ #endif /* __RDSEEDINTRIN_H */
@@ -0,0 +1,195 @@
1
+ /*===---- riscv_bitmanip.h - RISC-V Zb* intrinsics --------------------------===
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 __RISCV_BITMANIP_H
11
+ #define __RISCV_BITMANIP_H
12
+
13
+ #include <stdint.h>
14
+
15
+ #if defined(__cplusplus)
16
+ extern "C" {
17
+ #endif
18
+
19
+ #if defined(__riscv_zbb)
20
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
21
+ __riscv_orc_b_32(uint32_t __x) {
22
+ return __builtin_riscv_orc_b_32(__x);
23
+ }
24
+
25
+ static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
26
+ __riscv_clz_32(uint32_t __x) {
27
+ return __builtin_riscv_clz_32(__x);
28
+ }
29
+
30
+ static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
31
+ __riscv_ctz_32(uint32_t __x) {
32
+ return __builtin_riscv_ctz_32(__x);
33
+ }
34
+
35
+ static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
36
+ __riscv_cpop_32(uint32_t __x) {
37
+ return __builtin_popcount(__x);
38
+ }
39
+
40
+ #if __riscv_xlen == 64
41
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
42
+ __riscv_orc_b_64(uint64_t __x) {
43
+ return __builtin_riscv_orc_b_64(__x);
44
+ }
45
+
46
+ static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
47
+ __riscv_clz_64(uint64_t __x) {
48
+ return __builtin_riscv_clz_64(__x);
49
+ }
50
+
51
+ static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
52
+ __riscv_ctz_64(uint64_t __x) {
53
+ return __builtin_riscv_ctz_64(__x);
54
+ }
55
+
56
+ static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
57
+ __riscv_cpop_64(uint64_t __x) {
58
+ return __builtin_popcountll(__x);
59
+ }
60
+ #endif
61
+ #endif // defined(__riscv_zbb)
62
+
63
+ #if defined(__riscv_zbb) || defined(__riscv_zbkb)
64
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
65
+ __riscv_rev8_32(uint32_t __x) {
66
+ return __builtin_bswap32(__x);
67
+ }
68
+
69
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
70
+ __riscv_rol_32(uint32_t __x, uint32_t __y) {
71
+ return __builtin_rotateleft32(__x, __y);
72
+ }
73
+
74
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
75
+ __riscv_ror_32(uint32_t __x, uint32_t __y) {
76
+ return __builtin_rotateright32(__x, __y);
77
+ }
78
+
79
+ #if __riscv_xlen == 64
80
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
81
+ __riscv_rev8_64(uint64_t __x) {
82
+ return __builtin_bswap64(__x);
83
+ }
84
+
85
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
86
+ __riscv_rol_64(uint64_t __x, uint32_t __y) {
87
+ return __builtin_rotateleft64(__x, __y);
88
+ }
89
+
90
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
91
+ __riscv_ror_64(uint64_t __x, uint32_t __y) {
92
+ return __builtin_rotateright64(__x, __y);
93
+ }
94
+ #endif
95
+ #endif // defined(__riscv_zbb) || defined(__riscv_zbkb)
96
+
97
+ #if defined(__riscv_zbkb)
98
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
99
+ __riscv_brev8_32(uint32_t __x) {
100
+ return __builtin_riscv_brev8_32(__x);
101
+ }
102
+
103
+ #if __riscv_xlen == 64
104
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
105
+ __riscv_brev8_64(uint64_t __x) {
106
+ return __builtin_riscv_brev8_64(__x);
107
+ }
108
+ #endif
109
+
110
+ #if __riscv_xlen == 32
111
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
112
+ __riscv_unzip_32(uint32_t __x) {
113
+ return __builtin_riscv_unzip_32(__x);
114
+ }
115
+
116
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
117
+ __riscv_zip_32(uint32_t __x) {
118
+ return __builtin_riscv_zip_32(__x);
119
+ }
120
+ #endif
121
+ #endif // defined(__riscv_zbkb)
122
+
123
+ #if defined(__riscv_zbc)
124
+ #if __riscv_xlen == 32
125
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
126
+ __riscv_clmulr_32(uint32_t __x, uint32_t __y) {
127
+ return __builtin_riscv_clmulr_32(__x, __y);
128
+ }
129
+ #endif
130
+
131
+ #if __riscv_xlen == 64
132
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
133
+ __riscv_clmulr_64(uint64_t __x, uint64_t __y) {
134
+ return __builtin_riscv_clmulr_64(__x, __y);
135
+ }
136
+ #endif
137
+ #endif // defined(__riscv_zbc)
138
+
139
+ #if defined(__riscv_zbkc) || defined(__riscv_zbc)
140
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
141
+ __riscv_clmul_32(uint32_t __x, uint32_t __y) {
142
+ return __builtin_riscv_clmul_32(__x, __y);
143
+ }
144
+
145
+ #if __riscv_xlen == 32
146
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
147
+ __riscv_clmulh_32(uint32_t __x, uint32_t __y) {
148
+ return __builtin_riscv_clmulh_32(__x, __y);
149
+ }
150
+ #endif
151
+
152
+ #if __riscv_xlen == 64
153
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
154
+ __riscv_clmul_64(uint64_t __x, uint64_t __y) {
155
+ return __builtin_riscv_clmul_64(__x, __y);
156
+ }
157
+
158
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
159
+ __riscv_clmulh_64(uint64_t __x, uint64_t __y) {
160
+ return __builtin_riscv_clmulh_64(__x, __y);
161
+ }
162
+ #endif
163
+ #endif // defined(__riscv_zbkc) || defined(__riscv_zbc)
164
+
165
+ #if defined(__riscv_zbkx)
166
+ #if __riscv_xlen == 32
167
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
168
+ __riscv_xperm4_32(uint32_t __x, uint32_t __y) {
169
+ return __builtin_riscv_xperm4_32(__x, __y);
170
+ }
171
+
172
+ static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
173
+ __riscv_xperm8_32(uint32_t __x, uint32_t __y) {
174
+ return __builtin_riscv_xperm8_32(__x, __y);
175
+ }
176
+ #endif
177
+
178
+ #if __riscv_xlen == 64
179
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
180
+ __riscv_xperm4_64(uint64_t __x, uint64_t __y) {
181
+ return __builtin_riscv_xperm4_64(__x, __y);
182
+ }
183
+
184
+ static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
185
+ __riscv_xperm8_64(uint64_t __x, uint64_t __y) {
186
+ return __builtin_riscv_xperm8_64(__x, __y);
187
+ }
188
+ #endif
189
+ #endif // defined(__riscv_zbkx)
190
+
191
+ #if defined(__cplusplus)
192
+ }
193
+ #endif
194
+
195
+ #endif
@@ -0,0 +1,128 @@
1
+ /*===---- riscv_corev_alu.h - CORE-V ALU intrinsics ------------------------===
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 __RISCV_COREV_ALU_H
11
+ #define __RISCV_COREV_ALU_H
12
+
13
+ #include <stdint.h>
14
+
15
+ #if defined(__cplusplus)
16
+ extern "C" {
17
+ #endif
18
+
19
+ #if defined(__riscv_xcvalu)
20
+
21
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
22
+
23
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_abs(long a) {
24
+ return __builtin_abs(a);
25
+ }
26
+
27
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_alu_sle(long a, long b) {
28
+ return __builtin_riscv_cv_alu_sle(a, b);
29
+ }
30
+
31
+ static __inline__ long __DEFAULT_FN_ATTRS
32
+ __riscv_cv_alu_sleu(unsigned long a, unsigned long b) {
33
+ return __builtin_riscv_cv_alu_sleu(a, b);
34
+ }
35
+
36
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_alu_min(long a, long b) {
37
+ return __builtin_elementwise_min(a, b);
38
+ }
39
+
40
+ static __inline__ unsigned long __DEFAULT_FN_ATTRS
41
+ __riscv_cv_alu_minu(unsigned long a, unsigned long b) {
42
+ return __builtin_elementwise_min(a, b);
43
+ }
44
+
45
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_alu_max(long a, long b) {
46
+ return __builtin_elementwise_max(a, b);
47
+ }
48
+
49
+ static __inline__ unsigned long __DEFAULT_FN_ATTRS
50
+ __riscv_cv_alu_maxu(unsigned long a, unsigned long b) {
51
+ return __builtin_elementwise_max(a, b);
52
+ }
53
+
54
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_alu_exths(int16_t a) {
55
+ return __builtin_riscv_cv_alu_exths(a);
56
+ }
57
+
58
+ static __inline__ unsigned long __DEFAULT_FN_ATTRS
59
+ __riscv_cv_alu_exthz(uint16_t a) {
60
+ return __builtin_riscv_cv_alu_exthz(a);
61
+ }
62
+
63
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_alu_extbs(int8_t a) {
64
+ return __builtin_riscv_cv_alu_extbs(a);
65
+ }
66
+
67
+ static __inline__ unsigned long __DEFAULT_FN_ATTRS
68
+ __riscv_cv_alu_extbz(uint8_t a) {
69
+ return __builtin_riscv_cv_alu_extbz(a);
70
+ }
71
+
72
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_alu_clip(long a,
73
+ unsigned long b) {
74
+ return __builtin_riscv_cv_alu_clip(a, b);
75
+ }
76
+
77
+ static __inline__ unsigned long __DEFAULT_FN_ATTRS
78
+ __riscv_cv_alu_clipu(unsigned long a, unsigned long b) {
79
+ return __builtin_riscv_cv_alu_clipu(a, b);
80
+ }
81
+
82
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_alu_addN(long a, long b,
83
+ uint8_t shft) {
84
+ return __builtin_riscv_cv_alu_addN(a, b, shft);
85
+ }
86
+
87
+ static __inline__ unsigned long __DEFAULT_FN_ATTRS
88
+ __riscv_cv_alu_adduN(unsigned long a, unsigned long b, uint8_t shft) {
89
+ return __builtin_riscv_cv_alu_adduN(a, b, shft);
90
+ }
91
+
92
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_alu_addRN(long a, long b,
93
+ uint8_t shft) {
94
+ return __builtin_riscv_cv_alu_addRN(a, b, shft);
95
+ }
96
+
97
+ static __inline__ unsigned long __DEFAULT_FN_ATTRS
98
+ __riscv_cv_alu_adduRN(unsigned long a, unsigned long b, uint8_t shft) {
99
+ return __builtin_riscv_cv_alu_adduRN(a, b, shft);
100
+ }
101
+
102
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_alu_subN(long a, long b,
103
+ uint8_t shft) {
104
+ return __builtin_riscv_cv_alu_subN(a, b, shft);
105
+ }
106
+
107
+ static __inline__ unsigned long __DEFAULT_FN_ATTRS
108
+ __riscv_cv_alu_subuN(unsigned long a, unsigned long b, uint8_t shft) {
109
+ return __builtin_riscv_cv_alu_subuN(a, b, shft);
110
+ }
111
+
112
+ static __inline__ long __DEFAULT_FN_ATTRS __riscv_cv_alu_subRN(long a, long b,
113
+ uint8_t shft) {
114
+ return __builtin_riscv_cv_alu_subRN(a, b, shft);
115
+ }
116
+
117
+ static __inline__ unsigned long __DEFAULT_FN_ATTRS
118
+ __riscv_cv_alu_subuRN(unsigned long a, unsigned long b, uint8_t shft) {
119
+ return __builtin_riscv_cv_alu_subuRN(a, b, shft);
120
+ }
121
+
122
+ #endif // defined(__riscv_xcvalu)
123
+
124
+ #if defined(__cplusplus)
125
+ }
126
+ #endif
127
+
128
+ #endif // define __RISCV_COREV_ALU_H