llvm-runtime-resources-darwin 0.0.0 → 23.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +33 -0
  3. package/include/__clang_cuda_builtin_vars.h +121 -0
  4. package/include/__clang_cuda_cmath.h +512 -0
  5. package/include/__clang_cuda_complex_builtins.h +236 -0
  6. package/include/__clang_cuda_device_functions.h +1572 -0
  7. package/include/__clang_cuda_intrinsics.h +975 -0
  8. package/include/__clang_cuda_libdevice_declares.h +468 -0
  9. package/include/__clang_cuda_math.h +353 -0
  10. package/include/__clang_cuda_math_forward_declares.h +289 -0
  11. package/include/__clang_cuda_runtime_wrapper.h +526 -0
  12. package/include/__clang_cuda_texture_intrinsics.h +1177 -0
  13. package/include/__clang_gpu_builtin_vars.h +71 -0
  14. package/include/__clang_gpu_device_functions.h +411 -0
  15. package/include/__clang_gpu_intrinsics.h +242 -0
  16. package/include/__clang_hip_cmath.h +848 -0
  17. package/include/__clang_hip_libdevice_declares.h +238 -0
  18. package/include/__clang_hip_math.h +1405 -0
  19. package/include/__clang_hip_runtime_wrapper.h +170 -0
  20. package/include/__clang_hip_stdlib.h +43 -0
  21. package/include/__clang_spirv_builtins.h +217 -0
  22. package/include/__clang_spirv_libdevice_declares.h +170 -0
  23. package/include/__clang_spirv_math.h +719 -0
  24. package/include/__float_float.h +176 -0
  25. package/include/__float_header_macro.h +12 -0
  26. package/include/__float_infinity_nan.h +20 -0
  27. package/include/__stdarg___gnuc_va_list.h +13 -0
  28. package/include/__stdarg___va_copy.h +12 -0
  29. package/include/__stdarg_header_macro.h +12 -0
  30. package/include/__stdarg_va_arg.h +22 -0
  31. package/include/__stdarg_va_copy.h +12 -0
  32. package/include/__stdarg_va_list.h +13 -0
  33. package/include/__stddef_header_macro.h +12 -0
  34. package/include/__stddef_max_align_t.h +27 -0
  35. package/include/__stddef_null.h +29 -0
  36. package/include/__stddef_nullptr_t.h +29 -0
  37. package/include/__stddef_offsetof.h +17 -0
  38. package/include/__stddef_ptrdiff_t.h +20 -0
  39. package/include/__stddef_rsize_t.h +20 -0
  40. package/include/__stddef_size_t.h +20 -0
  41. package/include/__stddef_unreachable.h +21 -0
  42. package/include/__stddef_wchar_t.h +28 -0
  43. package/include/__stddef_wint_t.h +15 -0
  44. package/include/__wmmintrin_aes.h +140 -0
  45. package/include/__wmmintrin_pclmul.h +48 -0
  46. package/include/adcintrin.h +165 -0
  47. package/include/adxintrin.h +107 -0
  48. package/include/altivec.h +19434 -0
  49. package/include/amdgpuintrin.h +164 -0
  50. package/include/amdhsa_abi.h +83 -0
  51. package/include/ammintrin.h +183 -0
  52. package/include/amo.h +220 -0
  53. package/include/amxavx512intrin.h +596 -0
  54. package/include/amxcomplexintrin.h +167 -0
  55. package/include/amxfp16intrin.h +93 -0
  56. package/include/amxfp8intrin.h +230 -0
  57. package/include/amxintrin.h +492 -0
  58. package/include/amxmovrsintrin.h +48 -0
  59. package/include/andes_vector.h +21 -0
  60. package/include/arm64_neon.h +21 -0
  61. package/include/arm64intr.h +45 -0
  62. package/include/arm_acle.h +866 -0
  63. package/include/arm_bf16.h +20 -0
  64. package/include/arm_cde.h +410 -0
  65. package/include/arm_cmse.h +217 -0
  66. package/include/arm_fp16.h +596 -0
  67. package/include/arm_mve.h +19187 -0
  68. package/include/arm_neon.h +74351 -0
  69. package/include/arm_neon_sve_bridge.h +182 -0
  70. package/include/arm_sme.h +3753 -0
  71. package/include/arm_sve.h +32698 -0
  72. package/include/arm_vector_types.h +432 -0
  73. package/include/armintr.h +31 -0
  74. package/include/avx10_2_512bf16intrin.h +568 -0
  75. package/include/avx10_2_512convertintrin.h +322 -0
  76. package/include/avx10_2_512minmaxintrin.h +127 -0
  77. package/include/avx10_2_512niintrin.h +314 -0
  78. package/include/avx10_2_512satcvtdsintrin.h +307 -0
  79. package/include/avx10_2_512satcvtintrin.h +301 -0
  80. package/include/avx10_2bf16intrin.h +1094 -0
  81. package/include/avx10_2convertintrin.h +3257 -0
  82. package/include/avx10_2copyintrin.h +66 -0
  83. package/include/avx10_2minmaxintrin.h +232 -0
  84. package/include/avx10_2niintrin.h +409 -0
  85. package/include/avx10_2satcvtdsintrin.h +376 -0
  86. package/include/avx10_2satcvtintrin.h +312 -0
  87. package/include/avx2intrin.h +5190 -0
  88. package/include/avx512bf16intrin.h +292 -0
  89. package/include/avx512bitalgintrin.h +75 -0
  90. package/include/avx512bmmintrin.h +174 -0
  91. package/include/avx512bmmvlintrin.h +245 -0
  92. package/include/avx512bwintrin.h +1885 -0
  93. package/include/avx512cdintrin.h +112 -0
  94. package/include/avx512dqintrin.h +1350 -0
  95. package/include/avx512fintrin.h +9351 -0
  96. package/include/avx512fp16intrin.h +3349 -0
  97. package/include/avx512ifmaintrin.h +68 -0
  98. package/include/avx512ifmavlintrin.h +138 -0
  99. package/include/avx512vbmi2intrin.h +364 -0
  100. package/include/avx512vbmiintrin.h +98 -0
  101. package/include/avx512vbmivlintrin.h +179 -0
  102. package/include/avx512vlbf16intrin.h +527 -0
  103. package/include/avx512vlbitalgintrin.h +135 -0
  104. package/include/avx512vlbwintrin.h +3052 -0
  105. package/include/avx512vlcdintrin.h +202 -0
  106. package/include/avx512vldqintrin.h +1156 -0
  107. package/include/avx512vlfp16intrin.h +2090 -0
  108. package/include/avx512vlintrin.h +8067 -0
  109. package/include/avx512vlvbmi2intrin.h +702 -0
  110. package/include/avx512vlvnniintrin.h +308 -0
  111. package/include/avx512vlvp2intersectintrin.h +123 -0
  112. package/include/avx512vnniintrin.h +113 -0
  113. package/include/avx512vp2intersectintrin.h +77 -0
  114. package/include/avx512vpopcntdqintrin.h +62 -0
  115. package/include/avx512vpopcntdqvlintrin.h +105 -0
  116. package/include/avxifmaintrin.h +193 -0
  117. package/include/avxintrin.h +5064 -0
  118. package/include/avxneconvertintrin.h +484 -0
  119. package/include/avxvnniint16intrin.h +451 -0
  120. package/include/avxvnniint8intrin.h +454 -0
  121. package/include/avxvnniintrin.h +238 -0
  122. package/include/bmi2intrin.h +253 -0
  123. package/include/bmiintrin.h +604 -0
  124. package/include/builtins.h +19 -0
  125. package/include/cet.h +66 -0
  126. package/include/cetintrin.h +115 -0
  127. package/include/cldemoteintrin.h +36 -0
  128. package/include/clflushoptintrin.h +36 -0
  129. package/include/clwbintrin.h +38 -0
  130. package/include/clzerointrin.h +38 -0
  131. package/include/cmpccxaddintrin.h +70 -0
  132. package/include/cpuid.h +451 -0
  133. package/include/crc32intrin.h +102 -0
  134. package/include/cuda_wrappers/__utility/declval.h +28 -0
  135. package/include/cuda_wrappers/algorithm +116 -0
  136. package/include/cuda_wrappers/bits/basic_string.h +9 -0
  137. package/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  138. package/include/cuda_wrappers/bits/c++config.h +61 -0
  139. package/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  140. package/include/cuda_wrappers/cmath +44 -0
  141. package/include/cuda_wrappers/complex +90 -0
  142. package/include/cuda_wrappers/new +108 -0
  143. package/include/emmintrin.h +4940 -0
  144. package/include/endian.h +91 -0
  145. package/include/enqcmdintrin.h +63 -0
  146. package/include/f16cintrin.h +176 -0
  147. package/include/float.h +48 -0
  148. package/include/fma4intrin.h +220 -0
  149. package/include/fmaintrin.h +826 -0
  150. package/include/fuzzer/FuzzedDataProvider.h +397 -0
  151. package/include/fxsrintrin.h +91 -0
  152. package/include/gfniintrin.h +238 -0
  153. package/include/gpuintrin.h +348 -0
  154. package/include/hexagon_circ_brev_intrinsics.h +298 -0
  155. package/include/hexagon_protos.h +8439 -0
  156. package/include/hexagon_types.h +2628 -0
  157. package/include/hlsl_alias_intrinsics_gen.inc +3869 -0
  158. package/include/hlsl_inline_intrinsics_gen.inc +546 -0
  159. package/include/hresetintrin.h +49 -0
  160. package/include/htmintrin.h +212 -0
  161. package/include/htmxlintrin.h +345 -0
  162. package/include/hvx_hexagon_protos.h +5421 -0
  163. package/include/ia32intrin.h +863 -0
  164. package/include/immintrin.h +597 -0
  165. package/include/intrin.h +501 -0
  166. package/include/intrin0.h +256 -0
  167. package/include/inttypes.h +101 -0
  168. package/include/invpcidintrin.h +23 -0
  169. package/include/iso646.h +31 -0
  170. package/include/keylockerintrin.h +518 -0
  171. package/include/larchintrin.h +262 -0
  172. package/include/lasxintrin.h +3999 -0
  173. package/include/limits.h +133 -0
  174. package/include/llvm_libc_wrappers/assert.h +32 -0
  175. package/include/llvm_libc_wrappers/ctype.h +29 -0
  176. package/include/llvm_libc_wrappers/inttypes.h +32 -0
  177. package/include/llvm_libc_wrappers/stdio.h +52 -0
  178. package/include/llvm_libc_wrappers/stdlib.h +32 -0
  179. package/include/llvm_libc_wrappers/string.h +29 -0
  180. package/include/llvm_libc_wrappers/time.h +28 -0
  181. package/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  182. package/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  183. package/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  184. package/include/lsxintrin.h +3752 -0
  185. package/include/lwpintrin.h +136 -0
  186. package/include/lzcntintrin.h +109 -0
  187. package/include/mm3dnow.h +22 -0
  188. package/include/mm_malloc.h +67 -0
  189. package/include/mmintrin.h +1541 -0
  190. package/include/module.modulemap +375 -0
  191. package/include/movdirintrin.h +49 -0
  192. package/include/movrs_avx10_2_512intrin.h +98 -0
  193. package/include/movrs_avx10_2intrin.h +174 -0
  194. package/include/movrsintrin.h +59 -0
  195. package/include/msa.h +573 -0
  196. package/include/mwaitxintrin.h +62 -0
  197. package/include/nmmintrin.h +20 -0
  198. package/include/nvptxintrin.h +208 -0
  199. package/include/opencl-c-base.h +765 -0
  200. package/include/opencl-c.h +18737 -0
  201. package/include/openmp_wrappers/__clang_openmp_device_functions.h +118 -0
  202. package/include/openmp_wrappers/cmath +132 -0
  203. package/include/openmp_wrappers/complex +61 -0
  204. package/include/openmp_wrappers/complex.h +41 -0
  205. package/include/openmp_wrappers/complex_cmath.h +393 -0
  206. package/include/openmp_wrappers/math.h +71 -0
  207. package/include/openmp_wrappers/new +48 -0
  208. package/include/pconfigintrin.h +40 -0
  209. package/include/pkuintrin.h +34 -0
  210. package/include/pmmintrin.h +302 -0
  211. package/include/popcntintrin.h +59 -0
  212. package/include/ppc_wrappers/bmi2intrin.h +134 -0
  213. package/include/ppc_wrappers/bmiintrin.h +165 -0
  214. package/include/ppc_wrappers/emmintrin.h +2269 -0
  215. package/include/ppc_wrappers/immintrin.h +27 -0
  216. package/include/ppc_wrappers/mm_malloc.h +45 -0
  217. package/include/ppc_wrappers/mmintrin.h +1453 -0
  218. package/include/ppc_wrappers/nmmintrin.h +26 -0
  219. package/include/ppc_wrappers/pmmintrin.h +145 -0
  220. package/include/ppc_wrappers/smmintrin.h +683 -0
  221. package/include/ppc_wrappers/tmmintrin.h +453 -0
  222. package/include/ppc_wrappers/x86gprintrin.h +17 -0
  223. package/include/ppc_wrappers/x86intrin.h +28 -0
  224. package/include/ppc_wrappers/xmmintrin.h +1827 -0
  225. package/include/prfchiintrin.h +61 -0
  226. package/include/prfchwintrin.h +57 -0
  227. package/include/profile/InstrProfData.inc +1063 -0
  228. package/include/profile/instr_prof_interface.h +88 -0
  229. package/include/ptrauth.h +485 -0
  230. package/include/ptwriteintrin.h +37 -0
  231. package/include/raointintrin.h +203 -0
  232. package/include/rdpruintrin.h +57 -0
  233. package/include/rdseedintrin.h +105 -0
  234. package/include/riscv_bitmanip.h +202 -0
  235. package/include/riscv_corev_alu.h +130 -0
  236. package/include/riscv_crypto.h +178 -0
  237. package/include/riscv_mips.h +36 -0
  238. package/include/riscv_nds.h +92 -0
  239. package/include/riscv_ntlh.h +28 -0
  240. package/include/riscv_packed_simd.h +644 -0
  241. package/include/riscv_vector.h +465 -0
  242. package/include/rtmintrin.h +45 -0
  243. package/include/s390intrin.h +25 -0
  244. package/include/sanitizer/allocator_interface.h +106 -0
  245. package/include/sanitizer/asan_interface.h +398 -0
  246. package/include/sanitizer/common_interface_defs.h +507 -0
  247. package/include/sanitizer/coverage_interface.h +36 -0
  248. package/include/sanitizer/dfsan_interface.h +220 -0
  249. package/include/sanitizer/hwasan_interface.h +109 -0
  250. package/include/sanitizer/linux_syscall_hooks.h +3112 -0
  251. package/include/sanitizer/lsan_interface.h +89 -0
  252. package/include/sanitizer/msan_interface.h +135 -0
  253. package/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
  254. package/include/sanitizer/rtsan_interface.h +75 -0
  255. package/include/sanitizer/safestack_interface.h +50 -0
  256. package/include/sanitizer/scudo_interface.h +38 -0
  257. package/include/sanitizer/tsan_interface.h +316 -0
  258. package/include/sanitizer/tsan_interface_atomic.h +223 -0
  259. package/include/sanitizer/tysan_interface.h +36 -0
  260. package/include/sanitizer/ubsan_interface.h +64 -0
  261. package/include/serializeintrin.h +30 -0
  262. package/include/sgxintrin.h +60 -0
  263. package/include/sha512intrin.h +200 -0
  264. package/include/shaintrin.h +190 -0
  265. package/include/sifive_vector.h +192 -0
  266. package/include/sm3intrin.h +238 -0
  267. package/include/sm4evexintrin.h +32 -0
  268. package/include/sm4intrin.h +269 -0
  269. package/include/smmintrin.h +2352 -0
  270. package/include/spirvintrin.h +167 -0
  271. package/include/stdalign.h +24 -0
  272. package/include/stdarg.h +75 -0
  273. package/include/stdatomic.h +204 -0
  274. package/include/stdbool.h +39 -0
  275. package/include/stdckdint.h +42 -0
  276. package/include/stdcountof.h +15 -0
  277. package/include/stddef.h +139 -0
  278. package/include/stddefer.h +19 -0
  279. package/include/stdint.h +835 -0
  280. package/include/stdnoreturn.h +35 -0
  281. package/include/tbmintrin.h +128 -0
  282. package/include/tgmath.h +1368 -0
  283. package/include/tmmintrin.h +779 -0
  284. package/include/tsxldtrkintrin.h +56 -0
  285. package/include/uintrintrin.h +157 -0
  286. package/include/unwind.h +332 -0
  287. package/include/usermsrintrin.h +51 -0
  288. package/include/vadefs.h +51 -0
  289. package/include/vaesintrin.h +86 -0
  290. package/include/varargs.h +16 -0
  291. package/include/vecintrin.h +12868 -0
  292. package/include/velintrin.h +71 -0
  293. package/include/velintrin_approx.h +120 -0
  294. package/include/velintrin_gen.h +1257 -0
  295. package/include/vpclmulqdqintrin.h +30 -0
  296. package/include/waitpkgintrin.h +42 -0
  297. package/include/wasm_simd128.h +2160 -0
  298. package/include/wbnoinvdintrin.h +24 -0
  299. package/include/wmmintrin.h +23 -0
  300. package/include/x86gprintrin.h +49 -0
  301. package/include/x86intrin.h +35 -0
  302. package/include/xmmintrin.h +3176 -0
  303. package/include/xopintrin.h +780 -0
  304. package/include/xsavecintrin.h +84 -0
  305. package/include/xsaveintrin.h +63 -0
  306. package/include/xsaveoptintrin.h +34 -0
  307. package/include/xsavesintrin.h +44 -0
  308. package/include/xtestintrin.h +27 -0
  309. package/include/yvals_core.h +25 -0
  310. package/include/zos_wrappers/builtins.h +18 -0
  311. package/include/zos_wrappers/grp.h +19 -0
  312. package/include/zos_wrappers/locale.h +19 -0
  313. package/include/zos_wrappers/math.h +31 -0
  314. package/include/zos_wrappers/poll.h +19 -0
  315. package/include/zos_wrappers/stdlib.h +20 -0
  316. package/include/zos_wrappers/string.h +19 -0
  317. package/include/zos_wrappers/time.h +19 -0
  318. package/include/zos_wrappers/variant.h +19 -0
  319. package/index.js +5 -0
  320. package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
  321. package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
  322. package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
  323. package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
  324. package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  325. package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  326. package/lib/darwin/libclang_rt.cc_kext.a +0 -0
  327. package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
  328. package/lib/darwin/libclang_rt.fuzzer_interceptors_ios.a +0 -0
  329. package/lib/darwin/libclang_rt.fuzzer_interceptors_iossim.a +0 -0
  330. package/lib/darwin/libclang_rt.fuzzer_interceptors_osx.a +0 -0
  331. package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
  332. package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
  333. package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
  334. package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
  335. package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
  336. package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
  337. package/lib/darwin/libclang_rt.ios.a +0 -0
  338. package/lib/darwin/libclang_rt.iossim.a +0 -0
  339. package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
  340. package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
  341. package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
  342. package/lib/darwin/libclang_rt.osx.a +0 -0
  343. package/lib/darwin/libclang_rt.profile_ios.a +0 -0
  344. package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
  345. package/lib/darwin/libclang_rt.profile_osx.a +0 -0
  346. package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
  347. package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
  348. package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
  349. package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
  350. package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
  351. package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
  352. package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
  353. package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
  354. package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
  355. package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
  356. package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
  357. package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
  358. package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
  359. package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
  360. package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
  361. package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
  362. package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  363. package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
  364. package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
  365. package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
  366. package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
  367. package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
  368. package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
  369. package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  370. package/package.json +40 -1
  371. package/share/asan_ignorelist.txt +14 -0
  372. package/share/cfi_ignorelist.txt +17 -0
