@nativescript/linux 0.0.0-stage → 0.1.0-alpha.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 (238) hide show
  1. package/framework/App_Resources/Linux/app.desktop +8 -0
  2. package/framework/App_Resources/Linux/app.metainfo.xml +15 -0
  3. package/framework/App_Resources/Linux/icon.png +0 -0
  4. package/framework/App_Resources/Linux/images/.gitkeep +0 -0
  5. package/framework/__PROJECT_NAME__/app/.gitkeep +0 -0
  6. package/framework/runtime/x64/metadata-x86_64.bin +0 -0
  7. package/framework/runtime/x64/ns-linux +4 -0
  8. package/framework/tools/x64/lib/clang/17/include/__clang_cuda_builtin_vars.h +121 -0
  9. package/framework/tools/x64/lib/clang/17/include/__clang_cuda_cmath.h +512 -0
  10. package/framework/tools/x64/lib/clang/17/include/__clang_cuda_complex_builtins.h +285 -0
  11. package/framework/tools/x64/lib/clang/17/include/__clang_cuda_device_functions.h +1558 -0
  12. package/framework/tools/x64/lib/clang/17/include/__clang_cuda_intrinsics.h +709 -0
  13. package/framework/tools/x64/lib/clang/17/include/__clang_cuda_libdevice_declares.h +468 -0
  14. package/framework/tools/x64/lib/clang/17/include/__clang_cuda_math.h +348 -0
  15. package/framework/tools/x64/lib/clang/17/include/__clang_cuda_math_forward_declares.h +284 -0
  16. package/framework/tools/x64/lib/clang/17/include/__clang_cuda_runtime_wrapper.h +503 -0
  17. package/framework/tools/x64/lib/clang/17/include/__clang_cuda_texture_intrinsics.h +742 -0
  18. package/framework/tools/x64/lib/clang/17/include/__clang_hip_cmath.h +842 -0
  19. package/framework/tools/x64/lib/clang/17/include/__clang_hip_libdevice_declares.h +353 -0
  20. package/framework/tools/x64/lib/clang/17/include/__clang_hip_math.h +1303 -0
  21. package/framework/tools/x64/lib/clang/17/include/__clang_hip_runtime_wrapper.h +151 -0
  22. package/framework/tools/x64/lib/clang/17/include/__clang_hip_stdlib.h +43 -0
  23. package/framework/tools/x64/lib/clang/17/include/__stddef_max_align_t.h +27 -0
  24. package/framework/tools/x64/lib/clang/17/include/__wmmintrin_aes.h +140 -0
  25. package/framework/tools/x64/lib/clang/17/include/__wmmintrin_pclmul.h +48 -0
  26. package/framework/tools/x64/lib/clang/17/include/adxintrin.h +227 -0
  27. package/framework/tools/x64/lib/clang/17/include/altivec.h +19342 -0
  28. package/framework/tools/x64/lib/clang/17/include/ammintrin.h +183 -0
  29. package/framework/tools/x64/lib/clang/17/include/amxcomplexintrin.h +169 -0
  30. package/framework/tools/x64/lib/clang/17/include/amxfp16intrin.h +58 -0
  31. package/framework/tools/x64/lib/clang/17/include/amxintrin.h +524 -0
  32. package/framework/tools/x64/lib/clang/17/include/arm64intr.h +35 -0
  33. package/framework/tools/x64/lib/clang/17/include/arm_acle.h +782 -0
  34. package/framework/tools/x64/lib/clang/17/include/arm_bf16.h +20 -0
  35. package/framework/tools/x64/lib/clang/17/include/arm_cde.h +410 -0
  36. package/framework/tools/x64/lib/clang/17/include/arm_cmse.h +217 -0
  37. package/framework/tools/x64/lib/clang/17/include/arm_fp16.h +596 -0
  38. package/framework/tools/x64/lib/clang/17/include/arm_mve.h +19187 -0
  39. package/framework/tools/x64/lib/clang/17/include/arm_neon.h +69885 -0
  40. package/framework/tools/x64/lib/clang/17/include/arm_neon_sve_bridge.h +182 -0
  41. package/framework/tools/x64/lib/clang/17/include/arm_sme_draft_spec_subject_to_change.h +642 -0
  42. package/framework/tools/x64/lib/clang/17/include/arm_sve.h +23950 -0
  43. package/framework/tools/x64/lib/clang/17/include/armintr.h +31 -0
  44. package/framework/tools/x64/lib/clang/17/include/avx2intrin.h +5263 -0
  45. package/framework/tools/x64/lib/clang/17/include/avx512bf16intrin.h +282 -0
  46. package/framework/tools/x64/lib/clang/17/include/avx512bitalgintrin.h +83 -0
  47. package/framework/tools/x64/lib/clang/17/include/avx512bwintrin.h +2024 -0
  48. package/framework/tools/x64/lib/clang/17/include/avx512cdintrin.h +123 -0
  49. package/framework/tools/x64/lib/clang/17/include/avx512dqintrin.h +1377 -0
  50. package/framework/tools/x64/lib/clang/17/include/avx512erintrin.h +271 -0
  51. package/framework/tools/x64/lib/clang/17/include/avx512fintrin.h +9775 -0
  52. package/framework/tools/x64/lib/clang/17/include/avx512fp16intrin.h +3350 -0
  53. package/framework/tools/x64/lib/clang/17/include/avx512ifmaintrin.h +68 -0
  54. package/framework/tools/x64/lib/clang/17/include/avx512ifmavlintrin.h +105 -0
  55. package/framework/tools/x64/lib/clang/17/include/avx512pfintrin.h +97 -0
  56. package/framework/tools/x64/lib/clang/17/include/avx512vbmi2intrin.h +357 -0
  57. package/framework/tools/x64/lib/clang/17/include/avx512vbmiintrin.h +105 -0
  58. package/framework/tools/x64/lib/clang/17/include/avx512vbmivlintrin.h +188 -0
  59. package/framework/tools/x64/lib/clang/17/include/avx512vlbf16intrin.h +515 -0
  60. package/framework/tools/x64/lib/clang/17/include/avx512vlbitalgintrin.h +145 -0
  61. package/framework/tools/x64/lib/clang/17/include/avx512vlbwintrin.h +3161 -0
  62. package/framework/tools/x64/lib/clang/17/include/avx512vlcdintrin.h +225 -0
  63. package/framework/tools/x64/lib/clang/17/include/avx512vldqintrin.h +1167 -0
  64. package/framework/tools/x64/lib/clang/17/include/avx512vlfp16intrin.h +2071 -0
  65. package/framework/tools/x64/lib/clang/17/include/avx512vlintrin.h +8431 -0
  66. package/framework/tools/x64/lib/clang/17/include/avx512vlvbmi2intrin.h +689 -0
  67. package/framework/tools/x64/lib/clang/17/include/avx512vlvnniintrin.h +304 -0
  68. package/framework/tools/x64/lib/clang/17/include/avx512vlvp2intersectintrin.h +121 -0
  69. package/framework/tools/x64/lib/clang/17/include/avx512vnniintrin.h +115 -0
  70. package/framework/tools/x64/lib/clang/17/include/avx512vp2intersectintrin.h +77 -0
  71. package/framework/tools/x64/lib/clang/17/include/avx512vpopcntdqintrin.h +54 -0
  72. package/framework/tools/x64/lib/clang/17/include/avx512vpopcntdqvlintrin.h +91 -0
  73. package/framework/tools/x64/lib/clang/17/include/avxifmaintrin.h +177 -0
  74. package/framework/tools/x64/lib/clang/17/include/avxintrin.h +5108 -0
  75. package/framework/tools/x64/lib/clang/17/include/avxneconvertintrin.h +484 -0
  76. package/framework/tools/x64/lib/clang/17/include/avxvnniint16intrin.h +473 -0
  77. package/framework/tools/x64/lib/clang/17/include/avxvnniint8intrin.h +471 -0
  78. package/framework/tools/x64/lib/clang/17/include/avxvnniintrin.h +225 -0
  79. package/framework/tools/x64/lib/clang/17/include/bmi2intrin.h +255 -0
  80. package/framework/tools/x64/lib/clang/17/include/bmiintrin.h +431 -0
  81. package/framework/tools/x64/lib/clang/17/include/builtins.h +16 -0
  82. package/framework/tools/x64/lib/clang/17/include/cet.h +66 -0
  83. package/framework/tools/x64/lib/clang/17/include/cetintrin.h +115 -0
  84. package/framework/tools/x64/lib/clang/17/include/cldemoteintrin.h +36 -0
  85. package/framework/tools/x64/lib/clang/17/include/clflushoptintrin.h +36 -0
  86. package/framework/tools/x64/lib/clang/17/include/clwbintrin.h +38 -0
  87. package/framework/tools/x64/lib/clang/17/include/clzerointrin.h +38 -0
  88. package/framework/tools/x64/lib/clang/17/include/cmpccxaddintrin.h +70 -0
  89. package/framework/tools/x64/lib/clang/17/include/cpuid.h +331 -0
  90. package/framework/tools/x64/lib/clang/17/include/crc32intrin.h +100 -0
  91. package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/algorithm +116 -0
  92. package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/bits/basic_string.h +9 -0
  93. package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  94. package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  95. package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/cmath +90 -0
  96. package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/complex +90 -0
  97. package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/new +106 -0
  98. package/framework/tools/x64/lib/clang/17/include/emmintrin.h +4775 -0
  99. package/framework/tools/x64/lib/clang/17/include/enqcmdintrin.h +63 -0
  100. package/framework/tools/x64/lib/clang/17/include/f16cintrin.h +162 -0
  101. package/framework/tools/x64/lib/clang/17/include/float.h +168 -0
  102. package/framework/tools/x64/lib/clang/17/include/fma4intrin.h +218 -0
  103. package/framework/tools/x64/lib/clang/17/include/fmaintrin.h +780 -0
  104. package/framework/tools/x64/lib/clang/17/include/fxsrintrin.h +91 -0
  105. package/framework/tools/x64/lib/clang/17/include/gfniintrin.h +194 -0
  106. package/framework/tools/x64/lib/clang/17/include/hexagon_circ_brev_intrinsics.h +298 -0
  107. package/framework/tools/x64/lib/clang/17/include/hexagon_protos.h +8439 -0
  108. package/framework/tools/x64/lib/clang/17/include/hexagon_types.h +2621 -0
  109. package/framework/tools/x64/lib/clang/17/include/hresetintrin.h +49 -0
  110. package/framework/tools/x64/lib/clang/17/include/htmintrin.h +212 -0
  111. package/framework/tools/x64/lib/clang/17/include/htmxlintrin.h +345 -0
  112. package/framework/tools/x64/lib/clang/17/include/hvx_hexagon_protos.h +5183 -0
  113. package/framework/tools/x64/lib/clang/17/include/ia32intrin.h +441 -0
  114. package/framework/tools/x64/lib/clang/17/include/immintrin.h +758 -0
  115. package/framework/tools/x64/lib/clang/17/include/intrin.h +620 -0
  116. package/framework/tools/x64/lib/clang/17/include/inttypes.h +97 -0
  117. package/framework/tools/x64/lib/clang/17/include/invpcidintrin.h +23 -0
  118. package/framework/tools/x64/lib/clang/17/include/iso646.h +27 -0
  119. package/framework/tools/x64/lib/clang/17/include/keylockerintrin.h +530 -0
  120. package/framework/tools/x64/lib/clang/17/include/larchintrin.h +234 -0
  121. package/framework/tools/x64/lib/clang/17/include/limits.h +127 -0
  122. package/framework/tools/x64/lib/clang/17/include/llvm_libc_wrappers/ctype.h +85 -0
  123. package/framework/tools/x64/lib/clang/17/include/llvm_libc_wrappers/inttypes.h +34 -0
  124. package/framework/tools/x64/lib/clang/17/include/llvm_libc_wrappers/stdio.h +34 -0
  125. package/framework/tools/x64/lib/clang/17/include/llvm_libc_wrappers/stdlib.h +42 -0
  126. package/framework/tools/x64/lib/clang/17/include/llvm_libc_wrappers/string.h +37 -0
  127. package/framework/tools/x64/lib/clang/17/include/lwpintrin.h +136 -0
  128. package/framework/tools/x64/lib/clang/17/include/lzcntintrin.h +104 -0
  129. package/framework/tools/x64/lib/clang/17/include/mm3dnow.h +157 -0
  130. package/framework/tools/x64/lib/clang/17/include/mm_malloc.h +67 -0
  131. package/framework/tools/x64/lib/clang/17/include/mmintrin.h +1562 -0
  132. package/framework/tools/x64/lib/clang/17/include/module.modulemap +164 -0
  133. package/framework/tools/x64/lib/clang/17/include/movdirintrin.h +49 -0
  134. package/framework/tools/x64/lib/clang/17/include/msa.h +573 -0
  135. package/framework/tools/x64/lib/clang/17/include/mwaitxintrin.h +62 -0
  136. package/framework/tools/x64/lib/clang/17/include/nmmintrin.h +20 -0
  137. package/framework/tools/x64/lib/clang/17/include/opencl-c-base.h +820 -0
  138. package/framework/tools/x64/lib/clang/17/include/opencl-c.h +18356 -0
  139. package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/__clang_openmp_device_functions.h +105 -0
  140. package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/cmath +132 -0
  141. package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/complex +55 -0
  142. package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/complex.h +35 -0
  143. package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/complex_cmath.h +388 -0
  144. package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/math.h +61 -0
  145. package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/new +48 -0
  146. package/framework/tools/x64/lib/clang/17/include/pconfigintrin.h +40 -0
  147. package/framework/tools/x64/lib/clang/17/include/pkuintrin.h +34 -0
  148. package/framework/tools/x64/lib/clang/17/include/pmmintrin.h +300 -0
  149. package/framework/tools/x64/lib/clang/17/include/popcntintrin.h +59 -0
  150. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/bmi2intrin.h +134 -0
  151. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/bmiintrin.h +165 -0
  152. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/emmintrin.h +2269 -0
  153. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/immintrin.h +27 -0
  154. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/mm_malloc.h +45 -0
  155. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/mmintrin.h +1453 -0
  156. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/pmmintrin.h +145 -0
  157. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/smmintrin.h +663 -0
  158. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/tmmintrin.h +453 -0
  159. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/x86gprintrin.h +17 -0
  160. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/x86intrin.h +28 -0
  161. package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/xmmintrin.h +1827 -0
  162. package/framework/tools/x64/lib/clang/17/include/prfchiintrin.h +61 -0
  163. package/framework/tools/x64/lib/clang/17/include/prfchwintrin.h +58 -0
  164. package/framework/tools/x64/lib/clang/17/include/ptwriteintrin.h +37 -0
  165. package/framework/tools/x64/lib/clang/17/include/raointintrin.h +203 -0
  166. package/framework/tools/x64/lib/clang/17/include/rdpruintrin.h +57 -0
  167. package/framework/tools/x64/lib/clang/17/include/rdseedintrin.h +105 -0
  168. package/framework/tools/x64/lib/clang/17/include/riscv_ntlh.h +28 -0
  169. package/framework/tools/x64/lib/clang/17/include/rtmintrin.h +45 -0
  170. package/framework/tools/x64/lib/clang/17/include/s390intrin.h +25 -0
  171. package/framework/tools/x64/lib/clang/17/include/serializeintrin.h +30 -0
  172. package/framework/tools/x64/lib/clang/17/include/sgxintrin.h +60 -0
  173. package/framework/tools/x64/lib/clang/17/include/sha512intrin.h +200 -0
  174. package/framework/tools/x64/lib/clang/17/include/shaintrin.h +189 -0
  175. package/framework/tools/x64/lib/clang/17/include/sifive_vector.h +16 -0
  176. package/framework/tools/x64/lib/clang/17/include/sm3intrin.h +238 -0
  177. package/framework/tools/x64/lib/clang/17/include/sm4intrin.h +269 -0
  178. package/framework/tools/x64/lib/clang/17/include/smmintrin.h +2328 -0
  179. package/framework/tools/x64/lib/clang/17/include/stdalign.h +26 -0
  180. package/framework/tools/x64/lib/clang/17/include/stdarg.h +51 -0
  181. package/framework/tools/x64/lib/clang/17/include/stdatomic.h +196 -0
  182. package/framework/tools/x64/lib/clang/17/include/stdbool.h +34 -0
  183. package/framework/tools/x64/lib/clang/17/include/stddef.h +133 -0
  184. package/framework/tools/x64/lib/clang/17/include/stdint.h +979 -0
  185. package/framework/tools/x64/lib/clang/17/include/stdnoreturn.h +29 -0
  186. package/framework/tools/x64/lib/clang/17/include/tbmintrin.h +140 -0
  187. package/framework/tools/x64/lib/clang/17/include/tgmath.h +1368 -0
  188. package/framework/tools/x64/lib/clang/17/include/tmmintrin.h +775 -0
  189. package/framework/tools/x64/lib/clang/17/include/tsxldtrkintrin.h +56 -0
  190. package/framework/tools/x64/lib/clang/17/include/uintrintrin.h +157 -0
  191. package/framework/tools/x64/lib/clang/17/include/unwind.h +332 -0
  192. package/framework/tools/x64/lib/clang/17/include/vadefs.h +51 -0
  193. package/framework/tools/x64/lib/clang/17/include/vaesintrin.h +85 -0
  194. package/framework/tools/x64/lib/clang/17/include/varargs.h +12 -0
  195. package/framework/tools/x64/lib/clang/17/include/vecintrin.h +11127 -0
  196. package/framework/tools/x64/lib/clang/17/include/velintrin.h +71 -0
  197. package/framework/tools/x64/lib/clang/17/include/velintrin_approx.h +120 -0
  198. package/framework/tools/x64/lib/clang/17/include/velintrin_gen.h +1257 -0
  199. package/framework/tools/x64/lib/clang/17/include/vpclmulqdqintrin.h +30 -0
  200. package/framework/tools/x64/lib/clang/17/include/waitpkgintrin.h +42 -0
  201. package/framework/tools/x64/lib/clang/17/include/wasm_simd128.h +1997 -0
  202. package/framework/tools/x64/lib/clang/17/include/wbnoinvdintrin.h +24 -0
  203. package/framework/tools/x64/lib/clang/17/include/wmmintrin.h +23 -0
  204. package/framework/tools/x64/lib/clang/17/include/x86gprintrin.h +65 -0
  205. package/framework/tools/x64/lib/clang/17/include/x86intrin.h +67 -0
  206. package/framework/tools/x64/lib/clang/17/include/xmmintrin.h +3017 -0
  207. package/framework/tools/x64/lib/clang/17/include/xopintrin.h +770 -0
  208. package/framework/tools/x64/lib/clang/17/include/xsavecintrin.h +84 -0
  209. package/framework/tools/x64/lib/clang/17/include/xsaveintrin.h +63 -0
  210. package/framework/tools/x64/lib/clang/17/include/xsaveoptintrin.h +34 -0
  211. package/framework/tools/x64/lib/clang/17/include/xsavesintrin.h +44 -0
  212. package/framework/tools/x64/lib/clang/17/include/xtestintrin.h +27 -0
  213. package/framework/tools/x64/metadata-generator +4 -0
  214. package/framework/tools/x64/ns-bundle +0 -0
  215. package/framework/tools/x64/ns-metadata-filter +0 -0
  216. package/framework/typings/c!EGL.d.ts +431 -0
  217. package/framework/typings/c!GLES.d.ts +5002 -0
  218. package/framework/typings/c!GLib.d.ts +14488 -0
  219. package/framework/typings/c!Gtk.d.ts +17630 -0
  220. package/framework/typings/c!X11.d.ts +7054 -0
  221. package/framework/typings/c!_Builtin_intrinsics.d.ts +106 -0
  222. package/framework/typings/c!_Builtin_stddef_max_align_t.d.ts +6 -0
  223. package/framework/typings/c!cairo.d.ts +1248 -0
  224. package/framework/typings/c!fontconfig.d.ts +819 -0
  225. package/framework/typings/c!freetype.d.ts +1068 -0
  226. package/framework/typings/c!gdk_pixbuf.d.ts +326 -0
  227. package/framework/typings/c!graphene.d.ts +320 -0
  228. package/framework/typings/c!harfbuzz.d.ts +1292 -0
  229. package/framework/typings/c!icu.d.ts +3330 -0
  230. package/framework/typings/c!libc.d.ts +11639 -0
  231. package/framework/typings/c!libxml2.d.ts +7029 -0
  232. package/framework/typings/c!pango.d.ts +2225 -0
  233. package/framework/typings/c!uuid.d.ts +68 -0
  234. package/framework/typings/c!zlib.d.ts +276 -0
  235. package/framework/typings/index.d.ts +10 -0
  236. package/framework/typings/linux-runtime.d.ts +90 -0
  237. package/package.json +9 -4
  238. package/README.md +0 -3
