llvm-runtime-resources-darwin 0.0.0 → 23.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 (372) 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 +236 -0
  6. package/include/__clang_cuda_device_functions.h +1572 -0
  7. package/include/__clang_cuda_intrinsics.h +975 -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 +289 -0
  11. package/include/__clang_cuda_runtime_wrapper.h +526 -0
  12. package/include/__clang_cuda_texture_intrinsics.h +1177 -0
  13. package/include/__clang_gpu_builtin_vars.h +71 -0
  14. package/include/__clang_gpu_device_functions.h +411 -0
  15. package/include/__clang_gpu_intrinsics.h +242 -0
  16. package/include/__clang_hip_cmath.h +848 -0
  17. package/include/__clang_hip_libdevice_declares.h +238 -0
  18. package/include/__clang_hip_math.h +1405 -0
  19. package/include/__clang_hip_runtime_wrapper.h +170 -0
  20. package/include/__clang_hip_stdlib.h +43 -0
  21. package/include/__clang_spirv_builtins.h +217 -0
  22. package/include/__clang_spirv_libdevice_declares.h +170 -0
  23. package/include/__clang_spirv_math.h +719 -0
  24. package/include/__float_float.h +176 -0
  25. package/include/__float_header_macro.h +12 -0
  26. package/include/__float_infinity_nan.h +20 -0
  27. package/include/__stdarg___gnuc_va_list.h +13 -0
  28. package/include/__stdarg___va_copy.h +12 -0
  29. package/include/__stdarg_header_macro.h +12 -0
  30. package/include/__stdarg_va_arg.h +22 -0
  31. package/include/__stdarg_va_copy.h +12 -0
  32. package/include/__stdarg_va_list.h +13 -0
  33. package/include/__stddef_header_macro.h +12 -0
  34. package/include/__stddef_max_align_t.h +27 -0
  35. package/include/__stddef_null.h +29 -0
  36. package/include/__stddef_nullptr_t.h +29 -0
  37. package/include/__stddef_offsetof.h +17 -0
  38. package/include/__stddef_ptrdiff_t.h +20 -0
  39. package/include/__stddef_rsize_t.h +20 -0
  40. package/include/__stddef_size_t.h +20 -0
  41. package/include/__stddef_unreachable.h +21 -0
  42. package/include/__stddef_wchar_t.h +28 -0
  43. package/include/__stddef_wint_t.h +15 -0
  44. package/include/__wmmintrin_aes.h +140 -0
  45. package/include/__wmmintrin_pclmul.h +48 -0
  46. package/include/adcintrin.h +165 -0
  47. package/include/adxintrin.h +107 -0
  48. package/include/altivec.h +19434 -0
  49. package/include/amdgpuintrin.h +164 -0
  50. package/include/amdhsa_abi.h +83 -0
  51. package/include/ammintrin.h +183 -0
  52. package/include/amo.h +220 -0
  53. package/include/amxavx512intrin.h +596 -0
  54. package/include/amxcomplexintrin.h +167 -0
  55. package/include/amxfp16intrin.h +93 -0
  56. package/include/amxfp8intrin.h +230 -0
  57. package/include/amxintrin.h +492 -0
  58. package/include/amxmovrsintrin.h +48 -0
  59. package/include/andes_vector.h +21 -0
  60. package/include/arm64_neon.h +21 -0
  61. package/include/arm64intr.h +45 -0
  62. package/include/arm_acle.h +866 -0
  63. package/include/arm_bf16.h +20 -0
  64. package/include/arm_cde.h +410 -0
  65. package/include/arm_cmse.h +217 -0
  66. package/include/arm_fp16.h +596 -0
  67. package/include/arm_mve.h +19187 -0
  68. package/include/arm_neon.h +74351 -0
  69. package/include/arm_neon_sve_bridge.h +182 -0
  70. package/include/arm_sme.h +3753 -0
  71. package/include/arm_sve.h +32698 -0
  72. package/include/arm_vector_types.h +432 -0
  73. package/include/armintr.h +31 -0
  74. package/include/avx10_2_512bf16intrin.h +568 -0
  75. package/include/avx10_2_512convertintrin.h +322 -0
  76. package/include/avx10_2_512minmaxintrin.h +127 -0
  77. package/include/avx10_2_512niintrin.h +314 -0
  78. package/include/avx10_2_512satcvtdsintrin.h +307 -0
  79. package/include/avx10_2_512satcvtintrin.h +301 -0
  80. package/include/avx10_2bf16intrin.h +1094 -0
  81. package/include/avx10_2convertintrin.h +3257 -0
  82. package/include/avx10_2copyintrin.h +66 -0
  83. package/include/avx10_2minmaxintrin.h +232 -0
  84. package/include/avx10_2niintrin.h +409 -0
  85. package/include/avx10_2satcvtdsintrin.h +376 -0
  86. package/include/avx10_2satcvtintrin.h +312 -0
  87. package/include/avx2intrin.h +5190 -0
  88. package/include/avx512bf16intrin.h +292 -0
  89. package/include/avx512bitalgintrin.h +75 -0
  90. package/include/avx512bmmintrin.h +174 -0
  91. package/include/avx512bmmvlintrin.h +245 -0
  92. package/include/avx512bwintrin.h +1885 -0
  93. package/include/avx512cdintrin.h +112 -0
  94. package/include/avx512dqintrin.h +1350 -0
  95. package/include/avx512fintrin.h +9351 -0
  96. package/include/avx512fp16intrin.h +3349 -0
  97. package/include/avx512ifmaintrin.h +68 -0
  98. package/include/avx512ifmavlintrin.h +138 -0
  99. package/include/avx512vbmi2intrin.h +364 -0
  100. package/include/avx512vbmiintrin.h +98 -0
  101. package/include/avx512vbmivlintrin.h +179 -0
  102. package/include/avx512vlbf16intrin.h +527 -0
  103. package/include/avx512vlbitalgintrin.h +135 -0
  104. package/include/avx512vlbwintrin.h +3052 -0
  105. package/include/avx512vlcdintrin.h +202 -0
  106. package/include/avx512vldqintrin.h +1156 -0
  107. package/include/avx512vlfp16intrin.h +2090 -0
  108. package/include/avx512vlintrin.h +8067 -0
  109. package/include/avx512vlvbmi2intrin.h +702 -0
  110. package/include/avx512vlvnniintrin.h +308 -0
  111. package/include/avx512vlvp2intersectintrin.h +123 -0
  112. package/include/avx512vnniintrin.h +113 -0
  113. package/include/avx512vp2intersectintrin.h +77 -0
  114. package/include/avx512vpopcntdqintrin.h +62 -0
  115. package/include/avx512vpopcntdqvlintrin.h +105 -0
  116. package/include/avxifmaintrin.h +193 -0
  117. package/include/avxintrin.h +5064 -0
  118. package/include/avxneconvertintrin.h +484 -0
  119. package/include/avxvnniint16intrin.h +451 -0
  120. package/include/avxvnniint8intrin.h +454 -0
  121. package/include/avxvnniintrin.h +238 -0
  122. package/include/bmi2intrin.h +253 -0
  123. package/include/bmiintrin.h +604 -0
  124. package/include/builtins.h +19 -0
  125. package/include/cet.h +66 -0
  126. package/include/cetintrin.h +115 -0
  127. package/include/cldemoteintrin.h +36 -0
  128. package/include/clflushoptintrin.h +36 -0
  129. package/include/clwbintrin.h +38 -0
  130. package/include/clzerointrin.h +38 -0
  131. package/include/cmpccxaddintrin.h +70 -0
  132. package/include/cpuid.h +451 -0
  133. package/include/crc32intrin.h +102 -0
  134. package/include/cuda_wrappers/__utility/declval.h +28 -0
  135. package/include/cuda_wrappers/algorithm +116 -0
  136. package/include/cuda_wrappers/bits/basic_string.h +9 -0
  137. package/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  138. package/include/cuda_wrappers/bits/c++config.h +61 -0
  139. package/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  140. package/include/cuda_wrappers/cmath +44 -0
  141. package/include/cuda_wrappers/complex +90 -0
  142. package/include/cuda_wrappers/new +108 -0
  143. package/include/emmintrin.h +4940 -0
  144. package/include/endian.h +91 -0
  145. package/include/enqcmdintrin.h +63 -0
  146. package/include/f16cintrin.h +176 -0
  147. package/include/float.h +48 -0
  148. package/include/fma4intrin.h +220 -0
  149. package/include/fmaintrin.h +826 -0
  150. package/include/fuzzer/FuzzedDataProvider.h +397 -0
  151. package/include/fxsrintrin.h +91 -0
  152. package/include/gfniintrin.h +238 -0
  153. package/include/gpuintrin.h +348 -0
  154. package/include/hexagon_circ_brev_intrinsics.h +298 -0
  155. package/include/hexagon_protos.h +8439 -0
  156. package/include/hexagon_types.h +2628 -0
  157. package/include/hlsl_alias_intrinsics_gen.inc +3869 -0
  158. package/include/hlsl_inline_intrinsics_gen.inc +546 -0
  159. package/include/hresetintrin.h +49 -0
  160. package/include/htmintrin.h +212 -0
  161. package/include/htmxlintrin.h +345 -0
  162. package/include/hvx_hexagon_protos.h +5421 -0
  163. package/include/ia32intrin.h +863 -0
  164. package/include/immintrin.h +597 -0
  165. package/include/intrin.h +501 -0
  166. package/include/intrin0.h +256 -0
  167. package/include/inttypes.h +101 -0
  168. package/include/invpcidintrin.h +23 -0
  169. package/include/iso646.h +31 -0
  170. package/include/keylockerintrin.h +518 -0
  171. package/include/larchintrin.h +262 -0
  172. package/include/lasxintrin.h +3999 -0
  173. package/include/limits.h +133 -0
  174. package/include/llvm_libc_wrappers/assert.h +32 -0
  175. package/include/llvm_libc_wrappers/ctype.h +29 -0
  176. package/include/llvm_libc_wrappers/inttypes.h +32 -0
  177. package/include/llvm_libc_wrappers/stdio.h +52 -0
  178. package/include/llvm_libc_wrappers/stdlib.h +32 -0
  179. package/include/llvm_libc_wrappers/string.h +29 -0
  180. package/include/llvm_libc_wrappers/time.h +28 -0
  181. package/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  182. package/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  183. package/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  184. package/include/lsxintrin.h +3752 -0
  185. package/include/lwpintrin.h +136 -0
  186. package/include/lzcntintrin.h +109 -0
  187. package/include/mm3dnow.h +22 -0
  188. package/include/mm_malloc.h +67 -0
  189. package/include/mmintrin.h +1541 -0
  190. package/include/module.modulemap +375 -0
  191. package/include/movdirintrin.h +49 -0
  192. package/include/movrs_avx10_2_512intrin.h +98 -0
  193. package/include/movrs_avx10_2intrin.h +174 -0
  194. package/include/movrsintrin.h +59 -0
  195. package/include/msa.h +573 -0
  196. package/include/mwaitxintrin.h +62 -0
  197. package/include/nmmintrin.h +20 -0
  198. package/include/nvptxintrin.h +208 -0
  199. package/include/opencl-c-base.h +765 -0
  200. package/include/opencl-c.h +18737 -0
  201. package/include/openmp_wrappers/__clang_openmp_device_functions.h +118 -0
  202. package/include/openmp_wrappers/cmath +132 -0
  203. package/include/openmp_wrappers/complex +61 -0
  204. package/include/openmp_wrappers/complex.h +41 -0
  205. package/include/openmp_wrappers/complex_cmath.h +393 -0
  206. package/include/openmp_wrappers/math.h +71 -0
  207. package/include/openmp_wrappers/new +48 -0
  208. package/include/pconfigintrin.h +40 -0
  209. package/include/pkuintrin.h +34 -0
  210. package/include/pmmintrin.h +302 -0
  211. package/include/popcntintrin.h +59 -0
  212. package/include/ppc_wrappers/bmi2intrin.h +134 -0
  213. package/include/ppc_wrappers/bmiintrin.h +165 -0
  214. package/include/ppc_wrappers/emmintrin.h +2269 -0
  215. package/include/ppc_wrappers/immintrin.h +27 -0
  216. package/include/ppc_wrappers/mm_malloc.h +45 -0
  217. package/include/ppc_wrappers/mmintrin.h +1453 -0
  218. package/include/ppc_wrappers/nmmintrin.h +26 -0
  219. package/include/ppc_wrappers/pmmintrin.h +145 -0
  220. package/include/ppc_wrappers/smmintrin.h +683 -0
  221. package/include/ppc_wrappers/tmmintrin.h +453 -0
  222. package/include/ppc_wrappers/x86gprintrin.h +17 -0
  223. package/include/ppc_wrappers/x86intrin.h +28 -0
  224. package/include/ppc_wrappers/xmmintrin.h +1827 -0
  225. package/include/prfchiintrin.h +61 -0
  226. package/include/prfchwintrin.h +57 -0
  227. package/include/profile/InstrProfData.inc +1063 -0
  228. package/include/profile/instr_prof_interface.h +88 -0
  229. package/include/ptrauth.h +485 -0
  230. package/include/ptwriteintrin.h +37 -0
  231. package/include/raointintrin.h +203 -0
  232. package/include/rdpruintrin.h +57 -0
  233. package/include/rdseedintrin.h +105 -0
  234. package/include/riscv_bitmanip.h +202 -0
  235. package/include/riscv_corev_alu.h +130 -0
  236. package/include/riscv_crypto.h +178 -0
  237. package/include/riscv_mips.h +36 -0
  238. package/include/riscv_nds.h +92 -0
  239. package/include/riscv_ntlh.h +28 -0
  240. package/include/riscv_packed_simd.h +644 -0
  241. package/include/riscv_vector.h +465 -0
  242. package/include/rtmintrin.h +45 -0
  243. package/include/s390intrin.h +25 -0
  244. package/include/sanitizer/allocator_interface.h +106 -0
  245. package/include/sanitizer/asan_interface.h +398 -0
  246. package/include/sanitizer/common_interface_defs.h +507 -0
  247. package/include/sanitizer/coverage_interface.h +36 -0
  248. package/include/sanitizer/dfsan_interface.h +220 -0
  249. package/include/sanitizer/hwasan_interface.h +109 -0
  250. package/include/sanitizer/linux_syscall_hooks.h +3112 -0
  251. package/include/sanitizer/lsan_interface.h +89 -0
  252. package/include/sanitizer/msan_interface.h +135 -0
  253. package/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
  254. package/include/sanitizer/rtsan_interface.h +75 -0
  255. package/include/sanitizer/safestack_interface.h +50 -0
  256. package/include/sanitizer/scudo_interface.h +38 -0
  257. package/include/sanitizer/tsan_interface.h +316 -0
  258. package/include/sanitizer/tsan_interface_atomic.h +223 -0
  259. package/include/sanitizer/tysan_interface.h +36 -0
  260. package/include/sanitizer/ubsan_interface.h +64 -0
  261. package/include/serializeintrin.h +30 -0
  262. package/include/sgxintrin.h +60 -0
  263. package/include/sha512intrin.h +200 -0
  264. package/include/shaintrin.h +190 -0
  265. package/include/sifive_vector.h +192 -0
  266. package/include/sm3intrin.h +238 -0
  267. package/include/sm4evexintrin.h +32 -0
  268. package/include/sm4intrin.h +269 -0
  269. package/include/smmintrin.h +2352 -0
  270. package/include/spirvintrin.h +167 -0
  271. package/include/stdalign.h +24 -0
  272. package/include/stdarg.h +75 -0
  273. package/include/stdatomic.h +204 -0
  274. package/include/stdbool.h +39 -0
  275. package/include/stdckdint.h +42 -0
  276. package/include/stdcountof.h +15 -0
  277. package/include/stddef.h +139 -0
  278. package/include/stddefer.h +19 -0
  279. package/include/stdint.h +835 -0
  280. package/include/stdnoreturn.h +35 -0
  281. package/include/tbmintrin.h +128 -0
  282. package/include/tgmath.h +1368 -0
  283. package/include/tmmintrin.h +779 -0
  284. package/include/tsxldtrkintrin.h +56 -0
  285. package/include/uintrintrin.h +157 -0
  286. package/include/unwind.h +332 -0
  287. package/include/usermsrintrin.h +51 -0
  288. package/include/vadefs.h +51 -0
  289. package/include/vaesintrin.h +86 -0
  290. package/include/varargs.h +16 -0
  291. package/include/vecintrin.h +12868 -0
  292. package/include/velintrin.h +71 -0
  293. package/include/velintrin_approx.h +120 -0
  294. package/include/velintrin_gen.h +1257 -0
  295. package/include/vpclmulqdqintrin.h +30 -0
  296. package/include/waitpkgintrin.h +42 -0
  297. package/include/wasm_simd128.h +2160 -0
  298. package/include/wbnoinvdintrin.h +24 -0
  299. package/include/wmmintrin.h +23 -0
  300. package/include/x86gprintrin.h +49 -0
  301. package/include/x86intrin.h +35 -0
  302. package/include/xmmintrin.h +3176 -0
  303. package/include/xopintrin.h +780 -0
  304. package/include/xsavecintrin.h +84 -0
  305. package/include/xsaveintrin.h +63 -0
  306. package/include/xsaveoptintrin.h +34 -0
  307. package/include/xsavesintrin.h +44 -0
  308. package/include/xtestintrin.h +27 -0
  309. package/include/yvals_core.h +25 -0
  310. package/include/zos_wrappers/builtins.h +18 -0
  311. package/include/zos_wrappers/grp.h +19 -0
  312. package/include/zos_wrappers/locale.h +19 -0
  313. package/include/zos_wrappers/math.h +31 -0
  314. package/include/zos_wrappers/poll.h +19 -0
  315. package/include/zos_wrappers/stdlib.h +20 -0
  316. package/include/zos_wrappers/string.h +19 -0
  317. package/include/zos_wrappers/time.h +19 -0
  318. package/include/zos_wrappers/variant.h +19 -0
  319. package/index.js +5 -0
  320. package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
  321. package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
  322. package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
  323. package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
  324. package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  325. package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  326. package/lib/darwin/libclang_rt.cc_kext.a +0 -0
  327. package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
  328. package/lib/darwin/libclang_rt.fuzzer_interceptors_ios.a +0 -0
  329. package/lib/darwin/libclang_rt.fuzzer_interceptors_iossim.a +0 -0
  330. package/lib/darwin/libclang_rt.fuzzer_interceptors_osx.a +0 -0
  331. package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
  332. package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
  333. package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
  334. package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
  335. package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
  336. package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
  337. package/lib/darwin/libclang_rt.ios.a +0 -0
  338. package/lib/darwin/libclang_rt.iossim.a +0 -0
  339. package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
  340. package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
  341. package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
  342. package/lib/darwin/libclang_rt.osx.a +0 -0
  343. package/lib/darwin/libclang_rt.profile_ios.a +0 -0
  344. package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
  345. package/lib/darwin/libclang_rt.profile_osx.a +0 -0
  346. package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
  347. package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
  348. package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
  349. package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
  350. package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
  351. package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
  352. package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
  353. package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
  354. package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
  355. package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
  356. package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
  357. package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
  358. package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
  359. package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
  360. package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
  361. package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
  362. package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  363. package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
  364. package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
  365. package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
  366. package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
  367. package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
  368. package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
  369. package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  370. package/package.json +40 -1
  371. package/share/asan_ignorelist.txt +14 -0
  372. package/share/cfi_ignorelist.txt +17 -0
