@swiftbrowser/wasm-sdk 0.0.0-stage → 0.9.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 (633) hide show
  1. package/LICENSE.txt +1445 -0
  2. package/README.md +24 -2
  3. package/files.json +631 -0
  4. package/package.json +18 -4
  5. package/wasm32-unknown-wasip1/WASI.sdk/bin/xml2-config +108 -0
  6. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__errno.h +15 -0
  7. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__errno_values.h +84 -0
  8. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__fd_set.h +67 -0
  9. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__function___isatty.h +14 -0
  10. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__functions_malloc.h +29 -0
  11. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__functions_memcpy.h +24 -0
  12. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_dirent.h +44 -0
  13. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_fcntl.h +60 -0
  14. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_inttypes.h +184 -0
  15. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_netinet_in.h +32 -0
  16. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_poll.h +33 -0
  17. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_stdlib.h +21 -0
  18. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_string.h +26 -0
  19. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_sys_ioctl.h +17 -0
  20. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_sys_resource.h +19 -0
  21. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_sys_socket.h +81 -0
  22. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_sys_stat.h +15 -0
  23. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_time.h +31 -0
  24. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_unistd.h +29 -0
  25. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__macro_FD_SETSIZE.h +6 -0
  26. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__macro_PAGESIZE.h +24 -0
  27. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__mode_t.h +38 -0
  28. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__seek.h +8 -0
  29. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_dirent.h +14 -0
  30. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_in6_addr.h +8 -0
  31. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_in_addr.h +10 -0
  32. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_iovec.h +12 -0
  33. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_msghdr.h +16 -0
  34. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_pollfd.h +10 -0
  35. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_rusage.h +12 -0
  36. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_sockaddr.h +11 -0
  37. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_sockaddr_in.h +14 -0
  38. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_sockaddr_in6.h +16 -0
  39. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_sockaddr_storage.h +11 -0
  40. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_sockaddr_un.h +10 -0
  41. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_stat.h +35 -0
  42. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_timespec.h +12 -0
  43. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_timeval.h +13 -0
  44. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_tm.h +19 -0
  45. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__struct_tms.h +13 -0
  46. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_DIR.h +6 -0
  47. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_blkcnt_t.h +7 -0
  48. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_blksize_t.h +6 -0
  49. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_clock_t.h +7 -0
  50. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_clockid_t.h +6 -0
  51. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_dev_t.h +7 -0
  52. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_fd_set.h +14 -0
  53. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_gid_t.h +6 -0
  54. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_in_addr_t.h +6 -0
  55. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_in_port_t.h +6 -0
  56. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_ino_t.h +7 -0
  57. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_mode_t.h +6 -0
  58. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_nfds_t.h +6 -0
  59. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_nlink_t.h +7 -0
  60. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_off_t.h +7 -0
  61. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_sa_family_t.h +6 -0
  62. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_sigset_t.h +7 -0
  63. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_socklen_t.h +6 -0
  64. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_ssize_t.h +7 -0
  65. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_suseconds_t.h +8 -0
  66. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_time_t.h +7 -0
  67. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__typedef_uid_t.h +6 -0
  68. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/alloca.h +19 -0
  69. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/ar.h +25 -0
  70. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/arpa/ftp.h +35 -0
  71. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/arpa/inet.h +31 -0
  72. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/arpa/nameser.h +526 -0
  73. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/arpa/nameser_compat.h +2 -0
  74. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/arpa/telnet.h +251 -0
  75. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/arpa/tftp.h +31 -0
  76. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/assert.h +23 -0
  77. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/alltypes.h +460 -0
  78. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/dirent.h +1 -0
  79. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/fcntl.h +1 -0
  80. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/fenv.h +10 -0
  81. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/float.h +16 -0
  82. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/hwcap.h +0 -0
  83. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/io.h +0 -0
  84. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/ioctl.h +1 -0
  85. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/ioctl_fix.h +0 -0
  86. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/ipcstat.h +1 -0
  87. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/limits.h +1 -0
  88. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/mman.h +0 -0
  89. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/poll.h +0 -0
  90. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/posix.h +2 -0
  91. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/reg.h +2 -0
  92. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/resource.h +0 -0
  93. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/setjmp.h +1 -0
  94. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/signal.h +40 -0
  95. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/socket.h +0 -0
  96. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/stat.h +1 -0
  97. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/bits/stdint.h +20 -0
  98. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/byteswap.h +26 -0
  99. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/complex.h +143 -0
  100. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/cpio.h +29 -0
  101. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/crypt.h +20 -0
  102. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/ctype.h +77 -0
  103. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/dirent.h +89 -0
  104. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/dlfcn.h +56 -0
  105. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/endian.h +80 -0
  106. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/err.h +25 -0
  107. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/errno.h +32 -0
  108. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/fcntl.h +250 -0
  109. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/features.h +40 -0
  110. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/fenv.h +28 -0
  111. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/float.h +56 -0
  112. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/fmtmsg.h +47 -0
  113. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/fnmatch.h +24 -0
  114. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/fts.h +155 -0
  115. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/ftw.h +45 -0
  116. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/getopt.h +30 -0
  117. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/glob.h +54 -0
  118. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/iconv.h +24 -0
  119. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/ifaddrs.h +35 -0
  120. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/inttypes.h +233 -0
  121. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/iso646.h +20 -0
  122. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/langinfo.h +98 -0
  123. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/libgen.h +15 -0
  124. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/limits.h +178 -0
  125. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/locale.h +93 -0
  126. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/malloc.h +33 -0
  127. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/math.h +459 -0
  128. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/memory.h +1 -0
  129. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/monetary.h +23 -0
  130. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/mqueue.h +41 -0
  131. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/netinet/icmp6.h +305 -0
  132. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/netinet/igmp.h +45 -0
  133. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/netinet/in.h +433 -0
  134. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/netinet/in_systm.h +9 -0
  135. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/netinet/ip.h +199 -0
  136. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/netinet/ip6.h +141 -0
  137. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/netinet/ip_icmp.h +193 -0
  138. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/netinet/tcp.h +305 -0
  139. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/netinet/udp.h +46 -0
  140. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/netpacket/packet.h +62 -0
  141. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/nl_types.h +22 -0
  142. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/poll.h +69 -0
  143. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/pthread.h +267 -0
  144. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/regex.h +62 -0
  145. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sched.h +152 -0
  146. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/search.h +63 -0
  147. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/semaphore.h +39 -0
  148. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/setjmp.h +55 -0
  149. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/signal.h +339 -0
  150. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/stdalign.h +20 -0
  151. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/stdbool.h +14 -0
  152. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/stdc-predef.h +18 -0
  153. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/stdint.h +117 -0
  154. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/stdio.h +254 -0
  155. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/stdio_ext.h +34 -0
  156. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/stdlib.h +217 -0
  157. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/stdnoreturn.h +7 -0
  158. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/string.h +123 -0
  159. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/strings.h +40 -0
  160. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/stropts.h +139 -0
  161. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/dir.h +2 -0
  162. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/errno.h +2 -0
  163. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/eventfd.h +26 -0
  164. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/fcntl.h +2 -0
  165. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/file.h +21 -0
  166. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/ioctl.h +124 -0
  167. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/mman.h +157 -0
  168. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/param.h +37 -0
  169. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/poll.h +2 -0
  170. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/random.h +27 -0
  171. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/reg.h +9 -0
  172. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/resource.h +126 -0
  173. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/select.h +54 -0
  174. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/signal.h +2 -0
  175. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/socket.h +454 -0
  176. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/stat.h +198 -0
  177. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/statvfs.h +57 -0
  178. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/stropts.h +1 -0
  179. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/syscall.h +10 -0
  180. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/sysinfo.h +36 -0
  181. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/time.h +84 -0
  182. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/timeb.h +28 -0
  183. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/times.h +34 -0
  184. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/timex.h +103 -0
  185. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/ttydefaults.h +34 -0
  186. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/types.h +85 -0
  187. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/uio.h +57 -0
  188. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/un.h +39 -0
  189. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sys/utsname.h +29 -0
  190. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/syscall.h +1 -0
  191. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/sysexits.h +21 -0
  192. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/tar.h +33 -0
  193. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/tgmath.h +270 -0
  194. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/threads.h +93 -0
  195. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/time.h +204 -0
  196. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/uchar.h +29 -0
  197. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/unistd.h +589 -0
  198. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/utime.h +29 -0
  199. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/values.h +39 -0
  200. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wasi/api.h +34 -0
  201. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wasi/libc-busywait.h +15 -0
  202. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wasi/libc-environ.h +36 -0
  203. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wasi/libc-find-relpath.h +75 -0
  204. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wasi/libc-nocwd.h +61 -0
  205. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wasi/libc.h +84 -0
  206. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wasi/version.h +17 -0
  207. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wasi/wasip1.h +2130 -0
  208. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wasi/wasip2.h +10 -0
  209. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wasi/wasip3.h +10 -0
  210. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wchar.h +214 -0
  211. package/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/wctype.h +79 -0
  212. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/cmake/libxml2-2.11.5/libxml2-config-version.cmake +83 -0
  213. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/cmake/libxml2-2.11.5/libxml2-config.cmake +160 -0
  214. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/cmake/libxml2-2.11.5/libxml2-export-release.cmake +19 -0
  215. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/cmake/libxml2-2.11.5/libxml2-export.cmake +108 -0
  216. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/crt1-command.o +0 -0
  217. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/crt1-reactor.o +0 -0
  218. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/crt1.o +0 -0
  219. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libc++.a +0 -0
  220. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libc++.modules.json +26 -0
  221. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libc++abi.a +0 -0
  222. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libc++experimental.a +0 -0
  223. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libc-printscan-long-double.a +0 -0
  224. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libc-printscan-no-floating-point.a +0 -0
  225. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libc.a +0 -0
  226. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libc.so +0 -0
  227. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libcrypt.a +1 -0
  228. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libdl.a +0 -0
  229. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libdl.so +0 -0
  230. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libm.a +1 -0
  231. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libpthread.a +1 -0
  232. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libresolv.a +1 -0
  233. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/librt.a +1 -0
  234. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libsetjmp.a +0 -0
  235. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libsetjmp.so +0 -0
  236. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libutil.a +1 -0
  237. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libwasi-emulated-getpid.a +0 -0
  238. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libwasi-emulated-getpid.so +0 -0
  239. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libwasi-emulated-mman.a +0 -0
  240. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libwasi-emulated-mman.so +0 -0
  241. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libwasi-emulated-process-clocks.a +0 -0
  242. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libwasi-emulated-process-clocks.so +0 -0
  243. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libwasi-emulated-signal.a +0 -0
  244. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libwasi-emulated-signal.so +0 -0
  245. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libxml2.a +0 -0
  246. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/libxnet.a +1 -0
  247. package/wasm32-unknown-wasip1/WASI.sdk/lib/wasm32-wasip1/pkgconfig/libxml-2.0.pc +13 -0
  248. package/wasm32-unknown-wasip1/swift-sdk.json +13 -0
  249. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/clang/lib/wasip1/libclang_rt.builtins-wasm32.a +0 -0
  250. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/clang/lib/wasip1/libclang_rt.profile-wasm32.a +0 -0
  251. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/apinotes/SwiftWASILibc.apinotes +5 -0
  252. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_cuda_builtin_vars.h +121 -0
  253. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_cuda_cmath.h +512 -0
  254. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_cuda_complex_builtins.h +285 -0
  255. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_cuda_device_functions.h +1572 -0
  256. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_cuda_intrinsics.h +994 -0
  257. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_cuda_libdevice_declares.h +468 -0
  258. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_cuda_math.h +353 -0
  259. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_cuda_math_forward_declares.h +284 -0
  260. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_cuda_runtime_wrapper.h +504 -0
  261. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_cuda_texture_intrinsics.h +1177 -0
  262. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_hip_cmath.h +848 -0
  263. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_hip_libdevice_declares.h +345 -0
  264. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_hip_math.h +1405 -0
  265. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_hip_runtime_wrapper.h +162 -0
  266. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_hip_stdlib.h +43 -0
  267. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__clang_spirv_builtins.h +217 -0
  268. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__float_float.h +165 -0
  269. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__float_header_macro.h +12 -0
  270. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__float_infinity_nan.h +20 -0
  271. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stdarg___gnuc_va_list.h +13 -0
  272. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stdarg___va_copy.h +12 -0
  273. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stdarg_header_macro.h +12 -0
  274. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stdarg_va_arg.h +22 -0
  275. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stdarg_va_copy.h +12 -0
  276. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stdarg_va_list.h +13 -0
  277. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_header_macro.h +12 -0
  278. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_max_align_t.h +27 -0
  279. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_null.h +29 -0
  280. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_nullptr_t.h +29 -0
  281. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_offsetof.h +17 -0
  282. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_ptrdiff_t.h +20 -0
  283. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_rsize_t.h +20 -0
  284. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_size_t.h +20 -0
  285. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_unreachable.h +21 -0
  286. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_wchar_t.h +28 -0
  287. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__stddef_wint_t.h +15 -0
  288. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__wmmintrin_aes.h +140 -0
  289. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/__wmmintrin_pclmul.h +48 -0
  290. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/adcintrin.h +165 -0
  291. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/adxintrin.h +107 -0
  292. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/altivec.h +19364 -0
  293. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amdgpuintrin.h +191 -0
  294. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ammintrin.h +183 -0
  295. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxavx512intrin.h +382 -0
  296. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxbf16transposeintrin.h +94 -0
  297. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxcomplexintrin.h +167 -0
  298. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxcomplextransposeintrin.h +303 -0
  299. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxfp16intrin.h +93 -0
  300. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxfp16transposeintrin.h +94 -0
  301. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxfp8intrin.h +230 -0
  302. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxintrin.h +494 -0
  303. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxmovrsintrin.h +48 -0
  304. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxmovrstransposeintrin.h +200 -0
  305. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxtf32intrin.h +108 -0
  306. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxtf32transposeintrin.h +105 -0
  307. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/amxtransposeintrin.h +248 -0
  308. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/andes_vector.h +16 -0
  309. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm64intr.h +35 -0
  310. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_acle.h +855 -0
  311. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_bf16.h +20 -0
  312. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_cde.h +410 -0
  313. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_cmse.h +217 -0
  314. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_fp16.h +596 -0
  315. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_mve.h +19187 -0
  316. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_neon.h +74047 -0
  317. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_neon_sve_bridge.h +182 -0
  318. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_sme.h +3741 -0
  319. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_sve.h +31898 -0
  320. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/arm_vector_types.h +432 -0
  321. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/armintr.h +31 -0
  322. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/availability_domain.h +51 -0
  323. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2_512bf16intrin.h +561 -0
  324. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2_512convertintrin.h +322 -0
  325. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2_512minmaxintrin.h +127 -0
  326. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2_512niintrin.h +314 -0
  327. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2_512satcvtdsintrin.h +307 -0
  328. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2_512satcvtintrin.h +301 -0
  329. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2bf16intrin.h +1085 -0
  330. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2convertintrin.h +3257 -0
  331. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2copyintrin.h +66 -0
  332. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2minmaxintrin.h +232 -0
  333. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2niintrin.h +409 -0
  334. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2satcvtdsintrin.h +376 -0
  335. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx10_2satcvtintrin.h +312 -0
  336. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx2intrin.h +5293 -0
  337. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512bf16intrin.h +283 -0
  338. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512bitalgintrin.h +86 -0
  339. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512bwintrin.h +2014 -0
  340. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512cdintrin.h +125 -0
  341. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512dqintrin.h +1379 -0
  342. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512fintrin.h +9787 -0
  343. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512fp16intrin.h +3353 -0
  344. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512ifmaintrin.h +70 -0
  345. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512ifmavlintrin.h +111 -0
  346. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vbmi2intrin.h +357 -0
  347. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vbmiintrin.h +106 -0
  348. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vbmivlintrin.h +193 -0
  349. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vlbf16intrin.h +517 -0
  350. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vlbitalgintrin.h +151 -0
  351. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vlbwintrin.h +3167 -0
  352. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vlcdintrin.h +230 -0
  353. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vldqintrin.h +1173 -0
  354. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vlfp16intrin.h +2071 -0
  355. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vlintrin.h +8437 -0
  356. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vlvbmi2intrin.h +695 -0
  357. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vlvnniintrin.h +310 -0
  358. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vlvp2intersectintrin.h +123 -0
  359. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vnniintrin.h +116 -0
  360. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vp2intersectintrin.h +78 -0
  361. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vpopcntdqintrin.h +64 -0
  362. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avx512vpopcntdqvlintrin.h +103 -0
  363. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avxifmaintrin.h +177 -0
  364. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avxintrin.h +5140 -0
  365. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avxneconvertintrin.h +484 -0
  366. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avxvnniint16intrin.h +432 -0
  367. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avxvnniint8intrin.h +430 -0
  368. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/avxvnniintrin.h +225 -0
  369. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/bmi2intrin.h +253 -0
  370. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/bmiintrin.h +604 -0
  371. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/bounds_safety_soft_traps.h +55 -0
  372. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/builtins.h +19 -0
  373. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/cet.h +66 -0
  374. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/cetintrin.h +115 -0
  375. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/cldemoteintrin.h +36 -0
  376. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/clflushoptintrin.h +36 -0
  377. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/clwbintrin.h +38 -0
  378. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/clzerointrin.h +38 -0
  379. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/cmpccxaddintrin.h +70 -0
  380. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/cpuid.h +354 -0
  381. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/crc32intrin.h +100 -0
  382. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/cuda_wrappers/bits/basic_string.h +9 -0
  383. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/cuda_wrappers/bits/c++config.h +61 -0
  384. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  385. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/cuda_wrappers/cmath +44 -0
  386. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/emmintrin.h +4940 -0
  387. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/enqcmdintrin.h +63 -0
  388. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/f16cintrin.h +162 -0
  389. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/feature-availability.h +17 -0
  390. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/float.h +45 -0
  391. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/fma4intrin.h +218 -0
  392. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/fmaintrin.h +796 -0
  393. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/fuzzer/FuzzedDataProvider.h +397 -0
  394. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/fxsrintrin.h +91 -0
  395. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/gfniintrin.h +233 -0
  396. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/gpuintrin.h +328 -0
  397. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/hexagon_circ_brev_intrinsics.h +298 -0
  398. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/hexagon_protos.h +8439 -0
  399. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/hexagon_types.h +2625 -0
  400. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/hresetintrin.h +49 -0
  401. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/htmintrin.h +212 -0
  402. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/htmxlintrin.h +345 -0
  403. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/hvx_hexagon_protos.h +5610 -0
  404. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ia32intrin.h +863 -0
  405. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/immintrin.h +607 -0
  406. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/intrin.h +487 -0
  407. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/intrin0.h +256 -0
  408. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/inttypes.h +101 -0
  409. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/invpcidintrin.h +23 -0
  410. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/iso646.h +31 -0
  411. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/keylockerintrin.h +518 -0
  412. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/larchintrin.h +260 -0
  413. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/lasxintrin.h +3886 -0
  414. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/lifetimebound.h +37 -0
  415. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/limits.h +133 -0
  416. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/llvm_libc_wrappers/assert.h +34 -0
  417. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/llvm_libc_wrappers/ctype.h +140 -0
  418. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/llvm_libc_wrappers/inttypes.h +34 -0
  419. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/llvm_libc_wrappers/stdio.h +80 -0
  420. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/llvm_libc_wrappers/stdlib.h +53 -0
  421. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/llvm_libc_wrappers/string.h +96 -0
  422. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/llvm_libc_wrappers/time.h +34 -0
  423. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  424. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  425. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  426. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/lsxintrin.h +3752 -0
  427. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/lwpintrin.h +136 -0
  428. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/lzcntintrin.h +109 -0
  429. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/mm3dnow.h +22 -0
  430. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/mm_malloc.h +67 -0
  431. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/mmintrin.h +1610 -0
  432. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/module.modulemap +393 -0
  433. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/movdirintrin.h +49 -0
  434. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/movrs_avx10_2_512intrin.h +98 -0
  435. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/movrs_avx10_2intrin.h +174 -0
  436. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/movrsintrin.h +59 -0
  437. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/msa.h +573 -0
  438. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/mwaitxintrin.h +62 -0
  439. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/nmmintrin.h +20 -0
  440. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/nvptxintrin.h +219 -0
  441. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/opencl-c-base.h +851 -0
  442. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/opencl-c.h +18630 -0
  443. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/openmp_wrappers/__clang_openmp_device_functions.h +104 -0
  444. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/openmp_wrappers/cmath +132 -0
  445. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/openmp_wrappers/complex.h +35 -0
  446. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/openmp_wrappers/complex_cmath.h +393 -0
  447. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/openmp_wrappers/math.h +61 -0
  448. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/orc/c_api.h +202 -0
  449. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/pconfigintrin.h +40 -0
  450. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/pkuintrin.h +34 -0
  451. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/pmmintrin.h +314 -0
  452. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/popcntintrin.h +59 -0
  453. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/bmi2intrin.h +134 -0
  454. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/bmiintrin.h +165 -0
  455. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/emmintrin.h +2269 -0
  456. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/immintrin.h +27 -0
  457. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/mm_malloc.h +45 -0
  458. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/mmintrin.h +1453 -0
  459. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/nmmintrin.h +26 -0
  460. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/pmmintrin.h +145 -0
  461. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/smmintrin.h +683 -0
  462. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/tmmintrin.h +453 -0
  463. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/x86gprintrin.h +17 -0
  464. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/x86intrin.h +28 -0
  465. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ppc_wrappers/xmmintrin.h +1827 -0
  466. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/prfchiintrin.h +61 -0
  467. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/prfchwintrin.h +57 -0
  468. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/profile/instr_prof_interface.h +88 -0
  469. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ptrauth.h +467 -0
  470. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ptrcheck.h +339 -0
  471. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/ptwriteintrin.h +37 -0
  472. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/raointintrin.h +203 -0
  473. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/rdpruintrin.h +57 -0
  474. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/rdseedintrin.h +105 -0
  475. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/riscv_bitmanip.h +195 -0
  476. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/riscv_corev_alu.h +128 -0
  477. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/riscv_crypto.h +170 -0
  478. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/riscv_ntlh.h +26 -0
  479. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/riscv_vector.h +422 -0
  480. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/rtmintrin.h +45 -0
  481. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/s390intrin.h +25 -0
  482. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/allocator_interface.h +106 -0
  483. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/asan_interface.h +340 -0
  484. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/common_interface_defs.h +492 -0
  485. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/coverage_interface.h +36 -0
  486. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/dfsan_interface.h +220 -0
  487. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/hwasan_interface.h +109 -0
  488. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/linux_syscall_hooks.h +3112 -0
  489. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/lsan_interface.h +89 -0
  490. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/memprof_interface.h +72 -0
  491. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/msan_interface.h +135 -0
  492. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
  493. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/rtsan_interface.h +75 -0
  494. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/scudo_interface.h +38 -0
  495. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/tsan_interface.h +316 -0
  496. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/tsan_interface_atomic.h +223 -0
  497. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sanitizer/ubsan_interface.h +34 -0
  498. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/serializeintrin.h +30 -0
  499. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sgxintrin.h +60 -0
  500. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sha512intrin.h +200 -0
  501. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/shaintrin.h +190 -0
  502. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sifive_vector.h +118 -0
  503. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sm3intrin.h +238 -0
  504. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sm4evexintrin.h +32 -0
  505. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/sm4intrin.h +269 -0
  506. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/smmintrin.h +2334 -0
  507. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/stdalign.h +24 -0
  508. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/stdarg.h +75 -0
  509. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/stdatomic.h +204 -0
  510. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/stdbool.h +39 -0
  511. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/stdckdint.h +42 -0
  512. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/stdcountof.h +15 -0
  513. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/stddef.h +144 -0
  514. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/stdint.h +844 -0
  515. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/stdnoreturn.h +35 -0
  516. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/tbmintrin.h +128 -0
  517. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/tgmath.h +1368 -0
  518. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/tmmintrin.h +810 -0
  519. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/tsxldtrkintrin.h +56 -0
  520. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/uintrintrin.h +157 -0
  521. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/unwind.h +332 -0
  522. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/usermsrintrin.h +51 -0
  523. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/vadefs.h +51 -0
  524. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/vaesintrin.h +87 -0
  525. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/varargs.h +16 -0
  526. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/vecintrin.h +12868 -0
  527. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/velintrin.h +71 -0
  528. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/velintrin_approx.h +120 -0
  529. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/velintrin_gen.h +1257 -0
  530. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/vpclmulqdqintrin.h +30 -0
  531. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/waitpkgintrin.h +42 -0
  532. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/wasm_simd128.h +2143 -0
  533. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/wbnoinvdintrin.h +24 -0
  534. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/wmmintrin.h +23 -0
  535. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/x86gprintrin.h +49 -0
  536. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/x86intrin.h +35 -0
  537. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/xmmintrin.h +3201 -0
  538. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/xopintrin.h +770 -0
  539. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/xray/xray_interface.h +178 -0
  540. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/xray/xray_log_interface.h +357 -0
  541. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/xray/xray_records.h +134 -0
  542. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/xsavecintrin.h +84 -0
  543. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/xsaveintrin.h +63 -0
  544. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/xsaveoptintrin.h +34 -0
  545. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/xsavesintrin.h +44 -0
  546. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/xtestintrin.h +27 -0
  547. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/yvals_core.h +25 -0
  548. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/include/zos_wrappers/builtins.h +18 -0
  549. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/lib/wasip1/libclang_rt.builtins-wasm32.a +0 -0
  550. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang/lib/wasip1/libclang_rt.profile-wasm32.a +0 -0
  551. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/AssertionReporting.h +87 -0
  552. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/CoreFoundationShims.h +97 -0
  553. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/EmbeddedShims.h +277 -0
  554. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/FoundationShims.h +65 -0
  555. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/GlobalObjects.h +114 -0
  556. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/HeapObject.h +304 -0
  557. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/KeyPath.h +142 -0
  558. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/LibcOverlayShims.h +141 -0
  559. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/LibcShims.h +198 -0
  560. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/MetadataSections.h +100 -0
  561. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/ObjCShims.h +51 -0
  562. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/Random.h +43 -0
  563. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/RefCount.h +1654 -0
  564. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/Reflection.h +36 -0
  565. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/RuntimeShims.h +161 -0
  566. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/RuntimeStubs.h +61 -0
  567. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/SwiftStdbool.h +23 -0
  568. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/SwiftStddef.h +53 -0
  569. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/SwiftStdint.h +89 -0
  570. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/System.h +227 -0
  571. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/Target.h +45 -0
  572. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/ThreadLocalStorage.h +76 -0
  573. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/Visibility.h +312 -0
  574. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/_SwiftConcurrency.h +33 -0
  575. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/_SwiftDistributed.h +29 -0
  576. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/_SynchronizationShims.h +60 -0
  577. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/shims/module.modulemap +39 -0
  578. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Distributed.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +346 -0
  579. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Distributed.swiftmodule/wasm32-unknown-wasip1.swiftinterface +346 -0
  580. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Distributed.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  581. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Observation.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +173 -0
  582. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Observation.swiftmodule/wasm32-unknown-wasip1.swiftinterface +157 -0
  583. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Observation.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  584. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/RegexBuilder.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +2961 -0
  585. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/RegexBuilder.swiftmodule/wasm32-unknown-wasip1.swiftinterface +2961 -0
  586. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/RegexBuilder.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  587. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Swift.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +58665 -0
  588. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Swift.swiftmodule/wasm32-unknown-wasip1.swiftinterface +57923 -0
  589. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Swift.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  590. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/SwiftOnoneSupport.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +5 -0
  591. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/SwiftOnoneSupport.swiftmodule/wasm32-unknown-wasip1.swiftinterface +5 -0
  592. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/SwiftOnoneSupport.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  593. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Synchronization.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +7122 -0
  594. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Synchronization.swiftmodule/wasm32-unknown-wasip1.swiftinterface +7122 -0
  595. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Synchronization.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  596. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/WASILibc.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +423 -0
  597. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/WASILibc.swiftmodule/wasm32-unknown-wasip1.swiftinterface +423 -0
  598. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/WASILibc.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  599. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Builtin_float.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +51 -0
  600. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Builtin_float.swiftmodule/wasm32-unknown-wasip1.swiftinterface +51 -0
  601. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Builtin_float.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  602. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Concurrency.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +7915 -0
  603. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Concurrency.swiftmodule/wasm32-unknown-wasip1.swiftinterface +7779 -0
  604. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Concurrency.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  605. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Differentiation.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +2257 -0
  606. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Differentiation.swiftmodule/wasm32-unknown-wasip1.swiftinterface +2257 -0
  607. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Differentiation.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  608. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_RegexParser.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +2310 -0
  609. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_RegexParser.swiftmodule/wasm32-unknown-wasip1.swiftinterface +2297 -0
  610. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_RegexParser.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  611. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_StringProcessing.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +573 -0
  612. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_StringProcessing.swiftmodule/wasm32-unknown-wasip1.swiftinterface +372 -0
  613. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_StringProcessing.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  614. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Volatile.swiftmodule/wasm32-unknown-wasip1.private.swiftinterface +46 -0
  615. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Volatile.swiftmodule/wasm32-unknown-wasip1.swiftinterface +46 -0
  616. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_Volatile.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  617. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswiftCore.a +0 -0
  618. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswiftDistributed.a +0 -0
  619. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswiftObservation.a +0 -0
  620. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswiftRegexBuilder.a +0 -0
  621. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswiftSwiftOnoneSupport.a +0 -0
  622. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswiftSynchronization.a +0 -0
  623. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswiftWASILibc.a +0 -0
  624. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswift_Builtin_float.a +0 -0
  625. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswift_Concurrency.a +0 -0
  626. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswift_Differentiation.a +0 -0
  627. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswift_RegexParser.a +0 -0
  628. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswift_StringProcessing.a +0 -0
  629. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libswift_Volatile.a +0 -0
  630. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/static-executable-args.lnk +10 -0
  631. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/wasm32/swiftrt.o +0 -0
  632. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/wasm32/wasi-libc.modulemap +95 -0
  633. package/wasm32-unknown-wasip1/toolset.json +9 -0
