@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,183 @@
1
+ /*===---- ammintrin.h - SSE4a intrinsics -----------------------------------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===-----------------------------------------------------------------------===
8
+ */
9
+
10
+ #ifndef __AMMINTRIN_H
11
+ #define __AMMINTRIN_H
12
+
13
+ #if !defined(__i386__) && !defined(__x86_64__)
14
+ #error "This header is only meant to be used on x86 and x64 architecture"
15
+ #endif
16
+
17
+ #include <pmmintrin.h>
18
+
19
+ /* Define the default attributes for the functions in this file. */
20
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4a"), __min_vector_width__(128)))
21
+
22
+ /// Extracts the specified bits from the lower 64 bits of the 128-bit
23
+ /// integer vector operand at the index \a idx and of the length \a len.
24
+ ///
25
+ /// \headerfile <x86intrin.h>
26
+ ///
27
+ /// \code
28
+ /// __m128i _mm_extracti_si64(__m128i x, const int len, const int idx);
29
+ /// \endcode
30
+ ///
31
+ /// This intrinsic corresponds to the <c> EXTRQ </c> instruction.
32
+ ///
33
+ /// \param x
34
+ /// The value from which bits are extracted.
35
+ /// \param len
36
+ /// Bits [5:0] specify the length; the other bits are ignored. If bits [5:0]
37
+ /// are zero, the length is interpreted as 64.
38
+ /// \param idx
39
+ /// Bits [5:0] specify the index of the least significant bit; the other
40
+ /// bits are ignored. If the sum of the index and length is greater than 64,
41
+ /// the result is undefined. If the length and index are both zero, bits
42
+ /// [63:0] of parameter \a x are extracted. If the length is zero but the
43
+ /// index is non-zero, the result is undefined.
44
+ /// \returns A 128-bit integer vector whose lower 64 bits contain the bits
45
+ /// extracted from the source operand.
46
+ #define _mm_extracti_si64(x, len, idx) \
47
+ ((__m128i)__builtin_ia32_extrqi((__v2di)(__m128i)(x), \
48
+ (char)(len), (char)(idx)))
49
+
50
+ /// Extracts the specified bits from the lower 64 bits of the 128-bit
51
+ /// integer vector operand at the index and of the length specified by
52
+ /// \a __y.
53
+ ///
54
+ /// \headerfile <x86intrin.h>
55
+ ///
56
+ /// This intrinsic corresponds to the <c> EXTRQ </c> instruction.
57
+ ///
58
+ /// \param __x
59
+ /// The value from which bits are extracted.
60
+ /// \param __y
61
+ /// Specifies the index of the least significant bit at [13:8] and the
62
+ /// length at [5:0]; all other bits are ignored. If bits [5:0] are zero, the
63
+ /// length is interpreted as 64. If the sum of the index and length is
64
+ /// greater than 64, the result is undefined. If the length and index are
65
+ /// both zero, bits [63:0] of parameter \a __x are extracted. If the length
66
+ /// is zero but the index is non-zero, the result is undefined.
67
+ /// \returns A 128-bit vector whose lower 64 bits contain the bits extracted
68
+ /// from the source operand.
69
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
70
+ _mm_extract_si64(__m128i __x, __m128i __y)
71
+ {
72
+ return (__m128i)__builtin_ia32_extrq((__v2di)__x, (__v16qi)__y);
73
+ }
74
+
75
+ /// Inserts bits of a specified length from the source integer vector
76
+ /// \a y into the lower 64 bits of the destination integer vector \a x at
77
+ /// the index \a idx and of the length \a len.
78
+ ///
79
+ /// \headerfile <x86intrin.h>
80
+ ///
81
+ /// \code
82
+ /// __m128i _mm_inserti_si64(__m128i x, __m128i y, const int len,
83
+ /// const int idx);
84
+ /// \endcode
85
+ ///
86
+ /// This intrinsic corresponds to the <c> INSERTQ </c> instruction.
87
+ ///
88
+ /// \param x
89
+ /// The destination operand where bits will be inserted. The inserted bits
90
+ /// are defined by the length \a len and by the index \a idx specifying the
91
+ /// least significant bit.
92
+ /// \param y
93
+ /// The source operand containing the bits to be extracted. The extracted
94
+ /// bits are the least significant bits of operand \a y of length \a len.
95
+ /// \param len
96
+ /// Bits [5:0] specify the length; the other bits are ignored. If bits [5:0]
97
+ /// are zero, the length is interpreted as 64.
98
+ /// \param idx
99
+ /// Bits [5:0] specify the index of the least significant bit; the other
100
+ /// bits are ignored. If the sum of the index and length is greater than 64,
101
+ /// the result is undefined. If the length and index are both zero, bits
102
+ /// [63:0] of parameter \a y are inserted into parameter \a x. If the length
103
+ /// is zero but the index is non-zero, the result is undefined.
104
+ /// \returns A 128-bit integer vector containing the original lower 64-bits of
105
+ /// destination operand \a x with the specified bitfields replaced by the
106
+ /// lower bits of source operand \a y. The upper 64 bits of the return value
107
+ /// are undefined.
108
+ #define _mm_inserti_si64(x, y, len, idx) \
109
+ ((__m128i)__builtin_ia32_insertqi((__v2di)(__m128i)(x), \
110
+ (__v2di)(__m128i)(y), \
111
+ (char)(len), (char)(idx)))
112
+
113
+ /// Inserts bits of a specified length from the source integer vector
114
+ /// \a __y into the lower 64 bits of the destination integer vector \a __x
115
+ /// at the index and of the length specified by \a __y.
116
+ ///
117
+ /// \headerfile <x86intrin.h>
118
+ ///
119
+ /// This intrinsic corresponds to the <c> INSERTQ </c> instruction.
120
+ ///
121
+ /// \param __x
122
+ /// The destination operand where bits will be inserted. The inserted bits
123
+ /// are defined by the length and by the index of the least significant bit
124
+ /// specified by operand \a __y.
125
+ /// \param __y
126
+ /// The source operand containing the bits to be extracted. The extracted
127
+ /// bits are the least significant bits of operand \a __y with length
128
+ /// specified by bits [69:64]. These are inserted into the destination at the
129
+ /// index specified by bits [77:72]; all other bits are ignored. If bits
130
+ /// [69:64] are zero, the length is interpreted as 64. If the sum of the
131
+ /// index and length is greater than 64, the result is undefined. If the
132
+ /// length and index are both zero, bits [63:0] of parameter \a __y are
133
+ /// inserted into parameter \a __x. If the length is zero but the index is
134
+ /// non-zero, the result is undefined.
135
+ /// \returns A 128-bit integer vector containing the original lower 64-bits of
136
+ /// destination operand \a __x with the specified bitfields replaced by the
137
+ /// lower bits of source operand \a __y. The upper 64 bits of the return
138
+ /// value are undefined.
139
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
140
+ _mm_insert_si64(__m128i __x, __m128i __y)
141
+ {
142
+ return (__m128i)__builtin_ia32_insertq((__v2di)__x, (__v2di)__y);
143
+ }
144
+
145
+ /// Stores a 64-bit double-precision value in a 64-bit memory location.
146
+ /// To minimize caching, the data is flagged as non-temporal (unlikely to be
147
+ /// used again soon).
148
+ ///
149
+ /// \headerfile <x86intrin.h>
150
+ ///
151
+ /// This intrinsic corresponds to the <c> MOVNTSD </c> instruction.
152
+ ///
153
+ /// \param __p
154
+ /// The 64-bit memory location used to store the register value.
155
+ /// \param __a
156
+ /// The 64-bit double-precision floating-point register value to be stored.
157
+ static __inline__ void __DEFAULT_FN_ATTRS
158
+ _mm_stream_sd(double *__p, __m128d __a)
159
+ {
160
+ __builtin_ia32_movntsd(__p, (__v2df)__a);
161
+ }
162
+
163
+ /// Stores a 32-bit single-precision floating-point value in a 32-bit
164
+ /// memory location. To minimize caching, the data is flagged as
165
+ /// non-temporal (unlikely to be used again soon).
166
+ ///
167
+ /// \headerfile <x86intrin.h>
168
+ ///
169
+ /// This intrinsic corresponds to the <c> MOVNTSS </c> instruction.
170
+ ///
171
+ /// \param __p
172
+ /// The 32-bit memory location used to store the register value.
173
+ /// \param __a
174
+ /// The 32-bit single-precision floating-point register value to be stored.
175
+ static __inline__ void __DEFAULT_FN_ATTRS
176
+ _mm_stream_ss(float *__p, __m128 __a)
177
+ {
178
+ __builtin_ia32_movntss(__p, (__v4sf)__a);
179
+ }
180
+
181
+ #undef __DEFAULT_FN_ATTRS
182
+
183
+ #endif /* __AMMINTRIN_H */
@@ -0,0 +1,169 @@
1
+ /*===--------- amxcomplexintrin.h - AMXCOMPLEX intrinsics -*- C++ -*---------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===------------------------------------------------------------------------===
8
+ */
9
+
10
+ #ifndef __IMMINTRIN_H
11
+ #error "Never use <amxcomplexintrin.h> directly; include <immintrin.h> instead."
12
+ #endif // __IMMINTRIN_H
13
+
14
+ #ifndef __AMX_COMPLEXINTRIN_H
15
+ #define __AMX_COMPLEXINTRIN_H
16
+ #ifdef __x86_64__
17
+
18
+ #define __DEFAULT_FN_ATTRS_COMPLEX \
19
+ __attribute__((__always_inline__, __nodebug__, __target__("amx-complex")))
20
+
21
+ /// Perform matrix multiplication of two tiles containing complex elements and
22
+ /// accumulate the results into a packed single precision tile. Each dword
23
+ /// element in input tiles \a a and \a b is interpreted as a complex number
24
+ /// with FP16 real part and FP16 imaginary part.
25
+ /// Calculates the imaginary part of the result. For each possible combination
26
+ /// of (row of \a a, column of \a b), it performs a set of multiplication
27
+ /// and accumulations on all corresponding complex numbers (one from \a a
28
+ /// and one from \a b). The imaginary part of the \a a element is multiplied
29
+ /// with the real part of the corresponding \a b element, and the real part
30
+ /// of the \a a element is multiplied with the imaginary part of the
31
+ /// corresponding \a b elements. The two accumulated results are added, and
32
+ /// then accumulated into the corresponding row and column of \a dst.
33
+ ///
34
+ /// \headerfile <x86intrin.h>
35
+ ///
36
+ /// \code
37
+ /// void _tile_cmmimfp16ps(__tile dst, __tile a, __tile b);
38
+ /// \endcode
39
+ ///
40
+ /// \code{.operation}
41
+ /// FOR m := 0 TO dst.rows - 1
42
+ /// tmp := dst.row[m]
43
+ /// FOR k := 0 TO (a.colsb / 4) - 1
44
+ /// FOR n := 0 TO (dst.colsb / 4) - 1
45
+ /// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+0]) * FP32(b.row[k].fp16[2*n+1])
46
+ /// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+1]) * FP32(b.row[k].fp16[2*n+0])
47
+ /// ENDFOR
48
+ /// ENDFOR
49
+ /// write_row_and_zero(dst, m, tmp, dst.colsb)
50
+ /// ENDFOR
51
+ /// zero_upper_rows(dst, dst.rows)
52
+ /// zero_tileconfig_start()
53
+ /// \endcode
54
+ ///
55
+ /// This intrinsic corresponds to the \c TCMMIMFP16PS instruction.
56
+ ///
57
+ /// \param dst
58
+ /// The destination tile. Max size is 1024 Bytes.
59
+ /// \param a
60
+ /// The 1st source tile. Max size is 1024 Bytes.
61
+ /// \param b
62
+ /// The 2nd source tile. Max size is 1024 Bytes.
63
+ #define _tile_cmmimfp16ps(dst, a, b) __builtin_ia32_tcmmimfp16ps(dst, a, b)
64
+
65
+ /// Perform matrix multiplication of two tiles containing complex elements and
66
+ /// accumulate the results into a packed single precision tile. Each dword
67
+ /// element in input tiles \a a and \a b is interpreted as a complex number
68
+ /// with FP16 real part and FP16 imaginary part.
69
+ /// Calculates the real part of the result. For each possible combination
70
+ /// of (row of \a a, column of \a b), it performs a set of multiplication
71
+ /// and accumulations on all corresponding complex numbers (one from \a a
72
+ /// and one from \a b). The real part of the \a a element is multiplied
73
+ /// with the real part of the corresponding \a b element, and the negated
74
+ /// imaginary part of the \a a element is multiplied with the imaginary
75
+ /// part of the corresponding \a b elements. The two accumulated results
76
+ /// are added, and then accumulated into the corresponding row and column
77
+ /// of \a dst.
78
+ ///
79
+ /// \headerfile <x86intrin.h>
80
+ ///
81
+ /// \code
82
+ /// void _tile_cmmrlfp16ps(__tile dst, __tile a, __tile b);
83
+ /// \endcode
84
+ ///
85
+ /// \code{.operation}
86
+ /// FOR m := 0 TO dst.rows - 1
87
+ /// tmp := dst.row[m]
88
+ /// FOR k := 0 TO (a.colsb / 4) - 1
89
+ /// FOR n := 0 TO (dst.colsb / 4) - 1
90
+ /// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+0]) * FP32(b.row[k].fp16[2*n+0])
91
+ /// tmp.fp32[n] += FP32(-a.row[m].fp16[2*k+1]) * FP32(b.row[k].fp16[2*n+1])
92
+ /// ENDFOR
93
+ /// ENDFOR
94
+ /// write_row_and_zero(dst, m, tmp, dst.colsb)
95
+ /// ENDFOR
96
+ /// zero_upper_rows(dst, dst.rows)
97
+ /// zero_tileconfig_start()
98
+ /// \endcode
99
+ ///
100
+ /// This intrinsic corresponds to the \c TCMMIMFP16PS instruction.
101
+ ///
102
+ /// \param dst
103
+ /// The destination tile. Max size is 1024 Bytes.
104
+ /// \param a
105
+ /// The 1st source tile. Max size is 1024 Bytes.
106
+ /// \param b
107
+ /// The 2nd source tile. Max size is 1024 Bytes.
108
+ #define _tile_cmmrlfp16ps(dst, a, b) __builtin_ia32_tcmmrlfp16ps(dst, a, b)
109
+
110
+ static __inline__ _tile1024i __DEFAULT_FN_ATTRS_COMPLEX
111
+ _tile_cmmimfp16ps_internal(unsigned short m, unsigned short n, unsigned short k,
112
+ _tile1024i dst, _tile1024i src1, _tile1024i src2) {
113
+ return __builtin_ia32_tcmmimfp16ps_internal(m, n, k, dst, src1, src2);
114
+ }
115
+
116
+ static __inline__ _tile1024i __DEFAULT_FN_ATTRS_COMPLEX
117
+ _tile_cmmrlfp16ps_internal(unsigned short m, unsigned short n, unsigned short k,
118
+ _tile1024i dst, _tile1024i src1, _tile1024i src2) {
119
+ return __builtin_ia32_tcmmrlfp16ps_internal(m, n, k, dst, src1, src2);
120
+ }
121
+
122
+ /// Perform matrix multiplication of two tiles containing complex elements and
123
+ /// accumulate the results into a packed single precision tile. Each dword
124
+ /// element in input tiles src0 and src1 is interpreted as a complex number with
125
+ /// FP16 real part and FP16 imaginary part.
126
+ /// This function calculates the imaginary part of the result.
127
+ ///
128
+ /// \headerfile <immintrin.h>
129
+ ///
130
+ /// This intrinsic corresponds to the <c> TCMMIMFP16PS </c> instruction.
131
+ ///
132
+ /// \param dst
133
+ /// The destination tile. Max size is 1024 Bytes.
134
+ /// \param src0
135
+ /// The 1st source tile. Max size is 1024 Bytes.
136
+ /// \param src1
137
+ /// The 2nd source tile. Max size is 1024 Bytes.
138
+ __DEFAULT_FN_ATTRS_COMPLEX
139
+ static void __tile_cmmimfp16ps(__tile1024i *dst, __tile1024i src0,
140
+ __tile1024i src1) {
141
+ dst->tile = _tile_cmmimfp16ps_internal(src0.row, src1.col, src0.col,
142
+ dst->tile, src0.tile, src1.tile);
143
+ }
144
+
145
+ /// Perform matrix multiplication of two tiles containing complex elements and
146
+ /// accumulate the results into a packed single precision tile. Each dword
147
+ /// element in input tiles src0 and src1 is interpreted as a complex number with
148
+ /// FP16 real part and FP16 imaginary part.
149
+ /// This function calculates the real part of the result.
150
+ ///
151
+ /// \headerfile <immintrin.h>
152
+ ///
153
+ /// This intrinsic corresponds to the <c> TCMMRLFP16PS </c> instruction.
154
+ ///
155
+ /// \param dst
156
+ /// The destination tile. Max size is 1024 Bytes.
157
+ /// \param src0
158
+ /// The 1st source tile. Max size is 1024 Bytes.
159
+ /// \param src1
160
+ /// The 2nd source tile. Max size is 1024 Bytes.
161
+ __DEFAULT_FN_ATTRS_COMPLEX
162
+ static void __tile_cmmrlfp16ps(__tile1024i *dst, __tile1024i src0,
163
+ __tile1024i src1) {
164
+ dst->tile = _tile_cmmrlfp16ps_internal(src0.row, src1.col, src0.col,
165
+ dst->tile, src0.tile, src1.tile);
166
+ }
167
+
168
+ #endif // __x86_64__
169
+ #endif // __AMX_COMPLEXINTRIN_H
@@ -0,0 +1,58 @@
1
+ /*===------------- amxfp16intrin.h - AMX_FP16 intrinsics -*- C++ -*---------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===------------------------------------------------------------------------===
8
+ */
9
+
10
+ #ifndef __IMMINTRIN_H
11
+ #error "Never use <amxfp16intrin.h> directly; use <immintrin.h> instead."
12
+ #endif /* __IMMINTRIN_H */
13
+
14
+ #ifndef __AMX_FP16INTRIN_H
15
+ #define __AMX_FP16INTRIN_H
16
+ #ifdef __x86_64__
17
+
18
+ /// Compute dot-product of FP16 (16-bit) floating-point pairs in tiles \a a
19
+ /// and \a b, accumulating the intermediate single-precision (32-bit)
20
+ /// floating-point elements with elements in \a dst, and store the 32-bit
21
+ /// result back to tile \a dst.
22
+ ///
23
+ /// \headerfile <immintrin.h>
24
+ ///
25
+ /// \code
26
+ /// void _tile_dpfp16ps (__tile dst, __tile a, __tile b)
27
+ /// \endcode
28
+ ///
29
+ /// \code{.operation}
30
+ /// FOR m := 0 TO dst.rows - 1
31
+ /// tmp := dst.row[m]
32
+ /// FOR k := 0 TO (a.colsb / 4) - 1
33
+ /// FOR n := 0 TO (dst.colsb / 4) - 1
34
+ /// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+0]) *
35
+ /// FP32(b.row[k].fp16[2*n+0])
36
+ /// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+1]) *
37
+ /// FP32(b.row[k].fp16[2*n+1])
38
+ /// ENDFOR
39
+ /// ENDFOR
40
+ /// write_row_and_zero(dst, m, tmp, dst.colsb)
41
+ /// ENDFOR
42
+ /// zero_upper_rows(dst, dst.rows)
43
+ /// zero_tileconfig_start()
44
+ /// \endcode
45
+ ///
46
+ /// This intrinsic corresponds to the \c TDPFP16PS instruction.
47
+ ///
48
+ /// \param dst
49
+ /// The destination tile. Max size is 1024 Bytes.
50
+ /// \param a
51
+ /// The 1st source tile. Max size is 1024 Bytes.
52
+ /// \param b
53
+ /// The 2nd source tile. Max size is 1024 Bytes.
54
+ #define _tile_dpfp16ps(dst, a, b) \
55
+ __builtin_ia32_tdpfp16ps(dst, a, b)
56
+
57
+ #endif /* __x86_64__ */
58
+ #endif /* __AMX_FP16INTRIN_H */