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,596 @@
1
+ /*===--------------------- amxavx512intrin.h - AMXAVX512 --------------------===
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 "Never use <amxavx512intrin.h> directly; include <immintrin.h> instead."
11
+ #endif // __IMMINTRIN_H
12
+
13
+ #ifndef __AMX_AVX512INTRIN_H
14
+ #define __AMX_AVX512INTRIN_H
15
+ #if defined(__x86_64__) && defined(__SSE2__)
16
+
17
+ #define __DEFAULT_FN_ATTRS_AVX512 \
18
+ __attribute__((__always_inline__, __nodebug__, \
19
+ __target__("amx-avx512,avx10.2"), __min_vector_width__(512)))
20
+
21
+ /// Moves a row from a tile register to a zmm destination register, converting
22
+ /// the int32 source elements to fp32. The row of the tile is selected by a
23
+ /// 32b GPR.
24
+ ///
25
+ /// \headerfile <x86intrin.h>
26
+ ///
27
+ /// \code
28
+ /// __m512i _tile_cvtrowd2ps(__tile tsrc, unsigned int row);
29
+ /// \endcode
30
+ ///
31
+ /// \code{.operation}
32
+ /// VL := 512
33
+ /// VL_bytes := VL >> 3
34
+ /// row_index := row & 0xffff
35
+ /// row_chunk := ((row >> 16) & 0xffff) * VL_bytes
36
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
37
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
38
+ /// dst.dword[i] := 0
39
+ /// ELSE
40
+ /// dst.f32[i] := CONVERT_INT32_TO_FP32(tsrc.row[row_index].dword[row_chunk/4+i], RNE)
41
+ /// FI
42
+ /// ENDFOR
43
+ /// dst[MAX_VL-1:VL] := 0
44
+ /// zero_tileconfig_start()
45
+ /// \endcode
46
+ ///
47
+ /// This intrinsic corresponds to the \c TCVTROWD2PS instruction.
48
+ ///
49
+ /// \param tsrc
50
+ /// The source tile. Max size is 1024 Bytes.
51
+ /// \param row
52
+ /// The row of the source tile
53
+ #define _tile_cvtrowd2ps(tsrc, row) __builtin_ia32_tcvtrowd2ps(tsrc, row)
54
+
55
+ /// Moves a row from a tile register to a zmm destination register, converting
56
+ /// the int32 source elements to fp32. The row of the tile is selected by a
57
+ /// 8b immediate value.
58
+ ///
59
+ /// \headerfile <x86intrin.h>
60
+ ///
61
+ /// \code
62
+ /// __m512i _tile_cvtrowd2psi(__tile tsrc, const unsigned int imm8);
63
+ /// \endcode
64
+ ///
65
+ /// \code{.operation}
66
+ /// VL := 512
67
+ /// VL_bytes := VL >> 3
68
+ /// row_index := imm8 & 0x3f
69
+ /// row_chunk := (imm8 >> 6) * VL_bytes
70
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
71
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
72
+ /// dst.dword[i] := 0
73
+ /// ELSE
74
+ /// dst.f32[i] := CONVERT_INT32_TO_FP32(tsrc.row[row_index].dword[row_chunk/4+i], RNE)
75
+ /// FI
76
+ /// ENDFOR
77
+ /// dst[MAX_VL-1:VL] := 0
78
+ /// zero_tileconfig_start()
79
+ /// \endcode
80
+ ///
81
+ /// This intrinsic corresponds to the \c TCVTROWD2PS instruction.
82
+ ///
83
+ /// \param tsrc
84
+ /// The source tile. Max size is 1024 Bytes.
85
+ /// \param imm8
86
+ /// The row of the source tile
87
+ #define _tile_cvtrowd2psi(tsrc, imm8) __builtin_ia32_tcvtrowd2psi(tsrc, imm8)
88
+
89
+ /// Moves a row from a tile register to a zmm destination register, converting
90
+ /// the fp32 source elements to bf16. It places the resulting bf16 elements
91
+ /// in the high 16 bits within each dword. The row of the tile is selected
92
+ /// by a 32b GPR.
93
+ ///
94
+ /// \headerfile <x86intrin.h>
95
+ ///
96
+ /// \code
97
+ /// __m512i _tile_cvtrowps2bf16h(__tile tsrc, unsigned int row);
98
+ /// \endcode
99
+ ///
100
+ /// \code{.operation}
101
+ /// VL := 512
102
+ /// VL_bytes := VL >> 3
103
+ /// row_index := row & 0xffff
104
+ /// row_chunk := ((row >> 16) & 0xffff) * VL_bytes
105
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
106
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
107
+ /// dst.dword[i] := 0
108
+ /// ELSE
109
+ /// dst.word[2*i+0] := 0
110
+ /// dst.bf16[2*i+1] := CONVERT_FP32_TO_BF16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
111
+ /// FI
112
+ /// ENDFOR
113
+ /// dst[MAX_VL-1:VL] := 0
114
+ /// zero_tileconfig_start()
115
+ /// \endcode
116
+ ///
117
+ /// This intrinsic corresponds to the \c TCVTROWPS2BF16H instruction.
118
+ ///
119
+ /// \param tsrc
120
+ /// The source tile. Max size is 1024 Bytes.
121
+ /// \param row
122
+ /// The the row of the source tile.
123
+ #define _tile_cvtrowps2bf16h(tsrc, row) \
124
+ __builtin_ia32_tcvtrowps2bf16h(tsrc, row)
125
+
126
+ /// Moves a row from a tile register to a zmm destination register, converting
127
+ /// the fp32 source elements to bf16. It places the resulting bf16 elements
128
+ /// in the high 16 bits within each dword. The row of the tile is selected
129
+ /// by a 8b immediate value.
130
+ ///
131
+ /// \headerfile <x86intrin.h>
132
+ ///
133
+ /// \code
134
+ /// __m512i _tile_cvtrowps2bf16hi(__tile tsrc, const unsigned int imm8);
135
+ /// \endcode
136
+ ///
137
+ /// \code{.operation}
138
+ /// VL := 512
139
+ /// VL_bytes := VL >> 3
140
+ /// row_index := imm8 & 0x3f
141
+ /// row_chunk := (imm8 >> 6) * VL_bytes
142
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
143
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
144
+ /// dst.dword[i] := 0
145
+ /// ELSE
146
+ /// dst.word[2*i+0] := 0
147
+ /// dst.bf16[2*i+1] := CONVERT_FP32_TO_BF16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
148
+ /// FI
149
+ /// ENDFOR
150
+ /// dst[MAX_VL-1:VL] := 0
151
+ /// zero_tileconfig_start()
152
+ /// \endcode
153
+ ///
154
+ /// This intrinsic corresponds to the \c TCVTROWPS2BF16H instruction.
155
+ ///
156
+ /// \param tsrc
157
+ /// The source tile. Max size is 1024 Bytes.
158
+ /// \param imm8
159
+ /// The the row of the source tile.
160
+ #define _tile_cvtrowps2bf16hi(tsrc, imm8) \
161
+ __builtin_ia32_tcvtrowps2bf16hi(tsrc, imm8)
162
+
163
+ /// Moves a row from a tile register to a zmm destination register, converting
164
+ /// the fp32 source elements to bf16. It places the resulting bf16 elements
165
+ /// in the low 16 bits within each dword. The row of the tile is selected
166
+ /// by a 32b GPR.
167
+ ///
168
+ /// \headerfile <x86intrin.h>
169
+ ///
170
+ /// \code
171
+ /// __m512i _tile_cvtrowps2bf16l(__tile tsrc, unsigned int row);
172
+ /// \endcode
173
+ ///
174
+ /// \code{.operation}
175
+ /// VL := 512
176
+ /// VL_bytes := VL >> 3
177
+ /// row_index := row & 0xffff
178
+ /// row_chunk := ((row >> 16) & 0xffff) * VL_bytes
179
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
180
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
181
+ /// dst.dword[i] := 0
182
+ /// ELSE
183
+ /// dst.word[2*i+1] := 0
184
+ /// dst.bf16[2*i+0] := CONVERT_FP32_TO_BF16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
185
+ /// FI
186
+ /// ENDFOR
187
+ /// dst[MAX_VL-1:VL] := 0
188
+ /// zero_tileconfig_start()
189
+ /// \endcode
190
+ ///
191
+ /// This intrinsic corresponds to the \c TCVTROWPS2BF16L instruction.
192
+ ///
193
+ /// \param tsrc
194
+ /// The source tile. Max size is 1024 Bytes.
195
+ /// \param row
196
+ /// The the row of the source tile.
197
+ #define _tile_cvtrowps2bf16l(tsrc, row) \
198
+ __builtin_ia32_tcvtrowps2bf16l(tsrc, row)
199
+
200
+ /// Moves a row from a tile register to a zmm destination register, converting
201
+ /// the fp32 source elements to bf16. It places the resulting bf16 elements
202
+ /// in the low 16 bits within each dword. The row of the tile is selected
203
+ /// by a 8b immediate value.
204
+ ///
205
+ /// \headerfile <x86intrin.h>
206
+ ///
207
+ /// \code
208
+ /// __m512i _tile_cvtrowps2bf16li(__tile tsrc, const unsigned int imm8);
209
+ /// \endcode
210
+ ///
211
+ /// \code{.operation}
212
+ /// VL := 512
213
+ /// VL_bytes := VL >> 3
214
+ /// row_index := imm8 & 0x3f
215
+ /// row_chunk := (imm8 >> 6) * VL_bytes
216
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
217
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
218
+ /// dst.dword[i] := 0
219
+ /// ELSE
220
+ /// dst.word[2*i+1] := 0
221
+ /// dst.bf16[2*i+0] := CONVERT_FP32_TO_BF16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
222
+ /// FI
223
+ /// ENDFOR
224
+ /// dst[MAX_VL-1:VL] := 0
225
+ /// zero_tileconfig_start()
226
+ /// \endcode
227
+ ///
228
+ /// This intrinsic corresponds to the \c TCVTROWPS2BF16L instruction.
229
+ ///
230
+ /// \param tsrc
231
+ /// The source tile. Max size is 1024 Bytes.
232
+ /// \param imm8
233
+ /// The the row of the source tile.
234
+ #define _tile_cvtrowps2bf16li(tsrc, imm8) \
235
+ __builtin_ia32_tcvtrowps2bf16li(tsrc, imm8)
236
+
237
+ /// Moves a row from a tile register to a zmm destination register, converting
238
+ /// the fp32 source elements to fp16. It places the resulting fp16 elements
239
+ /// in the high 16 bits within each dword. The row of the tile is selected
240
+ /// by a 32b GPR.
241
+ ///
242
+ /// \headerfile <x86intrin.h>
243
+ ///
244
+ /// \code
245
+ /// __m512i _tile_cvtrowps2phh(__tile tsrc, unsigned int row);
246
+ /// \endcode
247
+ ///
248
+ /// \code{.operation}
249
+ /// VL := 512
250
+ /// VL_bytes := VL >> 3
251
+ /// row_index := row & 0xffff
252
+ /// row_chunk := ((row >> 16) & 0xffff) * VL_bytes
253
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
254
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
255
+ /// dst.dword[i] := 0
256
+ /// ELSE
257
+ /// dst.word[2*i+0] := 0
258
+ /// dst.fp16[2*i+1] := CONVERT_FP32_TO_FP16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
259
+ /// FI
260
+ /// ENDFOR
261
+ /// dst[MAX_VL-1:VL] := 0
262
+ /// zero_tileconfig_start()
263
+ /// \endcode
264
+ ///
265
+ /// This intrinsic corresponds to the \c TCVTROWPS2PHH instruction.
266
+ ///
267
+ /// \param tsrc
268
+ /// The source tile. Max size is 1024 Bytes.
269
+ /// \param row
270
+ /// The the row of the source tile.
271
+ #define _tile_cvtrowps2phh(tsrc, row) __builtin_ia32_tcvtrowps2phh(tsrc, row)
272
+
273
+ /// Moves a row from a tile register to a zmm destination register, converting
274
+ /// the fp32 source elements to fp16. It places the resulting fp16 elements
275
+ /// in the high 16 bits within each dword. The row of the tile is selected
276
+ /// by a 8b immediate value.
277
+ ///
278
+ /// \headerfile <x86intrin.h>
279
+ ///
280
+ /// \code
281
+ /// __m512i _tile_cvtrowps2phhi(__tile tsrc, constunsigned int imm8);
282
+ /// \endcode
283
+ ///
284
+ /// \code{.operation}
285
+ /// VL := 512
286
+ /// VL_bytes := VL >> 3
287
+ /// row_index := imm8 & 0x3f
288
+ /// row_chunk := (imm8 >> 6) * VL_bytes
289
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
290
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
291
+ /// dst.dword[i] := 0
292
+ /// ELSE
293
+ /// dst.word[2*i+0] := 0
294
+ /// dst.fp16[2*i+1] := CONVERT_FP32_TO_FP16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
295
+ /// FI
296
+ /// ENDFOR
297
+ /// dst[MAX_VL-1:VL] := 0
298
+ /// zero_tileconfig_start()
299
+ /// \endcode
300
+ ///
301
+ /// This intrinsic corresponds to the \c TCVTROWPS2PHH instruction.
302
+ ///
303
+ /// \param tsrc
304
+ /// The source tile. Max size is 1024 Bytes.
305
+ /// \param imm8
306
+ /// The the row of the source tile.
307
+ #define _tile_cvtrowps2phhi(tsrc, imm8) \
308
+ __builtin_ia32_tcvtrowps2phhi(tsrc, imm8)
309
+
310
+ /// Moves a row from a tile register to a zmm destination register, converting
311
+ /// the fp32 source elements to fp16. It places the resulting fp16 elements
312
+ /// in the low 16 bits within each dword. The row of the tile is selected
313
+ /// by a 32b GPR.
314
+ ///
315
+ /// \headerfile <x86intrin.h>
316
+ ///
317
+ /// \code
318
+ /// __m512i _tile_cvtrowps2phl(__tile tsrc, unsigned int row);
319
+ /// \endcode
320
+ ///
321
+ /// \code{.operation}
322
+ /// VL := 512
323
+ /// VL_bytes := VL >> 3
324
+ /// row_index := row & 0xffff
325
+ /// row_chunk := ((row >> 16) & 0xffff) * VL_bytes
326
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
327
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
328
+ /// dst.dword[i] := 0
329
+ /// ELSE
330
+ /// dst.word[2*i+1] := 0
331
+ /// dst.fp16[2*i+0] := CONVERT_FP32_TO_FP16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
332
+ /// FI
333
+ /// ENDFOR
334
+ /// dst[MAX_VL-1:VL] := 0
335
+ /// zero_tileconfig_start()
336
+ /// \endcode
337
+ ///
338
+ /// This intrinsic corresponds to the \c TCVTROWPS2PHL instruction.
339
+ ///
340
+ /// \param tsrc
341
+ /// The source tile. Max size is 1024 Bytes.
342
+ /// \param row
343
+ /// The the row of the source tile.
344
+ #define _tile_cvtrowps2phl(tsrc, row) __builtin_ia32_tcvtrowps2phl(tsrc, row)
345
+
346
+ /// Moves a row from a tile register to a zmm destination register, converting
347
+ /// the fp32 source elements to fp16. It places the resulting fp16 elements
348
+ /// in the low 16 bits within each dword. The row of the tile is selected
349
+ /// by a 8b immediate value.
350
+ ///
351
+ /// \headerfile <x86intrin.h>
352
+ ///
353
+ /// \code
354
+ /// __m512i _tile_cvtrowps2phli(__tile tsrc, const unsigned int imm8);
355
+ /// \endcode
356
+ ///
357
+ /// \code{.operation}
358
+ /// VL := 512
359
+ /// VL_bytes := VL >> 3
360
+ /// row_index := imm8 & 0x3f
361
+ /// row_chunk := (imm8 >> 6) * VL_bytes
362
+ /// FOR i := 0 TO (VL_bytes / 4) - 1
363
+ /// IF i + row_chunk / 4 >= tsrc.colsb / 4
364
+ /// dst.dword[i] := 0
365
+ /// ELSE
366
+ /// dst.word[2*i+1] := 0
367
+ /// dst.fp16[2*i+0] := CONVERT_FP32_TO_FP16(tsrc.row[row_index].fp32[row_chunk/4+i], RNE)
368
+ /// FI
369
+ /// ENDFOR
370
+ /// dst[MAX_VL-1:VL] := 0
371
+ /// zero_tileconfig_start()
372
+ /// \endcode
373
+ ///
374
+ /// This intrinsic corresponds to the \c TCVTROWPS2PHL instruction.
375
+ ///
376
+ /// \param tsrc
377
+ /// The source tile. Max size is 1024 Bytes.
378
+ /// \param imm8
379
+ /// The the row of the source tile.
380
+ #define _tile_cvtrowps2phli(tsrc, imm8) \
381
+ __builtin_ia32_tcvtrowps2phli(tsrc, imm8)
382
+
383
+ /// Move one row of a tile data to a v16f32 data.
384
+ /// The row of the tile is selected by a 32b GPR.
385
+ ///
386
+ /// \headerfile <immintrin.h>
387
+ ///
388
+ /// \code
389
+ /// __m512 _tile_movrow(__tile a, unsigned b);
390
+ /// \endcode
391
+ ///
392
+ /// This intrinsic corresponds to the <c> TILEMOVROW </c> instruction.
393
+ ///
394
+ /// \param a
395
+ /// The 1st source tile. Max size is 1024 Bytes.
396
+ /// \param b
397
+ /// The 2nd source r32. Size is 4 Bytes.
398
+ /// \returns
399
+ /// The destination v16f32 data. Size is 64 Bytes.
400
+ ///
401
+ /// \code{.operation}
402
+ /// VL := 512
403
+ /// VL_bytes := VL>>3
404
+ /// row_index := b&0xffff
405
+ /// row_chunk := ((b>>16)&0xffff) * VL_bytes
406
+ /// FOR i := 0 TO (VL_bytes-1)
407
+ /// IF (row_chunk + i >= a.colsb)
408
+ /// dst.byte[i] := 0
409
+ /// ELSE
410
+ /// dst.byte[i] := a.row[row_index].byte[row_chunk+i]
411
+ /// ENDFOR
412
+ /// \endcode
413
+ #define _tile_movrow(a, b) ((__m512i)__builtin_ia32_tilemovrow(a, b))
414
+
415
+ /// Move one row of a tile data to a v16f32 data.
416
+ /// The row of the tile is selected by a 8b immediate value.
417
+ ///
418
+ /// \headerfile <immintrin.h>
419
+ ///
420
+ /// \code
421
+ /// __m512 _tile_movrowi(__tile a, const unsigned b);
422
+ /// \endcode
423
+ ///
424
+ /// This intrinsic corresponds to the <c> TILEMOVROW </c> instruction.
425
+ ///
426
+ /// \param a
427
+ /// The 1st source tile. Max size is 1024 Bytes.
428
+ /// \param b
429
+ /// The 2nd source r32. Size is 4 Bytes.
430
+ /// \returns
431
+ /// The destination v16f32 data. Size is 64 Bytes.
432
+ ///
433
+ /// \code{.operation}
434
+ /// VL := 512
435
+ /// VL_bytes := VL>>3
436
+ /// row_index := b&0x3f
437
+ /// row_chunk := (b>>6) * VL_bytes
438
+ /// FOR i := 0 TO (VL_bytes-1)
439
+ /// IF (row_chunk + i >= a.colsb)
440
+ /// dst.byte[i] := 0
441
+ /// ELSE
442
+ /// dst.byte[i] := a.row[row_index].byte[row_chunk+i]
443
+ /// ENDFOR
444
+ /// \endcode
445
+ #define _tile_movrowi(a, b) ((__m512i)__builtin_ia32_tilemovrowi(a, b))
446
+
447
+ /// This is internal intrinsic. C/C++ user should avoid calling it directly.
448
+
449
+ static __inline__ __m512 __DEFAULT_FN_ATTRS_AVX512 _tile_cvtrowd2ps_internal(
450
+ unsigned short m, unsigned short n, _tile1024i src, unsigned u) {
451
+ return __builtin_ia32_tcvtrowd2ps_internal(m, n, src, u);
452
+ }
453
+
454
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS_AVX512
455
+ _tile_cvtrowps2bf16h_internal(unsigned short m, unsigned short n,
456
+ _tile1024i src, unsigned u) {
457
+ return __builtin_ia32_tcvtrowps2bf16h_internal(m, n, src, u);
458
+ }
459
+
460
+ static __inline__ __m512bh __DEFAULT_FN_ATTRS_AVX512
461
+ _tile_cvtrowps2bf16l_internal(unsigned short m, unsigned short n,
462
+ _tile1024i src, unsigned u) {
463
+ return __builtin_ia32_tcvtrowps2bf16l_internal(m, n, src, u);
464
+ }
465
+
466
+ static __inline__ __m512h __DEFAULT_FN_ATTRS_AVX512 _tile_cvtrowps2phh_internal(
467
+ unsigned short m, unsigned short n, _tile1024i src, unsigned u) {
468
+ return __builtin_ia32_tcvtrowps2phh_internal(m, n, src, u);
469
+ }
470
+
471
+ static __inline__ __m512h __DEFAULT_FN_ATTRS_AVX512 _tile_cvtrowps2phl_internal(
472
+ unsigned short m, unsigned short n, _tile1024i src, unsigned u) {
473
+ return __builtin_ia32_tcvtrowps2phl_internal(m, n, src, u);
474
+ }
475
+
476
+ static __inline__ __m512i __DEFAULT_FN_ATTRS_AVX512 _tile_movrow_internal(
477
+ unsigned short m, unsigned short n, _tile1024i src, unsigned u) {
478
+ return (__m512i)__builtin_ia32_tilemovrow_internal(m, n, src, u);
479
+ }
480
+
481
+ /// Move a row from a tile (src0) to a v16f32 dst, converting the int32 source
482
+ /// elements to fp32. No SIMD exceptions are generated. Rounding is done as if
483
+ /// MXCSR.RC=RNE. Embedded rounding is not supported.
484
+ /// The row and chunk elements of tile is fetched from 32bit src1.
485
+ ///
486
+ /// \headerfile <immintrin.h>
487
+ ///
488
+ /// This intrinsic corresponds to the <c> TCVTROWD2PS </c> instruction.
489
+ ///
490
+ /// \param src0
491
+ /// The 1st source tile. Max size is 1024 Bytes.
492
+ /// \param src1
493
+ /// The 2nd source r32. Size is 4 Bytes.
494
+ /// \returns
495
+ /// The destination v16f32 data. Size is 64 Bytes.
496
+ __DEFAULT_FN_ATTRS_AVX512
497
+ static __m512 __tile_cvtrowd2ps(__tile1024i src0, unsigned src1) {
498
+ return _tile_cvtrowd2ps_internal(src0.row, src0.col, src0.tile, src1);
499
+ }
500
+
501
+ /// Move a row from a tile (src0) to a v32bf16 dst, converting the fp32 source
502
+ /// elements to bf16 at high 16-bits of each dword.
503
+ /// The row and chunk elements of tile is fetched from 32bit src1.
504
+ ///
505
+ /// \headerfile <immintrin.h>
506
+ ///
507
+ /// This intrinsic corresponds to the <c> TCVTROWPS2BF16H </c> instruction.
508
+ ///
509
+ /// \param src0
510
+ /// The 1st source tile. Max size is 1024 Bytes.
511
+ /// \param src1
512
+ /// The 2nd source r32. Size is 4 Bytes.
513
+ /// \returns
514
+ /// The destination v32bf16 data. Size is 64 Bytes.
515
+ __DEFAULT_FN_ATTRS_AVX512
516
+ static __m512bh __tile_cvtrowps2bf16h(__tile1024i src0, unsigned src1) {
517
+ return _tile_cvtrowps2bf16h_internal(src0.row, src0.col, src0.tile, src1);
518
+ }
519
+
520
+ /// Move a row from a tile (src0) to a v32bf16 dst, converting the fp32 source
521
+ /// elements to bf16 at low 16-bits of each dword.
522
+ /// The row and chunk elements of tile is fetched from 32bit src1.
523
+ ///
524
+ /// \headerfile <immintrin.h>
525
+ ///
526
+ /// This intrinsic corresponds to the <c> TCVTROWPS2BF16L </c> instruction.
527
+ ///
528
+ /// \param src0
529
+ /// The 1st source tile. Max size is 1024 Bytes.
530
+ /// \param src1
531
+ /// The 2nd source r32. Size is 4 Bytes.
532
+ /// \returns
533
+ /// The destination v32bf16 data. Size is 64 Bytes.
534
+ __DEFAULT_FN_ATTRS_AVX512
535
+ static __m512bh __tile_cvtrowps2bf16l(__tile1024i src0, unsigned src1) {
536
+ return _tile_cvtrowps2bf16l_internal(src0.row, src0.col, src0.tile, src1);
537
+ }
538
+
539
+ /// Move a row from a tile (src0) to a v32fp16 dst, converting the fp32 source
540
+ /// elements to fp16 at high 16-bits of each dword.
541
+ /// The row and chunk elements of tile is fetched from 32bit src1.
542
+ ///
543
+ /// \headerfile <immintrin.h>
544
+ ///
545
+ /// This intrinsic corresponds to the <c> TCVTROWPS2PHH </c> instruction.
546
+ ///
547
+ /// \param src0
548
+ /// The 1st source tile. Max size is 1024 Bytes.
549
+ /// \param src1
550
+ /// The 2nd source r32. Size is 4 Bytes.
551
+ /// \returns
552
+ /// The destination v32fp16 data. Size is 64 Bytes.
553
+ __DEFAULT_FN_ATTRS_AVX512
554
+ static __m512h __tile_cvtrowps2phh(__tile1024i src0, unsigned src1) {
555
+ return _tile_cvtrowps2phh_internal(src0.row, src0.col, src0.tile, src1);
556
+ }
557
+
558
+ /// Move a row from a tile (src0) to a v32fp16 dst, converting the fp32 source
559
+ /// elements to fp16 at low 16-bits of each dword.
560
+ /// The row and chunk elements of tile is fetched from 32bit src1.
561
+ ///
562
+ /// \headerfile <immintrin.h>
563
+ ///
564
+ /// This intrinsic corresponds to the <c> TCVTROWPS2PHL </c> instruction.
565
+ ///
566
+ /// \param src0
567
+ /// The 1st source tile. Max size is 1024 Bytes.
568
+ /// \param src1
569
+ /// The 2nd source r32. Size is 4 Bytes.
570
+ /// \returns
571
+ /// The destination v32fp16 data. Size is 64 Bytes.
572
+ __DEFAULT_FN_ATTRS_AVX512
573
+ static __m512h __tile_cvtrowps2phl(__tile1024i src0, unsigned src1) {
574
+ return _tile_cvtrowps2phl_internal(src0.row, src0.col, src0.tile, src1);
575
+ }
576
+
577
+ /// Move one row of a tile data to a v16f32 data.
578
+ /// The row of the tile is selected by a 32b GPR.
579
+ ///
580
+ /// \headerfile <immintrin.h>
581
+ ///
582
+ /// This intrinsic corresponds to the <c> TILEMOVROW </c> instruction.
583
+ ///
584
+ /// \param src0
585
+ /// The 1st source tile. Max size is 1024 Bytes.
586
+ /// \param src1
587
+ /// The 2nd source r32. Size is 4 Bytes.
588
+ /// \returns
589
+ /// The destination v16i32 data. Size is 64 Bytes.
590
+ __DEFAULT_FN_ATTRS_AVX512
591
+ static __m512i __tile_movrow(__tile1024i src0, unsigned src1) {
592
+ return (__m512i)_tile_movrow_internal(src0.row, src0.col, src0.tile, src1);
593
+ }
594
+
595
+ #endif // __x86_64__ && __SSE2__
596
+ #endif // __AMX_AVX512INTRIN_H