@@ -0,0 +1,3257 @@
1
+ /*===--------------- avx10_2convertintrin.h - AVX10_2CONVERT ---------------===
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_2convertintrin.h> directly; include <immintrin.h> instead."
12
+ #endif // __IMMINTRIN_H
13
+
14
+ #ifdef __SSE2__
15
+
16
+ #ifndef __AVX10_2CONVERTINTRIN_H
17
+ #define __AVX10_2CONVERTINTRIN_H
18
+
19
+ /* Define the default attributes for the functions in this file. */
20
+ #define __DEFAULT_FN_ATTRS128 \
21
+ __attribute__((__always_inline__, __nodebug__, __target__("avx10.2-256"), \
22
+ __min_vector_width__(128)))
23
+ #define __DEFAULT_FN_ATTRS256 \
24
+ __attribute__((__always_inline__, __nodebug__, __target__("avx10.2-256"), \
25
+ __min_vector_width__(256)))
26
+
27
+ // clang-format off
28
+
29
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed
30
+ /// single-precision (32-bit) floating-point elements to a 128-bit vector
31
+ /// containing FP16 elements.
32
+ ///
33
+ /// \code{.operation}
34
+ /// FOR i := 0 to 7
35
+ /// IF i < 4
36
+ /// dst.fp16[i] := convert_fp32_to_fp16(__B.fp32[i])
37
+ /// ELSE
38
+ /// dst.fp16[i] := convert_fp32_to_fp16(__A.fp32[i - 4])
39
+ /// FI
40
+ ///
41
+ /// ENDFOR
42
+ ///
43
+ /// dst[MAX:128] := 0
44
+ /// \endcode
45
+ ///
46
+ /// \headerfile <immintrin.h>
47
+ ///
48
+ /// This intrinsic corresponds to the \c VCVT2PS2PHX instruction.
49
+ ///
50
+ /// \param __A
51
+ /// A 128-bit vector of [4 x float].
52
+ /// \param __B
53
+ /// A 128-bit vector of [4 x float].
54
+ /// \returns
55
+ /// A 128-bit vector of [8 x fp16]. Lower 4 elements correspond to the
56
+ /// (converted) elements from \a __B; higher order elements correspond to the
57
+ /// (converted) elements from \a __A.
58
+ static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtx2ps_ph(__m128 __A,
59
+ __m128 __B) {
60
+ return (__m128h)__builtin_ia32_vcvt2ps2phx128_mask(
61
+ (__v4sf)__A, (__v4sf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)(-1));
62
+ }
63
+
64
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed
65
+ /// single-precision (32-bit) floating-point elements to a 128-bit vector
66
+ /// containing FP16 elements. Merging mask \a __U is used to determine if given
67
+ /// element should be taken from \a __W instead.
68
+ ///
69
+ /// \code{.operation}
70
+ /// FOR i := 0 to 7
71
+ /// IF __U[i]
72
+ /// IF i < 4
73
+ /// dst.fp16[i] := convert_fp32_to_fp16(__B.fp32[i])
74
+ /// ELSE
75
+ /// dst.fp16[i] := convert_fp32_to_fp16(__A.fp32[i - 4])
76
+ /// FI
77
+ /// ELSE
78
+ /// dst.fp16[i] := __W.fp16[i]
79
+ /// FI
80
+ /// ENDFOR
81
+ ///
82
+ /// dst[MAX:128] := 0
83
+ /// \endcode
84
+ ///
85
+ /// \headerfile <immintrin.h>
86
+ ///
87
+ /// This intrinsic corresponds to the \c VCVT2PS2PHX instruction.
88
+ ///
89
+ /// \param __W
90
+ /// A 128-bit vector of [8 x fp16].
91
+ /// \param __U
92
+ /// A 8-bit merging mask.
93
+ /// \param __A
94
+ /// A 128-bit vector of [4 x float].
95
+ /// \param __B
96
+ /// A 128-bit vector of [4 x float].
97
+ /// \returns
98
+ /// A 128-bit vector of [8 x fp16]. Lower elements correspond to the
99
+ /// (converted) elements from \a __B; higher order elements correspond to the
100
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
101
+ /// element from \a __W is taken instead.
102
+ static __inline__ __m128h __DEFAULT_FN_ATTRS128
103
+ _mm_mask_cvtx2ps_ph(__m128h __W, __mmask8 __U, __m128 __A, __m128 __B) {
104
+ return (__m128h)__builtin_ia32_vcvt2ps2phx128_mask(
105
+ (__v4sf)__A, (__v4sf)__B, (__v8hf)__W, (__mmask8)__U);
106
+ }
107
+
108
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed
109
+ /// single-precision (32-bit) floating-point elements to a 128-bit vector
110
+ /// containing FP16 elements. Zeroing mask \a __U is used to determine if given
111
+ /// element should be zeroed instead.
112
+ ///
113
+ /// \code{.operation}
114
+ /// FOR i := 0 to 7
115
+ /// IF __U[i]
116
+ /// IF i < 4
117
+ /// dst.fp16[i] := convert_fp32_to_fp16(__B.fp32[i])
118
+ /// ELSE
119
+ /// dst.fp16[i] := convert_fp32_to_fp16(__A.fp32[i - 4])
120
+ /// FI
121
+ /// ELSE
122
+ /// dst.fp16[i] := 0
123
+ /// FI
124
+ /// ENDFOR
125
+ ///
126
+ /// dst[MAX:128] := 0
127
+ /// \endcode
128
+ ///
129
+ /// \headerfile <immintrin.h>
130
+ ///
131
+ /// This intrinsic corresponds to the \c VCVT2PS2PHX instruction.
132
+ ///
133
+ /// \param __U
134
+ /// A 8-bit zeroing mask.
135
+ /// \param __A
136
+ /// A 128-bit vector of [4 x float].
137
+ /// \param __B
138
+ /// A 128-bit vector of [4 x float].
139
+ /// \returns
140
+ /// A 128-bit vector of [8 x fp16]. Lower elements correspond to the
141
+ /// (converted) elements from \a __B; higher order elements correspond to the
142
+ /// (converted) elements from \a __A. If corresponding mask bit is not set,
143
+ /// then zero is taken instead.
144
+ static __inline__ __m128h __DEFAULT_FN_ATTRS128
145
+ _mm_maskz_cvtx2ps_ph(__mmask8 __U, __m128 __A, __m128 __B) {
146
+ return (__m128h)__builtin_ia32_vcvt2ps2phx128_mask(
147
+ (__v4sf)__A, (__v4sf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
148
+ }
149
+
150
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed
151
+ /// single-precision (32-bit) floating-point elements to a 256-bit vector
152
+ /// containing FP16 elements.
153
+ ///
154
+ /// \code{.operation}
155
+ /// FOR i := 0 to 15
156
+ /// IF i < 8
157
+ /// dst.fp16[i] := convert_fp32_to_fp16(__B.fp32[i])
158
+ /// ELSE
159
+ /// dst.fp16[i] := convert_fp32_to_fp16(__A.fp32[i - 8])
160
+ /// FI
161
+ /// ENDFOR
162
+ ///
163
+ /// dst[MAX:256] := 0
164
+ /// \endcode
165
+ ///
166
+ /// \headerfile <immintrin.h>
167
+ ///
168
+ /// This intrinsic corresponds to the \c VCVT2PS2PHX instruction.
169
+ ///
170
+ /// \param __A
171
+ /// A 256-bit vector of [8 x float].
172
+ /// \param __B
173
+ /// A 256-bit vector of [8 x float].
174
+ /// \returns
175
+ /// A 256-bit vector of [16 x fp16]. Lower elements correspond to the
176
+ /// (converted) elements from \a __B; higher order elements correspond to the
177
+ /// (converted) elements from \a __A.
178
+ static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_cvtx2ps_ph(__m256 __A,
179
+ __m256 __B) {
180
+ return (__m256h)__builtin_ia32_vcvt2ps2phx256_mask(
181
+ (__v8sf)__A, (__v8sf)__B, (__v16hf)_mm256_setzero_ph(), (__mmask16)(-1));
182
+ }
183
+
184
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed
185
+ /// single-precision (32-bit) floating-point elements to a 256-bit vector
186
+ /// containing FP16 elements. Merging mask \a __U is used to determine if given
187
+ /// element should be taken from \a __W instead.
188
+ ///
189
+ /// \code{.operation}
190
+ /// FOR i := 0 to 15
191
+ /// IF __U[i]
192
+ /// IF i < 8
193
+ /// dst.fp16[i] := convert_fp32_to_fp16(__B.fp32[i])
194
+ /// ELSE
195
+ /// dst.fp16[i] := convert_fp32_to_fp16(__A.fp32[i - 8])
196
+ /// FI
197
+ /// ELSE
198
+ /// dst.fp16[i] := __W.fp16[i]
199
+ /// FI
200
+ /// ENDFOR
201
+ ///
202
+ /// dst[MAX:256] := 0
203
+ /// \endcode
204
+ ///
205
+ /// \headerfile <immintrin.h>
206
+ ///
207
+ /// This intrinsic corresponds to the \c VCVT2PS2PHX instruction.
208
+ ///
209
+ /// \param __W
210
+ /// A 256-bit vector of [16 x fp16].
211
+ /// \param __U
212
+ /// A 16-bit merging mask.
213
+ /// \param __A
214
+ /// A 256-bit vector of [8 x float].
215
+ /// \param __B
216
+ /// A 256-bit vector of [8 x float].
217
+ /// \returns
218
+ /// A 256-bit vector of [16 x fp16]. Lower elements correspond to the
219
+ /// (converted) elements from \a __B; higher order elements correspond to the
220
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
221
+ /// element from \a __W is taken instead.
222
+ static __inline__ __m256h __DEFAULT_FN_ATTRS256
223
+ _mm256_mask_cvtx2ps_ph(__m256h __W, __mmask16 __U, __m256 __A, __m256 __B) {
224
+ return (__m256h)__builtin_ia32_vcvt2ps2phx256_mask(
225
+ (__v8sf)__A, (__v8sf)__B, (__v16hf)__W, (__mmask16)__U);
226
+ }
227
+
228
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed
229
+ /// single-precision (32-bit) floating-point elements to a 256-bit vector
230
+ /// containing FP16 elements. Zeroing mask \a __U is used to determine if given
231
+ /// element should be zeroed instead.
232
+ ///
233
+ /// \code{.operation}
234
+ /// FOR i := 0 to 15
235
+ /// IF __U[i]
236
+ /// IF i < 8
237
+ /// dst.fp16[i] := convert_fp32_to_fp16(__B.fp32[i])
238
+ /// ELSE
239
+ /// dst.fp16[i] := convert_fp32_to_fp16(__A.fp32[i - 8])
240
+ /// FI
241
+ /// ELSE
242
+ /// dst.fp16[i] := 0
243
+ /// FI
244
+ /// ENDFOR
245
+ ///
246
+ /// dst[MAX:256] := 0
247
+ /// \endcode
248
+ ///
249
+ /// \headerfile <immintrin.h>
250
+ ///
251
+ /// This intrinsic corresponds to the \c VCVT2PS2PHX instruction.
252
+ ///
253
+ /// \param __U
254
+ /// A 16-bit zeroing mask.
255
+ /// \param __A
256
+ /// A 256-bit vector of [8 x float].
257
+ /// \param __B
258
+ /// A 256-bit vector of [8 x float].
259
+ /// \returns
260
+ /// A 256-bit vector of [16 x fp16]. Lower elements correspond to the
261
+ /// (converted) elements from \a __B; higher order elements correspond to the
262
+ /// (converted) elements from \a __A. If corresponding mask bit is not set,
263
+ /// then zero is taken instead.
264
+ static __inline__ __m256h __DEFAULT_FN_ATTRS256
265
+ _mm256_maskz_cvtx2ps_ph(__mmask16 __U, __m256 __A, __m256 __B) {
266
+ return (__m256h)__builtin_ia32_vcvt2ps2phx256_mask(
267
+ (__v8sf)__A, (__v8sf)__B, (__v16hf)_mm256_setzero_ph(), (__mmask16)__U);
268
+ }
269
+
270
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
271
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
272
+ /// 16-bit integer stored in \a __B.
273
+ ///
274
+ /// \code{.operation}
275
+ /// FOR i := 0 to 7
276
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias(__A.int8[2 * i], __B.fp16[i])
277
+ /// ENDFOR
278
+ ///
279
+ /// dst[MAX:64] := 0
280
+ /// \endcode
281
+ ///
282
+ /// \headerfile <immintrin.h>
283
+ ///
284
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8 instruction.
285
+ ///
286
+ /// \param __A
287
+ /// A 128-bit vector of [8 x int16].
288
+ /// \param __B
289
+ /// A 128-bit vector of [8 x fp16].
290
+ /// \returns
291
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the
292
+ /// converted elements from \a __B using biases from \a __A; higher order
293
+ /// elements are zeroed.
294
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
295
+ _mm_cvtbiasph_bf8(__m128i __A, __m128h __B) {
296
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8_128_mask(
297
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)_mm_undefined_si128(), (__mmask8)-1);
298
+ }
299
+
300
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
301
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
302
+ /// 16-bit integer stored in \a __B. Merging mask \a __U is used to determine if
303
+ /// given element should be taken from \a __W instead.
304
+ ///
305
+ /// \code{.operation}
306
+ /// FOR i := 0 to 7
307
+ /// IF __U[i]
308
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias(__A.int8[2 * i], __B.fp16[i])
309
+ /// ELSE
310
+ /// dst.bf8[i] := __W.bf8[i]
311
+ /// FI
312
+ /// ENDFOR
313
+ ///
314
+ /// dst[MAX:64] := 0
315
+ /// \endcode
316
+ ///
317
+ /// \headerfile <immintrin.h>
318
+ ///
319
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8 instruction.
320
+ ///
321
+ /// \param __W
322
+ /// A 128-bit vector of [16 x bf8].
323
+ /// \param __U
324
+ /// A 8-bit merging mask.
325
+ /// \param __A
326
+ /// A 128-bit vector of [8 x int16].
327
+ /// \param __B
328
+ /// A 128-bit vector of [8 x fp16].
329
+ /// \returns
330
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the
331
+ /// converted elements from \a __B, using biases from \a __A; higher order
332
+ /// elements are zeroed. If corresponding mask bit is not set, then element
333
+ /// from \a __W is taken instead.
334
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
335
+ _mm_mask_cvtbiasph_bf8(__m128i __W, __mmask8 __U, __m128i __A, __m128h __B) {
336
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8_128_mask(
337
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)(__m128i)__W, (__mmask8)__U);
338
+ }
339
+
340
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
341
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
342
+ /// 16-bit integer stored in \a __B. Zeroing mask \a __U is used to determine if
343
+ /// given element should be zeroed instead.
344
+ ///
345
+ /// \code{.operation}
346
+ /// FOR i := 0 to 7
347
+ /// IF __U[i]
348
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias(__A.int8[2 * i], __B.fp16[i])
349
+ /// ELSE
350
+ /// dst.bf8[i] := 0
351
+ /// FI
352
+ /// ENDFOR
353
+ ///
354
+ /// dst[MAX:64] := 0
355
+ /// \endcode
356
+ ///
357
+ /// \headerfile <immintrin.h>
358
+ ///
359
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8 instruction.
360
+ ///
361
+ /// \param __U
362
+ /// A 8-bit zeroing mask.
363
+ /// \param __A
364
+ /// A 128-bit vector of [8 x int16].
365
+ /// \param __B
366
+ /// A 128-bit vector of [8 x fp16].
367
+ /// \returns
368
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the
369
+ /// converted elements from \a __B, using biases from \a __A; higher order
370
+ /// elements are zeroed. If corresponding mask bit is not set, then element
371
+ /// is zeroed.
372
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
373
+ _mm_maskz_cvtbiasph_bf8(__mmask8 __U, __m128i __A, __m128h __B) {
374
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8_128_mask(
375
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)(__m128i)_mm_setzero_si128(),
376
+ (__mmask8)__U);
377
+ }
378
+
379
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
380
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
381
+ /// 16-bit integer stored in \a __B.
382
+ ///
383
+ /// \code{.operation}
384
+ /// FOR i := 0 to 15
385
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias(__A.int8[2 * i], __B.fp16[i])
386
+ /// ENDFOR
387
+ ///
388
+ /// dst[MAX:128] := 0
389
+ /// \endcode
390
+ ///
391
+ /// \headerfile <immintrin.h>
392
+ ///
393
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8 instruction.
394
+ ///
395
+ /// \param __A
396
+ /// A 256-bit vector of [16 x int16].
397
+ /// \param __B
398
+ /// A 256-bit vector of [16 x fp16].
399
+ /// \returns
400
+ /// A 128-bit vector of [16 x bf8]. Elements correspond to the
401
+ /// converted elements from \a __B using biases from \a __A.
402
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
403
+ _mm256_cvtbiasph_bf8(__m256i __A, __m256h __B) {
404
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8_256_mask(
405
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)_mm_undefined_si128(),
406
+ (__mmask16)-1);
407
+ }
408
+
409
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
410
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
411
+ /// 16-bit integer stored in \a __B. Merging mask \a __U is used to determine if
412
+ /// given element should be taken from \a __W instead.
413
+ ///
414
+ /// \code{.operation}
415
+ /// FOR i := 0 to 15
416
+ /// IF __U[i]
417
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias(__A.int8[2 * i], __B.fp16[i])
418
+ /// ELSE
419
+ /// dst.bf8[i] := __W.bf8[i]
420
+ /// FI
421
+ /// ENDFOR
422
+ ///
423
+ /// dst[MAX:128] := 0
424
+ /// \endcode
425
+ ///
426
+ /// \headerfile <immintrin.h>
427
+ ///
428
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8 instruction.
429
+ ///
430
+ /// \param __W
431
+ /// A 128-bit vector of [16 x bf8].
432
+ /// \param __U
433
+ /// A 16-bit merging mask.
434
+ /// \param __A
435
+ /// A 256-bit vector of [16 x int16].
436
+ /// \param __B
437
+ /// A 256-bit vector of [16 x fp16].
438
+ /// \returns
439
+ /// A 128-bit vector of [16 x bf8]. Elements correspond to the converted
440
+ /// elements from \a __B, using biases from \a __A. If corresponding mask bit
441
+ /// is not set, then element from \a __W is taken instead.
442
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256 _mm256_mask_cvtbiasph_bf8(
443
+ __m128i __W, __mmask16 __U, __m256i __A, __m256h __B) {
444
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8_256_mask(
445
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)__W, (__mmask16)__U);
446
+ }
447
+
448
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
449
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
450
+ /// 16-bit integer stored in \a __B. Zeroing mask \a __U is used to determine if
451
+ /// given element should be zeroed instead.
452
+ ///
453
+ /// \code{.operation}
454
+ /// FOR i := 0 to 15
455
+ /// IF __U[i]
456
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias(__A.int8[2 * i], __B.fp16[i])
457
+ /// ELSE
458
+ /// dst.bf8[i] := 0
459
+ /// FI
460
+ /// ENDFOR
461
+ ///
462
+ /// dst[MAX:128] := 0
463
+ /// \endcode
464
+ ///
465
+ /// \headerfile <immintrin.h>
466
+ ///
467
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8 instruction.
468
+ ///
469
+ /// \param __U
470
+ /// A 16-bit zeroing mask.
471
+ /// \param __A
472
+ /// A 256-bit vector of [16 x int16].
473
+ /// \param __B
474
+ /// A 256-bit vector of [16 x fp16].
475
+ /// \returns
476
+ /// A 128-bit vector of [16 x bf8]. Elements correspond to the converted
477
+ /// elements from \a __B, using biases from \a __A. If corresponding mask bit
478
+ /// is not set, then element is zeroed.
479
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
480
+ _mm256_maskz_cvtbiasph_bf8(__mmask16 __U, __m256i __A, __m256h __B) {
481
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8_256_mask(
482
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)_mm_setzero_si128(),
483
+ (__mmask16)__U);
484
+ }
485
+
486
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
487
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
488
+ /// 16-bit integer stored in \a __B. Results are saturated.
489
+ ///
490
+ /// \code{.operation}
491
+ /// FOR i := 0 to 7
492
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
493
+ /// ENDFOR
494
+ ///
495
+ /// dst[MAX:64] := 0
496
+ /// \endcode
497
+ ///
498
+ /// \headerfile <immintrin.h>
499
+ ///
500
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8 instruction.
501
+ ///
502
+ /// \param __A
503
+ /// A 128-bit vector of [8 x int16].
504
+ /// \param __B
505
+ /// A 128-bit vector of [8 x fp16].
506
+ /// \returns
507
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the
508
+ /// converted elements from \a __B using biases from \a __A; higher order
509
+ /// elements are zeroed.
510
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
511
+ _mm_cvts_biasph_bf8(__m128i __A, __m128h __B) {
512
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8s_128_mask(
513
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)_mm_undefined_si128(), (__mmask8)-1);
514
+ }
515
+
516
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
517
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
518
+ /// 16-bit integer stored in \a __B. Results are saturated. Merging mask \a __U
519
+ /// is used to determine if given element should be taken from \a __W instead.
520
+ ///
521
+ /// \code{.operation}
522
+ /// FOR i := 0 to 7
523
+ /// IF __U[i]
524
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
525
+ /// ELSE
526
+ /// dst.bf8[i] := __W.bf8[i]
527
+ /// FI
528
+ /// ENDFOR
529
+ ///
530
+ /// dst[MAX:64] := 0
531
+ /// \endcode
532
+ ///
533
+ /// \headerfile <immintrin.h>
534
+ ///
535
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8S instruction.
536
+ ///
537
+ /// \param __W
538
+ /// A 128-bit vector of [16 x bf8].
539
+ /// \param __U
540
+ /// A 8-bit merging mask.
541
+ /// \param __A
542
+ /// A 128-bit vector of [8 x int16].
543
+ /// \param __B
544
+ /// A 128-bit vector of [8 x fp16].
545
+ /// \returns
546
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the
547
+ /// converted elements from \a __B, using biases from \a __A; higher order
548
+ /// elements are zeroed. If corresponding mask bit is not set, then element
549
+ /// from \a __W is taken instead.
550
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_cvts_biasph_bf8(__m128i
551
+ __W, __mmask8 __U, __m128i __A, __m128h __B) { return
552
+ (__m128i)__builtin_ia32_vcvtbiasph2bf8s_128_mask( (__v16qi)__A,
553
+ (__v8hf)__B, (__v16qi)(__m128i)__W, (__mmask8)__U); }
554
+
555
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
556
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
557
+ /// 16-bit integer stored in \a __B. Results are saturated. Zeroing mask \a __U
558
+ /// is used to determine if given element should be zeroed instead.
559
+ ///
560
+ /// \code{.operation}
561
+ /// FOR i := 0 to 7
562
+ /// IF __U[i]
563
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
564
+ /// ELSE
565
+ /// dst.bf8[i] := 0
566
+ /// FI
567
+ /// ENDFOR
568
+ ///
569
+ /// dst[MAX:64] := 0
570
+ /// \endcode
571
+ ///
572
+ /// \headerfile <immintrin.h>
573
+ ///
574
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8S instruction.
575
+ ///
576
+ /// \param __U
577
+ /// A 8-bit zeroing mask.
578
+ /// \param __A
579
+ /// A 128-bit vector of [8 x int16].
580
+ /// \param __B
581
+ /// A 128-bit vector of [8 x fp16].
582
+ /// \returns
583
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the
584
+ /// converted elements from \a __B, using biases from \a __A; higher order
585
+ /// elements are zeroed. If corresponding mask bit is not set, then element
586
+ /// is zeroed.
587
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
588
+ _mm_maskz_cvts_biasph_bf8(__mmask8 __U, __m128i __A, __m128h __B) {
589
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8s_128_mask(
590
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)(__m128i)_mm_setzero_si128(),
591
+ (__mmask8)__U);
592
+ }
593
+
594
+
595
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
596
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
597
+ /// 16-bit integer stored in \a __B. Results are saturated.
598
+ ///
599
+ /// \code{.operation}
600
+ /// FOR i := 0 to 15
601
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
602
+ /// ENDFOR
603
+ ///
604
+ /// dst[MAX:128] := 0
605
+ /// \endcode
606
+ ///
607
+ /// \headerfile <immintrin.h>
608
+ ///
609
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8S instruction.
610
+ ///
611
+ /// \param __A
612
+ /// A 256-bit vector of [16 x int16].
613
+ /// \param __B
614
+ /// A 256-bit vector of [16 x fp16].
615
+ /// \returns
616
+ /// A 128-bit vector of [16 x bf8]. Elements correspond to the
617
+ /// converted elements from \a __B using biases from \a __A.
618
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
619
+ _mm256_cvts_biasph_bf8(__m256i __A, __m256h __B) {
620
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8s_256_mask(
621
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)_mm_undefined_si128(),
622
+ (__mmask16)-1);
623
+ }
624
+
625
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
626
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
627
+ /// 16-bit integer stored in \a __B. Results are saturated. Merging mask \a __U
628
+ /// is used to determine if given element should be taken from \a __W instead.
629
+ ///
630
+ /// \code{.operation}
631
+ /// FOR i := 0 to 15
632
+ /// IF __U[i]
633
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
634
+ /// ELSE
635
+ /// dst.bf8[i] := __W.bf8[i]
636
+ /// FI
637
+ /// ENDFOR
638
+ ///
639
+ /// dst[MAX:128] := 0
640
+ /// \endcode
641
+ ///
642
+ /// \headerfile <immintrin.h>
643
+ ///
644
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8S instruction.
645
+ ///
646
+ /// \param __W
647
+ /// A 128-bit vector of [16 x bf8].
648
+ /// \param __U
649
+ /// A 16-bit merging mask.
650
+ /// \param __A
651
+ /// A 256-bit vector of [16 x int16].
652
+ /// \param __B
653
+ /// A 256-bit vector of [16 x fp16].
654
+ /// \returns
655
+ /// A 128-bit vector of [16 x bf8]. Elements correspond to the converted
656
+ /// elements from \a __B, using biases from \a __A. If corresponding mask bit
657
+ /// is not set, then element from \a __W is taken instead.
658
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256 _mm256_mask_cvts_biasph_bf8(
659
+ __m128i __W, __mmask16 __U, __m256i __A, __m256h __B) {
660
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8s_256_mask(
661
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)__W, (__mmask16)__U);
662
+ }
663
+
664
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
665
+ /// to FP8 E5M2 numbers, using conversion biases stored in lower 8 bits of each
666
+ /// 16-bit integer stored in \a __B. Results are saturated. Zeroing mask \a __U
667
+ /// is used to determine if given element should be zeroed instead.
668
+ ///
669
+ /// \code{.operation}
670
+ /// FOR i := 0 to 15
671
+ /// IF __U[i]
672
+ /// dst.bf8[i] := convert_fp16_to_bf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
673
+ /// ELSE
674
+ /// dst.bf8[i] := 0
675
+ /// FI
676
+ /// ENDFOR
677
+ ///
678
+ /// dst[MAX:128] := 0
679
+ /// \endcode
680
+ ///
681
+ /// \headerfile <immintrin.h>
682
+ ///
683
+ /// This intrinsic corresponds to the \c VCVTBIASPH2BF8S instruction.
684
+ ///
685
+ /// \param __U
686
+ /// A 16-bit zeroing mask.
687
+ /// \param __A
688
+ /// A 256-bit vector of [16 x int16].
689
+ /// \param __B
690
+ /// A 256-bit vector of [16 x fp16].
691
+ /// \returns
692
+ /// A 128-bit vector of [16 x bf8]. Elements correspond to the converted
693
+ /// elements from \a __B, using biases from \a __A. If corresponding mask bit
694
+ /// is not set, then element is zeroed.
695
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
696
+ _mm256_maskz_cvts_biasph_bf8(__mmask16 __U, __m256i __A, __m256h __B) {
697
+ return (__m128i)__builtin_ia32_vcvtbiasph2bf8s_256_mask(
698
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)_mm_setzero_si128(),
699
+ (__mmask16)__U);
700
+ }
701
+
702
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
703
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
704
+ /// 16-bit integer stored in \a __B.
705
+ ///
706
+ /// \code{.operation}
707
+ /// FOR i := 0 to 7
708
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias(__A.int8[2 * i], __B.fp16[i])
709
+ /// ENDFOR
710
+ ///
711
+ /// dst[MAX:64] := 0
712
+ /// \endcode
713
+ ///
714
+ /// \headerfile <immintrin.h>
715
+ ///
716
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8 instruction.
717
+ ///
718
+ /// \param __A
719
+ /// A 128-bit vector of [8 x int16].
720
+ /// \param __B
721
+ /// A 128-bit vector of [8 x fp16].
722
+ /// \returns
723
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the
724
+ /// converted elements from \a __B using biases from \a __A; higher order
725
+ /// elements are zeroed.
726
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
727
+ _mm_cvtbiasph_hf8(__m128i __A, __m128h __B) {
728
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8_128_mask(
729
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)_mm_undefined_si128(), (__mmask8)-1);
730
+ }
731
+
732
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
733
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
734
+ /// 16-bit integer stored in \a __B. Merging mask \a __U is used to determine if
735
+ /// given element should be taken from \a __W instead.
736
+ ///
737
+ /// \code{.operation}
738
+ /// FOR i := 0 to 7
739
+ /// IF __U[i]
740
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias(__A.int8[2 * i], __B.fp16[i])
741
+ /// ELSE
742
+ /// dst.hf8[i] := __W.hf8[i]
743
+ /// FI
744
+ /// ENDFOR
745
+ ///
746
+ /// dst[MAX:64] := 0
747
+ /// \endcode
748
+ ///
749
+ /// \headerfile <immintrin.h>
750
+ ///
751
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8 instruction.
752
+ ///
753
+ /// \param __W
754
+ /// A 128-bit vector of [16 x hf8].
755
+ /// \param __U
756
+ /// A 8-bit merging mask.
757
+ /// \param __A
758
+ /// A 128-bit vector of [8 x int16].
759
+ /// \param __B
760
+ /// A 128-bit vector of [8 x fp16].
761
+ /// \returns
762
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the
763
+ /// converted elements from \a __B, using biases from \a __A; higher order
764
+ /// elements are zeroed. If corresponding mask bit is not set, then element
765
+ /// from \a __W is taken instead.
766
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
767
+ _mm_mask_cvtbiasph_hf8(__m128i __W, __mmask8 __U, __m128i __A, __m128h __B) {
768
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8_128_mask(
769
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)(__m128i)__W, (__mmask8)__U);
770
+ }
771
+
772
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
773
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
774
+ /// 16-bit integer stored in \a __B. Zeroing mask \a __U is used to determine if
775
+ /// given element should be zeroed instead.
776
+ ///
777
+ /// \code{.operation}
778
+ /// FOR i := 0 to 7
779
+ /// IF __U[i]
780
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias(__A.int8[2 * i], __B.fp16[i])
781
+ /// ELSE
782
+ /// dst.hf8[i] := 0
783
+ /// FI
784
+ /// ENDFOR
785
+ ///
786
+ /// dst[MAX:64] := 0
787
+ /// \endcode
788
+ ///
789
+ /// \headerfile <immintrin.h>
790
+ ///
791
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8 instruction.
792
+ ///
793
+ /// \param __U
794
+ /// A 8-bit zeroing mask.
795
+ /// \param __A
796
+ /// A 128-bit vector of [8 x int16].
797
+ /// \param __B
798
+ /// A 128-bit vector of [8 x fp16].
799
+ /// \returns
800
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the
801
+ /// converted elements from \a __B, using biases from \a __A; higher order
802
+ /// elements are zeroed. If corresponding mask bit is not set, then element
803
+ /// is zeroed.
804
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
805
+ _mm_maskz_cvtbiasph_hf8(__mmask8 __U, __m128i __A, __m128h __B) {
806
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8_128_mask(
807
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)(__m128i)_mm_setzero_si128(),
808
+ (__mmask8)__U);
809
+ }
810
+
811
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
812
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
813
+ /// 16-bit integer stored in \a __B.
814
+ ///
815
+ /// \code{.operation}
816
+ /// FOR i := 0 to 15
817
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias(__A.int8[2 * i], __B.fp16[i])
818
+ /// ENDFOR
819
+ ///
820
+ /// dst[MAX:128] := 0
821
+ /// \endcode
822
+ ///
823
+ /// \headerfile <immintrin.h>
824
+ ///
825
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8 instruction.
826
+ ///
827
+ /// \param __A
828
+ /// A 256-bit vector of [16 x half].
829
+ /// \param __B
830
+ /// A 256-bit vector of [16 x i16].
831
+ /// \returns
832
+ /// A 128-bit vector of [16 x hf8]. Elements correspond to the
833
+ /// converted elements from \a __B using biases from \a __A.
834
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
835
+ _mm256_cvtbiasph_hf8(__m256i __A, __m256h __B) {
836
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8_256_mask(
837
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)_mm_undefined_si128(),
838
+ (__mmask16)-1);
839
+ }
840
+
841
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
842
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
843
+ /// 16-bit integer stored in \a __B. Merging mask \a __U is used to determine if
844
+ /// given element should be taken from \a __W instead.
845
+ ///
846
+ /// \code{.operation}
847
+ /// FOR i := 0 to 15
848
+ /// IF __U[i]
849
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias(__A.int8[2 * i], __B.fp16[i])
850
+ /// ELSE
851
+ /// dst.hf8[i] := __W.hf8[i]
852
+ /// FI
853
+ /// ENDFOR
854
+ ///
855
+ /// dst[MAX:128] := 0
856
+ /// \endcode
857
+ ///
858
+ /// \headerfile <immintrin.h>
859
+ ///
860
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8 instruction.
861
+ ///
862
+ /// \param __W
863
+ /// A 128-bit vector of [16 x hf8].
864
+ /// \param __U
865
+ /// A 16-bit merging mask.
866
+ /// \param __A
867
+ /// A 256-bit vector of [16 x int16].
868
+ /// \param __B
869
+ /// A 256-bit vector of [16 x fp16].
870
+ /// \returns
871
+ /// A 128-bit vector of [16 x hf8]. Elements correspond to the converted
872
+ /// elements from \a __B, using biases from \a __A. If corresponding mask bit
873
+ /// is not set, then element from \a __W is taken instead.
874
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256 _mm256_mask_cvtbiasph_hf8(
875
+ __m128i __W, __mmask16 __U, __m256i __A, __m256h __B) {
876
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8_256_mask(
877
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)__W, (__mmask16)__U);
878
+ }
879
+
880
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
881
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
882
+ /// 16-bit integer stored in \a __B. Zeroing mask \a __U is used to determine if
883
+ /// given element should be taken zeroed instead.
884
+ ///
885
+ /// \code{.operation}
886
+ /// FOR i := 0 to 15
887
+ /// IF __U[i]
888
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias(__A.int8[2 * i], __B.fp16[i])
889
+ /// ELSE
890
+ /// dst.hf8[i] := 0
891
+ /// FI
892
+ /// ENDFOR
893
+ ///
894
+ /// dst[MAX:128] := 0
895
+ /// \endcode
896
+ ///
897
+ /// \headerfile <immintrin.h>
898
+ ///
899
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8 instruction.
900
+ ///
901
+ /// \param __U
902
+ /// A 16-bit zeroing mask.
903
+ /// \param __A
904
+ /// A 256-bit vector of [16 x half].
905
+ /// \param __B
906
+ /// A 256-bit vector of [16 x i16].
907
+ /// \returns
908
+ /// A 128-bit vector of [16 x hf8]. Elements correspond to the converted
909
+ /// elements from \a __B, using biases from \a __A. If corresponding mask bit
910
+ /// is not set, then element is zeroed.
911
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
912
+ _mm256_maskz_cvtbiasph_hf8(__mmask16 __U, __m256i __A, __m256h __B) {
913
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8_256_mask(
914
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)_mm_setzero_si128(),
915
+ (__mmask16)__U);
916
+ }
917
+
918
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
919
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
920
+ /// 16-bit integer stored in \a __B. Results are saturated.
921
+ ///
922
+ /// \code{.operation}
923
+ /// FOR i := 0 to 7
924
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
925
+ /// ENDFOR
926
+ ///
927
+ /// dst[MAX:64] := 0
928
+ /// \endcode
929
+ ///
930
+ /// \headerfile <immintrin.h>
931
+ ///
932
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8S`instruction.
933
+ ///
934
+ /// \param __A
935
+ /// A 128-bit vector of [8 x int16].
936
+ /// \param __B
937
+ /// A 128-bit vector of [8 x fp16].
938
+ /// \returns
939
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the
940
+ /// converted elements from \a __B using biases from \a __A; higher order
941
+ /// elements are zeroed.
942
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
943
+ _mm_cvts_biasph_hf8(__m128i __A, __m128h __B) {
944
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8s_128_mask(
945
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)_mm_undefined_si128(), (__mmask8)-1);
946
+ }
947
+
948
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
949
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
950
+ /// 16-bit integer stored in \a __B. Results are saturated. Merging mask \a __U
951
+ /// is used to determine if given element should be taken from \a __W instead.
952
+ ///
953
+ /// \code{.operation}
954
+ /// FOR i := 0 to 7
955
+ /// IF __U[i]
956
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
957
+ /// ELSE
958
+ /// dst.hf8[i] := __W.hf8[i]
959
+ /// FI
960
+ /// ENDFOR
961
+ ///
962
+ /// dst[MAX:64] := 0
963
+ /// \endcode
964
+ ///
965
+ /// \headerfile <immintrin.h>
966
+ ///
967
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8S instruction.
968
+ ///
969
+ /// \param __W
970
+ /// A 128-bit vector of [16 x hf8].
971
+ /// \param __U
972
+ /// A 8-bit merging mask.
973
+ /// \param __A
974
+ /// A 128-bit vector of [8 x int16].
975
+ /// \param __B
976
+ /// A 128-bit vector of [8 x fp16].
977
+ /// \returns
978
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the
979
+ /// converted elements from \a __B, using biases from \a __A; higher order
980
+ /// elements are zeroed. If corresponding mask bit is not set, then element
981
+ /// from \a __W is taken instead.
982
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
983
+ _mm_mask_cvts_biasph_hf8(__m128i __W, __mmask8 __U, __m128i __A, __m128h __B) {
984
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8s_128_mask(
985
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)(__m128i)__W, (__mmask8)__U);
986
+ }
987
+
988
+ /// Convert 128-bit vector \a __B containing packed FP16 floating-point elements
989
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
990
+ /// 16-bit integer stored in \a __B. Results are saturated. Zeroing mask \a __U
991
+ /// is used to determine if given element should be zeroed instead.
992
+ ///
993
+ /// \code{.operation}
994
+ /// FOR i := 0 to 7
995
+ /// IF __U[i]
996
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
997
+ /// ELSE
998
+ /// dst.hf8[i] := 0
999
+ /// FI
1000
+ /// ENDFOR
1001
+ ///
1002
+ /// dst[MAX:64] := 0
1003
+ /// \endcode
1004
+ ///
1005
+ /// \headerfile <immintrin.h>
1006
+ ///
1007
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8S instruction.
1008
+ ///
1009
+ /// \param __U
1010
+ /// A 8-bit zeroing mask.
1011
+ /// \param __A
1012
+ /// A 128-bit vector of [8 x int16].
1013
+ /// \param __B
1014
+ /// A 128-bit vector of [8 x fp16].
1015
+ /// \returns
1016
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the
1017
+ /// converted elements from \a __B, using biases from \a __A; higher order
1018
+ /// elements are zeroed. If corresponding mask bit is not set, then element
1019
+ /// is zeroed.
1020
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1021
+ _mm_maskz_cvts_biasph_hf8(__mmask8 __U, __m128i __A, __m128h __B) {
1022
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8s_128_mask(
1023
+ (__v16qi)__A, (__v8hf)__B, (__v16qi)(__m128i)_mm_setzero_si128(),
1024
+ (__mmask8)__U);
1025
+ }
1026
+
1027
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
1028
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
1029
+ /// 16-bit integer stored in \a __B. Results are saturated.
1030
+ ///
1031
+ /// \code{.operation}
1032
+ /// FOR i := 0 to 15
1033
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
1034
+ /// ENDFOR
1035
+ ///
1036
+ /// dst[MAX:128] := 0
1037
+ /// \endcode
1038
+ ///
1039
+ /// \headerfile <immintrin.h>
1040
+ ///
1041
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8S instruction.
1042
+ ///
1043
+ /// \param __A
1044
+ /// A 256-bit vector of [16 x int16].
1045
+ /// \param __B
1046
+ /// A 256-bit vector of [16 x fp16].
1047
+ /// \returns
1048
+ /// A 128-bit vector of [16 x hf8]. Elements correspond to the
1049
+ /// converted elements from \a __B using biases from \a __A.
1050
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
1051
+ _mm256_cvts_biasph_hf8(__m256i __A, __m256h __B) {
1052
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8s_256_mask(
1053
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)_mm_undefined_si128(),
1054
+ (__mmask16)-1);
1055
+ }
1056
+
1057
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
1058
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
1059
+ /// 16-bit integer stored in \a __B. Results are saturated. Merging mask \a __U
1060
+ /// is used to determine if given element should be taken from \a __W instead.
1061
+ ///
1062
+ /// \code{.operation}
1063
+ /// FOR i := 0 to 15
1064
+ /// IF __U[i]
1065
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
1066
+ /// ELSE
1067
+ /// dst.hf8[i] := __W.hf8[i]
1068
+ /// FI
1069
+ /// ENDFOR
1070
+ ///
1071
+ /// dst[MAX:128] := 0
1072
+ /// \endcode
1073
+ ///
1074
+ /// \headerfile <immintrin.h>
1075
+ ///
1076
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8S instruction.
1077
+ ///
1078
+ /// \param __W
1079
+ /// A 128-bit vector of [16 x hf8].
1080
+ /// \param __U
1081
+ /// A 16-bit merging mask.
1082
+ /// \param __A
1083
+ /// A 256-bit vector of [16 x int16].
1084
+ /// \param __B
1085
+ /// A 256-bit vector of [16 x fp16].
1086
+ /// \returns
1087
+ /// A 128-bit vector of [16 x hf8]. Elements correspond to the converted
1088
+ /// elements from \a __B, using biases from \a __A. If corresponding mask bit
1089
+ /// is not set, then element from \a __W is taken instead.
1090
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256 _mm256_mask_cvts_biasph_hf8(
1091
+ __m128i __W, __mmask16 __U, __m256i __A, __m256h __B) {
1092
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8s_256_mask(
1093
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)__W, (__mmask16)__U);
1094
+ }
1095
+
1096
+ /// Convert 256-bit vector \a __B containing packed FP16 floating-point elements
1097
+ /// to FP8 E4M3 numbers, using conversion biases stored in lower 8 bits of each
1098
+ /// 16-bit integer stored in \a __B. Results are saturated. Zeroing mask \a __U
1099
+ /// is used to determine if given element should be zeroed instead.
1100
+ ///
1101
+ /// \code{.operation}
1102
+ /// FOR i := 0 to 15
1103
+ /// IF __U[i]
1104
+ /// dst.hf8[i] := convert_fp16_to_hf8_with_bias_saturate(__A.int8[2 * i], __B.fp16[i])
1105
+ /// ELSE
1106
+ /// dst.hf8[i] := 0
1107
+ /// FI
1108
+ /// ENDFOR
1109
+ ///
1110
+ /// dst[MAX:128] := 0
1111
+ /// \endcode
1112
+ ///
1113
+ /// \headerfile <immintrin.h>
1114
+ ///
1115
+ /// This intrinsic corresponds to the \c VCVTBIASPH2HF8S instruction.
1116
+ ///
1117
+ /// \param __U
1118
+ /// A 16-bit zeroing mask.
1119
+ /// \param __A
1120
+ /// A 256-bit vector of [16 x int16].
1121
+ /// \param __B
1122
+ /// A 256-bit vector of [16 x fp16].
1123
+ /// \returns
1124
+ /// A 128-bit vector of [16 x hf8]. Elements correspond to the converted
1125
+ /// elements from \a __B, using biases from \a __A. If corresponding mask bit
1126
+ /// is not set, then element is zeroed.
1127
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
1128
+ _mm256_maskz_cvts_biasph_hf8(__mmask16 __U, __m256i __A, __m256h __B) {
1129
+ return (__m128i)__builtin_ia32_vcvtbiasph2hf8s_256_mask(
1130
+ (__v32qi)__A, (__v16hf)__B, (__v16qi)(__m128i)_mm_setzero_si128(),
1131
+ (__mmask16)__U);
1132
+ }
1133
+
1134
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1135
+ /// floating-point elements to a 128-bit vector containing E5M2 FP8 elements.
1136
+ ///
1137
+ /// \code{.operation}
1138
+ /// FOR i := 0 to 15
1139
+ /// IF i < 8
1140
+ /// dst.bf8[i] := convert_fp16_to_bf8(__B.fp16[i])
1141
+ /// ELSE
1142
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i - 8])
1143
+ /// FI
1144
+ /// ENDFOR
1145
+ ///
1146
+ /// dst[MAX:128] := 0
1147
+ /// \endcode
1148
+ ///
1149
+ /// \headerfile <immintrin.h>
1150
+ ///
1151
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8 instruction.
1152
+ ///
1153
+ /// \param __A
1154
+ /// A 128-bit vector of [8 x fp16].
1155
+ /// \param __B
1156
+ /// A 128-bit vector of [8 x fp16].
1157
+ /// \returns
1158
+ /// A 128-bit vector of [16 x bf8]. Lower 8 elements correspond to the
1159
+ /// (converted) elements from \a __B; higher order elements correspond to the
1160
+ /// (converted) elements from \a __A.
1161
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvt2ph_bf8(__m128h __A,
1162
+ __m128h __B) {
1163
+ return (__m128i)__builtin_ia32_vcvt2ph2bf8_128((__v8hf)(__A),
1164
+ (__v8hf)(__B));
1165
+ }
1166
+
1167
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1168
+ /// floating-point elements to a 128-bit vector containing E5M2 FP8 elements.
1169
+ /// Merging mask \a __U is used to determine if given element should be taken
1170
+ /// from \a __W instead.
1171
+ ///
1172
+ /// \code{.operation}
1173
+ /// FOR i := 0 to 15
1174
+ /// IF __U[i]
1175
+ /// IF i < 8
1176
+ /// dst.bf8[i] := convert_fp16_to_bf8(__B.fp16[i])
1177
+ /// ELSE
1178
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i - 8])
1179
+ /// FI
1180
+ /// ELSE
1181
+ /// dst.bf8[i] := __W.bf8[i]
1182
+ /// FI
1183
+ /// ENDFOR
1184
+ ///
1185
+ /// dst[MAX:128] := 0
1186
+ /// \endcode
1187
+ ///
1188
+ /// \headerfile <immintrin.h>
1189
+ ///
1190
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8 instruction.
1191
+ ///
1192
+ /// \param __W
1193
+ /// A 128-bit vector of [16 x bf8].
1194
+ /// \param __U
1195
+ /// A 16-bit merging mask.
1196
+ /// \param __A
1197
+ /// A 128-bit vector of [8 x fp16].
1198
+ /// \param __B
1199
+ /// A 128-bit vector of [8 x fp16].
1200
+ /// \returns
1201
+ /// A 128-bit vector of [16 x bf8]. Lower 8 elements correspond to the
1202
+ /// (converted) elements from \a __B; higher order elements correspond to the
1203
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1204
+ /// element from \a __W is taken instead.
1205
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1206
+ _mm_mask_cvt2ph_bf8(__m128i __W, __mmask16 __U, __m128h __A, __m128h __B) {
1207
+ return (__m128i)__builtin_ia32_selectb_128(
1208
+ (__mmask16)__U, (__v16qi)_mm_cvt2ph_bf8(__A, __B), (__v16qi)__W);
1209
+ }
1210
+
1211
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1212
+ /// floating-point elements to a 128-bit vector containing E5M2 FP8 elements.
1213
+ /// Zeroing mask \a __U is used to determine if given element should be zeroed
1214
+ /// instead.
1215
+ ///
1216
+ /// \code{.operation}
1217
+ /// FOR i := 0 to 15
1218
+ /// IF __U[i]
1219
+ /// IF i < 8
1220
+ /// dst.bf8[i] := convert_fp16_to_bf8(__B.fp16[i])
1221
+ /// ELSE
1222
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i - 8])
1223
+ /// FI
1224
+ /// ELSE
1225
+ /// dst.bf8[i] := 0
1226
+ /// FI
1227
+ /// ENDFOR
1228
+ ///
1229
+ /// dst[MAX:128] := 0
1230
+ /// \endcode
1231
+ ///
1232
+ /// \headerfile <immintrin.h>
1233
+ ///
1234
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8 instruction.
1235
+ ///
1236
+ /// \param __U
1237
+ /// A 16-bit zeroing mask.
1238
+ /// \param __A
1239
+ /// A 128-bit vector of [8 x fp16].
1240
+ /// \param __B
1241
+ /// A 128-bit vector of [8 x fp16].
1242
+ /// \returns
1243
+ /// A 128-bit vector of [16 x bf8]. Lower 8 elements correspond to the
1244
+ /// (converted) elements from \a __B; higher order elements correspond to the
1245
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1246
+ /// zero is taken instead.
1247
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1248
+ _mm_maskz_cvt2ph_bf8(__mmask16 __U, __m128h __A, __m128h __B) {
1249
+ return (__m128i)__builtin_ia32_selectb_128(
1250
+ (__mmask16)__U, (__v16qi)_mm_cvt2ph_bf8(__A, __B),
1251
+ (__v16qi)(__m128i)_mm_setzero_si128());
1252
+ }
1253
+
1254
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
1255
+ /// floating-point elements to a 256-bit vector containing E5M2 FP8 elements.
1256
+ ///
1257
+ /// \code{.operation}
1258
+ /// FOR i := 0 to 31
1259
+ /// IF i < 16
1260
+ /// dst.bf8[i] := convert_fp16_to_bf8(__B.fp16[i])
1261
+ /// ELSE
1262
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i - 16])
1263
+ /// FI
1264
+ /// ENDFOR
1265
+ ///
1266
+ /// dst[MAX:256] := 0
1267
+ /// \endcode
1268
+ ///
1269
+ /// \headerfile <immintrin.h>
1270
+ ///
1271
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8 instruction.
1272
+ ///
1273
+ /// \param __A
1274
+ /// A 256-bit vector of [16 x fp16].
1275
+ /// \param __B
1276
+ /// A 256-bit vector of [16 x fp16].
1277
+ /// \returns
1278
+ /// A 256-bit vector of [32 x bf8]. Lower 16 elements correspond to the
1279
+ /// (converted) elements from \a __B; higher order elements correspond to the
1280
+ /// (converted) elements from \a __A.
1281
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
1282
+ _mm256_cvt2ph_bf8(__m256h __A, __m256h __B) {
1283
+ return (__m256i)__builtin_ia32_vcvt2ph2bf8_256((__v16hf)(__A),
1284
+ (__v16hf)(__B));
1285
+ }
1286
+
1287
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
1288
+ /// floating-point elements to a 256-bit vector containing E5M2 FP8 elements.
1289
+ /// Merging mask \a __U is used to determine if given element should be taken
1290
+ /// from \a __W instead.
1291
+ ///
1292
+ /// \code{.operation}
1293
+ /// FOR i := 0 to 31
1294
+ /// IF __U[i]
1295
+ /// IF i < 16
1296
+ /// dst.bf8[i] := convert_fp16_to_bf8(__B.fp16[i])
1297
+ /// ELSE
1298
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i - 16])
1299
+ /// FI
1300
+ /// ELSE
1301
+ /// dst.bf8[i] := __W.bf8[i]
1302
+ /// FI
1303
+ /// ENDFOR
1304
+ ///
1305
+ /// dst[MAX:256] := 0
1306
+ /// \endcode
1307
+ ///
1308
+ /// \headerfile <immintrin.h>
1309
+ ///
1310
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8 instruction.
1311
+ ///
1312
+ /// \param __W
1313
+ /// A 256-bit vector of [32 x bf8].
1314
+ /// \param __U
1315
+ /// A 32-bit merging mask.
1316
+ /// \param __A
1317
+ /// A 256-bit vector of [16 x fp16].
1318
+ /// \param __B
1319
+ /// A 256-bit vector of [16 x fp16].
1320
+ /// \returns
1321
+ /// A 256-bit vector of [32 x bf8]. Lower 16 elements correspond to the
1322
+ /// (converted) elements from \a __B; higher order elements correspond to the
1323
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1324
+ /// element from \a __W is taken instead.
1325
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_cvt2ph_bf8(
1326
+ __m256i __W, __mmask32 __U, __m256h __A, __m256h __B) {
1327
+ return (__m256i)__builtin_ia32_selectb_256(
1328
+ (__mmask32)__U, (__v32qi)_mm256_cvt2ph_bf8(__A, __B), (__v32qi)__W);
1329
+ }
1330
+
1331
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
1332
+ /// floating-point elements to a 256-bit vector containing E5M2 FP8 elements.
1333
+ /// Zeroing mask \a __U is used to determine if given element should be zeroed
1334
+ /// instead.
1335
+ ///
1336
+ /// \code{.operation}
1337
+ /// FOR i := 0 to 31
1338
+ /// IF __U[i]
1339
+ /// IF i < 16
1340
+ /// dst.bf8[i] := convert_fp16_to_bf8(__B.fp16[i])
1341
+ /// ELSE
1342
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i - 16])
1343
+ /// FI
1344
+ /// ELSE
1345
+ /// dst.bf8[i] := 0
1346
+ /// FI
1347
+ /// ENDFOR
1348
+ ///
1349
+ /// dst[MAX:256] := 0
1350
+ /// \endcode
1351
+ ///
1352
+ /// \headerfile <immintrin.h>
1353
+ ///
1354
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8 instruction.
1355
+ ///
1356
+ /// \param __U
1357
+ /// A 32-bit zeroing mask.
1358
+ /// \param __A
1359
+ /// A 256-bit vector of [16 x fp16].
1360
+ /// \param __B
1361
+ /// A 256-bit vector of [16 x fp16].
1362
+ /// \returns
1363
+ /// A 256-bit vector of [32 x bf8]. Lower 16 elements correspond to the
1364
+ /// (converted) elements from \a __B; higher order elements correspond to the
1365
+ /// (converted) elements from \a __A. If corresponding mask bit is not set,
1366
+ /// zero is taken instead.
1367
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
1368
+ _mm256_maskz_cvt2ph_bf8(__mmask32 __U, __m256h __A, __m256h __B) {
1369
+ return (__m256i)__builtin_ia32_selectb_256(
1370
+ (__mmask32)__U, (__v32qi)_mm256_cvt2ph_bf8(__A, __B),
1371
+ (__v32qi)(__m256i)_mm256_setzero_si256());
1372
+ }
1373
+
1374
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1375
+ /// floating-point elements to a 128-bit vector containing E5M2 FP8 elements.
1376
+ /// Resulting elements are saturated in case of overflow.
1377
+ ///
1378
+ /// \code{.operation}
1379
+ /// FOR i := 0 to 15
1380
+ /// IF i < 8
1381
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__B.fp16[i])
1382
+ /// ELSE
1383
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i - 8])
1384
+ /// FI
1385
+ /// ENDFOR
1386
+ ///
1387
+ /// dst[MAX:128] := 0
1388
+ /// \endcode
1389
+ ///
1390
+ /// \headerfile <immintrin.h>
1391
+ ///
1392
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8S instruction.
1393
+ ///
1394
+ /// \param __A
1395
+ /// A 128-bit vector of [8 x fp16].
1396
+ /// \param __B
1397
+ /// A 128-bit vector of [8 x fp16].
1398
+ /// \returns
1399
+ /// A 128-bit vector of [16 x bf8]. Lower 8 elements correspond to the
1400
+ /// (converted) elements from \a __B; higher order elements correspond to the
1401
+ /// (converted) elements from \a __A.
1402
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1403
+ _mm_cvts_2ph_bf8(__m128h __A, __m128h __B) {
1404
+ return (__m128i)__builtin_ia32_vcvt2ph2bf8s_128((__v8hf)(__A),
1405
+ (__v8hf)(__B));
1406
+ }
1407
+
1408
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1409
+ /// floating-point elements to a 128-bit vector containing E5M2 FP8 elements.
1410
+ /// Merging mask \a __U is used to determine if given element should be taken
1411
+ /// from \a __W instead. Resulting elements are saturated in case of overflow.
1412
+ ///
1413
+ /// \code{.operation}
1414
+ /// FOR i := 0 to 15
1415
+ /// IF __U[i]
1416
+ /// IF i < 8
1417
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__B.fp16[i])
1418
+ /// ELSE
1419
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i - 8])
1420
+ /// FI
1421
+ /// ELSE
1422
+ /// dst.bf8[i] := __W.bf8[i]
1423
+ /// FI
1424
+ /// ENDFOR
1425
+ ///
1426
+ /// dst[MAX:128] := 0
1427
+ /// \endcode
1428
+ ///
1429
+ /// \headerfile <immintrin.h>
1430
+ ///
1431
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8S instruction.
1432
+ ///
1433
+ /// \param __W
1434
+ /// A 128-bit vector of [16 x bf8].
1435
+ /// \param __U
1436
+ /// A 16-bit merging mask.
1437
+ /// \param __A
1438
+ /// A 128-bit vector of [8 x fp16].
1439
+ /// \param __B
1440
+ /// A 128-bit vector of [8 x fp16].
1441
+ /// \returns
1442
+ /// A 128-bit vector of [16 x bf8]. Lower 8 elements correspond to the
1443
+ /// (converted) elements from \a __B; higher order elements correspond to the
1444
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1445
+ /// element from \a __W is taken instead.
1446
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1447
+ _mm_mask_cvts_2ph_bf8(__m128i __W, __mmask16 __U, __m128h __A, __m128h __B) {
1448
+ return (__m128i)__builtin_ia32_selectb_128(
1449
+ (__mmask16)__U, (__v16qi)_mm_cvts_2ph_bf8(__A, __B), (__v16qi)__W);
1450
+ }
1451
+
1452
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1453
+ /// floating-point elements to a 128-bit vector containing E5M2 FP8 elements.
1454
+ /// Zeroing mask \a __U is used to determine if given element should be zeroed
1455
+ /// instead. Resulting elements are saturated in case of overflow.
1456
+ ///
1457
+ /// \code{.operation}
1458
+ /// FOR i := 0 to 15
1459
+ /// IF __U[i]
1460
+ /// IF i < 8
1461
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__B.fp16[i])
1462
+ /// ELSE
1463
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i - 8])
1464
+ /// FI
1465
+ /// ELSE
1466
+ /// dst.bf8[i] := 0
1467
+ /// FI
1468
+ /// ENDFOR
1469
+ ///
1470
+ /// dst[MAX:128] := 0
1471
+ /// \endcode
1472
+ ///
1473
+ /// \headerfile <immintrin.h>
1474
+ ///
1475
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8S instruction.
1476
+ ///
1477
+ /// \param __U
1478
+ /// A 16-bit zeroing mask.
1479
+ /// \param __A
1480
+ /// A 128-bit vector of [8 x fp16].
1481
+ /// \param __B
1482
+ /// A 128-bit vector of [8 x fp16].
1483
+ /// \returns
1484
+ /// A 128-bit vector of [16 x bf8]. Lower 8 elements correspond to the
1485
+ /// (converted) elements from \a __B; higher order elements correspond to the
1486
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1487
+ /// zero is taken instead.
1488
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1489
+ _mm_maskz_cvts_2ph_bf8(__mmask16 __U, __m128h __A, __m128h __B) {
1490
+ return (__m128i)__builtin_ia32_selectb_128(
1491
+ (__mmask16)__U, (__v16qi)_mm_cvts_2ph_bf8(__A, __B),
1492
+ (__v16qi)(__m128i)_mm_setzero_si128());
1493
+ }
1494
+
1495
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
1496
+ /// floating-point elements to a 256-bit vector containing E5M2 FP8 elements.
1497
+ /// Resulting elements are saturated in case of overflow.
1498
+ ///
1499
+ /// \code{.operation}
1500
+ /// FOR i := 0 to 31
1501
+ /// IF i < 16
1502
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__B.fp16[i])
1503
+ /// ELSE
1504
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i - 16])
1505
+ /// FI
1506
+ /// ENDFOR
1507
+ ///
1508
+ /// dst[MAX:256] := 0
1509
+ /// \endcode
1510
+ ///
1511
+ /// \headerfile <immintrin.h>
1512
+ ///
1513
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8S instruction.
1514
+ ///
1515
+ /// \param __A
1516
+ /// A 256-bit vector of [16 x fp16].
1517
+ /// \param __B
1518
+ /// A 256-bit vector of [16 x fp16].
1519
+ /// \returns
1520
+ /// A 256-bit vector of [32 x bf8]. Lower 16 elements correspond to the
1521
+ /// (converted) elements from \a __B; higher order elements correspond to the
1522
+ /// (converted) elements from \a __A.
1523
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
1524
+ _mm256_cvts_2ph_bf8(__m256h __A, __m256h __B) {
1525
+ return (__m256i)__builtin_ia32_vcvt2ph2bf8s_256((__v16hf)(__A),
1526
+ (__v16hf)(__B));
1527
+ }
1528
+
1529
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
1530
+ /// floating-point elements to a 256-bit vector containing E5M2 FP8 elements.
1531
+ /// Merging mask \a __U is used to determine if given element should be taken
1532
+ /// from \a __W instead. Resulting elements are saturated in case of overflow.
1533
+ ///
1534
+ /// \code{.operation}
1535
+ /// FOR i := 0 to 31
1536
+ /// IF __U[i]
1537
+ /// IF i < 16
1538
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__B.fp16[i])
1539
+ /// ELSE
1540
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i - 16])
1541
+ /// FI
1542
+ /// ELSE
1543
+ /// dst.bf8[i] := __W.bf8[i]
1544
+ /// FI
1545
+ /// ENDFOR
1546
+ ///
1547
+ /// dst[MAX:256] := 0
1548
+ /// \endcode
1549
+ ///
1550
+ /// \headerfile <immintrin.h>
1551
+ ///
1552
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8S instruction.
1553
+ ///
1554
+ /// \param __W
1555
+ /// A 256-bit vector of [32 x bf8].
1556
+ /// \param __U
1557
+ /// A 32-bit merging mask.
1558
+ /// \param __A
1559
+ /// A 256-bit vector of [16 x fp16].
1560
+ /// \param __B
1561
+ /// A 256-bit vector of [16 x fp16].
1562
+ /// \returns
1563
+ /// A 256-bit vector of [32 x bf8]. Lower 16 elements correspond to the
1564
+ /// (converted) elements from \a __B; higher order elements correspond to the
1565
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1566
+ /// element from \a __W is taken instead.
1567
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_cvts_2ph_bf8(
1568
+ __m256i __W, __mmask32 __U, __m256h __A, __m256h __B) {
1569
+ return (__m256i)__builtin_ia32_selectb_256(
1570
+ (__mmask32)__U, (__v32qi)_mm256_cvts_2ph_bf8(__A, __B), (__v32qi)__W);
1571
+ }
1572
+
1573
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
1574
+ /// floating-point elements to a 256-bit vector containing E5M2 FP8 elements.
1575
+ /// Zeroing mask \a __U is used to determine if given element should be zeroed
1576
+ /// instead. Resulting elements are saturated in case of overflow.
1577
+ ///
1578
+ /// \code{.operation}
1579
+ /// FOR i := 0 to 31
1580
+ /// IF __U[i]
1581
+ /// IF i < 16
1582
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__B.fp16[i])
1583
+ /// ELSE
1584
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i - 16])
1585
+ /// FI
1586
+ /// ELSE
1587
+ /// dst.bf8[i] := 0
1588
+ /// FI
1589
+ /// ENDFOR
1590
+ ///
1591
+ /// dst[MAX:256] := 0
1592
+ /// \endcode
1593
+ ///
1594
+ /// \headerfile <immintrin.h>
1595
+ ///
1596
+ /// This intrinsic corresponds to the \c VCVT2PH2BF8S instruction.
1597
+ ///
1598
+ /// \param __U
1599
+ /// A 32-bit zeroing mask.
1600
+ /// \param __A
1601
+ /// A 256-bit vector of [16 x fp16].
1602
+ /// \param __B
1603
+ /// A 256-bit vector of [16 x fp16].
1604
+ /// \returns
1605
+ /// A 256-bit vector of [32 x bf8]. Lower 16 elements correspond to the
1606
+ /// (converted) elements from \a __B; higher order elements correspond to the
1607
+ /// (converted) elements from \a __A. If corresponding mask bit is not set,
1608
+ /// zero is taken instead.
1609
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
1610
+ _mm256_maskz_cvts_2ph_bf8(__mmask32 __U, __m256h __A, __m256h __B) {
1611
+ return (__m256i)__builtin_ia32_selectb_256(
1612
+ (__mmask32)__U, (__v32qi)_mm256_cvts_2ph_bf8(__A, __B),
1613
+ (__v32qi)(__m256i)_mm256_setzero_si256());
1614
+ }
1615
+
1616
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1617
+ /// floating-point elements to a 128-bit vector containing E4M3 FP8 elements.
1618
+ ///
1619
+ /// \code{.operation}
1620
+ /// FOR i := 0 to 15
1621
+ /// IF i < 8
1622
+ /// dst.hf8[i] := convert_fp16_to_hf8(__B.fp16[i])
1623
+ /// ELSE
1624
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i - 8])
1625
+ /// FI
1626
+ /// ENDFOR
1627
+ ///
1628
+ /// dst[MAX:128] := 0
1629
+ /// \endcode
1630
+ ///
1631
+ /// \headerfile <immintrin.h>
1632
+ ///
1633
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8 instruction.
1634
+ ///
1635
+ /// \param __A
1636
+ /// A 128-bit vector of [8 x fp16].
1637
+ /// \param __B
1638
+ /// A 128-bit vector of [8 x fp16].
1639
+ /// \returns
1640
+ /// A 128-bit vector of [16 x hf8]. Lower 8 elements correspond to the
1641
+ /// (converted) elements from \a __B; higher order elements correspond to the
1642
+ /// (converted) elements from \a __A.
1643
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvt2ph_hf8(__m128h __A,
1644
+ __m128h __B) {
1645
+ return (__m128i)__builtin_ia32_vcvt2ph2hf8_128((__v8hf)(__A),
1646
+ (__v8hf)(__B));
1647
+ }
1648
+
1649
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1650
+ /// floating-point elements to a 128-bit vector containing E4M3 FP8 elements.
1651
+ /// Merging mask \a __U is used to determine if given element should be taken
1652
+ /// from \a __W instead.
1653
+ ///
1654
+ /// \code{.operation}
1655
+ /// FOR i := 0 to 15
1656
+ /// IF __U[i]
1657
+ /// IF i < 8
1658
+ /// dst.hf8[i] := convert_fp16_to_hf8(__B.fp16[i])
1659
+ /// ELSE
1660
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i - 8])
1661
+ /// FI
1662
+ /// ELSE
1663
+ /// dst.hf8[i] := __W.hf8[i]
1664
+ /// FI
1665
+ /// ENDFOR
1666
+ ///
1667
+ /// dst[MAX:128] := 0
1668
+ /// \endcode
1669
+ ///
1670
+ /// \headerfile <immintrin.h>
1671
+ ///
1672
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8 instruction.
1673
+ ///
1674
+ /// \param __W
1675
+ /// A 128-bit vector of [16 x hf8].
1676
+ /// \param __U
1677
+ /// A 16-bit merging mask.
1678
+ /// \param __A
1679
+ /// A 128-bit vector of [8 x fp16].
1680
+ /// \param __B
1681
+ /// A 128-bit vector of [8 x fp16].
1682
+ /// \returns
1683
+ /// A 128-bit vector of [16 x hf8]. Lower 8 elements correspond to the
1684
+ /// (converted) elements from \a __B; higher order elements correspond to the
1685
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1686
+ /// element from \a __W is taken instead.
1687
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1688
+ _mm_mask_cvt2ph_hf8(__m128i __W, __mmask16 __U, __m128h __A, __m128h __B) {
1689
+ return (__m128i)__builtin_ia32_selectb_128(
1690
+ (__mmask16)__U, (__v16qi)_mm_cvt2ph_hf8(__A, __B), (__v16qi)__W);
1691
+ }
1692
+
1693
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1694
+ /// floating-point elements to a 128-bit vector containing E4M3 FP8 elements.
1695
+ /// Zeroing mask \a __U is used to determine if given element should be zeroed
1696
+ /// instead.
1697
+ ///
1698
+ /// \code{.operation}
1699
+ /// FOR i := 0 to 15
1700
+ /// IF __U[i]
1701
+ /// IF i < 8
1702
+ /// dst.hf8[i] := convert_fp16_to_hf8(__B.fp16[i])
1703
+ /// ELSE
1704
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i - 8])
1705
+ /// FI
1706
+ /// ELSE
1707
+ /// dst.hf8[i] := 0
1708
+ /// FI
1709
+ /// ENDFOR
1710
+ ///
1711
+ /// dst[MAX:128] := 0
1712
+ /// \endcode
1713
+ ///
1714
+ /// \headerfile <immintrin.h>
1715
+ ///
1716
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8 instruction.
1717
+ ///
1718
+ /// \param __U
1719
+ /// A 16-bit zeroing mask.
1720
+ /// \param __A
1721
+ /// A 128-bit vector of [8 x fp16].
1722
+ /// \param __B
1723
+ /// A 128-bit vector of [8 x fp16].
1724
+ /// \returns
1725
+ /// A 128-bit vector of [16 x hf8]. Lower 8 elements correspond to the
1726
+ /// (converted) elements from \a __B; higher order elements correspond to the
1727
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1728
+ /// zero is taken instead.
1729
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1730
+ _mm_maskz_cvt2ph_hf8(__mmask16 __U, __m128h __A, __m128h __B) {
1731
+ return (__m128i)__builtin_ia32_selectb_128(
1732
+ (__mmask16)__U, (__v16qi)_mm_cvt2ph_hf8(__A, __B),
1733
+ (__v16qi)(__m128i)_mm_setzero_si128());
1734
+ }
1735
+
1736
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
1737
+ /// floating-point elements to a 256-bit vector containing E4M3 FP8 elements.
1738
+ ///
1739
+ /// \code{.operation}
1740
+ /// FOR i := 0 to 31
1741
+ /// IF i < 16
1742
+ /// dst.hf8[i] := convert_fp16_to_hf8(__B.fp16[i])
1743
+ /// ELSE
1744
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i - 16])
1745
+ /// FI
1746
+ /// ENDFOR
1747
+ ///
1748
+ /// dst[MAX:256] := 0
1749
+ /// \endcode
1750
+ ///
1751
+ /// \headerfile <immintrin.h>
1752
+ ///
1753
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8 instruction.
1754
+ ///
1755
+ /// \param __A
1756
+ /// A 256-bit vector of [16 x fp16].
1757
+ /// \param __B
1758
+ /// A 256-bit vector of [16 x fp16].
1759
+ /// \returns
1760
+ /// A 256-bit vector of [32 x hf8]. Lower 16 elements correspond to the
1761
+ /// (converted) elements from \a __B; higher order elements correspond to the
1762
+ /// (converted) elements from \a __A.
1763
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
1764
+ _mm256_cvt2ph_hf8(__m256h __A, __m256h __B) {
1765
+ return (__m256i)__builtin_ia32_vcvt2ph2hf8_256((__v16hf)(__A),
1766
+ (__v16hf)(__B));
1767
+ }
1768
+
1769
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
1770
+ /// floating-point elements to a 256-bit vector containing E4M3 FP8 elements.
1771
+ /// Merging mask \a __U is used to determine if given element should be taken
1772
+ /// from \a __W instead.
1773
+ ///
1774
+ /// \code{.operation}
1775
+ /// FOR i := 0 to 31
1776
+ /// IF __U[i]
1777
+ /// IF i < 16
1778
+ /// dst.hf8[i] := convert_fp16_to_hf8(__B.fp16[i])
1779
+ /// ELSE
1780
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i - 16])
1781
+ /// FI
1782
+ /// ELSE
1783
+ /// dst.hf8[i] := __W.hf8[i]
1784
+ /// FI
1785
+ /// ENDFOR
1786
+ ///
1787
+ /// dst[MAX:256] := 0
1788
+ /// \endcode
1789
+ ///
1790
+ /// \headerfile <immintrin.h>
1791
+ ///
1792
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8 instruction.
1793
+ ///
1794
+ /// \param __W
1795
+ /// A 256-bit vector of [32 x hf8].
1796
+ /// \param __U
1797
+ /// A 32-bit merging mask.
1798
+ /// \param __A
1799
+ /// A 256-bit vector of [16 x fp16].
1800
+ /// \param __B
1801
+ /// A 256-bit vector of [16 x fp16].
1802
+ /// \returns
1803
+ /// A 256-bit vector of [32 x hf8]. Lower 16 elements correspond to the
1804
+ /// (converted) elements from \a __B; higher order elements correspond to the
1805
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1806
+ /// element from \a __W is taken instead.
1807
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_cvt2ph_hf8(
1808
+ __m256i __W, __mmask32 __U, __m256h __A, __m256h __B) {
1809
+ return (__m256i)__builtin_ia32_selectb_256(
1810
+ (__mmask32)__U, (__v32qi)_mm256_cvt2ph_hf8(__A, __B), (__v32qi)__W);
1811
+ }
1812
+
1813
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
1814
+ /// floating-point elements to a 256-bit vector containing E4M3 FP8 elements.
1815
+ /// Zeroing mask \a __U is used to determine if given element should be zeroed
1816
+ /// instead.
1817
+ ///
1818
+ /// \code{.operation}
1819
+ /// FOR i := 0 to 31
1820
+ /// IF __U[i]
1821
+ /// IF i < 16
1822
+ /// dst.hf8[i] := convert_fp16_to_hf8(__B.fp16[i])
1823
+ /// ELSE
1824
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i - 16])
1825
+ /// FI
1826
+ /// ELSE
1827
+ /// dst.hf8[i] := 0
1828
+ /// FI
1829
+ /// ENDFOR
1830
+ ///
1831
+ /// dst[MAX:256] := 0
1832
+ /// \endcode
1833
+ ///
1834
+ /// \headerfile <immintrin.h>
1835
+ ///
1836
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8 instruction.
1837
+ ///
1838
+ /// \param __U
1839
+ /// A 32-bit zeroing mask.
1840
+ /// \param __A
1841
+ /// A 256-bit vector of [16 x fp16].
1842
+ /// \param __B
1843
+ /// A 256-bit vector of [16 x fp16].
1844
+ /// \returns
1845
+ /// A 256-bit vector of [32 x hf8]. Lower 16 elements correspond to the
1846
+ /// (converted) elements from \a __B; higher order elements correspond to the
1847
+ /// (converted) elements from \a __A. If corresponding mask bit is not set,
1848
+ /// zero is taken instead.
1849
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
1850
+ _mm256_maskz_cvt2ph_hf8(__mmask32 __U, __m256h __A, __m256h __B) {
1851
+ return (__m256i)__builtin_ia32_selectb_256(
1852
+ (__mmask32)__U, (__v32qi)_mm256_cvt2ph_hf8(__A, __B),
1853
+ (__v32qi)(__m256i)_mm256_setzero_si256());
1854
+ }
1855
+
1856
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1857
+ /// floating-point elements to a 128-bit vector containing E4M3 FP8 elements.
1858
+ /// Resulting elements are saturated in case of overflow.
1859
+ ///
1860
+ /// \code{.operation}
1861
+ /// FOR i := 0 to 15
1862
+ /// IF i < 8
1863
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__B.fp16[i])
1864
+ /// ELSE
1865
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i - 8])
1866
+ /// FI
1867
+ /// ENDFOR
1868
+ ///
1869
+ /// dst[MAX:128] := 0
1870
+ /// \endcode
1871
+ ///
1872
+ /// \headerfile <immintrin.h>
1873
+ ///
1874
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8S instruction.
1875
+ ///
1876
+ /// \param __A
1877
+ /// A 128-bit vector of [8 x fp16].
1878
+ /// \param __B
1879
+ /// A 128-bit vector of [8 x fp16].
1880
+ /// \returns
1881
+ /// A 128-bit vector of [16 x hf8]. Lower 8 elements correspond to the
1882
+ /// (converted) elements from \a __B; higher order elements correspond to the
1883
+ /// (converted) elements from \a __A.
1884
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1885
+ _mm_cvts_2ph_hf8(__m128h __A, __m128h __B) {
1886
+ return (__m128i)__builtin_ia32_vcvt2ph2hf8s_128((__v8hf)(__A),
1887
+ (__v8hf)(__B));
1888
+ }
1889
+
1890
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1891
+ /// floating-point elements to a 128-bit vector containing E4M3 FP8 elements.
1892
+ /// Merging mask \a __U is used to determine if given element should be taken
1893
+ /// from \a __W instead. Resulting elements are saturated in case of overflow.
1894
+ ///
1895
+ /// \code{.operation}
1896
+ /// FOR i := 0 to 15
1897
+ /// IF __U[i]
1898
+ /// IF i < 8
1899
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__B.fp16[i])
1900
+ /// ELSE
1901
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i - 8])
1902
+ /// FI
1903
+ /// ELSE
1904
+ /// dst.hf8[i] := __W.hf8[i]
1905
+ /// FI
1906
+ /// ENDFOR
1907
+ ///
1908
+ /// dst[MAX:128] := 0
1909
+ /// \endcode
1910
+ ///
1911
+ /// \headerfile <immintrin.h>
1912
+ ///
1913
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8S instruction.
1914
+ ///
1915
+ /// \param __W
1916
+ /// A 128-bit vector of [16 x hf8].
1917
+ /// \param __U
1918
+ /// A 16-bit merging mask.
1919
+ /// \param __A
1920
+ /// A 128-bit vector of [8 x fp16].
1921
+ /// \param __B
1922
+ /// A 128-bit vector of [8 x fp16].
1923
+ /// \returns
1924
+ /// A 128-bit vector of [16 x hf8]. Lower 8 elements correspond to the
1925
+ /// (converted) elements from \a __B; higher order elements correspond to the
1926
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1927
+ /// element from \a __W is taken instead.
1928
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1929
+ _mm_mask_cvts_2ph_hf8(__m128i __W, __mmask16 __U, __m128h __A, __m128h __B) {
1930
+ return (__m128i)__builtin_ia32_selectb_128(
1931
+ (__mmask16)__U, (__v16qi)_mm_cvts_2ph_hf8(__A, __B), (__v16qi)__W);
1932
+ }
1933
+
1934
+ /// Convert two 128-bit vectors, \a __A and \a __B, containing packed FP16
1935
+ /// floating-point elements to a 128-bit vector containing E4M3 FP8 elements.
1936
+ /// Zeroing mask \a __U is used to determine if given element should be zeroed
1937
+ /// instead. Resulting elements are saturated in case of overflow.
1938
+ ///
1939
+ /// \code{.operation}
1940
+ /// FOR i := 0 to 15
1941
+ /// IF __U[i]
1942
+ /// IF i < 8
1943
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__B.fp16[i])
1944
+ /// ELSE
1945
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i - 8])
1946
+ /// FI
1947
+ /// ELSE
1948
+ /// dst.hf8[i] := 0
1949
+ /// FI
1950
+ /// ENDFOR
1951
+ ///
1952
+ /// dst[MAX:128] := 0
1953
+ /// \endcode
1954
+ ///
1955
+ /// \headerfile <immintrin.h>
1956
+ ///
1957
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8S instruction.
1958
+ ///
1959
+ /// \param __U
1960
+ /// A 16-bit zeroing mask.
1961
+ /// \param __A
1962
+ /// A 128-bit vector of [8 x fp16].
1963
+ /// \param __B
1964
+ /// A 128-bit vector of [8 x fp16].
1965
+ /// \returns
1966
+ /// A 128-bit vector of [16 x hf8]. Lower 8 elements correspond to the
1967
+ /// (converted) elements from \a __B; higher order elements correspond to the
1968
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
1969
+ /// zero is taken instead.
1970
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
1971
+ _mm_maskz_cvts_2ph_hf8(__mmask16 __U, __m128h __A, __m128h __B) {
1972
+ return (__m128i)__builtin_ia32_selectb_128(
1973
+ (__mmask16)__U, (__v16qi)_mm_cvts_2ph_hf8(__A, __B),
1974
+ (__v16qi)(__m128i)_mm_setzero_si128());
1975
+ }
1976
+
1977
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
1978
+ /// floating-point elements to a 256-bit vector containing E4M3 FP8 elements.
1979
+ /// Resulting elements are saturated in case of overflow.
1980
+ ///
1981
+ /// \code{.operation}
1982
+ /// FOR i := 0 to 31
1983
+ /// IF i < 16
1984
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__B.fp16[i])
1985
+ /// ELSE
1986
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i - 16])
1987
+ /// FI
1988
+ /// ENDFOR
1989
+ ///
1990
+ /// dst[MAX:256] := 0
1991
+ /// \endcode
1992
+ ///
1993
+ /// \headerfile <immintrin.h>
1994
+ ///
1995
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8S instruction.
1996
+ ///
1997
+ /// \param __A
1998
+ /// A 256-bit vector of [16 x fp16].
1999
+ /// \param __B
2000
+ /// A 256-bit vector of [16 x fp16].
2001
+ /// \returns
2002
+ /// A 256-bit vector of [32 x hf8]. Lower 16 elements correspond to the
2003
+ /// (converted) elements from \a __B; higher order elements correspond to the
2004
+ /// (converted) elements from \a __A.
2005
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
2006
+ _mm256_cvts_2ph_hf8(__m256h __A, __m256h __B) {
2007
+ return (__m256i)__builtin_ia32_vcvt2ph2hf8s_256((__v16hf)(__A),
2008
+ (__v16hf)(__B));
2009
+ }
2010
+
2011
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
2012
+ /// floating-point elements to a 256-bit vector containing E4M3 FP8 elements.
2013
+ /// Merging mask \a __U is used to determine if given element should be taken
2014
+ /// from \a __W instead. Resulting elements are saturated in case of overflow.
2015
+ ///
2016
+ /// \code{.operation}
2017
+ /// FOR i := 0 to 31
2018
+ /// IF __U[i]
2019
+ /// IF i < 16
2020
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__B.fp16[i])
2021
+ /// ELSE
2022
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i - 16])
2023
+ /// FI
2024
+ /// ELSE
2025
+ /// dst.hf8[i] := __W.hf8[i]
2026
+ /// FI
2027
+ /// ENDFOR
2028
+ ///
2029
+ /// dst[MAX:256] := 0
2030
+ /// \endcode
2031
+ ///
2032
+ /// \headerfile <immintrin.h>
2033
+ ///
2034
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8S instruction.
2035
+ ///
2036
+ /// \param __W
2037
+ /// A 256-bit vector of [32 x hf8].
2038
+ /// \param __U
2039
+ /// A 32-bit merging mask.
2040
+ /// \param __A
2041
+ /// A 256-bit vector of [16 x fp16].
2042
+ /// \param __B
2043
+ /// A 256-bit vector of [16 x fp16].
2044
+ /// \returns
2045
+ /// A 256-bit vector of [32 x hf8]. Lower 16 elements correspond to the
2046
+ /// (converted) elements from \a __B; higher order elements correspond to the
2047
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
2048
+ /// element from \a __W is taken instead.
2049
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_cvts_2ph_hf8(
2050
+ __m256i __W, __mmask32 __U, __m256h __A, __m256h __B) {
2051
+ return (__m256i)__builtin_ia32_selectb_256(
2052
+ (__mmask32)__U, (__v32qi)_mm256_cvts_2ph_hf8(__A, __B), (__v32qi)__W);
2053
+ }
2054
+
2055
+ /// Convert two 256-bit vectors, \a __A and \a __B, containing packed FP16
2056
+ /// floating-point elements to a 256-bit vector containing E4M3 FP8 elements.
2057
+ /// Zeroing mask \a __U is used to determine if given element should be zeroed
2058
+ /// instead. Resulting elements are saturated in case of overflow.
2059
+ ///
2060
+ /// \code{.operation}
2061
+ /// FOR i := 0 to 31
2062
+ /// IF __U[i]
2063
+ /// IF i < 16
2064
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__B.fp16[i])
2065
+ /// ELSE
2066
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i - 16])
2067
+ /// FI
2068
+ /// ELSE
2069
+ /// dst.hf8[i] := 0
2070
+ /// FI
2071
+ /// ENDFOR
2072
+ ///
2073
+ /// dst[MAX:256] := 0
2074
+ /// \endcode
2075
+ ///
2076
+ /// \headerfile <immintrin.h>
2077
+ ///
2078
+ /// This intrinsic corresponds to the \c VCVT2PH2HF8S instruction.
2079
+ ///
2080
+ /// \param __U
2081
+ /// A 32-bit zeroing mask.
2082
+ /// \param __A
2083
+ /// A 256-bit vector of [16 x fp16].
2084
+ /// \param __B
2085
+ /// A 256-bit vector of [16 x fp16].
2086
+ /// \returns
2087
+ /// A 256-bit vector of [32 x hf8]. Lower 16 elements correspond to the
2088
+ /// (converted) elements from \a __B; higher order elements correspond to the
2089
+ /// (converted) elements from \a __A. If corresponding mask bit is not set,
2090
+ /// zero is taken instead.
2091
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
2092
+ _mm256_maskz_cvts_2ph_hf8(__mmask32 __U, __m256h __A, __m256h __B) {
2093
+ return (__m256i)__builtin_ia32_selectb_256(
2094
+ (__mmask32)__U, (__v32qi)_mm256_cvts_2ph_hf8(__A, __B),
2095
+ (__v32qi)(__m256i)_mm256_setzero_si256());
2096
+ }
2097
+
2098
+ /// Convert 128-bit vector \a __A, containing packed FP8 E4M3 floating-point
2099
+ /// elements to a 128-bit vector containing FP16 elements. The conversion is exact.
2100
+ ///
2101
+ /// \code{.operation}
2102
+ /// FOR i := 0 to 7
2103
+ /// dst.fp16[i] := convert_hf8_to_fp16(__A.hf8[i])
2104
+ /// ENDFOR
2105
+ ///
2106
+ /// dst[MAX:128] := 0
2107
+ /// \endcode
2108
+ ///
2109
+ /// \headerfile <immintrin.h>
2110
+ ///
2111
+ /// This intrinsic corresponds to the \c VCVTHF82PH instruction.
2112
+ ///
2113
+ /// \param __A
2114
+ /// A 128-bit vector of [16 x hf8].
2115
+ /// \returns
2116
+ /// A 128-bit vector of [8 x fp16]. Resulting elements correspond to the
2117
+ /// (converted) elements from \a __A.
2118
+ static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvthf8_ph(__m128i __A) {
2119
+ return (__m128h)__builtin_ia32_vcvthf8_2ph128_mask(
2120
+ (__v16qi)__A, (__v8hf)(__m128h)_mm_undefined_ph(), (__mmask8)-1);
2121
+ }
2122
+
2123
+ /// Convert 128-bit vector \a __A, containing packed FP8 E4M3 floating-point
2124
+ /// elements to a 128-bit vector containing FP16 elements. The conversion is
2125
+ /// exact. Merging mask \a __U is used to determine if given element should be
2126
+ /// taken from \a __W instead.
2127
+ ///
2128
+ /// \code{.operation}
2129
+ /// FOR i := 0 to 7
2130
+ /// IF __U[i]
2131
+ /// dst.fp16[i] := convert_hf8_to_fp16(__A.hf8[i])
2132
+ /// ELSE
2133
+ /// dst.fp16[i] := __W.fp16[i]
2134
+ /// FI
2135
+ /// ENDFOR
2136
+ ///
2137
+ /// dst[MAX:128] := 0
2138
+ /// \endcode
2139
+ ///
2140
+ /// \headerfile <immintrin.h>
2141
+ ///
2142
+ /// This intrinsic corresponds to the \c VCVTHF82PH instruction.
2143
+ ///
2144
+ /// \param __W
2145
+ /// A 128-bit vector of [8 x fp16].
2146
+ /// \param __U
2147
+ /// A 8-bit merging mask.
2148
+ /// \param __A
2149
+ /// A 128-bit vector of [16 x hf8].
2150
+ /// \returns
2151
+ /// A 128-bit vector of [8 x fp16]. Resulting elements correspond to the
2152
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
2153
+ /// element from \a __W is taken instead.
2154
+ static __inline__ __m128h __DEFAULT_FN_ATTRS128
2155
+ _mm_mask_cvthf8_ph(__m128h __W, __mmask8 __U, __m128i __A) {
2156
+ return (__m128h)__builtin_ia32_vcvthf8_2ph128_mask(
2157
+ (__v16qi)__A, (__v8hf)(__m128h)__W, (__mmask8)__U);
2158
+ }
2159
+
2160
+ /// Convert 128-bit vector \a __A, containing packed FP8 E4M3 floating-point
2161
+ /// elements to a 128-bit vector containing FP16 elements. The conversion is
2162
+ /// exact. Zeroing mask \a __U is used to determine if given element should be
2163
+ /// zeroed instead.
2164
+ ///
2165
+ /// \code{.operation}
2166
+ /// FOR i := 0 to 7
2167
+ /// IF __U[i]
2168
+ /// dst.fp16[i] := convert_hf8_to_fp16(__A.hf8[i])
2169
+ /// ELSE
2170
+ /// dst.fp16[i] := 0
2171
+ /// FI
2172
+ /// ENDFOR
2173
+ ///
2174
+ /// dst[MAX:128] := 0
2175
+ /// \endcode
2176
+ ///
2177
+ /// \headerfile <immintrin.h>
2178
+ ///
2179
+ /// This intrinsic corresponds to the \c VCVTHF82PH instruction.
2180
+ ///
2181
+ /// \param __U
2182
+ /// A 8-bit zeroing mask.
2183
+ /// \param __A
2184
+ /// A 128-bit vector of [16 x hf8].
2185
+ /// \returns
2186
+ /// A 128-bit vector of [8 x fp16]. Resulting elements correspond to the
2187
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
2188
+ /// zero is taken instead.
2189
+ static __inline__ __m128h __DEFAULT_FN_ATTRS128
2190
+ _mm_maskz_cvthf8_ph(__mmask8 __U, __m128i __A) {
2191
+ return (__m128h)__builtin_ia32_vcvthf8_2ph128_mask(
2192
+ (__v16qi)__A, (__v8hf)(__m128h)_mm_setzero_ph(), (__mmask8)__U);
2193
+ }
2194
+
2195
+ /// Convert 256-bit vector \a __A, containing packed FP8 E4M3 floating-point
2196
+ /// elements to a 256-bit vector containing FP16 elements. The conversion is exact.
2197
+ ///
2198
+ /// \code{.operation}
2199
+ /// FOR i := 0 to 15
2200
+ /// dst.fp16[i] := convert_hf8_to_fp16(__A.hf8[i])
2201
+ /// ENDFOR
2202
+ ///
2203
+ /// dst[MAX:256] := 0
2204
+ /// \endcode
2205
+ ///
2206
+ /// \headerfile <immintrin.h>
2207
+ ///
2208
+ /// This intrinsic corresponds to the \c VCVTHF82PH instruction.
2209
+ ///
2210
+ /// \param __A
2211
+ /// A 256-bit vector of [32 x hf8].
2212
+ /// \returns
2213
+ /// A 256-bit vector of [16 x fp16]. Resulting elements correspond to the
2214
+ /// (converted) elements from \a __A.
2215
+ static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_cvthf8_ph(__m128i __A) {
2216
+ return (__m256h)__builtin_ia32_vcvthf8_2ph256_mask(
2217
+ (__v16qi)__A, (__v16hf)(__m256h)_mm256_undefined_ph(), (__mmask16)-1);
2218
+ }
2219
+
2220
+ /// Convert 256-bit vector \a __A, containing packed FP8 E4M3 floating-point
2221
+ /// elements to a 256-bit vector containing FP16 elements. The conversion is
2222
+ /// exact. Merging mask \a __U is used to determine if given element should be
2223
+ /// taken from \a __W instead.
2224
+ ///
2225
+ /// \code{.operation}
2226
+ /// FOR i := 0 to 15
2227
+ /// IF __U[i]
2228
+ /// dst.fp16[i] := convert_hf8_to_fp16(__A.hf8[i])
2229
+ /// ELSE
2230
+ /// dst.fp16[i] := __W.fp16[i]
2231
+ /// FI
2232
+ /// ENDFOR
2233
+ ///
2234
+ /// dst[MAX:256] := 0
2235
+ /// \endcode
2236
+ ///
2237
+ /// \headerfile <immintrin.h>
2238
+ ///
2239
+ /// This intrinsic corresponds to the \c VCVTHF82PH instruction.
2240
+ ///
2241
+ /// \param __W
2242
+ /// A 256-bit vector of [16 x fp16].
2243
+ /// \param __U
2244
+ /// A 16-bit merging mask.
2245
+ /// \param __A
2246
+ /// A 256-bit vector of [32 x hf8].
2247
+ /// \returns
2248
+ /// A 256-bit vector of [16 x fp16]. Resulting elements correspond to the
2249
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
2250
+ /// element from \a __W is taken instead.
2251
+ static __inline__ __m256h __DEFAULT_FN_ATTRS256
2252
+ _mm256_mask_cvthf8_ph(__m256h __W, __mmask16 __U, __m128i __A) {
2253
+ return (__m256h)__builtin_ia32_vcvthf8_2ph256_mask(
2254
+ (__v16qi)__A, (__v16hf)(__m256h)__W, (__mmask16)__U);
2255
+ }
2256
+
2257
+ /// Convert 256-bit vector \a __A, containing packed FP8 E4M3 floating-point
2258
+ /// elements to a 256-bit vector containing FP16 elements. The conversion is
2259
+ /// exact. Zeroing mask \a __U is used to determine if given element should be
2260
+ /// zeroed instead.
2261
+ ///
2262
+ /// \code{.operation}
2263
+ /// FOR i := 0 to 15
2264
+ /// IF __U[i]
2265
+ /// dst.fp16[i] := convert_hf8_to_fp16(__A.hf8[i])
2266
+ /// ELSE
2267
+ /// dst.fp16[i] := 0
2268
+ /// FI
2269
+ /// ENDFOR
2270
+ ///
2271
+ /// dst[MAX:256] := 0
2272
+ /// \endcode
2273
+ ///
2274
+ /// \headerfile <immintrin.h>
2275
+ ///
2276
+ /// This intrinsic corresponds to the \c VCVTHF82PH instruction.
2277
+ ///
2278
+ /// \param __U
2279
+ /// A 16-bit zeroing mask.
2280
+ /// \param __A
2281
+ /// A 256-bit vector of [32 x hf8].
2282
+ /// \returns
2283
+ /// A 256-bit vector of [16 x fp16]. Resulting elements correspond to the
2284
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
2285
+ /// zero is taken instead.
2286
+ static __inline__ __m256h __DEFAULT_FN_ATTRS256
2287
+ _mm256_maskz_cvthf8_ph(__mmask16 __U, __m128i __A) {
2288
+ return (__m256h)__builtin_ia32_vcvthf8_2ph256_mask(
2289
+ (__v16qi)__A, (__v16hf)(__m256h)_mm256_setzero_ph(), (__mmask16)__U);
2290
+ }
2291
+
2292
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2293
+ /// to a 128-bit vector containing E5M2 FP8 elements. Upper elements of
2294
+ /// resulting vector are zeroed.
2295
+ ///
2296
+ /// \code{.operation}
2297
+ /// FOR i := 0 to 7
2298
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i])
2299
+ /// ENDFOR
2300
+ ///
2301
+ /// dst[MAX:64] := 0
2302
+ /// \endcode
2303
+ ///
2304
+ /// \headerfile <immintrin.h>
2305
+ ///
2306
+ /// This intrinsic corresponds to the \c VCVTPH2BF8 instruction.
2307
+ ///
2308
+ /// \param __A
2309
+ /// A 128-bit vector of [8 x fp16].
2310
+ /// \returns
2311
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the (converted)
2312
+ /// elements from \a __A; upper elements are zeroed.
2313
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvtph_bf8(__m128h __A) {
2314
+ return (__m128i)__builtin_ia32_vcvtph2bf8_128_mask(
2315
+ (__v8hf)__A, (__v16qi)(__m128i)_mm_undefined_si128(), (__mmask8)-1);
2316
+ }
2317
+
2318
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2319
+ /// to a 128-bit vector containing E5M2 FP8 elements. Upper elements of
2320
+ /// resulting vector are zeroed. Merging mask \a __U is used to determine if
2321
+ /// given element should be taken from \a __W instead.
2322
+ ///
2323
+ /// \code{.operation}
2324
+ /// FOR i := 0 to 7
2325
+ /// IF __U[i]
2326
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i])
2327
+ /// ELSE
2328
+ /// dst.bf8[i] := __W.bf8[i]
2329
+ /// FI
2330
+ /// ENDFOR
2331
+ ///
2332
+ /// dst[MAX:64] := 0
2333
+ /// \endcode
2334
+ ///
2335
+ /// \headerfile <immintrin.h>
2336
+ ///
2337
+ /// This intrinsic corresponds to the \c VCVTPH2BF8 instruction.
2338
+ ///
2339
+ /// \param __W
2340
+ /// A 128-bit vector of [16 x bf8].
2341
+ /// \param __U
2342
+ /// A 8-bit merging mask.
2343
+ /// \param __A
2344
+ /// A 128-bit vector of [8 x fp16].
2345
+ /// \returns
2346
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the
2347
+ /// (converted) elements from \a __A; upper elements are zeroed. If
2348
+ /// corresponding mask bit is not set, then element from \a __W is taken instead.
2349
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
2350
+ _mm_mask_cvtph_bf8(__m128i __W, __mmask8 __U, __m128h __A) {
2351
+ return (__m128i)__builtin_ia32_vcvtph2bf8_128_mask(
2352
+ (__v8hf)__A, (__v16qi)(__m128i)__W, (__mmask8)__U);
2353
+ }
2354
+
2355
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2356
+ /// to a 128-bit vector containing E5M2 FP8 elements. Upper elements of
2357
+ /// resulting vector are zeroed. Zeroing mask \a __U is used to determine if
2358
+ /// given element should be zeroed instead.
2359
+ ///
2360
+ /// \code{.operation}
2361
+ /// FOR i := 0 to 7
2362
+ /// IF __U[i]
2363
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i])
2364
+ /// ELSE
2365
+ /// dst.bf8[i] := 0
2366
+ /// FI
2367
+ /// ENDFOR
2368
+ ///
2369
+ /// dst[MAX:64] := 0
2370
+ /// \endcode
2371
+ ///
2372
+ /// \headerfile <immintrin.h>
2373
+ ///
2374
+ /// This intrinsic corresponds to the \c VCVTPH2BF8 instruction.
2375
+ ///
2376
+ /// \param __U
2377
+ /// A 8-bit zeroing mask.
2378
+ /// \param __A
2379
+ /// A 128-bit vector of [8 x fp16].
2380
+ /// \returns
2381
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the
2382
+ /// (converted) elements from \a __A; upper elements are zeroed. If
2383
+ /// corresponding mask bit is not set, then element is zeroed.
2384
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
2385
+ _mm_maskz_cvtph_bf8(__mmask8 __U, __m128h __A) {
2386
+ return (__m128i)__builtin_ia32_vcvtph2bf8_128_mask(
2387
+ (__v8hf)__A, (__v16qi)(__m128i)_mm_setzero_si128(), (__mmask8)__U);
2388
+ }
2389
+
2390
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
2391
+ /// to a 128-bit vector containing E5M2 FP8 elements.
2392
+ ///
2393
+ /// \code{.operation}
2394
+ /// FOR i := 0 to 15
2395
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i])
2396
+ /// ENDFOR
2397
+ ///
2398
+ /// dst[MAX:128] := 0
2399
+ /// \endcode
2400
+ ///
2401
+ /// \headerfile <immintrin.h>
2402
+ ///
2403
+ /// This intrinsic corresponds to the \c VCVTPH2BF8 instruction.
2404
+ ///
2405
+ /// \param __A
2406
+ /// A 256-bit vector of [16 x fp16].
2407
+ /// \returns
2408
+ /// A 128-bit vector of [16 x bf8]. Resulting elements correspond to the (converted)
2409
+ /// elements from \a __A.
2410
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
2411
+ _mm256_cvtph_bf8(__m256h __A) {
2412
+ return (__m128i)__builtin_ia32_vcvtph2bf8_256_mask(
2413
+ (__v16hf)__A, (__v16qi)(__m128i)_mm_undefined_si128(), (__mmask16)-1);
2414
+ }
2415
+
2416
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
2417
+ /// to a 128-bit vector containing E5M2 FP8 elements. Merging mask \a __U is
2418
+ /// used to determine if given element should be taken from \a __W instead.
2419
+ ///
2420
+ /// \code{.operation}
2421
+ /// FOR i := 0 to 15
2422
+ /// IF __U[i]
2423
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i])
2424
+ /// ELSE
2425
+ /// dst.bf8[i] := __W.bf8[i]
2426
+ /// FI
2427
+ /// ENDFOR
2428
+ ///
2429
+ /// dst[MAX:128] := 0
2430
+ /// \endcode
2431
+ ///
2432
+ /// \headerfile <immintrin.h>
2433
+ ///
2434
+ /// This intrinsic corresponds to the \c VCVTPH2BF8 instruction.
2435
+ ///
2436
+ /// \param __W
2437
+ /// A 128-bit vector of [16 x bf8].
2438
+ /// \param __U
2439
+ /// A 16-bit merging mask.
2440
+ /// \param __A
2441
+ /// A 256-bit vector of [8 x fp16].
2442
+ /// \returns
2443
+ /// A 128-bit vector of [16 x bf8]. Resulting elements correspond to the
2444
+ /// (converted) elements from \a __A. If
2445
+ /// corresponding mask bit is not set, then element from \a __W is taken instead.
2446
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
2447
+ _mm256_mask_cvtph_bf8(__m128i __W, __mmask16 __U, __m256h __A) {
2448
+ return (__m128i)__builtin_ia32_vcvtph2bf8_256_mask(
2449
+ (__v16hf)__A, (__v16qi)(__m128i)__W, (__mmask16)__U);
2450
+ }
2451
+
2452
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
2453
+ /// to a 128-bit vector containing E5M2 FP8 elements. Zeroing mask \a __U is
2454
+ /// used to determine if given element should be zeroed instead.
2455
+ ///
2456
+ /// \code{.operation}
2457
+ /// FOR i := 0 to 15
2458
+ /// IF __U[i]
2459
+ /// dst.bf8[i] := convert_fp16_to_bf8(__A.fp16[i])
2460
+ /// ELSE
2461
+ /// dst.bf8[i] := 0
2462
+ /// FI
2463
+ /// ENDFOR
2464
+ ///
2465
+ /// dst[MAX:128] := 0
2466
+ /// \endcode
2467
+ ///
2468
+ /// \headerfile <immintrin.h>
2469
+ ///
2470
+ /// This intrinsic corresponds to the \c VCVTPH2BF8 instruction.
2471
+ ///
2472
+ /// \param __U
2473
+ /// A 16-bit zeroing mask.
2474
+ /// \param __A
2475
+ /// A 256-bit vector of [16 x fp16].
2476
+ /// \returns
2477
+ /// A 128-bit vector of [16 x bf8]. Resulting elements correspond to the
2478
+ /// (converted) elements from \a __A. If corresponding mask bit is not set,
2479
+ /// then element is zeroed instead.
2480
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
2481
+ _mm256_maskz_cvtph_bf8(__mmask16 __U, __m256h __A) {
2482
+ return (__m128i)__builtin_ia32_vcvtph2bf8_256_mask(
2483
+ (__v16hf)__A, (__v16qi)(__m128i)_mm_setzero_si128(), (__mmask16)__U);
2484
+ }
2485
+
2486
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2487
+ /// to a 128-bit vector containing E5M2 FP8 elements. Upper elements of
2488
+ /// resulting vector are zeroed. Results are saturated.
2489
+ ///
2490
+ /// \code{.operation}
2491
+ /// FOR i := 0 to 7
2492
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i])
2493
+ /// ENDFOR
2494
+ ///
2495
+ /// dst[MAX:64] := 0
2496
+ /// \endcode
2497
+ ///
2498
+ /// \headerfile <immintrin.h>
2499
+ ///
2500
+ /// This intrinsic corresponds to the \c VCVTPH2BF8S instruction.
2501
+ ///
2502
+ /// \param __A
2503
+ /// A 128-bit vector of [8 x fp16].
2504
+ /// \returns
2505
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the (converted)
2506
+ /// elements from \a __A; upper elements are zeroed.
2507
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvts_ph_bf8(__m128h __A) {
2508
+ return (__m128i)__builtin_ia32_vcvtph2bf8s_128_mask(
2509
+ (__v8hf)__A, (__v16qi)(__m128i)_mm_undefined_si128(), (__mmask8)-1);
2510
+ }
2511
+
2512
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2513
+ /// to a 128-bit vector containing E5M2 FP8 elements. Upper elements of
2514
+ /// resulting vector are zeroed. Results are saturated. Merging mask \a __U is
2515
+ /// used to determine if given element should be taken from \a __W instead.
2516
+ ///
2517
+ /// \code{.operation}
2518
+ /// FOR i := 0 to 7
2519
+ /// IF __U[i]
2520
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i])
2521
+ /// ELSE
2522
+ /// dst.bf8[i] := __W.bf8[i]
2523
+ /// FI
2524
+ /// ENDFOR
2525
+ ///
2526
+ /// dst[MAX:64] := 0
2527
+ /// \endcode
2528
+ ///
2529
+ /// \headerfile <immintrin.h>
2530
+ ///
2531
+ /// This intrinsic corresponds to the \c VCVTPH2BF8S instruction.
2532
+ ///
2533
+ /// \param __W
2534
+ /// A 128-bit vector of [16 x bf8].
2535
+ /// \param __U
2536
+ /// A 8-bit merging mask.
2537
+ /// \param __A
2538
+ /// A 128-bit vector of [8 x fp16].
2539
+ /// \returns
2540
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the
2541
+ /// (converted) elements from \a __A; upper elements are zeroed. If
2542
+ /// corresponding mask bit is not set, then element from \a __W is taken instead.
2543
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
2544
+ _mm_mask_cvts_ph_bf8(__m128i __W, __mmask8 __U, __m128h __A) {
2545
+ return (__m128i)__builtin_ia32_vcvtph2bf8s_128_mask(
2546
+ (__v8hf)__A, (__v16qi)(__m128i)__W, (__mmask8)__U);
2547
+ }
2548
+
2549
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2550
+ /// to a 128-bit vector containing E5M2 FP8 elements. Upper elements of
2551
+ /// resulting vector are zeroed. Results are saturated. Zeroing mask \a __U is
2552
+ /// used to determine if given element should be zeroed instead.
2553
+ ///
2554
+ /// \code{.operation}
2555
+ /// FOR i := 0 to 7
2556
+ /// IF __U[i]
2557
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i])
2558
+ /// ELSE
2559
+ /// dst.bf8[i] := 0
2560
+ /// FI
2561
+ /// ENDFOR
2562
+ ///
2563
+ /// dst[MAX:64] := 0
2564
+ /// \endcode
2565
+ ///
2566
+ /// \headerfile <immintrin.h>
2567
+ ///
2568
+ /// This intrinsic corresponds to the \c VCVTPH2BF8S instruction.
2569
+ ///
2570
+ /// \param __U
2571
+ /// A 8-bit zeroing mask.
2572
+ /// \param __A
2573
+ /// A 128-bit vector of [8 x fp16].
2574
+ /// \returns
2575
+ /// A 128-bit vector of [16 x bf8]. Lower elements correspond to the
2576
+ /// (converted) elements from \a __A; upper elements are zeroed. If
2577
+ /// corresponding mask bit is not set, then element is zeroed.
2578
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
2579
+ _mm_maskz_cvts_ph_bf8(__mmask8 __U, __m128h __A) {
2580
+ return (__m128i)__builtin_ia32_vcvtph2bf8s_128_mask(
2581
+ (__v8hf)__A, (__v16qi)(__m128i)_mm_setzero_si128(), (__mmask8)__U);
2582
+ }
2583
+
2584
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
2585
+ /// to a 128-bit vector containing E5M2 FP8 elements. Results are saturated.
2586
+ ///
2587
+ /// \code{.operation}
2588
+ /// FOR i := 0 to 15
2589
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i])
2590
+ /// ENDFOR
2591
+ ///
2592
+ /// dst[MAX:128] := 0
2593
+ /// \endcode
2594
+ ///
2595
+ /// \headerfile <immintrin.h>
2596
+ ///
2597
+ /// This intrinsic corresponds to the \c VCVTPH2BF8S instruction.
2598
+ ///
2599
+ /// \param __A
2600
+ /// A 256-bit vector of [16 x fp16].
2601
+ /// \returns
2602
+ /// A 128-bit vector of [16 x bf8]. Resulting elements correspond to the (converted)
2603
+ /// elements from \a __A.
2604
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
2605
+ _mm256_cvts_ph_bf8(__m256h __A) {
2606
+ return (__m128i)__builtin_ia32_vcvtph2bf8s_256_mask(
2607
+ (__v16hf)__A, (__v16qi)(__m128i)_mm_undefined_si128(), (__mmask16)-1);
2608
+ }
2609
+
2610
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
2611
+ /// to a 128-bit vector containing E5M2 FP8 elements. Results are saturated.
2612
+ /// Merging mask \a __U is used to determine if given element should be taken
2613
+ /// from \a __W instead.
2614
+ ///
2615
+ /// \code{.operation}
2616
+ /// FOR i := 0 to 15
2617
+ /// IF __U[i]
2618
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i])
2619
+ /// ELSE
2620
+ /// dst.bf8[i] := __W.bf8[i]
2621
+ /// FI
2622
+ /// ENDFOR
2623
+ ///
2624
+ /// dst[MAX:128] := 0
2625
+ /// \endcode
2626
+ ///
2627
+ /// \headerfile <immintrin.h>
2628
+ ///
2629
+ /// This intrinsic corresponds to the \c VCVTPH2BF8S instruction.
2630
+ ///
2631
+ /// \param __W
2632
+ /// A 128-bit vector of [16 x bf8].
2633
+ /// \param __U
2634
+ /// A 16-bit merging mask.
2635
+ /// \param __A
2636
+ /// A 256-bit vector of [8 x fp16].
2637
+ /// \returns
2638
+ /// A 128-bit vector of [16 x bf8]. Resulting elements correspond to the
2639
+ /// (converted) elements from \a __A. If
2640
+ /// corresponding mask bit is not set, then element from \a __W is taken instead.
2641
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
2642
+ _mm256_mask_cvts_ph_bf8(__m128i __W, __mmask16 __U, __m256h __A) {
2643
+ return (__m128i)__builtin_ia32_vcvtph2bf8s_256_mask(
2644
+ (__v16hf)__A, (__v16qi)(__m128i)__W, (__mmask16)__U);
2645
+ }
2646
+
2647
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
2648
+ /// to a 128-bit vector containing E5M2 FP8 elements. Results are saturated.
2649
+ /// Zeroing mask \a __U is used to determine if given element should be zeroed
2650
+ /// instead.
2651
+ ///
2652
+ /// \code{.operation}
2653
+ /// FOR i := 0 to 15
2654
+ /// IF __U[i]
2655
+ /// dst.bf8[i] := convert_fp16_to_bf8_saturate(__A.fp16[i])
2656
+ /// ELSE
2657
+ /// dst.bf8[i] := 0
2658
+ /// FI
2659
+ /// ENDFOR
2660
+ ///
2661
+ /// dst[MAX:128] := 0
2662
+ /// \endcode
2663
+ ///
2664
+ /// \headerfile <immintrin.h>
2665
+ ///
2666
+ /// This intrinsic corresponds to the \c VCVTPH2BF8S instruction.
2667
+ ///
2668
+ /// \param __U
2669
+ /// A 16-bit zeroing mask.
2670
+ /// \param __A
2671
+ /// A 256-bit vector of [16 x fp16].
2672
+ /// \returns
2673
+ /// A 128-bit vector of [16 x bf8]. Resulting elements correspond to the
2674
+ /// (converted) elements from \a __A. If corresponding mask bit is not set,
2675
+ /// then element is zeroed instead.
2676
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
2677
+ _mm256_maskz_cvts_ph_bf8(__mmask16 __U, __m256h __A) {
2678
+ return (__m128i)__builtin_ia32_vcvtph2bf8s_256_mask(
2679
+ (__v16hf)__A, (__v16qi)(__m128i)_mm_setzero_si128(), (__mmask16)__U);
2680
+ }
2681
+
2682
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2683
+ /// to a 128-bit vector containing E5M2 FP8 elements. Upper elements of
2684
+ /// resulting vector are zeroed.
2685
+ ///
2686
+ /// \code{.operation}
2687
+ /// FOR i := 0 to 7
2688
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i])
2689
+ /// ENDFOR
2690
+ ///
2691
+ /// dst[MAX:64] := 0
2692
+ /// \endcode
2693
+ ///
2694
+ /// \headerfile <immintrin.h>
2695
+ ///
2696
+ /// This intrinsic corresponds to the \c VCVTPH2HF8 instruction.
2697
+ ///
2698
+ /// \param __A
2699
+ /// A 128-bit vector of [8 x fp16].
2700
+ /// \returns
2701
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the (converted)
2702
+ /// elements from \a __A; upper elements are zeroed.
2703
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvtph_hf8(__m128h __A) {
2704
+ return (__m128i)__builtin_ia32_vcvtph2hf8_128_mask(
2705
+ (__v8hf)__A, (__v16qi)(__m128i)_mm_undefined_si128(), (__mmask8)-1);
2706
+ }
2707
+
2708
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2709
+ /// to a 128-bit vector containing E4M3 FP8 elements. Upper elements of
2710
+ /// resulting vector are zeroed. Merging mask \a __U is used to determine if
2711
+ /// given element should be taken from \a __W instead.
2712
+ ///
2713
+ /// \code{.operation}
2714
+ /// FOR i := 0 to 7
2715
+ /// IF __U[i]
2716
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i])
2717
+ /// ELSE
2718
+ /// dst.hf8[i] := __W.hf8[i]
2719
+ /// FI
2720
+ /// ENDFOR
2721
+ ///
2722
+ /// dst[MAX:64] := 0
2723
+ /// \endcode
2724
+ ///
2725
+ /// \headerfile <immintrin.h>
2726
+ ///
2727
+ /// This intrinsic corresponds to the \c VCVTPH2HF8 instruction.
2728
+ ///
2729
+ /// \param __W
2730
+ /// A 128-bit vector of [16 x hf8].
2731
+ /// \param __U
2732
+ /// A 8-bit merging mask.
2733
+ /// \param __A
2734
+ /// A 128-bit vector of [8 x fp16].
2735
+ /// \returns
2736
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the
2737
+ /// (converted) elements from \a __A; upper elements are zeroed. If
2738
+ /// corresponding mask bit is not set, then element from \a __W is taken instead.
2739
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
2740
+ _mm_mask_cvtph_hf8(__m128i __W, __mmask8 __U, __m128h __A) {
2741
+ return (__m128i)__builtin_ia32_vcvtph2hf8_128_mask(
2742
+ (__v8hf)__A, (__v16qi)(__m128i)__W, (__mmask8)__U);
2743
+ }
2744
+
2745
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2746
+ /// to a 128-bit vector containing E4M3 FP8 elements. Upper elements of
2747
+ /// resulting vector are zeroed. Zeroing mask \a __U is used to determine if
2748
+ /// given element should be zeroed instead.
2749
+ ///
2750
+ /// \code{.operation}
2751
+ /// FOR i := 0 to 7
2752
+ /// IF __U[i]
2753
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i])
2754
+ /// ELSE
2755
+ /// dst.hf8[i] := 0
2756
+ /// FI
2757
+ /// ENDFOR
2758
+ ///
2759
+ /// dst[MAX:64] := 0
2760
+ /// \endcode
2761
+ ///
2762
+ /// \headerfile <immintrin.h>
2763
+ ///
2764
+ /// This intrinsic corresponds to the \c VCVTPH2HF8 instruction.
2765
+ ///
2766
+ /// \param __U
2767
+ /// A 8-bit zeroing mask.
2768
+ /// \param __A
2769
+ /// A 128-bit vector of [8 x fp16].
2770
+ /// \returns
2771
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the
2772
+ /// (converted) elements from \a __A; upper elements are zeroed. If
2773
+ /// corresponding mask bit is not set, then element is zeroed.
2774
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
2775
+ _mm_maskz_cvtph_hf8(__mmask8 __U, __m128h __A) {
2776
+ return (__m128i)__builtin_ia32_vcvtph2hf8_128_mask(
2777
+ (__v8hf)__A, (__v16qi)(__m128i)_mm_setzero_si128(), (__mmask8)__U);
2778
+ }
2779
+
2780
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
2781
+ /// to a 128-bit vector containing E4M3 FP8 elements.
2782
+ ///
2783
+ /// \code{.operation}
2784
+ /// FOR i := 0 to 15
2785
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i])
2786
+ /// ENDFOR
2787
+ ///
2788
+ /// dst[MAX:128] := 0
2789
+ /// \endcode
2790
+ ///
2791
+ /// \headerfile <immintrin.h>
2792
+ ///
2793
+ /// This intrinsic corresponds to the \c VCVTPH2HF8 instruction.
2794
+ ///
2795
+ /// \param __A
2796
+ /// A 256-bit vector of [16 x fp16].
2797
+ /// \returns
2798
+ /// A 128-bit vector of [16 x hf8]. Resulting elements correspond to the (converted)
2799
+ /// elements from \a __A.
2800
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
2801
+ _mm256_cvtph_hf8(__m256h __A) {
2802
+ return (__m128i)__builtin_ia32_vcvtph2hf8_256_mask(
2803
+ (__v16hf)__A, (__v16qi)(__m128i)_mm_undefined_si128(), (__mmask16)-1);
2804
+ }
2805
+
2806
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
2807
+ /// to a 128-bit vector containing E4M3 FP8 elements. Merging mask \a __U is
2808
+ /// used to determine if given element should be taken from \a __W instead.
2809
+ ///
2810
+ /// \code{.operation}
2811
+ /// FOR i := 0 to 15
2812
+ /// IF __U[i]
2813
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i])
2814
+ /// ELSE
2815
+ /// dst.hf8[i] := __W.hf8[i]
2816
+ /// FI
2817
+ /// ENDFOR
2818
+ ///
2819
+ /// dst[MAX:128] := 0
2820
+ /// \endcode
2821
+ ///
2822
+ /// \headerfile <immintrin.h>
2823
+ ///
2824
+ /// This intrinsic corresponds to the \c VCVTPH2HF8 instruction.
2825
+ ///
2826
+ /// \param __W
2827
+ /// A 128-bit vector of [16 x hf8].
2828
+ /// \param __U
2829
+ /// A 16-bit merging mask.
2830
+ /// \param __A
2831
+ /// A 256-bit vector of [8 x fp16].
2832
+ /// \returns
2833
+ /// A 128-bit vector of [16 x hf8]. Resulting elements correspond to the
2834
+ /// (converted) elements from \a __A. If
2835
+ /// corresponding mask bit is not set, then element from \a __W is taken instead.
2836
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
2837
+ _mm256_mask_cvtph_hf8(__m128i __W, __mmask16 __U, __m256h __A) {
2838
+ return (__m128i)__builtin_ia32_vcvtph2hf8_256_mask(
2839
+ (__v16hf)__A, (__v16qi)(__m128i)__W, (__mmask16)__U);
2840
+ }
2841
+
2842
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
2843
+ /// to a 128-bit vector containing E4M3 FP8 elements. Zeroing mask \a __U is
2844
+ /// used to determine if given element should be zeroed instead.
2845
+ ///
2846
+ /// \code{.operation}
2847
+ /// FOR i := 0 to 15
2848
+ /// IF __U[i]
2849
+ /// dst.hf8[i] := convert_fp16_to_hf8(__A.fp16[i])
2850
+ /// ELSE
2851
+ /// dst.hf8[i] := 0
2852
+ /// FI
2853
+ /// ENDFOR
2854
+ ///
2855
+ /// dst[MAX:128] := 0
2856
+ /// \endcode
2857
+ ///
2858
+ /// \headerfile <immintrin.h>
2859
+ ///
2860
+ /// This intrinsic corresponds to the \c VCVTPH2HF8 instruction.
2861
+ ///
2862
+ /// \param __U
2863
+ /// A 16-bit zeroing mask.
2864
+ /// \param __A
2865
+ /// A 256-bit vector of [16 x fp16].
2866
+ /// \returns
2867
+ /// A 128-bit vector of [16 x hf8]. Resulting elements correspond to the
2868
+ /// (converted) elements from \a __A. If corresponding mask bit is not set,
2869
+ /// then element is zeroed instead.
2870
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
2871
+ _mm256_maskz_cvtph_hf8(__mmask16 __U, __m256h __A) {
2872
+ return (__m128i)__builtin_ia32_vcvtph2hf8_256_mask(
2873
+ (__v16hf)__A, (__v16qi)(__m128i)_mm_setzero_si128(), (__mmask16)__U);
2874
+ }
2875
+
2876
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2877
+ /// to a 128-bit vector containing E4M3 FP8 elements. Upper elements of
2878
+ /// resulting vector are zeroed. Results are saturated.
2879
+ ///
2880
+ /// \code{.operation}
2881
+ /// FOR i := 0 to 7
2882
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i])
2883
+ /// ENDFOR
2884
+ ///
2885
+ /// dst[MAX:64] := 0
2886
+ /// \endcode
2887
+ ///
2888
+ /// \headerfile <immintrin.h>
2889
+ ///
2890
+ /// This intrinsic corresponds to the \c VCVTPH2HF8S instruction.
2891
+ ///
2892
+ /// \param __A
2893
+ /// A 128-bit vector of [8 x fp16].
2894
+ /// \returns
2895
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the (converted)
2896
+ /// elements from \a __A; upper elements are zeroed.
2897
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvts_ph_hf8(__m128h __A) {
2898
+ return (__m128i)__builtin_ia32_vcvtph2hf8s_128_mask(
2899
+ (__v8hf)__A, (__v16qi)(__m128i)_mm_undefined_si128(), (__mmask8)-1);
2900
+ }
2901
+
2902
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2903
+ /// to a 128-bit vector containing E4M3 FP8 elements. Upper elements of
2904
+ /// resulting vector are zeroed. Results are saturated. Merging mask \a __U is
2905
+ /// used to determine if given element should be taken from \a __W instead.
2906
+ ///
2907
+ /// \code{.operation}
2908
+ /// FOR i := 0 to 7
2909
+ /// IF __U[i]
2910
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i])
2911
+ /// ELSE
2912
+ /// dst.hf8[i] := __W.hf8[i]
2913
+ /// FI
2914
+ /// ENDFOR
2915
+ ///
2916
+ /// dst[MAX:64] := 0
2917
+ /// \endcode
2918
+ ///
2919
+ /// \headerfile <immintrin.h>
2920
+ ///
2921
+ /// This intrinsic corresponds to the \c VCVTPH2HF8S instruction.
2922
+ ///
2923
+ /// \param __W
2924
+ /// A 128-bit vector of [16 x hf8].
2925
+ /// \param __U
2926
+ /// A 8-bit merging mask.
2927
+ /// \param __A
2928
+ /// A 128-bit vector of [8 x fp16].
2929
+ /// \returns
2930
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the
2931
+ /// (converted) elements from \a __A; upper elements are zeroed. If
2932
+ /// corresponding mask bit is not set, then element from \a __W is taken instead.
2933
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
2934
+ _mm_mask_cvts_ph_hf8(__m128i __W, __mmask8 __U, __m128h __A) {
2935
+ return (__m128i)__builtin_ia32_vcvtph2hf8s_128_mask(
2936
+ (__v8hf)__A, (__v16qi)(__m128i)__W, (__mmask8)__U);
2937
+ }
2938
+
2939
+ /// Convert 128-bit vector \a __A containing packed FP16 floating-point elements
2940
+ /// to a 128-bit vector containing E4M3 FP8 elements. Upper elements of
2941
+ /// resulting vector are zeroed. Results are saturated. Zeroing mask \a __U is
2942
+ /// used to determine if given element should be zeroed instead.
2943
+ ///
2944
+ /// \code{.operation}
2945
+ /// FOR i := 0 to 7
2946
+ /// IF __U[i]
2947
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i])
2948
+ /// ELSE
2949
+ /// dst.hf8[i] := 0
2950
+ /// FI
2951
+ /// ENDFOR
2952
+ ///
2953
+ /// dst[MAX:64] := 0
2954
+ /// \endcode
2955
+ ///
2956
+ /// \headerfile <immintrin.h>
2957
+ ///
2958
+ /// This intrinsic corresponds to the \c VCVTPH2HF8S instruction.
2959
+ ///
2960
+ /// \param __U
2961
+ /// A 8-bit zeroing mask.
2962
+ /// \param __A
2963
+ /// A 128-bit vector of [8 x fp16].
2964
+ /// \returns
2965
+ /// A 128-bit vector of [16 x hf8]. Lower elements correspond to the
2966
+ /// (converted) elements from \a __A; upper elements are zeroed. If
2967
+ /// corresponding mask bit is not set, then element is zeroed.
2968
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
2969
+ _mm_maskz_cvts_ph_hf8(__mmask8 __U, __m128h __A) {
2970
+ return (__m128i)__builtin_ia32_vcvtph2hf8s_128_mask(
2971
+ (__v8hf)__A, (__v16qi)(__m128i)_mm_setzero_si128(), (__mmask8)__U);
2972
+ }
2973
+
2974
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
2975
+ /// to a 128-bit vector containing E4M3 FP8 elements. Results are saturated.
2976
+ ///
2977
+ /// \code{.operation}
2978
+ /// FOR i := 0 to 15
2979
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i])
2980
+ /// ENDFOR
2981
+ ///
2982
+ /// dst[MAX:128] := 0
2983
+ /// \endcode
2984
+ ///
2985
+ /// \headerfile <immintrin.h>
2986
+ ///
2987
+ /// This intrinsic corresponds to the \c VCVTPH2HF8S instruction.
2988
+ ///
2989
+ /// \param __A
2990
+ /// A 256-bit vector of [16 x fp16].
2991
+ /// \returns
2992
+ /// A 128-bit vector of [16 x hf8]. Resulting elements correspond to the (converted)
2993
+ /// elements from \a __A.
2994
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
2995
+ _mm256_cvts_ph_hf8(__m256h __A) {
2996
+ return (__m128i)__builtin_ia32_vcvtph2hf8s_256_mask(
2997
+ (__v16hf)__A, (__v16qi)(__m128i)_mm_undefined_si128(), (__mmask16)-1);
2998
+ }
2999
+
3000
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
3001
+ /// to a 128-bit vector containing E4M3 FP8 elements. Results are saturated.
3002
+ /// Merging mask \a __U is used to determine if given element should be taken
3003
+ /// from \a __W instead.
3004
+ ///
3005
+ /// \code{.operation}
3006
+ /// FOR i := 0 to 15
3007
+ /// IF __U[i]
3008
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i])
3009
+ /// ELSE
3010
+ /// dst.hf8[i] := __W.hf8[i]
3011
+ /// FI
3012
+ /// ENDFOR
3013
+ ///
3014
+ /// dst[MAX:128] := 0
3015
+ /// \endcode
3016
+ ///
3017
+ /// \headerfile <immintrin.h>
3018
+ ///
3019
+ /// This intrinsic corresponds to the \c VCVTPH2HF8S instruction.
3020
+ ///
3021
+ /// \param __W
3022
+ /// A 128-bit vector of [16 x hf8].
3023
+ /// \param __U
3024
+ /// A 16-bit merging mask.
3025
+ /// \param __A
3026
+ /// A 256-bit vector of [8 x fp16].
3027
+ /// \returns
3028
+ /// A 128-bit vector of [16 x hf8]. Resulting elements correspond to the
3029
+ /// (converted) elements from \a __A. If
3030
+ /// corresponding mask bit is not set, then element from \a __W is taken instead.
3031
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
3032
+ _mm256_mask_cvts_ph_hf8(__m128i __W, __mmask16 __U, __m256h __A) {
3033
+ return (__m128i)__builtin_ia32_vcvtph2hf8s_256_mask(
3034
+ (__v16hf)__A, (__v16qi)(__m128i)__W, (__mmask16)__U);
3035
+ }
3036
+
3037
+ /// Convert 256-bit vector \a __A containing packed FP16 floating-point elements
3038
+ /// to a 128-bit vector containing E4M3 FP8 elements. Results are saturated.
3039
+ /// Zeroing mask \a __U is used to determine if given element should be zeroed
3040
+ /// instead.
3041
+ ///
3042
+ /// \code{.operation}
3043
+ /// FOR i := 0 to 15
3044
+ /// IF __U[i]
3045
+ /// dst.hf8[i] := convert_fp16_to_hf8_saturate(__A.fp16[i])
3046
+ /// ELSE
3047
+ /// dst.hf8[i] := 0
3048
+ /// FI
3049
+ /// ENDFOR
3050
+ ///
3051
+ /// dst[MAX:128] := 0
3052
+ /// \endcode
3053
+ ///
3054
+ /// \headerfile <immintrin.h>
3055
+ ///
3056
+ /// This intrinsic corresponds to the \c VCVTPH2HF8S instruction.
3057
+ ///
3058
+ /// \param __U
3059
+ /// A 16-bit zeroing mask.
3060
+ /// \param __A
3061
+ /// A 256-bit vector of [16 x fp16].
3062
+ /// \returns
3063
+ /// A 128-bit vector of [16 x hf8]. Resulting elements correspond to the
3064
+ /// (converted) elements from \a __A. If corresponding mask bit is not set,
3065
+ /// then element is zeroed instead.
3066
+ static __inline__ __m128i __DEFAULT_FN_ATTRS256
3067
+ _mm256_maskz_cvts_ph_hf8(__mmask16 __U, __m256h __A) {
3068
+ return (__m128i)__builtin_ia32_vcvtph2hf8s_256_mask(
3069
+ (__v16hf)__A, (__v16qi)(__m128i)_mm_setzero_si128(), (__mmask16)__U);
3070
+ }
3071
+
3072
+ /// Convert 128-bit vector \a __A, containing packed FP8 E5M2 floating-point
3073
+ /// elements to a 128-bit vector containing FP16 elements. The conversion is exact.
3074
+ ///
3075
+ /// \code{.operation}
3076
+ /// FOR i := 0 to 7
3077
+ /// dst.fp16[i] := convert_bf8_to_fp16(__A.bf8[i])
3078
+ /// ENDFOR
3079
+ /// \endcode
3080
+ ///
3081
+ /// \headerfile <immintrin.h>
3082
+ ///
3083
+ /// This intrinsic does not correspond to a single instruction.
3084
+ ///
3085
+ /// \param __A
3086
+ /// A 128-bit vector of [16 x bf8].
3087
+ /// \returns
3088
+ /// A 128-bit vector of [8 x fp16]. Resulting elements correspond to the
3089
+ /// (converted) elements from \a __A.
3090
+ static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtbf8_ph(__m128i __A) {
3091
+ return _mm_castsi128_ph(_mm_slli_epi16(_mm_cvtepi8_epi16(__A), 8));
3092
+ }
3093
+
3094
+ /// Convert 128-bit vector \a __A, containing packed FP8 E5M2 floating-point
3095
+ /// elements to a 128-bit vector containing FP16 elements. The conversion is
3096
+ /// exact. Merging mask \a __U is used to determine if given element should be
3097
+ /// taken from \a __W instead.
3098
+ ///
3099
+ /// \code{.operation}
3100
+ /// FOR i := 0 to 7
3101
+ /// IF __U[i]
3102
+ /// dst.fp16[i] := convert_bf8_to_fp16(__A.bf8[i])
3103
+ /// ELSE
3104
+ /// dst.fp16[i] := __W.fp16[i]
3105
+ /// FI
3106
+ /// ENDFOR
3107
+ /// \endcode
3108
+ ///
3109
+ /// \headerfile <immintrin.h>
3110
+ ///
3111
+ /// This intrinsic does not correspond to a single instruction.
3112
+ ///
3113
+ /// \param __W
3114
+ /// A 128-bit vector of [8 x fp16].
3115
+ /// \param __U
3116
+ /// A 8-bit merging mask.
3117
+ /// \param __A
3118
+ /// A 128-bit vector of [16 x bf8].
3119
+ /// \returns
3120
+ /// A 128-bit vector of [8 x fp16]. Resulting elements correspond to the
3121
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
3122
+ /// element from \a __W is taken instead.
3123
+ static __inline__ __m128h __DEFAULT_FN_ATTRS128
3124
+ _mm_mask_cvtbf8_ph(__m128h __W, __mmask8 __U, __m128i __A) {
3125
+ return _mm_castsi128_ph(
3126
+ _mm_mask_slli_epi16((__m128i)__W, __U, _mm_cvtepi8_epi16(__A), 8));
3127
+ }
3128
+
3129
+ /// Convert 128-bit vector \a __A, containing packed FP8 E5M2 floating-point
3130
+ /// elements to a 128-bit vector containing FP16 elements. The conversion is
3131
+ /// exact. Zeroing mask \a __U is used to determine if given element should be
3132
+ /// zeroed instead.
3133
+ ///
3134
+ /// \code{.operation}
3135
+ /// FOR i := 0 to 7
3136
+ /// IF __U[i]
3137
+ /// dst.fp16[i] := convert_bf8_to_fp16(__A.bf8[i])
3138
+ /// ELSE
3139
+ /// dst.fp16[i] := 0
3140
+ /// FI
3141
+ /// ENDFOR
3142
+ /// \endcode
3143
+ ///
3144
+ /// \headerfile <immintrin.h>
3145
+ ///
3146
+ /// This intrinsic does not correspond to a single instruction.
3147
+ ///
3148
+ /// \param __U
3149
+ /// A 8-bit zeroing mask.
3150
+ /// \param __A
3151
+ /// A 128-bit vector of [16 x bf8].
3152
+ /// \returns
3153
+ /// A 128-bit vector of [8 x fp16]. Resulting elements correspond to the
3154
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
3155
+ /// zero is taken instead.
3156
+ static __inline__ __m128h __DEFAULT_FN_ATTRS128
3157
+ _mm_maskz_cvtbf8_ph(__mmask8 __U, __m128i __A) {
3158
+ return _mm_castsi128_ph(_mm_slli_epi16(_mm_maskz_cvtepi8_epi16(__U, __A), 8));
3159
+ }
3160
+
3161
+ /// Convert 256-bit vector \a __A, containing packed FP8 E4M3 floating-point
3162
+ /// elements to a 256-bit vector containing FP16 elements. The conversion is exact.
3163
+ ///
3164
+ /// \code{.operation}
3165
+ /// FOR i := 0 to 15
3166
+ /// dst.fp16[i] := convert_bf8_to_fp16(__A.bf8[i])
3167
+ /// ENDFOR
3168
+ /// \endcode
3169
+ ///
3170
+ /// \headerfile <immintrin.h>
3171
+ ///
3172
+ /// This intrinsic does not correspond to a single instruction.
3173
+ ///
3174
+ /// \param __A
3175
+ /// A 256-bit vector of [32 x bf8].
3176
+ /// \returns
3177
+ /// A 256-bit vector of [16 x fp16]. Resulting elements correspond to the
3178
+ /// (converted) elements from \a __A.
3179
+ static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_cvtbf8_ph(__m128i __A) {
3180
+ return _mm256_castsi256_ph(_mm256_slli_epi16(_mm256_cvtepi8_epi16(__A), 8));
3181
+ }
3182
+
3183
+ /// Convert 256-bit vector \a __A, containing packed FP8 E5M2 floating-point
3184
+ /// elements to a 256-bit vector containing FP16 elements. The conversion is
3185
+ /// exact. Merging mask \a __U is used to determine if given element should be
3186
+ /// taken from \a __W instead.
3187
+ ///
3188
+ /// \code{.operation}
3189
+ /// FOR i := 0 to 15
3190
+ /// IF __U[i]
3191
+ /// dst.fp16[i] := convert_bf8_to_fp16(__A.bf8[i])
3192
+ /// ELSE
3193
+ /// dst.fp16[i] := __W.fp16[i]
3194
+ /// FI
3195
+ /// ENDFOR
3196
+ /// \endcode
3197
+ ///
3198
+ /// \headerfile <immintrin.h>
3199
+ ///
3200
+ /// This intrinsic does not correspond to a single instruction.
3201
+ ///
3202
+ /// \param __W
3203
+ /// A 256-bit vector of [16 x fp16].
3204
+ /// \param __U
3205
+ /// A 16-bit merging mask.
3206
+ /// \param __A
3207
+ /// A 256-bit vector of [32 x bf8].
3208
+ /// \returns
3209
+ /// A 256-bit vector of [16 x fp16]. Resulting elements correspond to the
3210
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
3211
+ /// element from \a __W is taken instead.
3212
+ static __inline__ __m256h __DEFAULT_FN_ATTRS256
3213
+ _mm256_mask_cvtbf8_ph(__m256h __W, __mmask16 __U, __m128i __A) {
3214
+ return _mm256_castsi256_ph(
3215
+ _mm256_mask_slli_epi16((__m256i)__W, __U, _mm256_cvtepi8_epi16(__A), 8));
3216
+ }
3217
+
3218
+ /// Convert 256-bit vector \a __A, containing packed FP8 E5M2 floating-point
3219
+ /// elements to a 256-bit vector containing FP16 elements. The conversion is
3220
+ /// exact. Zeroing mask \a __U is used to determine if given element should be
3221
+ /// zeroed instead.
3222
+ ///
3223
+ /// \code{.operation}
3224
+ /// FOR i := 0 to 15
3225
+ /// IF __U[i]
3226
+ /// dst.fp16[i] := convert_bf8_to_fp16(__A.bf8[i])
3227
+ /// ELSE
3228
+ /// dst.fp16[i] := 0
3229
+ /// FI
3230
+ /// ENDFOR
3231
+ /// \endcode
3232
+ ///
3233
+ /// \headerfile <immintrin.h>
3234
+ ///
3235
+ /// This intrinsic does not correspond to a single instruction.
3236
+ ///
3237
+ /// \param __U
3238
+ /// A 16-bit zeroing mask.
3239
+ /// \param __A
3240
+ /// A 256-bit vector of [32 x bf8].
3241
+ /// \returns
3242
+ /// A 256-bit vector of [16 x fp16]. Resulting elements correspond to the
3243
+ /// (converted) elements from \a __A. If corresponding mask bit is not set, then
3244
+ /// zero is taken instead.
3245
+ static __inline__ __m256h __DEFAULT_FN_ATTRS256
3246
+ _mm256_maskz_cvtbf8_ph(__mmask16 __U, __m128i __A) {
3247
+ return _mm256_castsi256_ph(
3248
+ _mm256_slli_epi16(_mm256_maskz_cvtepi8_epi16(__U, __A), 8));
3249
+ }
3250
+
3251
+ // clang-format on
3252
+
3253
+ #undef __DEFAULT_FN_ATTRS128
3254
+ #undef __DEFAULT_FN_ATTRS256
3255
+
3256
+ #endif // __AVX10_2CONVERTINTRIN_H
3257
+ #endif // __SSE2__