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,451 @@
1
+ /*===----------- avxvnniint16intrin.h - AVXVNNIINT16 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 \
12
+ "Never use <avxvnniint16intrin.h> directly; include <immintrin.h> instead."
13
+ #endif // __IMMINTRIN_H
14
+
15
+ #ifndef __AVXVNNIINT16INTRIN_H
16
+ #define __AVXVNNIINT16INTRIN_H
17
+
18
+ /// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a __A with
19
+ /// corresponding unsigned 16-bit integers in \a __B, producing 2
20
+ /// intermediate signed 16-bit results. Sum these 2 results with the
21
+ /// corresponding 32-bit integer in \a __W, and store the packed 32-bit
22
+ /// results in \a dst.
23
+ ///
24
+ /// \headerfile <immintrin.h>
25
+ ///
26
+ /// \code
27
+ /// __m128i _mm_dpwsud_epi32(__m128i __W, __m128i __A, __m128i __B)
28
+ /// \endcode
29
+ ///
30
+ /// This intrinsic corresponds to the \c VPDPWSUD instruction.
31
+ ///
32
+ /// \param __W
33
+ /// A 128-bit vector of [4 x int].
34
+ /// \param __A
35
+ /// A 128-bit vector of [8 x short].
36
+ /// \param __B
37
+ /// A 128-bit vector of [8 x unsigned short].
38
+ /// \returns
39
+ /// A 128-bit vector of [4 x int].
40
+ ///
41
+ /// \code{.operation}
42
+ /// FOR j := 0 to 3
43
+ /// tmp1.dword := SignExtend32(__A.word[2*j]) * ZeroExtend32(__B.word[2*j])
44
+ /// tmp2.dword :=
45
+ /// SignExtend32(__A.word[2*j+1]) * ZeroExtend32(__B.word[2*j+1])
46
+ /// dst.dword[j] := __W.dword[j] + tmp1 + tmp2
47
+ /// ENDFOR
48
+ /// dst[MAX:128] := 0
49
+ /// \endcode
50
+ #define _mm_dpwsud_epi32(__W, __A, __B) \
51
+ ((__m128i)__builtin_ia32_vpdpwsud128((__v4si)(__W), (__v8hi)(__A), \
52
+ (__v8hu)(__B)))
53
+
54
+ /// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a __A with
55
+ /// corresponding unsigned 16-bit integers in \a __B, producing 2
56
+ /// intermediate signed 16-bit results. Sum these 2 results with the
57
+ /// corresponding 32-bit integer in \a __W, and store the packed 32-bit
58
+ /// results in \a dst.
59
+ ///
60
+ /// \headerfile <immintrin.h>
61
+ ///
62
+ /// \code
63
+ /// __m256i _mm256_dpwsud_epi32(__m256i __W, __m256i __A, __m256i __B)
64
+ /// \endcode
65
+ ///
66
+ /// This intrinsic corresponds to the \c VPDPWSUD instruction.
67
+ ///
68
+ /// \param __W
69
+ /// A 256-bit vector of [8 x int].
70
+ /// \param __A
71
+ /// A 256-bit vector of [16 x short].
72
+ /// \param __B
73
+ /// A 256-bit vector of [16 x unsigned short].
74
+ /// \returns
75
+ /// A 256-bit vector of [8 x int].
76
+ ///
77
+ /// \code{.operation}
78
+ /// FOR j := 0 to 7
79
+ /// tmp1.dword := SignExtend32(__A.word[2*j]) * ZeroExtend32(__B.word[2*j])
80
+ /// tmp2.dword :=
81
+ /// SignExtend32(__A.word[2*j+1]) * ZeroExtend32(__B.word[2*j+1])
82
+ /// dst.dword[j] := __W.dword[j] + tmp1 + tmp2
83
+ /// ENDFOR
84
+ /// dst[MAX:256] := 0
85
+ /// \endcode
86
+ #define _mm256_dpwsud_epi32(__W, __A, __B) \
87
+ ((__m256i)__builtin_ia32_vpdpwsud256((__v8si)(__W), (__v16hi)(__A), \
88
+ (__v16hu)(__B)))
89
+
90
+ /// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a __A with
91
+ /// corresponding unsigned 16-bit integers in \a __B, producing 2
92
+ /// intermediate signed 16-bit results. Sum these 2 results with the
93
+ /// corresponding 32-bit integer in \a __W with signed saturation, and store
94
+ /// the packed 32-bit results in \a dst.
95
+ ///
96
+ /// \headerfile <immintrin.h>
97
+ ///
98
+ /// \code
99
+ /// __m128i _mm_dpwsuds_epi32(__m128i __W, __m128i __A, __m128i __B)
100
+ /// \endcode
101
+ ///
102
+ /// This intrinsic corresponds to the \c VPDPWSUDS instruction.
103
+ ///
104
+ /// \param __W
105
+ /// A 128-bit vector of [4 x int].
106
+ /// \param __A
107
+ /// A 128-bit vector of [8 x short].
108
+ /// \param __B
109
+ /// A 128-bit vector of [8 x unsigned short].
110
+ /// \returns
111
+ /// A 128-bit vector of [4 x int].
112
+ ///
113
+ /// \code{.operation}
114
+ /// FOR j := 0 to 3
115
+ /// tmp1.dword := SignExtend32(__A.word[2*j]) * ZeroExtend32(__B.word[2*j])
116
+ /// tmp2.dword :=
117
+ /// SignExtend32(__A.word[2*j+1]) * ZeroExtend32(__B.word[2*j+1])
118
+ /// dst.dword[j] := SIGNED_DWORD_SATURATE(__W.dword[j] + tmp1 + tmp2)
119
+ /// ENDFOR
120
+ /// dst[MAX:128] := 0
121
+ /// \endcode
122
+ /// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a __A with
123
+ #define _mm_dpwsuds_epi32(__W, __A, __B) \
124
+ ((__m128i)__builtin_ia32_vpdpwsuds128((__v4si)(__W), (__v8hi)(__A), \
125
+ (__v8hu)(__B)))
126
+
127
+ /// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a __A with
128
+ /// corresponding unsigned 16-bit integers in \a __B, producing 2
129
+ /// intermediate signed 16-bit results. Sum these 2 results with the
130
+ /// corresponding 32-bit integer in \a __W with signed saturation, and store
131
+ /// the packed 32-bit results in \a dst.
132
+ ///
133
+ /// \headerfile <immintrin.h>
134
+ ///
135
+ /// \code
136
+ /// __m256i _mm256_dpwsuds_epi32(__m256i __W, __m256i __A, __m256i __B)
137
+ /// \endcode
138
+ ///
139
+ /// This intrinsic corresponds to the \c VPDPWSUDS instruction.
140
+ ///
141
+ /// \param __W
142
+ /// A 256-bit vector of [8 x int].
143
+ /// \param __A
144
+ /// A 256-bit vector of [16 x short].
145
+ /// \param __B
146
+ /// A 256-bit vector of [16 x unsigned short].
147
+ /// \returns
148
+ /// A 256-bit vector of [8 x int].
149
+ ///
150
+ /// \code{.operation}
151
+ /// FOR j := 0 to 7
152
+ /// tmp1.dword := SignExtend32(__A.word[2*j]) * ZeroExtend32(__B.word[2*j])
153
+ /// tmp2.dword :=
154
+ /// SignExtend32(__A.word[2*j+1]) * ZeroExtend32(__B.word[2*j+1])
155
+ /// dst.dword[j] := SIGNED_DWORD_SATURATE(__W.dword[j] + tmp1 + tmp2)
156
+ /// ENDFOR
157
+ /// dst[MAX:256] := 0
158
+ /// \endcode
159
+ #define _mm256_dpwsuds_epi32(__W, __A, __B) \
160
+ ((__m256i)__builtin_ia32_vpdpwsuds256((__v8si)(__W), (__v16hi)(__A), \
161
+ (__v16hu)(__B)))
162
+
163
+ /// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A
164
+ /// with corresponding signed 16-bit integers in \a __B, producing 2
165
+ /// intermediate signed 16-bit results. Sum these 2 results with the
166
+ /// corresponding 32-bit integer in \a __W, and store the packed 32-bit
167
+ /// results in \a dst.
168
+ ///
169
+ /// \headerfile <immintrin.h>
170
+ ///
171
+ /// \code
172
+ /// __m128i _mm_dpbusd_epi32(__m128i __W, __m128i __A, __m128i __B)
173
+ /// \endcode
174
+ ///
175
+ /// This intrinsic corresponds to the \c VPDPWUSD instruction.
176
+ ///
177
+ /// \param __W
178
+ /// A 128-bit vector of [4 x int].
179
+ /// \param __A
180
+ /// A 128-bit vector of [8 x unsigned short].
181
+ /// \param __B
182
+ /// A 128-bit vector of [8 x short].
183
+ /// \returns
184
+ /// A 128-bit vector of [4 x int].
185
+ ///
186
+ /// \code{.operation}
187
+ /// FOR j := 0 to 3
188
+ /// tmp1.dword := ZeroExtend32(__A.word[2*j]) * SignExtend32(__B.word[2*j])
189
+ /// tmp2.dword :=
190
+ /// ZeroExtend32(__A.word[2*j+1]) * SignExtend32(__B.word[2*j+1])
191
+ /// dst.dword[j] := __W.dword[j] + tmp1 + tmp2
192
+ /// ENDFOR
193
+ /// dst[MAX:128] := 0
194
+ /// \endcode
195
+ #define _mm_dpwusd_epi32(__W, __A, __B) \
196
+ ((__m128i)__builtin_ia32_vpdpwusd128((__v4si)(__W), (__v8hu)(__A), \
197
+ (__v8hi)(__B)))
198
+
199
+ /// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A
200
+ /// with corresponding signed 16-bit integers in \a __B, producing 2
201
+ /// intermediate signed 16-bit results. Sum these 2 results with the
202
+ /// corresponding 32-bit integer in \a __W, and store the packed 32-bit
203
+ /// results in \a dst.
204
+ ///
205
+ /// \headerfile <immintrin.h>
206
+ ///
207
+ /// \code
208
+ /// __m256i _mm256_dpwusd_epi32(__m256i __W, __m256i __A, __m256i __B)
209
+ /// \endcode
210
+ ///
211
+ /// This intrinsic corresponds to the \c VPDPWUSD instruction.
212
+ ///
213
+ /// \param __W
214
+ /// A 256-bit vector of [8 x int].
215
+ /// \param __A
216
+ /// A 256-bit vector of [16 x unsigned short].
217
+ /// \param __B
218
+ /// A 256-bit vector of [16 x short].
219
+ /// \returns
220
+ /// A 256-bit vector of [8 x int].
221
+ ///
222
+ /// \code{.operation}
223
+ /// FOR j := 0 to 7
224
+ /// tmp1.dword := ZeroExtend32(__A.word[2*j]) * SignExtend32(__B.word[2*j])
225
+ /// tmp2.dword :=
226
+ /// ZeroExtend32(__A.word[2*j+1]) * SignExtend32(__B.word[2*j+1])
227
+ /// dst.dword[j] := __W.dword[j] + tmp1 + tmp2
228
+ /// ENDFOR
229
+ /// dst[MAX:256] := 0
230
+ /// \endcode
231
+ #define _mm256_dpwusd_epi32(__W, __A, __B) \
232
+ ((__m256i)__builtin_ia32_vpdpwusd256((__v8si)(__W), (__v16hu)(__A), \
233
+ (__v16hi)(__B)))
234
+
235
+ /// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A
236
+ /// with corresponding signed 16-bit integers in \a __B, producing 2
237
+ /// intermediate signed 16-bit results. Sum these 2 results with the
238
+ /// corresponding 32-bit integer in \a __W with signed saturation, and
239
+ /// store the packed 32-bit results in \a dst.
240
+ ///
241
+ /// \headerfile <immintrin.h>
242
+ ///
243
+ /// \code
244
+ /// __m128i _mm_dpwusds_epi32(__m128i __W, __m128i __A, __m128i __B)
245
+ /// \endcode
246
+ ///
247
+ /// This intrinsic corresponds to the \c VPDPWUSDS instruction.
248
+ ///
249
+ /// \param __W
250
+ /// A 128-bit vector of [4 x int].
251
+ /// \param __A
252
+ /// A 128-bit vector of [8 x unsigned short].
253
+ /// \param __B
254
+ /// A 128-bit vector of [8 x short].
255
+ /// \returns
256
+ /// A 128-bit vector of [4 x int].
257
+ ///
258
+ /// \code{.operation}
259
+ /// FOR j := 0 to 3
260
+ /// tmp1.dword := ZeroExtend32(__A.word[2*j]) * SignExtend32(__B.word[2*j])
261
+ /// tmp2.dword :=
262
+ /// ZeroExtend32(__A.word[2*j+1]) * SignExtend32(__B.word[2*j+1])
263
+ /// dst.dword[j] := SIGNED_DWORD_SATURATE(__W.dword[j] + tmp1 + tmp2)
264
+ /// ENDFOR
265
+ /// dst[MAX:128] := 0
266
+ /// \endcode
267
+ #define _mm_dpwusds_epi32(__W, __A, __B) \
268
+ ((__m128i)__builtin_ia32_vpdpwusds128((__v4si)(__W), (__v8hu)(__A), \
269
+ (__v8hi)(__B)))
270
+
271
+ /// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A
272
+ /// with corresponding signed 16-bit integers in \a __B, producing 2
273
+ /// intermediate signed 16-bit results. Sum these 2 results with the
274
+ /// corresponding 32-bit integer in \a __W with signed saturation, and
275
+ /// store the packed 32-bit results in \a dst.
276
+ ///
277
+ /// \headerfile <immintrin.h>
278
+ ///
279
+ /// \code
280
+ /// __m256i _mm256_dpwsuds_epi32(__m256i __W, __m256i __A, __m256i __B)
281
+ /// \endcode
282
+ ///
283
+ /// This intrinsic corresponds to the \c VPDPWUSDS instruction.
284
+ ///
285
+ /// \param __W
286
+ /// A 256-bit vector of [8 x int].
287
+ /// \param __A
288
+ /// A 256-bit vector of [16 x unsigned short].
289
+ /// \param __B
290
+ /// A 256-bit vector of [16 x short].
291
+ /// \returns
292
+ /// A 256-bit vector of [8 x int].
293
+ ///
294
+ /// \code{.operation}
295
+ /// FOR j := 0 to 7
296
+ /// tmp1.dword := ZeroExtend32(__A.word[2*j]) * SignExtend32(__B.word[2*j])
297
+ /// tmp2.dword :=
298
+ /// ZeroExtend32(__A.word[2*j+1]) * SignExtend32(__B.word[2*j+1])
299
+ /// dst.dword[j] := SIGNED_DWORD_SATURATE(__W.dword[j] + tmp1 + tmp2)
300
+ /// ENDFOR
301
+ /// dst[MAX:256] := 0
302
+ /// \endcode
303
+ #define _mm256_dpwusds_epi32(__W, __A, __B) \
304
+ ((__m256i)__builtin_ia32_vpdpwusds256((__v8si)(__W), (__v16hu)(__A), \
305
+ (__v16hi)(__B)))
306
+
307
+ /// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A
308
+ /// with corresponding unsigned 16-bit integers in \a __B, producing 2
309
+ /// intermediate signed 16-bit results. Sum these 2 results with the
310
+ /// corresponding 32-bit integer in \a __W, and store the packed 32-bit
311
+ /// results in \a dst.
312
+ ///
313
+ /// \headerfile <immintrin.h>
314
+ ///
315
+ /// \code
316
+ /// __m128i _mm_dpwuud_epi32(__m128i __W, __m128i __A, __m128i __B)
317
+ /// \endcode
318
+ ///
319
+ /// This intrinsic corresponds to the \c VPDPWUUD instruction.
320
+ ///
321
+ /// \param __W
322
+ /// A 128-bit vector of [4 x int].
323
+ /// \param __A
324
+ /// A 128-bit vector of [8 x unsigned short].
325
+ /// \param __B
326
+ /// A 128-bit vector of [8 x unsigned short].
327
+ /// \returns
328
+ /// A 128-bit vector of [4 x int].
329
+ ///
330
+ /// \code{.operation}
331
+ /// FOR j := 0 to 3
332
+ /// tmp1.dword := ZeroExtend32(__A.word[2*j]) * ZeroExtend32(__B.word[2*j])
333
+ /// tmp2.dword :=
334
+ /// ZeroExtend32(__A.word[2*j+1]) * ZeroExtend32(__B.word[2*j+1])
335
+ /// dst.dword[j] := __W.dword[j] + tmp1 + tmp2
336
+ /// ENDFOR
337
+ /// dst[MAX:128] := 0
338
+ /// \endcode
339
+ #define _mm_dpwuud_epi32(__W, __A, __B) \
340
+ ((__m128i)__builtin_ia32_vpdpwuud128((__v4si)(__W), (__v8hu)(__A), \
341
+ (__v8hu)(__B)))
342
+
343
+ /// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A
344
+ /// with corresponding unsigned 16-bit integers in \a __B, producing 2
345
+ /// intermediate signed 16-bit results. Sum these 2 results with the
346
+ /// corresponding 32-bit integer in \a __W, and store the packed 32-bit
347
+ /// results in \a dst.
348
+ ///
349
+ /// \headerfile <immintrin.h>
350
+ ///
351
+ /// \code
352
+ /// __m256i _mm256_dpwuud_epi32(__m256i __W, __m256i __A, __m256i __B)
353
+ /// \endcode
354
+ ///
355
+ /// This intrinsic corresponds to the \c VPDPWUUD instruction.
356
+ ///
357
+ /// \param __W
358
+ /// A 256-bit vector of [8 x int].
359
+ /// \param __A
360
+ /// A 256-bit vector of [16 x unsigned short].
361
+ /// \param __B
362
+ /// A 256-bit vector of [16 x unsigned short].
363
+ /// \returns
364
+ /// A 256-bit vector of [8 x int].
365
+ ///
366
+ /// \code{.operation}
367
+ /// FOR j := 0 to 7
368
+ /// tmp1.dword := ZeroExtend32(__A.word[2*j]) * ZeroExtend32(__B.word[2*j])
369
+ /// tmp2.dword :=
370
+ /// ZeroExtend32(__A.word[2*j+1]) * ZeroExtend32(__B.word[2*j+1])
371
+ /// dst.dword[j] := __W.dword[j] + tmp1 + tmp2
372
+ /// ENDFOR
373
+ /// dst[MAX:256] := 0
374
+ /// \endcode
375
+ #define _mm256_dpwuud_epi32(__W, __A, __B) \
376
+ ((__m256i)__builtin_ia32_vpdpwuud256((__v8si)(__W), (__v16hu)(__A), \
377
+ (__v16hu)(__B)))
378
+
379
+ /// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A
380
+ /// with corresponding unsigned 16-bit integers in \a __B, producing 2
381
+ /// intermediate signed 16-bit results. Sum these 2 results with the
382
+ /// corresponding 32-bit integer in \a __W with signed saturation, and store
383
+ /// the packed 32-bit results in \a dst.
384
+ ///
385
+ /// \headerfile <immintrin.h>
386
+ ///
387
+ /// \code
388
+ /// __m128i _mm_dpwsuds_epi32(__m128i __W, __m128i __A, __m128i __B)
389
+ /// \endcode
390
+ ///
391
+ /// This intrinsic corresponds to the \c VPDPWUUDS instruction.
392
+ ///
393
+ /// \param __W
394
+ /// A 128-bit vector of [4 x int].
395
+ /// \param __A
396
+ /// A 128-bit vector of [8 x unsigned short].
397
+ /// \param __B
398
+ /// A 128-bit vector of [8 x unsigned short].
399
+ /// \returns
400
+ /// A 128-bit vector of [4 x int].
401
+ ///
402
+ /// \code{.operation}
403
+ /// FOR j := 0 to 3
404
+ /// tmp1.dword := ZeroExtend32(__A.word[2*j]) * ZeroExtend32(__B.word[2*j])
405
+ /// tmp2.dword :=
406
+ /// ZeroExtend32(__A.word[2*j+1]) * ZeroExtend32(__B.word[2*j+1])
407
+ /// dst.dword[j] := UNSIGNED_DWORD_SATURATE(__W.dword[j] + tmp1 + tmp2)
408
+ /// ENDFOR
409
+ /// dst[MAX:128] := 0
410
+ /// \endcode
411
+ #define _mm_dpwuuds_epi32(__W, __A, __B) \
412
+ ((__m128i)__builtin_ia32_vpdpwuuds128((__v4si)(__W), (__v8hu)(__A), \
413
+ (__v8hu)(__B)))
414
+
415
+ /// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A
416
+ /// with corresponding unsigned 16-bit integers in \a __B, producing 2
417
+ /// intermediate signed 16-bit results. Sum these 2 results with the
418
+ /// corresponding 32-bit integer in \a __W with signed saturation, and store
419
+ /// the packed 32-bit results in \a dst.
420
+ ///
421
+ /// \headerfile <immintrin.h>
422
+ ///
423
+ /// \code
424
+ /// __m256i _mm256_dpwuuds_epi32(__m256i __W, __m256i __A, __m256i __B)
425
+ /// \endcode
426
+ ///
427
+ /// This intrinsic corresponds to the \c VPDPWUUDS instruction.
428
+ ///
429
+ /// \param __W
430
+ /// A 256-bit vector of [8 x int].
431
+ /// \param __A
432
+ /// A 256-bit vector of [16 x unsigned short].
433
+ /// \param __B
434
+ /// A 256-bit vector of [16 x unsigned short].
435
+ /// \returns
436
+ /// A 256-bit vector of [8 x int].
437
+ ///
438
+ /// \code{.operation}
439
+ /// FOR j := 0 to 7
440
+ /// tmp1.dword := ZeroExtend32(__A.word[2*j]) * ZeroExtend32(__B.word[2*j])
441
+ /// tmp2.dword :=
442
+ /// ZeroExtend32(__A.word[2*j+1]) * ZeroExtend32(__B.word[2*j+1])
443
+ /// dst.dword[j] := UNSIGNED_DWORD_SATURATE(__W.dword[j] + tmp1 + tmp2)
444
+ /// ENDFOR
445
+ /// dst[MAX:256] := 0
446
+ /// \endcode
447
+ #define _mm256_dpwuuds_epi32(__W, __A, __B) \
448
+ ((__m256i)__builtin_ia32_vpdpwuuds256((__v8si)(__W), (__v16hu)(__A), \
449
+ (__v16hu)(__B)))
450
+
451
+ #endif // __AVXVNNIINT16INTRIN_H