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,568 @@
1
+ /*===----------- avx10_2_512bf16intrin.h - AVX10-BF16 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
+ #ifndef __IMMINTRIN_H
10
+ #error \
11
+ "Never use <avx10_2_512bf16intrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifdef __SSE2__
15
+
16
+ #ifndef __AVX10_2_512BF16INTRIN_H
17
+ #define __AVX10_2_512BF16INTRIN_H
18
+
19
+ /* Define the default attributes for the functions in this file. */
20
+ typedef __bf16 __m512bh_u __attribute__((__vector_size__(64), __aligned__(1)));
21
+
22
+ /* Define the default attributes for the functions in this file. */
23
+ #define __DEFAULT_FN_ATTRS512 \
24
+ __attribute__((__always_inline__, __nodebug__, __target__("avx10.2"), \
25
+ __min_vector_width__(512)))
26
+
27
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
28
+ #define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512 constexpr
29
+ #else
30
+ #define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512
31
+ #endif
32
+
33
+ static __inline __m512bh __DEFAULT_FN_ATTRS512 _mm512_setzero_pbh(void) {
34
+ return __builtin_bit_cast(__m512bh, _mm512_setzero_ps());
35
+ }
36
+
37
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_undefined_pbh(void) {
38
+ return (__m512bh)__builtin_ia32_undef512();
39
+ }
40
+
41
+ static __inline __m512bh __DEFAULT_FN_ATTRS512 _mm512_set1_pbh(__bf16 bf) {
42
+ return (__m512bh)(__v32bf){bf, bf, bf, bf, bf, bf, bf, bf, bf, bf, bf,
43
+ bf, bf, bf, bf, bf, bf, bf, bf, bf, bf, bf,
44
+ bf, bf, bf, bf, bf, bf, bf, bf, bf, bf};
45
+ }
46
+
47
+ static __inline __m512bh __DEFAULT_FN_ATTRS512 _mm512_set_pbh(
48
+ __bf16 bf1, __bf16 bf2, __bf16 bf3, __bf16 bf4, __bf16 bf5, __bf16 bf6,
49
+ __bf16 bf7, __bf16 bf8, __bf16 bf9, __bf16 bf10, __bf16 bf11, __bf16 bf12,
50
+ __bf16 bf13, __bf16 bf14, __bf16 bf15, __bf16 bf16, __bf16 bf17,
51
+ __bf16 bf18, __bf16 bf19, __bf16 bf20, __bf16 bf21, __bf16 bf22,
52
+ __bf16 bf23, __bf16 bf24, __bf16 bf25, __bf16 bf26, __bf16 bf27,
53
+ __bf16 bf28, __bf16 bf29, __bf16 bf30, __bf16 bf31, __bf16 bf32) {
54
+ return (__m512bh)(__v32bf){bf32, bf31, bf30, bf29, bf28, bf27, bf26, bf25,
55
+ bf24, bf23, bf22, bf21, bf20, bf19, bf18, bf17,
56
+ bf16, bf15, bf14, bf13, bf12, bf11, bf10, bf9,
57
+ bf8, bf7, bf6, bf5, bf4, bf3, bf2, bf1};
58
+ }
59
+
60
+ #define _mm512_setr_pbh(bf1, bf2, bf3, bf4, bf5, bf6, bf7, bf8, bf9, bf10, \
61
+ bf11, bf12, bf13, bf14, bf15, bf16, bf17, bf18, bf19, \
62
+ bf20, bf21, bf22, bf23, bf24, bf25, bf26, bf27, bf28, \
63
+ bf29, bf30, bf31, bf32) \
64
+ _mm512_set_pbh((bf32), (bf31), (bf30), (bf29), (bf28), (bf27), (bf26), \
65
+ (bf25), (bf24), (bf23), (bf22), (bf21), (bf20), (bf19), \
66
+ (bf18), (bf17), (bf16), (bf15), (bf14), (bf13), (bf12), \
67
+ (bf11), (bf10), (bf9), (bf8), (bf7), (bf6), (bf5), (bf4), \
68
+ (bf3), (bf2), (bf1))
69
+
70
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512
71
+ _mm512_castbf16_ps(__m512bh __a) {
72
+ return (__m512)__a;
73
+ }
74
+
75
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512
76
+ _mm512_castbf16_pd(__m512bh __a) {
77
+ return (__m512d)__a;
78
+ }
79
+
80
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
81
+ _mm512_castbf16_si512(__m512bh __a) {
82
+ return (__m512i)__a;
83
+ }
84
+
85
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_castps_pbh(__m512 __a) {
86
+ return (__m512bh)__a;
87
+ }
88
+
89
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
90
+ _mm512_castpd_pbh(__m512d __a) {
91
+ return (__m512bh)__a;
92
+ }
93
+
94
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
95
+ _mm512_castsi512_pbh(__m512i __a) {
96
+ return (__m512bh)__a;
97
+ }
98
+
99
+ static __inline__ __m128bh __DEFAULT_FN_ATTRS512
100
+ _mm512_castbf16512_pbh128(__m512bh __a) {
101
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7);
102
+ }
103
+
104
+ static __inline__ __m256bh __DEFAULT_FN_ATTRS512
105
+ _mm512_castbf16512_pbh256(__m512bh __a) {
106
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
107
+ 12, 13, 14, 15);
108
+ }
109
+
110
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
111
+ _mm512_castbf16128_pbh512(__m128bh __a) {
112
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, -1,
113
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
114
+ -1, -1, -1, -1, -1, -1, -1, -1, -1);
115
+ }
116
+
117
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
118
+ _mm512_castbf16256_pbh512(__m256bh __a) {
119
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
120
+ 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1,
121
+ -1, -1, -1, -1, -1, -1, -1, -1);
122
+ }
123
+
124
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
125
+ _mm512_zextbf16128_pbh512(__m128bh __a) {
126
+ return __builtin_shufflevector(
127
+ __a, (__v8bf)_mm_setzero_pbh(), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
128
+ 13, 14, 15, 8, 9, 10, 11, 12, 13, 14, 15, 8, 9, 10, 11, 12, 13, 14, 15);
129
+ }
130
+
131
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
132
+ _mm512_zextbf16256_pbh512(__m256bh __a) {
133
+ return __builtin_shufflevector(__a, (__v16bf)_mm256_setzero_pbh(), 0, 1, 2, 3,
134
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
135
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
136
+ 29, 30, 31);
137
+ }
138
+
139
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_abs_pbh(__m512bh __A) {
140
+ return (__m512bh)_mm512_and_epi32(_mm512_set1_epi32(0x7FFF7FFF),
141
+ (__m512i)__A);
142
+ }
143
+
144
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
145
+ _mm512_load_pbh(void const *__p) {
146
+ return *(const __m512bh *)__p;
147
+ }
148
+
149
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
150
+ _mm512_loadu_pbh(void const *__p) {
151
+ struct __loadu_pbh {
152
+ __m512bh_u __v;
153
+ } __attribute__((__packed__, __may_alias__));
154
+ return ((const struct __loadu_pbh *)__p)->__v;
155
+ }
156
+
157
+ static __inline__ void __DEFAULT_FN_ATTRS512 _mm512_store_pbh(void *__P,
158
+ __m512bh __A) {
159
+ *(__m512bh *)__P = __A;
160
+ }
161
+
162
+ static __inline__ void __DEFAULT_FN_ATTRS512 _mm512_storeu_pbh(void *__P,
163
+ __m512bh __A) {
164
+ struct __storeu_pbh {
165
+ __m512bh_u __v;
166
+ } __attribute__((__packed__, __may_alias__));
167
+ ((struct __storeu_pbh *)__P)->__v = __A;
168
+ }
169
+
170
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
171
+ _mm512_mask_blend_pbh(__mmask32 __U, __m512bh __A, __m512bh __W) {
172
+ return (__m512bh)__builtin_ia32_selectpbf_512((__mmask32)__U, (__v32bf)__W,
173
+ (__v32bf)__A);
174
+ }
175
+
176
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512_CONSTEXPR
177
+ _mm512_permutex2var_pbh(__m512bh __A, __m512i __I, __m512bh __B) {
178
+ return (__m512bh)__builtin_ia32_vpermi2varhi512((__v32hi)__A, (__v32hi)__I,
179
+ (__v32hi)__B);
180
+ }
181
+
182
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512_CONSTEXPR
183
+ _mm512_permutexvar_pbh(__m512i __A, __m512bh __B) {
184
+ return (__m512bh)__builtin_ia32_permvarhi512((__v32hi)__B, (__v32hi)__A);
185
+ }
186
+
187
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_add_pbh(__m512bh __A,
188
+ __m512bh __B) {
189
+ return (__m512bh)((__v32bf)__A + (__v32bf)__B);
190
+ }
191
+
192
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
193
+ _mm512_mask_add_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
194
+ return (__m512bh)__builtin_ia32_selectpbf_512(
195
+ (__mmask32)__U, (__v32bf)_mm512_add_pbh(__A, __B), (__v32bf)__W);
196
+ }
197
+
198
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
199
+ _mm512_maskz_add_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
200
+ return (__m512bh)__builtin_ia32_selectpbf_512(
201
+ (__mmask32)__U, (__v32bf)_mm512_add_pbh(__A, __B),
202
+ (__v32bf)_mm512_setzero_pbh());
203
+ }
204
+
205
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_sub_pbh(__m512bh __A,
206
+ __m512bh __B) {
207
+ return (__m512bh)((__v32bf)__A - (__v32bf)__B);
208
+ }
209
+
210
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
211
+ _mm512_mask_sub_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
212
+ return (__m512bh)__builtin_ia32_selectpbf_512(
213
+ (__mmask32)__U, (__v32bf)_mm512_sub_pbh(__A, __B), (__v32bf)__W);
214
+ }
215
+
216
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
217
+ _mm512_maskz_sub_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
218
+ return (__m512bh)__builtin_ia32_selectpbf_512(
219
+ (__mmask32)__U, (__v32bf)_mm512_sub_pbh(__A, __B),
220
+ (__v32bf)_mm512_setzero_pbh());
221
+ }
222
+
223
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mul_pbh(__m512bh __A,
224
+ __m512bh __B) {
225
+ return (__m512bh)((__v32bf)__A * (__v32bf)__B);
226
+ }
227
+
228
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
229
+ _mm512_mask_mul_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
230
+ return (__m512bh)__builtin_ia32_selectpbf_512(
231
+ (__mmask32)__U, (__v32bf)_mm512_mul_pbh(__A, __B), (__v32bf)__W);
232
+ }
233
+
234
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
235
+ _mm512_maskz_mul_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
236
+ return (__m512bh)__builtin_ia32_selectpbf_512(
237
+ (__mmask32)__U, (__v32bf)_mm512_mul_pbh(__A, __B),
238
+ (__v32bf)_mm512_setzero_pbh());
239
+ }
240
+
241
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_div_pbh(__m512bh __A,
242
+ __m512bh __B) {
243
+ return (__m512bh)((__v32bf)__A / (__v32bf)__B);
244
+ }
245
+
246
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
247
+ _mm512_mask_div_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
248
+ return (__m512bh)__builtin_ia32_selectpbf_512(
249
+ (__mmask32)__U, (__v32bf)_mm512_div_pbh(__A, __B), (__v32bf)__W);
250
+ }
251
+
252
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
253
+ _mm512_maskz_div_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
254
+ return (__m512bh)__builtin_ia32_selectpbf_512(
255
+ (__mmask32)__U, (__v32bf)_mm512_div_pbh(__A, __B),
256
+ (__v32bf)_mm512_setzero_pbh());
257
+ }
258
+
259
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_max_pbh(__m512bh __A,
260
+ __m512bh __B) {
261
+ return (__m512bh)__builtin_ia32_vmaxbf16512((__v32bf)__A, (__v32bf)__B);
262
+ }
263
+
264
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
265
+ _mm512_mask_max_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
266
+ return (__m512bh)__builtin_ia32_selectpbf_512(
267
+ (__mmask32)__U, (__v32bf)_mm512_max_pbh(__A, __B), (__v32bf)__W);
268
+ }
269
+
270
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
271
+ _mm512_maskz_max_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
272
+ return (__m512bh)__builtin_ia32_selectpbf_512(
273
+ (__mmask32)__U, (__v32bf)_mm512_max_pbh(__A, __B),
274
+ (__v32bf)_mm512_setzero_pbh());
275
+ }
276
+
277
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_min_pbh(__m512bh __A,
278
+ __m512bh __B) {
279
+ return (__m512bh)__builtin_ia32_vminbf16512((__v32bf)__A, (__v32bf)__B);
280
+ }
281
+
282
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
283
+ _mm512_mask_min_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
284
+ return (__m512bh)__builtin_ia32_selectpbf_512(
285
+ (__mmask32)__U, (__v32bf)_mm512_min_pbh(__A, __B), (__v32bf)__W);
286
+ }
287
+
288
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
289
+ _mm512_maskz_min_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
290
+ return (__m512bh)__builtin_ia32_selectpbf_512(
291
+ (__mmask32)__U, (__v32bf)_mm512_min_pbh(__A, __B),
292
+ (__v32bf)_mm512_setzero_pbh());
293
+ }
294
+
295
+ #define _mm512_cmp_pbh_mask(__A, __B, __P) \
296
+ ((__mmask32)__builtin_ia32_vcmpbf16512_mask((__v32bf)(__m512bh)(__A), \
297
+ (__v32bf)(__m512bh)(__B), \
298
+ (int)(__P), (__mmask32) - 1))
299
+
300
+ #define _mm512_mask_cmp_pbh_mask(__U, __A, __B, __P) \
301
+ ((__mmask32)__builtin_ia32_vcmpbf16512_mask((__v32bf)(__m512bh)(__A), \
302
+ (__v32bf)(__m512bh)(__B), \
303
+ (int)(__P), (__mmask32)(__U)))
304
+
305
+ #define _mm512_mask_fpclass_pbh_mask(__U, __A, imm) \
306
+ ((__mmask32)__builtin_ia32_vfpclassbf16512_mask( \
307
+ (__v32bf)(__m512bh)(__A), (int)(imm), (__mmask32)(__U)))
308
+
309
+ #define _mm512_fpclass_pbh_mask(__A, imm) \
310
+ ((__mmask32)__builtin_ia32_vfpclassbf16512_mask( \
311
+ (__v32bf)(__m512bh)(__A), (int)(imm), (__mmask32) - 1))
312
+
313
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
314
+ _mm512_scalef_pbh(__m512bh __A, __m512bh __B) {
315
+ return (__m512bh)__builtin_ia32_vscalefbf16512_mask(
316
+ (__v32bf)__A, (__v32bf)__B, (__v32bf)_mm512_undefined_pbh(),
317
+ (__mmask32)-1);
318
+ }
319
+
320
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask_scalef_pbh(
321
+ __m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
322
+ return (__m512bh)__builtin_ia32_vscalefbf16512_mask(
323
+ (__v32bf)__A, (__v32bf)__B, (__v32bf)__W, (__mmask32)__U);
324
+ }
325
+
326
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
327
+ _mm512_maskz_scalef_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
328
+ return (__m512bh)__builtin_ia32_vscalefbf16512_mask(
329
+ (__v32bf)__A, (__v32bf)__B, (__v32bf)_mm512_setzero_pbh(),
330
+ (__mmask32)__U);
331
+ }
332
+
333
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_rcp_pbh(__m512bh __A) {
334
+ return (__m512bh)__builtin_ia32_vrcpbf16512_mask(
335
+ (__v32bf)__A, (__v32bf)_mm512_undefined_pbh(), (__mmask32)-1);
336
+ }
337
+
338
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
339
+ _mm512_mask_rcp_pbh(__m512bh __W, __mmask32 __U, __m512bh __A) {
340
+ return (__m512bh)__builtin_ia32_vrcpbf16512_mask((__v32bf)__A, (__v32bf)__W,
341
+ (__mmask32)__U);
342
+ }
343
+
344
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
345
+ _mm512_maskz_rcp_pbh(__mmask32 __U, __m512bh __A) {
346
+ return (__m512bh)__builtin_ia32_vrcpbf16512_mask(
347
+ (__v32bf)__A, (__v32bf)_mm512_setzero_pbh(), (__mmask32)__U);
348
+ }
349
+
350
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
351
+ _mm512_getexp_pbh(__m512bh __A) {
352
+ return (__m512bh)__builtin_ia32_vgetexpbf16512_mask(
353
+ (__v32bf)__A, (__v32bf)_mm512_undefined_pbh(), (__mmask32)-1);
354
+ }
355
+
356
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
357
+ _mm512_mask_getexp_pbh(__m512bh __W, __mmask32 __U, __m512bh __A) {
358
+ return (__m512bh)__builtin_ia32_vgetexpbf16512_mask(
359
+ (__v32bf)__A, (__v32bf)__W, (__mmask32)__U);
360
+ }
361
+
362
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
363
+ _mm512_maskz_getexp_pbh(__mmask32 __U, __m512bh __A) {
364
+ return (__m512bh)__builtin_ia32_vgetexpbf16512_mask(
365
+ (__v32bf)__A, (__v32bf)_mm512_setzero_pbh(), (__mmask32)__U);
366
+ }
367
+
368
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
369
+ _mm512_rsqrt_pbh(__m512bh __A) {
370
+ return (__m512bh)__builtin_ia32_vrsqrtbf16512_mask(
371
+ (__v32bf)__A, (__v32bf)_mm512_undefined_pbh(), (__mmask32)-1);
372
+ }
373
+
374
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
375
+ _mm512_mask_rsqrt_pbh(__m512bh __W, __mmask32 __U, __m512bh __A) {
376
+ return (__m512bh)__builtin_ia32_vrsqrtbf16512_mask((__v32bf)__A, (__v32bf)__W,
377
+ (__mmask32)__U);
378
+ }
379
+
380
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
381
+ _mm512_maskz_rsqrt_pbh(__mmask32 __U, __m512bh __A) {
382
+ return (__m512bh)__builtin_ia32_vrsqrtbf16512_mask(
383
+ (__v32bf)__A, (__v32bf)_mm512_setzero_pbh(), (__mmask32)__U);
384
+ }
385
+
386
+ #define _mm512_reduce_pbh(__A, imm) \
387
+ ((__m512bh)__builtin_ia32_vreducebf16512_mask( \
388
+ (__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)_mm512_undefined_pbh(), \
389
+ (__mmask32) - 1))
390
+
391
+ #define _mm512_mask_reduce_pbh(__W, __U, __A, imm) \
392
+ ((__m512bh)__builtin_ia32_vreducebf16512_mask( \
393
+ (__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)(__m512bh)(__W), \
394
+ (__mmask32)(__U)))
395
+
396
+ #define _mm512_maskz_reduce_pbh(__U, __A, imm) \
397
+ ((__m512bh)__builtin_ia32_vreducebf16512_mask( \
398
+ (__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)_mm512_setzero_pbh(), \
399
+ (__mmask32)(__U)))
400
+
401
+ #define _mm512_roundscale_pbh(__A, imm) \
402
+ ((__m512bh)__builtin_ia32_vrndscalebf16_mask( \
403
+ (__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)_mm512_setzero_pbh(), \
404
+ (__mmask32) - 1))
405
+
406
+ #define _mm512_mask_roundscale_pbh(__W, __U, __A, imm) \
407
+ ((__m512bh)__builtin_ia32_vrndscalebf16_mask( \
408
+ (__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)(__m512bh)(__W), \
409
+ (__mmask32)(__U)))
410
+
411
+ #define _mm512_maskz_roundscale_pbh(__U, __A, imm) \
412
+ ((__m512bh)__builtin_ia32_vrndscalebf16_mask( \
413
+ (__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)_mm512_setzero_pbh(), \
414
+ (__mmask32)(__U)))
415
+
416
+ #define _mm512_getmant_pbh(__A, __B, __C) \
417
+ ((__m512bh)__builtin_ia32_vgetmantbf16512_mask( \
418
+ (__v32bf)(__m512bh)(__A), (int)(((__C) << 2) | (__B)), \
419
+ (__v32bf)_mm512_undefined_pbh(), (__mmask32) - 1))
420
+
421
+ #define _mm512_mask_getmant_pbh(__W, __U, __A, __B, __C) \
422
+ ((__m512bh)__builtin_ia32_vgetmantbf16512_mask( \
423
+ (__v32bf)(__m512bh)(__A), (int)(((__C) << 2) | (__B)), \
424
+ (__v32bf)(__m512bh)(__W), (__mmask32)(__U)))
425
+
426
+ #define _mm512_maskz_getmant_pbh(__U, __A, __B, __C) \
427
+ ((__m512bh)__builtin_ia32_vgetmantbf16512_mask( \
428
+ (__v32bf)(__m512bh)(__A), (int)(((__C) << 2) | (__B)), \
429
+ (__v32bf)_mm512_setzero_pbh(), (__mmask32)(__U)))
430
+
431
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_sqrt_pbh(__m512bh __A) {
432
+ return __builtin_elementwise_sqrt(__A);
433
+ }
434
+
435
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
436
+ _mm512_mask_sqrt_pbh(__m512bh __W, __mmask32 __U, __m512bh __A) {
437
+ return (__m512bh)__builtin_ia32_selectpbf_512(
438
+ (__mmask32)__U, (__v32bf)_mm512_sqrt_pbh(__A), (__v32bf)__W);
439
+ }
440
+
441
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
442
+ _mm512_maskz_sqrt_pbh(__mmask32 __U, __m512bh __A) {
443
+ return (__m512bh)__builtin_ia32_selectpbf_512((__mmask32)__U,
444
+ (__v32bf)_mm512_sqrt_pbh(__A),
445
+ (__v32bf)_mm512_setzero_pbh());
446
+ }
447
+
448
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
449
+ _mm512_fmadd_pbh(__m512bh __A, __m512bh __B, __m512bh __C) {
450
+ return (__m512bh)__builtin_elementwise_fma((__v32bf)__A, (__v32bf)__B,
451
+ (__v32bf)__C);
452
+ }
453
+
454
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
455
+ _mm512_mask_fmadd_pbh(__m512bh __A, __mmask32 __U, __m512bh __B, __m512bh __C) {
456
+ return (__m512bh)__builtin_ia32_selectpbf_512(
457
+ (__mmask32)__U,
458
+ _mm512_fmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C), (__v32bf)__A);
459
+ }
460
+
461
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask3_fmadd_pbh(
462
+ __m512bh __A, __m512bh __B, __m512bh __C, __mmask32 __U) {
463
+ return (__m512bh)__builtin_ia32_selectpbf_512(
464
+ (__mmask32)__U,
465
+ _mm512_fmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C), (__v32bf)__C);
466
+ }
467
+
468
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_maskz_fmadd_pbh(
469
+ __mmask32 __U, __m512bh __A, __m512bh __B, __m512bh __C) {
470
+ return (__m512bh)__builtin_ia32_selectpbf_512(
471
+ (__mmask32)__U,
472
+ _mm512_fmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
473
+ (__v32bf)_mm512_setzero_pbh());
474
+ }
475
+
476
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
477
+ _mm512_fmsub_pbh(__m512bh __A, __m512bh __B, __m512bh __C) {
478
+ return (__m512bh)__builtin_elementwise_fma((__v32bf)__A, (__v32bf)__B,
479
+ -(__v32bf)__C);
480
+ }
481
+
482
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
483
+ _mm512_mask_fmsub_pbh(__m512bh __A, __mmask32 __U, __m512bh __B, __m512bh __C) {
484
+ return (__m512bh)__builtin_ia32_selectpbf_512(
485
+ (__mmask32)__U,
486
+ _mm512_fmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C), (__v32bf)__A);
487
+ }
488
+
489
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask3_fmsub_pbh(
490
+ __m512bh __A, __m512bh __B, __m512bh __C, __mmask32 __U) {
491
+ return (__m512bh)__builtin_ia32_selectpbf_512(
492
+ (__mmask32)__U,
493
+ _mm512_fmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C), (__v32bf)__C);
494
+ }
495
+
496
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_maskz_fmsub_pbh(
497
+ __mmask32 __U, __m512bh __A, __m512bh __B, __m512bh __C) {
498
+ return (__m512bh)__builtin_ia32_selectpbf_512(
499
+ (__mmask32)__U,
500
+ _mm512_fmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
501
+ (__v32bf)_mm512_setzero_pbh());
502
+ }
503
+
504
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
505
+ _mm512_fnmadd_pbh(__m512bh __A, __m512bh __B, __m512bh __C) {
506
+ return (__m512bh)__builtin_elementwise_fma((__v32bf)__A, -(__v32bf)__B,
507
+ (__v32bf)__C);
508
+ }
509
+
510
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask_fnmadd_pbh(
511
+ __m512bh __A, __mmask32 __U, __m512bh __B, __m512bh __C) {
512
+ return (__m512bh)__builtin_ia32_selectpbf_512(
513
+ (__mmask32)__U,
514
+ _mm512_fnmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
515
+ (__v32bf)__A);
516
+ }
517
+
518
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask3_fnmadd_pbh(
519
+ __m512bh __A, __m512bh __B, __m512bh __C, __mmask32 __U) {
520
+ return (__m512bh)__builtin_ia32_selectpbf_512(
521
+ (__mmask32)__U,
522
+ _mm512_fnmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
523
+ (__v32bf)__C);
524
+ }
525
+
526
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_maskz_fnmadd_pbh(
527
+ __mmask32 __U, __m512bh __A, __m512bh __B, __m512bh __C) {
528
+ return (__m512bh)__builtin_ia32_selectpbf_512(
529
+ (__mmask32)__U,
530
+ _mm512_fnmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
531
+ (__v32bf)_mm512_setzero_pbh());
532
+ }
533
+
534
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512
535
+ _mm512_fnmsub_pbh(__m512bh __A, __m512bh __B, __m512bh __C) {
536
+ return (__m512bh)__builtin_elementwise_fma((__v32bf)__A, -(__v32bf)__B,
537
+ -(__v32bf)__C);
538
+ }
539
+
540
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask_fnmsub_pbh(
541
+ __m512bh __A, __mmask32 __U, __m512bh __B, __m512bh __C) {
542
+ return (__m512bh)__builtin_ia32_selectpbf_512(
543
+ (__mmask32)__U,
544
+ _mm512_fnmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
545
+ (__v32bf)__A);
546
+ }
547
+
548
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask3_fnmsub_pbh(
549
+ __m512bh __A, __m512bh __B, __m512bh __C, __mmask32 __U) {
550
+ return (__m512bh)__builtin_ia32_selectpbf_512(
551
+ (__mmask32)__U,
552
+ _mm512_fnmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
553
+ (__v32bf)__C);
554
+ }
555
+
556
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_maskz_fnmsub_pbh(
557
+ __mmask32 __U, __m512bh __A, __m512bh __B, __m512bh __C) {
558
+ return (__m512bh)__builtin_ia32_selectpbf_512(
559
+ (__mmask32)__U,
560
+ _mm512_fnmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
561
+ (__v32bf)_mm512_setzero_pbh());
562
+ }
563
+
564
+ #undef __DEFAULT_FN_ATTRS512_CONSTEXPR
565
+ #undef __DEFAULT_FN_ATTRS512
566
+
567
+ #endif
568
+ #endif