@@ -0,0 +1,245 @@
1
+ /*===------------- avx512bmmvlintrin.h - BMM intrinsics ------------------===
2
+ *
3
+ *
4
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
+ * See https://llvm.org/LICENSE.txt for license information.
6
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
+ *
8
+ *===-----------------------------------------------------------------------===
9
+ */
10
+ #ifndef __IMMINTRIN_H
11
+ #error \
12
+ "Never use <avx512bmmvlintrin.h> directly; include <immintrin.h> instead."
13
+ #endif
14
+
15
+ #ifndef __BMMVLINTRIN_H
16
+ #define __BMMVLINTRIN_H
17
+
18
+ /* Define the default attributes for the functions in this file. */
19
+ #define __DEFAULT_FN_ATTRS128 \
20
+ __attribute__((__always_inline__, __nodebug__, \
21
+ __target__("avx512bmm,avx512vl"), __min_vector_width__(128)))
22
+ #define __DEFAULT_FN_ATTRS256 \
23
+ __attribute__((__always_inline__, __nodebug__, \
24
+ __target__("avx512bmm,avx512vl"), __min_vector_width__(256)))
25
+
26
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
27
+ #define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128 constexpr
28
+ #define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256 constexpr
29
+ #else
30
+ #define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128
31
+ #define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256
32
+ #endif
33
+
34
+ /// Multiplies two 16x16 bit matrices using OR reduction and ORs the product
35
+ /// into a third 16x16 bit matrix (which is also the destination).
36
+ ///
37
+ /// For the 256-bit YMM form, the source registers/memory each contain a single
38
+ /// 16x16 (256-bit) matrix in bits [255:0]. The operation performs:
39
+ /// \code{.operation}
40
+ /// for i in 0 to 15
41
+ /// for j in 0 to 15
42
+ /// reduction_bit = __C[16*i+j]
43
+ /// for k in 0 to 15
44
+ /// reduction_bit |= __A[16*i+k] & __B[16*k+j]
45
+ /// end for k
46
+ /// dest[16*i+j] = reduction_bit
47
+ /// end for j
48
+ /// end for i
49
+ /// \endcode
50
+ ///
51
+ /// \headerfile <immintrin.h>
52
+ ///
53
+ /// This intrinsic corresponds to the <c> VBMACOR16X16X16 </c> instruction.
54
+ ///
55
+ /// \param __A
56
+ /// A 256-bit vector containing a 16x16 bit matrix.
57
+ /// \param __B
58
+ /// A 256-bit vector containing a 16x16 bit matrix.
59
+ /// \param __C
60
+ /// A 256-bit accumulator vector containing the initial values to OR with.
61
+ /// \returns A 256-bit vector containing the accumulated result.
62
+ /// \note This instruction does not support masking.
63
+ static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
64
+ _mm256_bmacor16x16x16(__m256i __A, __m256i __B, __m256i __C) {
65
+ return (__m256i)__builtin_ia32_bmacor16x16x16_v16hi(
66
+ (__v16hi)__A, (__v16hi)__B, (__v16hi)__C);
67
+ }
68
+
69
+ /// Multiplies two 16x16 bit matrices using XOR reduction and XORs the product
70
+ /// into a third 16x16 bit matrix (which is also the destination).
71
+ ///
72
+ /// For the 256-bit YMM form, the source registers/memory each contain a single
73
+ /// 16x16 (256-bit) matrix in bits [255:0]. The operation performs:
74
+ /// \code{.operation}
75
+ /// for i in 0 to 15
76
+ /// for j in 0 to 15
77
+ /// reduction_bit = __C[16*i+j]
78
+ /// for k in 0 to 15
79
+ /// reduction_bit ^= __A[16*i+k] & __B[16*k+j]
80
+ /// end for k
81
+ /// dest[16*i+j] = reduction_bit
82
+ /// end for j
83
+ /// end for i
84
+ /// \endcode
85
+ ///
86
+ /// \headerfile <immintrin.h>
87
+ ///
88
+ /// This intrinsic corresponds to the <c> VBMACXOR16X16X16 </c> instruction.
89
+ ///
90
+ /// \param __A
91
+ /// A 256-bit vector containing a 16x16 bit matrix.
92
+ /// \param __B
93
+ /// A 256-bit vector containing a 16x16 bit matrix.
94
+ /// \param __C
95
+ /// A 256-bit accumulator vector containing the initial values to XOR with.
96
+ /// \returns A 256-bit vector containing the accumulated result.
97
+ /// \note This instruction does not support masking.
98
+ static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
99
+ _mm256_bmacxor16x16x16(__m256i __A, __m256i __B, __m256i __C) {
100
+ return (__m256i)__builtin_ia32_bmacxor16x16x16_v16hi(
101
+ (__v16hi)__A, (__v16hi)__B, (__v16hi)__C);
102
+ }
103
+
104
+ /// Reverses the bits within each byte of the source vector.
105
+ ///
106
+ /// For each byte in the source, reverses the order of its 8 bits to generate
107
+ /// the corresponding destination byte. For example, 0b10110001 becomes
108
+ /// 0b10001101.
109
+ ///
110
+ /// \headerfile <immintrin.h>
111
+ ///
112
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
113
+ ///
114
+ /// \param __A
115
+ /// A 128-bit vector of [16 x i8] where each byte will have its bits
116
+ /// reversed.
117
+ /// \returns A 128-bit vector of [16 x i8] with bit-reversed bytes.
118
+ static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
119
+ _mm128_bitrev_epi8(__m128i __A) {
120
+ return (__m128i)__builtin_elementwise_bitreverse((__v16qi)__A);
121
+ }
122
+
123
+ /// Reverses the bits within each byte of the source vector.
124
+ ///
125
+ /// For each byte in the source, reverses the order of its 8 bits to generate
126
+ /// the corresponding destination byte. For example, 0b10110001 becomes
127
+ /// 0b10001101.
128
+ ///
129
+ /// \headerfile <immintrin.h>
130
+ ///
131
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
132
+ ///
133
+ /// \param __A
134
+ /// A 256-bit vector of [32 x i8] where each byte will have its bits
135
+ /// reversed.
136
+ /// \returns A 256-bit vector of [32 x i8] with bit-reversed bytes.
137
+ static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
138
+ _mm256_bitrev_epi8(__m256i __A) {
139
+ return (__m256i)__builtin_elementwise_bitreverse((__v32qi)__A);
140
+ }
141
+
142
+ /// Reverses the bits within each byte of the source vector, using a writemask
143
+ /// to conditionally select elements.
144
+ ///
145
+ /// For each byte position, if the corresponding mask bit is 1, the byte from
146
+ /// \a A has its bits reversed and stored in the result. If the mask bit is 0,
147
+ /// the corresponding byte from \a B is copied to the result (merge masking).
148
+ ///
149
+ /// \headerfile <immintrin.h>
150
+ ///
151
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
152
+ ///
153
+ /// \param __U
154
+ /// A 16-bit mask value where each bit controls one byte (per 8-bit element).
155
+ /// A 1 performs bit reversal; a 0 selects the passthrough byte from __B.
156
+ /// \param __A
157
+ /// A 128-bit vector of [16 x i8] to be bit-reversed.
158
+ /// \param __B
159
+ /// A 128-bit vector of [16 x i8] providing passthrough values.
160
+ /// \returns A 128-bit vector combining bit-reversed and passthrough bytes.
161
+ static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
162
+ _mm128_mask_bitrev_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
163
+ return (__m128i)__builtin_ia32_selectb_128(
164
+ (__mmask16)__U, (__v16qi)_mm128_bitrev_epi8(__A), (__v16qi)__B);
165
+ }
166
+
167
+ /// Reverses the bits within each byte of the source vector, using a writemask
168
+ /// to conditionally select elements.
169
+ ///
170
+ /// For each byte position, if the corresponding mask bit is 1, the byte from
171
+ /// \a A has its bits reversed and stored in the result. If the mask bit is 0,
172
+ /// the corresponding byte from \a B is copied to the result (merge masking).
173
+ ///
174
+ /// \headerfile <immintrin.h>
175
+ ///
176
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
177
+ ///
178
+ /// \param __U
179
+ /// A 32-bit mask value where each bit controls one byte (per 8-bit element).
180
+ /// A 1 performs bit reversal; a 0 selects the passthrough byte from __B.
181
+ /// \param __A
182
+ /// A 256-bit vector of [32 x i8] to be bit-reversed.
183
+ /// \param __B
184
+ /// A 256-bit vector of [32 x i8] providing passthrough values.
185
+ /// \returns A 256-bit vector combining bit-reversed and passthrough bytes.
186
+ static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
187
+ _mm256_mask_bitrev_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
188
+ return (__m256i)__builtin_ia32_selectb_256(
189
+ (__mmask32)__U, (__v32qi)_mm256_bitrev_epi8(__A), (__v32qi)__B);
190
+ }
191
+
192
+ /// Reverses the bits within each byte of the source vector, zeroing elements
193
+ /// based on the writemask.
194
+ ///
195
+ /// For each byte position, if the corresponding mask bit is 1, the byte from
196
+ /// \a A has its bits reversed and stored in the result. If the mask bit is 0,
197
+ /// the result byte is set to zero (zero masking).
198
+ ///
199
+ /// \headerfile <immintrin.h>
200
+ ///
201
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
202
+ ///
203
+ /// \param __U
204
+ /// A 16-bit mask value where each bit controls one byte (per 8-bit element).
205
+ /// A 1 performs bit reversal; a 0 sets the byte to zero.
206
+ /// \param __A
207
+ /// A 128-bit vector of [16 x i8] to be bit-reversed.
208
+ /// \returns A 128-bit vector with bit-reversed or zeroed bytes.
209
+ static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
210
+ _mm128_maskz_bitrev_epi8(__mmask16 __U, __m128i __A) {
211
+ return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
212
+ (__v16qi)_mm128_bitrev_epi8(__A),
213
+ (__v16qi)_mm_setzero_si128());
214
+ }
215
+
216
+ /// Reverses the bits within each byte of the source vector, zeroing elements
217
+ /// based on the writemask.
218
+ ///
219
+ /// For each byte position, if the corresponding mask bit is 1, the byte from
220
+ /// \a A has its bits reversed and stored in the result. If the mask bit is 0,
221
+ /// the result byte is set to zero (zero masking).
222
+ ///
223
+ /// \headerfile <immintrin.h>
224
+ ///
225
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
226
+ ///
227
+ /// \param __U
228
+ /// A 32-bit mask value where each bit controls one byte (per 8-bit element).
229
+ /// A 1 performs bit reversal; a 0 sets the byte to zero.
230
+ /// \param __A
231
+ /// A 256-bit vector of [32 x i8] to be bit-reversed.
232
+ /// \returns A 256-bit vector with bit-reversed or zeroed bytes.
233
+ static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
234
+ _mm256_maskz_bitrev_epi8(__mmask32 __U, __m256i __A) {
235
+ return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
236
+ (__v32qi)_mm256_bitrev_epi8(__A),
237
+ (__v32qi)_mm256_setzero_si256());
238
+ }
239
+
240
+ #undef __DEFAULT_FN_ATTRS128_CONSTEXPR
241
+ #undef __DEFAULT_FN_ATTRS256_CONSTEXPR
242
+ #undef __DEFAULT_FN_ATTRS128
243
+ #undef __DEFAULT_FN_ATTRS256
244
+
245
+ #endif