@@ -0,0 +1,269 @@
1
+ /*===--------------- sm4intrin.h - SM4 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 __IMMINTRIN_H
11
+ #error "Never use <sm4intrin.h> directly; include <immintrin.h> instead."
12
+ #endif // __IMMINTRIN_H
13
+
14
+ #ifndef __SM4INTRIN_H
15
+ #define __SM4INTRIN_H
16
+
17
+ /// This intrinsic performs four rounds of SM4 key expansion. The intrinsic
18
+ /// operates on independent 128-bit lanes. The calculated results are
19
+ /// stored in \a dst.
20
+ /// \headerfile <immintrin.h>
21
+ ///
22
+ /// \code
23
+ /// __m128i _mm_sm4key4_epi32(__m128i __A, __m128i __B)
24
+ /// \endcode
25
+ ///
26
+ /// This intrinsic corresponds to the \c VSM4KEY4 instruction.
27
+ ///
28
+ /// \param __A
29
+ /// A 128-bit vector of [4 x int].
30
+ /// \param __B
31
+ /// A 128-bit vector of [4 x int].
32
+ /// \returns
33
+ /// A 128-bit vector of [4 x int].
34
+ ///
35
+ /// \code{.operation}
36
+ /// DEFINE ROL32(dword, n) {
37
+ /// count := n % 32
38
+ /// dest := (dword << count) | (dword >> (32-count))
39
+ /// RETURN dest
40
+ /// }
41
+ /// DEFINE SBOX_BYTE(dword, i) {
42
+ /// RETURN sbox[dword.byte[i]]
43
+ /// }
44
+ /// DEFINE lower_t(dword) {
45
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
46
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
47
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
48
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
49
+ /// RETURN tmp
50
+ /// }
51
+ /// DEFINE L_KEY(dword) {
52
+ /// RETURN dword ^ ROL32(dword, 13) ^ ROL32(dword, 23)
53
+ /// }
54
+ /// DEFINE T_KEY(dword) {
55
+ /// RETURN L_KEY(lower_t(dword))
56
+ /// }
57
+ /// DEFINE F_KEY(X0, X1, X2, X3, round_key) {
58
+ /// RETURN X0 ^ T_KEY(X1 ^ X2 ^ X3 ^ round_key)
59
+ /// }
60
+ /// FOR i:= 0 to 0
61
+ /// P[0] := __B.xmm[i].dword[0]
62
+ /// P[1] := __B.xmm[i].dword[1]
63
+ /// P[2] := __B.xmm[i].dword[2]
64
+ /// P[3] := __B.xmm[i].dword[3]
65
+ /// C[0] := F_KEY(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
66
+ /// C[1] := F_KEY(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
67
+ /// C[2] := F_KEY(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
68
+ /// C[3] := F_KEY(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
69
+ /// DEST.xmm[i].dword[0] := C[0]
70
+ /// DEST.xmm[i].dword[1] := C[1]
71
+ /// DEST.xmm[i].dword[2] := C[2]
72
+ /// DEST.xmm[i].dword[3] := C[3]
73
+ /// ENDFOR
74
+ /// DEST[MAX:128] := 0
75
+ /// \endcode
76
+ #define _mm_sm4key4_epi32(A, B) \
77
+ (__m128i) __builtin_ia32_vsm4key4128((__v4su)A, (__v4su)B)
78
+
79
+ /// This intrinsic performs four rounds of SM4 key expansion. The intrinsic
80
+ /// operates on independent 128-bit lanes. The calculated results are
81
+ /// stored in \a dst.
82
+ /// \headerfile <immintrin.h>
83
+ ///
84
+ /// \code
85
+ /// __m256i _mm256_sm4key4_epi32(__m256i __A, __m256i __B)
86
+ /// \endcode
87
+ ///
88
+ /// This intrinsic corresponds to the \c VSM4KEY4 instruction.
89
+ ///
90
+ /// \param __A
91
+ /// A 256-bit vector of [8 x int].
92
+ /// \param __B
93
+ /// A 256-bit vector of [8 x int].
94
+ /// \returns
95
+ /// A 256-bit vector of [8 x int].
96
+ ///
97
+ /// \code{.operation}
98
+ /// DEFINE ROL32(dword, n) {
99
+ /// count := n % 32
100
+ /// dest := (dword << count) | (dword >> (32-count))
101
+ /// RETURN dest
102
+ /// }
103
+ /// DEFINE SBOX_BYTE(dword, i) {
104
+ /// RETURN sbox[dword.byte[i]]
105
+ /// }
106
+ /// DEFINE lower_t(dword) {
107
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
108
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
109
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
110
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
111
+ /// RETURN tmp
112
+ /// }
113
+ /// DEFINE L_KEY(dword) {
114
+ /// RETURN dword ^ ROL32(dword, 13) ^ ROL32(dword, 23)
115
+ /// }
116
+ /// DEFINE T_KEY(dword) {
117
+ /// RETURN L_KEY(lower_t(dword))
118
+ /// }
119
+ /// DEFINE F_KEY(X0, X1, X2, X3, round_key) {
120
+ /// RETURN X0 ^ T_KEY(X1 ^ X2 ^ X3 ^ round_key)
121
+ /// }
122
+ /// FOR i:= 0 to 1
123
+ /// P[0] := __B.xmm[i].dword[0]
124
+ /// P[1] := __B.xmm[i].dword[1]
125
+ /// P[2] := __B.xmm[i].dword[2]
126
+ /// P[3] := __B.xmm[i].dword[3]
127
+ /// C[0] := F_KEY(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
128
+ /// C[1] := F_KEY(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
129
+ /// C[2] := F_KEY(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
130
+ /// C[3] := F_KEY(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
131
+ /// DEST.xmm[i].dword[0] := C[0]
132
+ /// DEST.xmm[i].dword[1] := C[1]
133
+ /// DEST.xmm[i].dword[2] := C[2]
134
+ /// DEST.xmm[i].dword[3] := C[3]
135
+ /// ENDFOR
136
+ /// DEST[MAX:256] := 0
137
+ /// \endcode
138
+ #define _mm256_sm4key4_epi32(A, B) \
139
+ (__m256i) __builtin_ia32_vsm4key4256((__v8su)A, (__v8su)B)
140
+
141
+ /// This intrinisc performs four rounds of SM4 encryption. The intrinisc
142
+ /// operates on independent 128-bit lanes. The calculated results are
143
+ /// stored in \a dst.
144
+ /// \headerfile <immintrin.h>
145
+ ///
146
+ /// \code
147
+ /// __m128i _mm_sm4rnds4_epi32(__m128i __A, __m128i __B)
148
+ /// \endcode
149
+ ///
150
+ /// This intrinsic corresponds to the \c VSM4RNDS4 instruction.
151
+ ///
152
+ /// \param __A
153
+ /// A 128-bit vector of [4 x int].
154
+ /// \param __B
155
+ /// A 128-bit vector of [4 x int].
156
+ /// \returns
157
+ /// A 128-bit vector of [4 x int].
158
+ ///
159
+ /// \code{.operation}
160
+ /// DEFINE ROL32(dword, n) {
161
+ /// count := n % 32
162
+ /// dest := (dword << count) | (dword >> (32-count))
163
+ /// RETURN dest
164
+ /// }
165
+ /// DEFINE lower_t(dword) {
166
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
167
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
168
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
169
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
170
+ /// RETURN tmp
171
+ /// }
172
+ /// DEFINE L_RND(dword) {
173
+ /// tmp := dword
174
+ /// tmp := tmp ^ ROL32(dword, 2)
175
+ /// tmp := tmp ^ ROL32(dword, 10)
176
+ /// tmp := tmp ^ ROL32(dword, 18)
177
+ /// tmp := tmp ^ ROL32(dword, 24)
178
+ /// RETURN tmp
179
+ /// }
180
+ /// DEFINE T_RND(dword) {
181
+ /// RETURN L_RND(lower_t(dword))
182
+ /// }
183
+ /// DEFINE F_RND(X0, X1, X2, X3, round_key) {
184
+ /// RETURN X0 ^ T_RND(X1 ^ X2 ^ X3 ^ round_key)
185
+ /// }
186
+ /// FOR i:= 0 to 0
187
+ /// P[0] := __B.xmm[i].dword[0]
188
+ /// P[1] := __B.xmm[i].dword[1]
189
+ /// P[2] := __B.xmm[i].dword[2]
190
+ /// P[3] := __B.xmm[i].dword[3]
191
+ /// C[0] := F_RND(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
192
+ /// C[1] := F_RND(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
193
+ /// C[2] := F_RND(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
194
+ /// C[3] := F_RND(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
195
+ /// DEST.xmm[i].dword[0] := C[0]
196
+ /// DEST.xmm[i].dword[1] := C[1]
197
+ /// DEST.xmm[i].dword[2] := C[2]
198
+ /// DEST.xmm[i].dword[3] := C[3]
199
+ /// ENDFOR
200
+ /// DEST[MAX:128] := 0
201
+ /// \endcode
202
+ #define _mm_sm4rnds4_epi32(A, B) \
203
+ (__m128i) __builtin_ia32_vsm4rnds4128((__v4su)A, (__v4su)B)
204
+
205
+ /// This intrinisc performs four rounds of SM4 encryption. The intrinisc
206
+ /// operates on independent 128-bit lanes. The calculated results are
207
+ /// stored in \a dst.
208
+ /// \headerfile <immintrin.h>
209
+ ///
210
+ /// \code
211
+ /// __m256i _mm256_sm4rnds4_epi32(__m256i __A, __m256i __B)
212
+ /// \endcode
213
+ ///
214
+ /// This intrinsic corresponds to the \c VSM4RNDS4 instruction.
215
+ ///
216
+ /// \param __A
217
+ /// A 256-bit vector of [8 x int].
218
+ /// \param __B
219
+ /// A 256-bit vector of [8 x int].
220
+ /// \returns
221
+ /// A 256-bit vector of [8 x int].
222
+ ///
223
+ /// \code{.operation}
224
+ /// DEFINE ROL32(dword, n) {
225
+ /// count := n % 32
226
+ /// dest := (dword << count) | (dword >> (32-count))
227
+ /// RETURN dest
228
+ /// }
229
+ /// DEFINE lower_t(dword) {
230
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
231
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
232
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
233
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
234
+ /// RETURN tmp
235
+ /// }
236
+ /// DEFINE L_RND(dword) {
237
+ /// tmp := dword
238
+ /// tmp := tmp ^ ROL32(dword, 2)
239
+ /// tmp := tmp ^ ROL32(dword, 10)
240
+ /// tmp := tmp ^ ROL32(dword, 18)
241
+ /// tmp := tmp ^ ROL32(dword, 24)
242
+ /// RETURN tmp
243
+ /// }
244
+ /// DEFINE T_RND(dword) {
245
+ /// RETURN L_RND(lower_t(dword))
246
+ /// }
247
+ /// DEFINE F_RND(X0, X1, X2, X3, round_key) {
248
+ /// RETURN X0 ^ T_RND(X1 ^ X2 ^ X3 ^ round_key)
249
+ /// }
250
+ /// FOR i:= 0 to 0
251
+ /// P[0] := __B.xmm[i].dword[0]
252
+ /// P[1] := __B.xmm[i].dword[1]
253
+ /// P[2] := __B.xmm[i].dword[2]
254
+ /// P[3] := __B.xmm[i].dword[3]
255
+ /// C[0] := F_RND(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
256
+ /// C[1] := F_RND(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
257
+ /// C[2] := F_RND(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
258
+ /// C[3] := F_RND(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
259
+ /// DEST.xmm[i].dword[0] := C[0]
260
+ /// DEST.xmm[i].dword[1] := C[1]
261
+ /// DEST.xmm[i].dword[2] := C[2]
262
+ /// DEST.xmm[i].dword[3] := C[3]
263
+ /// ENDFOR
264
+ /// DEST[MAX:256] := 0
265
+ /// \endcode
266
+ #define _mm256_sm4rnds4_epi32(A, B) \
267
+ (__m256i) __builtin_ia32_vsm4rnds4256((__v8su)A, (__v8su)B)
268
+
269
+ #endif // __SM4INTRIN_H