@@ -0,0 +1,515 @@
1
+ /*===--------- avx512vlbf16intrin.h - AVX512_BF16 intrinsics ---------------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===-----------------------------------------------------------------------===
8
+ */
9
+ #ifndef __IMMINTRIN_H
10
+ #error "Never use <avx512vlbf16intrin.h> directly; include <immintrin.h> instead."
11
+ #endif
12
+
13
+ #ifdef __SSE2__
14
+
15
+ #ifndef __AVX512VLBF16INTRIN_H
16
+ #define __AVX512VLBF16INTRIN_H
17
+
18
+ #define __DEFAULT_FN_ATTRS128 \
19
+ __attribute__((__always_inline__, __nodebug__, \
20
+ __target__("avx512vl, avx512bf16"), __min_vector_width__(128)))
21
+ #define __DEFAULT_FN_ATTRS256 \
22
+ __attribute__((__always_inline__, __nodebug__, \
23
+ __target__("avx512vl, avx512bf16"), __min_vector_width__(256)))
24
+
25
+ /// Convert Two Packed Single Data to One Packed BF16 Data.
26
+ ///
27
+ /// \headerfile <x86intrin.h>
28
+ ///
29
+ /// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
30
+ ///
31
+ /// \param __A
32
+ /// A 128-bit vector of [4 x float].
33
+ /// \param __B
34
+ /// A 128-bit vector of [4 x float].
35
+ /// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
36
+ /// conversion of __B, and higher 64 bits come from conversion of __A.
37
+ static __inline__ __m128bh __DEFAULT_FN_ATTRS128
38
+ _mm_cvtne2ps_pbh(__m128 __A, __m128 __B) {
39
+ return (__m128bh)__builtin_ia32_cvtne2ps2bf16_128((__v4sf) __A,
40
+ (__v4sf) __B);
41
+ }
42
+
43
+ /// Convert Two Packed Single Data to One Packed BF16 Data.
44
+ ///
45
+ /// \headerfile <x86intrin.h>
46
+ ///
47
+ /// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
48
+ ///
49
+ /// \param __A
50
+ /// A 128-bit vector of [4 x float].
51
+ /// \param __B
52
+ /// A 128-bit vector of [4 x float].
53
+ /// \param __W
54
+ /// A 128-bit vector of [8 x bfloat].
55
+ /// \param __U
56
+ /// A 8-bit mask value specifying what is chosen for each element.
57
+ /// A 1 means conversion of __A or __B. A 0 means element from __W.
58
+ /// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
59
+ /// conversion of __B, and higher 64 bits come from conversion of __A.
60
+ static __inline__ __m128bh __DEFAULT_FN_ATTRS128
61
+ _mm_mask_cvtne2ps_pbh(__m128bh __W, __mmask8 __U, __m128 __A, __m128 __B) {
62
+ return (__m128bh)__builtin_ia32_selectpbf_128((__mmask8)__U,
63
+ (__v8bf)_mm_cvtne2ps_pbh(__A, __B),
64
+ (__v8bf)__W);
65
+ }
66
+
67
+ /// Convert Two Packed Single Data to One Packed BF16 Data.
68
+ ///
69
+ /// \headerfile <x86intrin.h>
70
+ ///
71
+ /// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
72
+ ///
73
+ /// \param __A
74
+ /// A 128-bit vector of [4 x float].
75
+ /// \param __B
76
+ /// A 128-bit vector of [4 x float].
77
+ /// \param __U
78
+ /// A 8-bit mask value specifying what is chosen for each element.
79
+ /// A 1 means conversion of __A or __B. A 0 means element is zero.
80
+ /// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
81
+ /// conversion of __B, and higher 64 bits come from conversion of __A.
82
+ static __inline__ __m128bh __DEFAULT_FN_ATTRS128
83
+ _mm_maskz_cvtne2ps_pbh(__mmask8 __U, __m128 __A, __m128 __B) {
84
+ return (__m128bh)__builtin_ia32_selectpbf_128((__mmask8)__U,
85
+ (__v8bf)_mm_cvtne2ps_pbh(__A, __B),
86
+ (__v8bf)_mm_setzero_si128());
87
+ }
88
+
89
+ /// Convert Two Packed Single Data to One Packed BF16 Data.
90
+ ///
91
+ /// \headerfile <x86intrin.h>
92
+ ///
93
+ /// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
94
+ ///
95
+ /// \param __A
96
+ /// A 256-bit vector of [8 x float].
97
+ /// \param __B
98
+ /// A 256-bit vector of [8 x float].
99
+ /// \returns A 256-bit vector of [16 x bfloat] whose lower 128 bits come from
100
+ /// conversion of __B, and higher 128 bits come from conversion of __A.
101
+ static __inline__ __m256bh __DEFAULT_FN_ATTRS256
102
+ _mm256_cvtne2ps_pbh(__m256 __A, __m256 __B) {
103
+ return (__m256bh)__builtin_ia32_cvtne2ps2bf16_256((__v8sf) __A,
104
+ (__v8sf) __B);
105
+ }
106
+
107
+ /// Convert Two Packed Single Data to One Packed BF16 Data.
108
+ ///
109
+ /// \headerfile <x86intrin.h>
110
+ ///
111
+ /// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
112
+ ///
113
+ /// \param __A
114
+ /// A 256-bit vector of [8 x float].
115
+ /// \param __B
116
+ /// A 256-bit vector of [8 x float].
117
+ /// \param __W
118
+ /// A 256-bit vector of [16 x bfloat].
119
+ /// \param __U
120
+ /// A 16-bit mask value specifying what is chosen for each element.
121
+ /// A 1 means conversion of __A or __B. A 0 means element from __W.
122
+ /// \returns A 256-bit vector of [16 x bfloat] whose lower 128 bits come from
123
+ /// conversion of __B, and higher 128 bits come from conversion of __A.
124
+ static __inline__ __m256bh __DEFAULT_FN_ATTRS256
125
+ _mm256_mask_cvtne2ps_pbh(__m256bh __W, __mmask16 __U, __m256 __A, __m256 __B) {
126
+ return (__m256bh)__builtin_ia32_selectpbf_256((__mmask16)__U,
127
+ (__v16bf)_mm256_cvtne2ps_pbh(__A, __B),
128
+ (__v16bf)__W);
129
+ }
130
+
131
+ /// Convert Two Packed Single Data to One Packed BF16 Data.
132
+ ///
133
+ /// \headerfile <x86intrin.h>
134
+ ///
135
+ /// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
136
+ ///
137
+ /// \param __A
138
+ /// A 256-bit vector of [8 x float].
139
+ /// \param __B
140
+ /// A 256-bit vector of [8 x float].
141
+ /// \param __U
142
+ /// A 16-bit mask value specifying what is chosen for each element.
143
+ /// A 1 means conversion of __A or __B. A 0 means element is zero.
144
+ /// \returns A 256-bit vector of [16 x bfloat] whose lower 128 bits come from
145
+ /// conversion of __B, and higher 128 bits come from conversion of __A.
146
+ static __inline__ __m256bh __DEFAULT_FN_ATTRS256
147
+ _mm256_maskz_cvtne2ps_pbh(__mmask16 __U, __m256 __A, __m256 __B) {
148
+ return (__m256bh)__builtin_ia32_selectpbf_256((__mmask16)__U,
149
+ (__v16bf)_mm256_cvtne2ps_pbh(__A, __B),
150
+ (__v16bf)_mm256_setzero_si256());
151
+ }
152
+
153
+ /// Convert Packed Single Data to Packed BF16 Data.
154
+ ///
155
+ /// \headerfile <x86intrin.h>
156
+ ///
157
+ /// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
158
+ ///
159
+ /// \param __A
160
+ /// A 128-bit vector of [4 x float].
161
+ /// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
162
+ /// conversion of __A, and higher 64 bits are 0.
163
+ #define _mm_cvtneps_pbh(A) \
164
+ ((__m128bh)__builtin_ia32_vcvtneps2bf16128((__v4sf)(A)))
165
+
166
+ /// Convert Packed Single Data to Packed BF16 Data.
167
+ ///
168
+ /// \headerfile <x86intrin.h>
169
+ ///
170
+ /// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
171
+ ///
172
+ /// \param __A
173
+ /// A 128-bit vector of [4 x float].
174
+ /// \param __W
175
+ /// A 128-bit vector of [8 x bfloat].
176
+ /// \param __U
177
+ /// A 4-bit mask value specifying what is chosen for each element.
178
+ /// A 1 means conversion of __A. A 0 means element from __W.
179
+ /// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
180
+ /// conversion of __A, and higher 64 bits are 0.
181
+ static __inline__ __m128bh __DEFAULT_FN_ATTRS128
182
+ _mm_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m128 __A) {
183
+ return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A,
184
+ (__v8bf)__W,
185
+ (__mmask8)__U);
186
+ }
187
+
188
+ /// Convert Packed Single Data to Packed BF16 Data.
189
+ ///
190
+ /// \headerfile <x86intrin.h>
191
+ ///
192
+ /// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
193
+ ///
194
+ /// \param __A
195
+ /// A 128-bit vector of [4 x float].
196
+ /// \param __U
197
+ /// A 4-bit mask value specifying what is chosen for each element.
198
+ /// A 1 means conversion of __A. A 0 means element is zero.
199
+ /// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
200
+ /// conversion of __A, and higher 64 bits are 0.
201
+ static __inline__ __m128bh __DEFAULT_FN_ATTRS128
202
+ _mm_maskz_cvtneps_pbh(__mmask8 __U, __m128 __A) {
203
+ return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A,
204
+ (__v8bf)_mm_setzero_si128(),
205
+ (__mmask8)__U);
206
+ }
207
+
208
+ /// Convert Packed Single Data to Packed BF16 Data.
209
+ ///
210
+ /// \headerfile <x86intrin.h>
211
+ ///
212
+ /// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
213
+ ///
214
+ /// \param __A
215
+ /// A 256-bit vector of [8 x float].
216
+ /// \returns A 128-bit vector of [8 x bfloat] comes from conversion of __A.
217
+ #define _mm256_cvtneps_pbh(A) \
218
+ ((__m128bh)__builtin_ia32_vcvtneps2bf16256((__v8sf)(A)))
219
+
220
+ /// Convert Packed Single Data to Packed BF16 Data.
221
+ ///
222
+ /// \headerfile <x86intrin.h>
223
+ ///
224
+ /// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
225
+ ///
226
+ /// \param __A
227
+ /// A 256-bit vector of [8 x float].
228
+ /// \param __W
229
+ /// A 256-bit vector of [8 x bfloat].
230
+ /// \param __U
231
+ /// A 8-bit mask value specifying what is chosen for each element.
232
+ /// A 1 means conversion of __A. A 0 means element from __W.
233
+ /// \returns A 128-bit vector of [8 x bfloat] comes from conversion of __A.
234
+ static __inline__ __m128bh __DEFAULT_FN_ATTRS256
235
+ _mm256_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m256 __A) {
236
+ return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A,
237
+ (__v8bf)__W,
238
+ (__mmask8)__U);
239
+ }
240
+
241
+ /// Convert Packed Single Data to Packed BF16 Data.
242
+ ///
243
+ /// \headerfile <x86intrin.h>
244
+ ///
245
+ /// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
246
+ ///
247
+ /// \param __A
248
+ /// A 256-bit vector of [8 x float].
249
+ /// \param __U
250
+ /// A 8-bit mask value specifying what is chosen for each element.
251
+ /// A 1 means conversion of __A. A 0 means element is zero.
252
+ /// \returns A 128-bit vector of [8 x bfloat] comes from conversion of __A.
253
+ static __inline__ __m128bh __DEFAULT_FN_ATTRS256
254
+ _mm256_maskz_cvtneps_pbh(__mmask8 __U, __m256 __A) {
255
+ return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A,
256
+ (__v8bf)_mm_setzero_si128(),
257
+ (__mmask8)__U);
258
+ }
259
+
260
+ /// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
261
+ ///
262
+ /// \headerfile <x86intrin.h>
263
+ ///
264
+ /// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
265
+ ///
266
+ /// \param __A
267
+ /// A 128-bit vector of [8 x bfloat].
268
+ /// \param __B
269
+ /// A 128-bit vector of [8 x bfloat].
270
+ /// \param __D
271
+ /// A 128-bit vector of [4 x float].
272
+ /// \returns A 128-bit vector of [4 x float] comes from Dot Product of
273
+ /// __A, __B and __D
274
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
275
+ _mm_dpbf16_ps(__m128 __D, __m128bh __A, __m128bh __B) {
276
+ return (__m128)__builtin_ia32_dpbf16ps_128((__v4sf)__D,
277
+ (__v8bf)__A,
278
+ (__v8bf)__B);
279
+ }
280
+
281
+ /// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
282
+ ///
283
+ /// \headerfile <x86intrin.h>
284
+ ///
285
+ /// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
286
+ ///
287
+ /// \param __A
288
+ /// A 128-bit vector of [8 x bfloat].
289
+ /// \param __B
290
+ /// A 128-bit vector of [8 x bfloat].
291
+ /// \param __D
292
+ /// A 128-bit vector of [4 x float].
293
+ /// \param __U
294
+ /// A 8-bit mask value specifying what is chosen for each element.
295
+ /// A 1 means __A and __B's dot product accumulated with __D. A 0 means __D.
296
+ /// \returns A 128-bit vector of [4 x float] comes from Dot Product of
297
+ /// __A, __B and __D
298
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
299
+ _mm_mask_dpbf16_ps(__m128 __D, __mmask8 __U, __m128bh __A, __m128bh __B) {
300
+ return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
301
+ (__v4sf)_mm_dpbf16_ps(__D, __A, __B),
302
+ (__v4sf)__D);
303
+ }
304
+
305
+ /// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
306
+ ///
307
+ /// \headerfile <x86intrin.h>
308
+ ///
309
+ /// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
310
+ ///
311
+ /// \param __A
312
+ /// A 128-bit vector of [8 x bfloat].
313
+ /// \param __B
314
+ /// A 128-bit vector of [8 x bfloat].
315
+ /// \param __D
316
+ /// A 128-bit vector of [4 x float].
317
+ /// \param __U
318
+ /// A 8-bit mask value specifying what is chosen for each element.
319
+ /// A 1 means __A and __B's dot product accumulated with __D. A 0 means 0.
320
+ /// \returns A 128-bit vector of [4 x float] comes from Dot Product of
321
+ /// __A, __B and __D
322
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
323
+ _mm_maskz_dpbf16_ps(__mmask8 __U, __m128 __D, __m128bh __A, __m128bh __B) {
324
+ return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
325
+ (__v4sf)_mm_dpbf16_ps(__D, __A, __B),
326
+ (__v4sf)_mm_setzero_si128());
327
+ }
328
+
329
+ /// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
330
+ ///
331
+ /// \headerfile <x86intrin.h>
332
+ ///
333
+ /// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
334
+ ///
335
+ /// \param __A
336
+ /// A 256-bit vector of [16 x bfloat].
337
+ /// \param __B
338
+ /// A 256-bit vector of [16 x bfloat].
339
+ /// \param __D
340
+ /// A 256-bit vector of [8 x float].
341
+ /// \returns A 256-bit vector of [8 x float] comes from Dot Product of
342
+ /// __A, __B and __D
343
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
344
+ _mm256_dpbf16_ps(__m256 __D, __m256bh __A, __m256bh __B) {
345
+ return (__m256)__builtin_ia32_dpbf16ps_256((__v8sf)__D,
346
+ (__v16bf)__A,
347
+ (__v16bf)__B);
348
+ }
349
+
350
+ /// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
351
+ ///
352
+ /// \headerfile <x86intrin.h>
353
+ ///
354
+ /// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
355
+ ///
356
+ /// \param __A
357
+ /// A 256-bit vector of [16 x bfloat].
358
+ /// \param __B
359
+ /// A 256-bit vector of [16 x bfloat].
360
+ /// \param __D
361
+ /// A 256-bit vector of [8 x float].
362
+ /// \param __U
363
+ /// A 16-bit mask value specifying what is chosen for each element.
364
+ /// A 1 means __A and __B's dot product accumulated with __D. A 0 means __D.
365
+ /// \returns A 256-bit vector of [8 x float] comes from Dot Product of
366
+ /// __A, __B and __D
367
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
368
+ _mm256_mask_dpbf16_ps(__m256 __D, __mmask8 __U, __m256bh __A, __m256bh __B) {
369
+ return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
370
+ (__v8sf)_mm256_dpbf16_ps(__D, __A, __B),
371
+ (__v8sf)__D);
372
+ }
373
+
374
+ /// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
375
+ ///
376
+ /// \headerfile <x86intrin.h>
377
+ ///
378
+ /// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
379
+ ///
380
+ /// \param __A
381
+ /// A 256-bit vector of [16 x bfloat].
382
+ /// \param __B
383
+ /// A 256-bit vector of [16 x bfloat].
384
+ /// \param __D
385
+ /// A 256-bit vector of [8 x float].
386
+ /// \param __U
387
+ /// A 8-bit mask value specifying what is chosen for each element.
388
+ /// A 1 means __A and __B's dot product accumulated with __D. A 0 means 0.
389
+ /// \returns A 256-bit vector of [8 x float] comes from Dot Product of
390
+ /// __A, __B and __D
391
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
392
+ _mm256_maskz_dpbf16_ps(__mmask8 __U, __m256 __D, __m256bh __A, __m256bh __B) {
393
+ return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
394
+ (__v8sf)_mm256_dpbf16_ps(__D, __A, __B),
395
+ (__v8sf)_mm256_setzero_si256());
396
+ }
397
+
398
+ /// Convert One Single float Data to One BF16 Data.
399
+ ///
400
+ /// \headerfile <x86intrin.h>
401
+ ///
402
+ /// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
403
+ ///
404
+ /// \param __A
405
+ /// A float data.
406
+ /// \returns A bf16 data whose sign field and exponent field keep unchanged,
407
+ /// and fraction field is truncated to 7 bits.
408
+ static __inline__ __bf16 __DEFAULT_FN_ATTRS128 _mm_cvtness_sbh(float __A) {
409
+ __v4sf __V = {__A, 0, 0, 0};
410
+ __v8bf __R = __builtin_ia32_cvtneps2bf16_128_mask(
411
+ (__v4sf)__V, (__v8bf)_mm_undefined_si128(), (__mmask8)-1);
412
+ return (__bf16)__R[0];
413
+ }
414
+
415
+ /// Convert Packed BF16 Data to Packed float Data.
416
+ ///
417
+ /// \headerfile <x86intrin.h>
418
+ ///
419
+ /// \param __A
420
+ /// A 128-bit vector of [4 x bfloat].
421
+ /// \returns A 128-bit vector of [4 x float] come from conversion of __A
422
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_cvtpbh_ps(__m128bh __A) {
423
+ return _mm_castsi128_ps(
424
+ (__m128i)_mm_slli_epi32((__m128i)_mm_cvtepi16_epi32((__m128i)__A), 16));
425
+ }
426
+
427
+ /// Convert Packed BF16 Data to Packed float Data.
428
+ ///
429
+ /// \headerfile <x86intrin.h>
430
+ ///
431
+ /// \param __A
432
+ /// A 128-bit vector of [8 x bfloat].
433
+ /// \returns A 256-bit vector of [8 x float] come from conversion of __A
434
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_cvtpbh_ps(__m128bh __A) {
435
+ return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32(
436
+ (__m256i)_mm256_cvtepi16_epi32((__m128i)__A), 16));
437
+ }
438
+
439
+ /// Convert Packed BF16 Data to Packed float Data using zeroing mask.
440
+ ///
441
+ /// \headerfile <x86intrin.h>
442
+ ///
443
+ /// \param __U
444
+ /// A 4-bit mask. Elements are zeroed out when the corresponding mask
445
+ /// bit is not set.
446
+ /// \param __A
447
+ /// A 128-bit vector of [4 x bfloat].
448
+ /// \returns A 128-bit vector of [4 x float] come from conversion of __A
449
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
450
+ _mm_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
451
+ return _mm_castsi128_ps((__m128i)_mm_slli_epi32(
452
+ (__m128i)_mm_maskz_cvtepi16_epi32((__mmask8)__U, (__m128i)__A), 16));
453
+ }
454
+
455
+ /// Convert Packed BF16 Data to Packed float Data using zeroing mask.
456
+ ///
457
+ /// \headerfile <x86intrin.h>
458
+ ///
459
+ /// \param __U
460
+ /// A 8-bit mask. Elements are zeroed out when the corresponding mask
461
+ /// bit is not set.
462
+ /// \param __A
463
+ /// A 128-bit vector of [8 x bfloat].
464
+ /// \returns A 256-bit vector of [8 x float] come from conversion of __A
465
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
466
+ _mm256_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
467
+ return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32(
468
+ (__m256i)_mm256_maskz_cvtepi16_epi32((__mmask8)__U, (__m128i)__A), 16));
469
+ }
470
+
471
+ /// Convert Packed BF16 Data to Packed float Data using merging mask.
472
+ ///
473
+ /// \headerfile <x86intrin.h>
474
+ ///
475
+ /// \param __S
476
+ /// A 128-bit vector of [4 x float]. Elements are copied from __S when
477
+ /// the corresponding mask bit is not set.
478
+ /// \param __U
479
+ /// A 4-bit mask. Elements are zeroed out when the corresponding mask
480
+ /// bit is not set.
481
+ /// \param __A
482
+ /// A 128-bit vector of [4 x bfloat].
483
+ /// \returns A 128-bit vector of [4 x float] come from conversion of __A
484
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
485
+ _mm_mask_cvtpbh_ps(__m128 __S, __mmask8 __U, __m128bh __A) {
486
+ return _mm_castsi128_ps((__m128i)_mm_mask_slli_epi32(
487
+ (__m128i)__S, (__mmask8)__U, (__m128i)_mm_cvtepi16_epi32((__m128i)__A),
488
+ 16));
489
+ }
490
+
491
+ /// Convert Packed BF16 Data to Packed float Data using merging mask.
492
+ ///
493
+ /// \headerfile <x86intrin.h>
494
+ ///
495
+ /// \param __S
496
+ /// A 256-bit vector of [8 x float]. Elements are copied from __S when
497
+ /// the corresponding mask bit is not set.
498
+ /// \param __U
499
+ /// A 8-bit mask. Elements are zeroed out when the corresponding mask
500
+ /// bit is not set.
501
+ /// \param __A
502
+ /// A 128-bit vector of [8 x bfloat].
503
+ /// \returns A 256-bit vector of [8 x float] come from conversion of __A
504
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
505
+ _mm256_mask_cvtpbh_ps(__m256 __S, __mmask8 __U, __m128bh __A) {
506
+ return _mm256_castsi256_ps((__m256i)_mm256_mask_slli_epi32(
507
+ (__m256i)__S, (__mmask8)__U, (__m256i)_mm256_cvtepi16_epi32((__m128i)__A),
508
+ 16));
509
+ }
510
+
511
+ #undef __DEFAULT_FN_ATTRS128
512
+ #undef __DEFAULT_FN_ATTRS256
513
+
514
+ #endif
515
+ #endif
@@ -0,0 +1,145 @@
1
+ /*===---- avx512vlbitalgintrin.h - BITALG intrinsics -----------------------===
2
+ *
3
+ *
4
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
+ * See https://llvm.org/LICENSE.txt for license information.
6
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
+ *
8
+ *===-----------------------------------------------------------------------===
9
+ */
10
+ #ifndef __IMMINTRIN_H
11
+ #error "Never use <avx512vlbitalgintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __AVX512VLBITALGINTRIN_H
15
+ #define __AVX512VLBITALGINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(128)))
19
+ #define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(256)))
20
+
21
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
22
+ _mm256_popcnt_epi16(__m256i __A)
23
+ {
24
+ return (__m256i) __builtin_ia32_vpopcntw_256((__v16hi) __A);
25
+ }
26
+
27
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
28
+ _mm256_mask_popcnt_epi16(__m256i __A, __mmask16 __U, __m256i __B)
29
+ {
30
+ return (__m256i) __builtin_ia32_selectw_256((__mmask16) __U,
31
+ (__v16hi) _mm256_popcnt_epi16(__B),
32
+ (__v16hi) __A);
33
+ }
34
+
35
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
36
+ _mm256_maskz_popcnt_epi16(__mmask16 __U, __m256i __B)
37
+ {
38
+ return _mm256_mask_popcnt_epi16((__m256i) _mm256_setzero_si256(),
39
+ __U,
40
+ __B);
41
+ }
42
+
43
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
44
+ _mm_popcnt_epi16(__m128i __A)
45
+ {
46
+ return (__m128i) __builtin_ia32_vpopcntw_128((__v8hi) __A);
47
+ }
48
+
49
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
50
+ _mm_mask_popcnt_epi16(__m128i __A, __mmask8 __U, __m128i __B)
51
+ {
52
+ return (__m128i) __builtin_ia32_selectw_128((__mmask8) __U,
53
+ (__v8hi) _mm_popcnt_epi16(__B),
54
+ (__v8hi) __A);
55
+ }
56
+
57
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
58
+ _mm_maskz_popcnt_epi16(__mmask8 __U, __m128i __B)
59
+ {
60
+ return _mm_mask_popcnt_epi16((__m128i) _mm_setzero_si128(),
61
+ __U,
62
+ __B);
63
+ }
64
+
65
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
66
+ _mm256_popcnt_epi8(__m256i __A)
67
+ {
68
+ return (__m256i) __builtin_ia32_vpopcntb_256((__v32qi) __A);
69
+ }
70
+
71
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
72
+ _mm256_mask_popcnt_epi8(__m256i __A, __mmask32 __U, __m256i __B)
73
+ {
74
+ return (__m256i) __builtin_ia32_selectb_256((__mmask32) __U,
75
+ (__v32qi) _mm256_popcnt_epi8(__B),
76
+ (__v32qi) __A);
77
+ }
78
+
79
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
80
+ _mm256_maskz_popcnt_epi8(__mmask32 __U, __m256i __B)
81
+ {
82
+ return _mm256_mask_popcnt_epi8((__m256i) _mm256_setzero_si256(),
83
+ __U,
84
+ __B);
85
+ }
86
+
87
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
88
+ _mm_popcnt_epi8(__m128i __A)
89
+ {
90
+ return (__m128i) __builtin_ia32_vpopcntb_128((__v16qi) __A);
91
+ }
92
+
93
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
94
+ _mm_mask_popcnt_epi8(__m128i __A, __mmask16 __U, __m128i __B)
95
+ {
96
+ return (__m128i) __builtin_ia32_selectb_128((__mmask16) __U,
97
+ (__v16qi) _mm_popcnt_epi8(__B),
98
+ (__v16qi) __A);
99
+ }
100
+
101
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
102
+ _mm_maskz_popcnt_epi8(__mmask16 __U, __m128i __B)
103
+ {
104
+ return _mm_mask_popcnt_epi8((__m128i) _mm_setzero_si128(),
105
+ __U,
106
+ __B);
107
+ }
108
+
109
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
110
+ _mm256_mask_bitshuffle_epi64_mask(__mmask32 __U, __m256i __A, __m256i __B)
111
+ {
112
+ return (__mmask32) __builtin_ia32_vpshufbitqmb256_mask((__v32qi) __A,
113
+ (__v32qi) __B,
114
+ __U);
115
+ }
116
+
117
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
118
+ _mm256_bitshuffle_epi64_mask(__m256i __A, __m256i __B)
119
+ {
120
+ return _mm256_mask_bitshuffle_epi64_mask((__mmask32) -1,
121
+ __A,
122
+ __B);
123
+ }
124
+
125
+ static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
126
+ _mm_mask_bitshuffle_epi64_mask(__mmask16 __U, __m128i __A, __m128i __B)
127
+ {
128
+ return (__mmask16) __builtin_ia32_vpshufbitqmb128_mask((__v16qi) __A,
129
+ (__v16qi) __B,
130
+ __U);
131
+ }
132
+
133
+ static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
134
+ _mm_bitshuffle_epi64_mask(__m128i __A, __m128i __B)
135
+ {
136
+ return _mm_mask_bitshuffle_epi64_mask((__mmask16) -1,
137
+ __A,
138
+ __B);
139
+ }
140
+
141
+
142
+ #undef __DEFAULT_FN_ATTRS128
143
+ #undef __DEFAULT_FN_ATTRS256
144
+
145
+ #endif