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,1885 @@
1
+ /*===------------- avx512bwintrin.h - AVX512BW 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 <avx512bwintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __AVX512BWINTRIN_H
15
+ #define __AVX512BWINTRIN_H
16
+
17
+ typedef unsigned int __mmask32;
18
+ typedef unsigned long long __mmask64;
19
+
20
+ /* Define the default attributes for the functions in this file. */
21
+ #define __DEFAULT_FN_ATTRS512 \
22
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), \
23
+ __min_vector_width__(512)))
24
+ #define __DEFAULT_FN_ATTRS \
25
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512bw")))
26
+
27
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
28
+ #define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512 constexpr
29
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
30
+ #else
31
+ #define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512
32
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
33
+ #endif
34
+
35
+ static __inline __mmask32
36
+ __DEFAULT_FN_ATTRS_CONSTEXPR _knot_mask32(__mmask32 __M) {
37
+ return __builtin_ia32_knotsi(__M);
38
+ }
39
+
40
+ static __inline __mmask64 __DEFAULT_FN_ATTRS_CONSTEXPR
41
+ _knot_mask64(__mmask64 __M) {
42
+ return __builtin_ia32_knotdi(__M);
43
+ }
44
+
45
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS_CONSTEXPR
46
+ _kand_mask32(__mmask32 __A, __mmask32 __B) {
47
+ return (__mmask32)__builtin_ia32_kandsi((__mmask32)__A, (__mmask32)__B);
48
+ }
49
+
50
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS_CONSTEXPR
51
+ _kand_mask64(__mmask64 __A, __mmask64 __B) {
52
+ return (__mmask64)__builtin_ia32_kanddi((__mmask64)__A, (__mmask64)__B);
53
+ }
54
+
55
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS_CONSTEXPR
56
+ _kandn_mask32(__mmask32 __A, __mmask32 __B) {
57
+ return (__mmask32)__builtin_ia32_kandnsi((__mmask32)__A, (__mmask32)__B);
58
+ }
59
+
60
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS_CONSTEXPR
61
+ _kandn_mask64(__mmask64 __A, __mmask64 __B) {
62
+ return (__mmask64)__builtin_ia32_kandndi((__mmask64)__A, (__mmask64)__B);
63
+ }
64
+
65
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS_CONSTEXPR
66
+ _kor_mask32(__mmask32 __A, __mmask32 __B) {
67
+ return (__mmask32)__builtin_ia32_korsi((__mmask32)__A, (__mmask32)__B);
68
+ }
69
+
70
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS_CONSTEXPR
71
+ _kor_mask64(__mmask64 __A, __mmask64 __B) {
72
+ return (__mmask64)__builtin_ia32_kordi((__mmask64)__A, (__mmask64)__B);
73
+ }
74
+
75
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS_CONSTEXPR
76
+ _kxnor_mask32(__mmask32 __A, __mmask32 __B) {
77
+ return (__mmask32)__builtin_ia32_kxnorsi((__mmask32)__A, (__mmask32)__B);
78
+ }
79
+
80
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS_CONSTEXPR
81
+ _kxnor_mask64(__mmask64 __A, __mmask64 __B) {
82
+ return (__mmask64)__builtin_ia32_kxnordi((__mmask64)__A, (__mmask64)__B);
83
+ }
84
+
85
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS_CONSTEXPR
86
+ _kxor_mask32(__mmask32 __A, __mmask32 __B) {
87
+ return (__mmask32)__builtin_ia32_kxorsi((__mmask32)__A, (__mmask32)__B);
88
+ }
89
+
90
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS_CONSTEXPR
91
+ _kxor_mask64(__mmask64 __A, __mmask64 __B) {
92
+ return (__mmask64)__builtin_ia32_kxordi((__mmask64)__A, (__mmask64)__B);
93
+ }
94
+
95
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
96
+ _kortestc_mask32_u8(__mmask32 __A, __mmask32 __B) {
97
+ return (unsigned char)__builtin_ia32_kortestcsi(__A, __B);
98
+ }
99
+
100
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
101
+ _kortestz_mask32_u8(__mmask32 __A, __mmask32 __B) {
102
+ return (unsigned char)__builtin_ia32_kortestzsi(__A, __B);
103
+ }
104
+
105
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
106
+ _kortest_mask32_u8(__mmask32 __A, __mmask32 __B, unsigned char *__C) {
107
+ *__C = (unsigned char)__builtin_ia32_kortestcsi(__A, __B);
108
+ return (unsigned char)__builtin_ia32_kortestzsi(__A, __B);
109
+ }
110
+
111
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
112
+ _kortestc_mask64_u8(__mmask64 __A, __mmask64 __B) {
113
+ return (unsigned char)__builtin_ia32_kortestcdi(__A, __B);
114
+ }
115
+
116
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
117
+ _kortestz_mask64_u8(__mmask64 __A, __mmask64 __B) {
118
+ return (unsigned char)__builtin_ia32_kortestzdi(__A, __B);
119
+ }
120
+
121
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
122
+ _kortest_mask64_u8(__mmask64 __A, __mmask64 __B, unsigned char *__C) {
123
+ *__C = (unsigned char)__builtin_ia32_kortestcdi(__A, __B);
124
+ return (unsigned char)__builtin_ia32_kortestzdi(__A, __B);
125
+ }
126
+
127
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
128
+ _ktestc_mask32_u8(__mmask32 __A, __mmask32 __B) {
129
+ return (unsigned char)__builtin_ia32_ktestcsi(__A, __B);
130
+ }
131
+
132
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
133
+ _ktestz_mask32_u8(__mmask32 __A, __mmask32 __B) {
134
+ return (unsigned char)__builtin_ia32_ktestzsi(__A, __B);
135
+ }
136
+
137
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
138
+ _ktest_mask32_u8(__mmask32 __A, __mmask32 __B, unsigned char *__C) {
139
+ *__C = (unsigned char)__builtin_ia32_ktestcsi(__A, __B);
140
+ return (unsigned char)__builtin_ia32_ktestzsi(__A, __B);
141
+ }
142
+
143
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
144
+ _ktestc_mask64_u8(__mmask64 __A, __mmask64 __B) {
145
+ return (unsigned char)__builtin_ia32_ktestcdi(__A, __B);
146
+ }
147
+
148
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
149
+ _ktestz_mask64_u8(__mmask64 __A, __mmask64 __B) {
150
+ return (unsigned char)__builtin_ia32_ktestzdi(__A, __B);
151
+ }
152
+
153
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
154
+ _ktest_mask64_u8(__mmask64 __A, __mmask64 __B, unsigned char *__C) {
155
+ *__C = (unsigned char)__builtin_ia32_ktestcdi(__A, __B);
156
+ return (unsigned char)__builtin_ia32_ktestzdi(__A, __B);
157
+ }
158
+
159
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS_CONSTEXPR
160
+ _kadd_mask32(__mmask32 __A, __mmask32 __B) {
161
+ return (__mmask32)__builtin_ia32_kaddsi((__mmask32)__A, (__mmask32)__B);
162
+ }
163
+
164
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS_CONSTEXPR
165
+ _kadd_mask64(__mmask64 __A, __mmask64 __B) {
166
+ return (__mmask64)__builtin_ia32_kadddi((__mmask64)__A, (__mmask64)__B);
167
+ }
168
+
169
+ #define _kshiftli_mask32(A, I) \
170
+ ((__mmask32)__builtin_ia32_kshiftlisi((__mmask32)(A), (unsigned int)(I)))
171
+
172
+ #define _kshiftri_mask32(A, I) \
173
+ ((__mmask32)__builtin_ia32_kshiftrisi((__mmask32)(A), (unsigned int)(I)))
174
+
175
+ #define _kshiftli_mask64(A, I) \
176
+ ((__mmask64)__builtin_ia32_kshiftlidi((__mmask64)(A), (unsigned int)(I)))
177
+
178
+ #define _kshiftri_mask64(A, I) \
179
+ ((__mmask64)__builtin_ia32_kshiftridi((__mmask64)(A), (unsigned int)(I)))
180
+
181
+ static __inline__ unsigned int
182
+ __DEFAULT_FN_ATTRS_CONSTEXPR _cvtmask32_u32(__mmask32 __A) {
183
+ return (unsigned int)__builtin_ia32_kmovd((__mmask32)__A);
184
+ }
185
+
186
+ static __inline__ unsigned long long __DEFAULT_FN_ATTRS_CONSTEXPR
187
+ _cvtmask64_u64(__mmask64 __A) {
188
+ return (unsigned long long)__builtin_ia32_kmovq((__mmask64)__A);
189
+ }
190
+
191
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS_CONSTEXPR
192
+ _cvtu32_mask32(unsigned int __A) {
193
+ return (__mmask32)__builtin_ia32_kmovd((__mmask32)__A);
194
+ }
195
+
196
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS_CONSTEXPR
197
+ _cvtu64_mask64(unsigned long long __A) {
198
+ return (__mmask64)__builtin_ia32_kmovq((__mmask64)__A);
199
+ }
200
+
201
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS
202
+ _load_mask32(__mmask32 *__A) {
203
+ return (__mmask32)__builtin_ia32_kmovd(*(__mmask32 *)__A);
204
+ }
205
+
206
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS _load_mask64(__mmask64 *__A) {
207
+ return (__mmask64)__builtin_ia32_kmovq(*(__mmask64 *)__A);
208
+ }
209
+
210
+ static __inline__ void __DEFAULT_FN_ATTRS
211
+ _store_mask32(__mmask32 *__A, __mmask32 __B) {
212
+ *(__mmask32 *)__A = __builtin_ia32_kmovd((__mmask32)__B);
213
+ }
214
+
215
+ static __inline__ void __DEFAULT_FN_ATTRS _store_mask64(__mmask64 *__A,
216
+ __mmask64 __B) {
217
+ *(__mmask64 *)__A = __builtin_ia32_kmovq((__mmask64)__B);
218
+ }
219
+
220
+ /* Integer compare */
221
+
222
+ #define _mm512_cmp_epi8_mask(a, b, p) \
223
+ ((__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \
224
+ (__v64qi)(__m512i)(b), (int)(p), \
225
+ (__mmask64)-1))
226
+
227
+ #define _mm512_mask_cmp_epi8_mask(m, a, b, p) \
228
+ ((__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \
229
+ (__v64qi)(__m512i)(b), (int)(p), \
230
+ (__mmask64)(m)))
231
+
232
+ #define _mm512_cmp_epu8_mask(a, b, p) \
233
+ ((__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \
234
+ (__v64qi)(__m512i)(b), (int)(p), \
235
+ (__mmask64)-1))
236
+
237
+ #define _mm512_mask_cmp_epu8_mask(m, a, b, p) \
238
+ ((__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \
239
+ (__v64qi)(__m512i)(b), (int)(p), \
240
+ (__mmask64)(m)))
241
+
242
+ #define _mm512_cmp_epi16_mask(a, b, p) \
243
+ ((__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \
244
+ (__v32hi)(__m512i)(b), (int)(p), \
245
+ (__mmask32)-1))
246
+
247
+ #define _mm512_mask_cmp_epi16_mask(m, a, b, p) \
248
+ ((__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \
249
+ (__v32hi)(__m512i)(b), (int)(p), \
250
+ (__mmask32)(m)))
251
+
252
+ #define _mm512_cmp_epu16_mask(a, b, p) \
253
+ ((__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
254
+ (__v32hi)(__m512i)(b), (int)(p), \
255
+ (__mmask32)-1))
256
+
257
+ #define _mm512_mask_cmp_epu16_mask(m, a, b, p) \
258
+ ((__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
259
+ (__v32hi)(__m512i)(b), (int)(p), \
260
+ (__mmask32)(m)))
261
+
262
+ #define _mm512_cmpeq_epi8_mask(A, B) \
263
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_EQ)
264
+ #define _mm512_mask_cmpeq_epi8_mask(k, A, B) \
265
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_EQ)
266
+ #define _mm512_cmpge_epi8_mask(A, B) \
267
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_GE)
268
+ #define _mm512_mask_cmpge_epi8_mask(k, A, B) \
269
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GE)
270
+ #define _mm512_cmpgt_epi8_mask(A, B) \
271
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_GT)
272
+ #define _mm512_mask_cmpgt_epi8_mask(k, A, B) \
273
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GT)
274
+ #define _mm512_cmple_epi8_mask(A, B) \
275
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_LE)
276
+ #define _mm512_mask_cmple_epi8_mask(k, A, B) \
277
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LE)
278
+ #define _mm512_cmplt_epi8_mask(A, B) \
279
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_LT)
280
+ #define _mm512_mask_cmplt_epi8_mask(k, A, B) \
281
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LT)
282
+ #define _mm512_cmpneq_epi8_mask(A, B) \
283
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_NE)
284
+ #define _mm512_mask_cmpneq_epi8_mask(k, A, B) \
285
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_NE)
286
+
287
+ #define _mm512_cmpeq_epu8_mask(A, B) \
288
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_EQ)
289
+ #define _mm512_mask_cmpeq_epu8_mask(k, A, B) \
290
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_EQ)
291
+ #define _mm512_cmpge_epu8_mask(A, B) \
292
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_GE)
293
+ #define _mm512_mask_cmpge_epu8_mask(k, A, B) \
294
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GE)
295
+ #define _mm512_cmpgt_epu8_mask(A, B) \
296
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_GT)
297
+ #define _mm512_mask_cmpgt_epu8_mask(k, A, B) \
298
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GT)
299
+ #define _mm512_cmple_epu8_mask(A, B) \
300
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_LE)
301
+ #define _mm512_mask_cmple_epu8_mask(k, A, B) \
302
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LE)
303
+ #define _mm512_cmplt_epu8_mask(A, B) \
304
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_LT)
305
+ #define _mm512_mask_cmplt_epu8_mask(k, A, B) \
306
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LT)
307
+ #define _mm512_cmpneq_epu8_mask(A, B) \
308
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_NE)
309
+ #define _mm512_mask_cmpneq_epu8_mask(k, A, B) \
310
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_NE)
311
+
312
+ #define _mm512_cmpeq_epi16_mask(A, B) \
313
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_EQ)
314
+ #define _mm512_mask_cmpeq_epi16_mask(k, A, B) \
315
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_EQ)
316
+ #define _mm512_cmpge_epi16_mask(A, B) \
317
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_GE)
318
+ #define _mm512_mask_cmpge_epi16_mask(k, A, B) \
319
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GE)
320
+ #define _mm512_cmpgt_epi16_mask(A, B) \
321
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_GT)
322
+ #define _mm512_mask_cmpgt_epi16_mask(k, A, B) \
323
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GT)
324
+ #define _mm512_cmple_epi16_mask(A, B) \
325
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_LE)
326
+ #define _mm512_mask_cmple_epi16_mask(k, A, B) \
327
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LE)
328
+ #define _mm512_cmplt_epi16_mask(A, B) \
329
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_LT)
330
+ #define _mm512_mask_cmplt_epi16_mask(k, A, B) \
331
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LT)
332
+ #define _mm512_cmpneq_epi16_mask(A, B) \
333
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_NE)
334
+ #define _mm512_mask_cmpneq_epi16_mask(k, A, B) \
335
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_NE)
336
+
337
+ #define _mm512_cmpeq_epu16_mask(A, B) \
338
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_EQ)
339
+ #define _mm512_mask_cmpeq_epu16_mask(k, A, B) \
340
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_EQ)
341
+ #define _mm512_cmpge_epu16_mask(A, B) \
342
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_GE)
343
+ #define _mm512_mask_cmpge_epu16_mask(k, A, B) \
344
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GE)
345
+ #define _mm512_cmpgt_epu16_mask(A, B) \
346
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_GT)
347
+ #define _mm512_mask_cmpgt_epu16_mask(k, A, B) \
348
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GT)
349
+ #define _mm512_cmple_epu16_mask(A, B) \
350
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_LE)
351
+ #define _mm512_mask_cmple_epu16_mask(k, A, B) \
352
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LE)
353
+ #define _mm512_cmplt_epu16_mask(A, B) \
354
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_LT)
355
+ #define _mm512_mask_cmplt_epu16_mask(k, A, B) \
356
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LT)
357
+ #define _mm512_cmpneq_epu16_mask(A, B) \
358
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_NE)
359
+ #define _mm512_mask_cmpneq_epu16_mask(k, A, B) \
360
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE)
361
+
362
+ static __inline__ __m512i
363
+ __DEFAULT_FN_ATTRS512_CONSTEXPR _mm512_add_epi8(__m512i __A, __m512i __B) {
364
+ return (__m512i) ((__v64qu) __A + (__v64qu) __B);
365
+ }
366
+
367
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
368
+ _mm512_mask_add_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
369
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
370
+ (__v64qi)_mm512_add_epi8(__A, __B),
371
+ (__v64qi)__W);
372
+ }
373
+
374
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
375
+ _mm512_maskz_add_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
376
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
377
+ (__v64qi)_mm512_add_epi8(__A, __B),
378
+ (__v64qi)_mm512_setzero_si512());
379
+ }
380
+
381
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
382
+ _mm512_sub_epi8(__m512i __A, __m512i __B) {
383
+ return (__m512i) ((__v64qu) __A - (__v64qu) __B);
384
+ }
385
+
386
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
387
+ _mm512_mask_sub_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
388
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
389
+ (__v64qi)_mm512_sub_epi8(__A, __B),
390
+ (__v64qi)__W);
391
+ }
392
+
393
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
394
+ _mm512_maskz_sub_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
395
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
396
+ (__v64qi)_mm512_sub_epi8(__A, __B),
397
+ (__v64qi)_mm512_setzero_si512());
398
+ }
399
+
400
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
401
+ _mm512_add_epi16(__m512i __A, __m512i __B) {
402
+ return (__m512i) ((__v32hu) __A + (__v32hu) __B);
403
+ }
404
+
405
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
406
+ _mm512_mask_add_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
407
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
408
+ (__v32hi)_mm512_add_epi16(__A, __B),
409
+ (__v32hi)__W);
410
+ }
411
+
412
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
413
+ _mm512_maskz_add_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
414
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
415
+ (__v32hi)_mm512_add_epi16(__A, __B),
416
+ (__v32hi)_mm512_setzero_si512());
417
+ }
418
+
419
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
420
+ _mm512_sub_epi16(__m512i __A, __m512i __B) {
421
+ return (__m512i) ((__v32hu) __A - (__v32hu) __B);
422
+ }
423
+
424
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
425
+ _mm512_mask_sub_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
426
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
427
+ (__v32hi)_mm512_sub_epi16(__A, __B),
428
+ (__v32hi)__W);
429
+ }
430
+
431
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
432
+ _mm512_maskz_sub_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
433
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
434
+ (__v32hi)_mm512_sub_epi16(__A, __B),
435
+ (__v32hi)_mm512_setzero_si512());
436
+ }
437
+
438
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
439
+ _mm512_mullo_epi16 (__m512i __A, __m512i __B) {
440
+ return (__m512i) ((__v32hu) __A * (__v32hu) __B);
441
+ }
442
+
443
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
444
+ _mm512_mask_mullo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
445
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
446
+ (__v32hi)_mm512_mullo_epi16(__A, __B),
447
+ (__v32hi)__W);
448
+ }
449
+
450
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
451
+ _mm512_maskz_mullo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
452
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
453
+ (__v32hi)_mm512_mullo_epi16(__A, __B),
454
+ (__v32hi)_mm512_setzero_si512());
455
+ }
456
+
457
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
458
+ _mm512_mask_blend_epi8(__mmask64 __U, __m512i __A, __m512i __W) {
459
+ return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
460
+ (__v64qi) __W,
461
+ (__v64qi) __A);
462
+ }
463
+
464
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
465
+ _mm512_mask_blend_epi16(__mmask32 __U, __m512i __A, __m512i __W) {
466
+ return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
467
+ (__v32hi) __W,
468
+ (__v32hi) __A);
469
+ }
470
+
471
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
472
+ _mm512_abs_epi8(__m512i __A) {
473
+ return (__m512i)__builtin_elementwise_abs((__v64qs)__A);
474
+ }
475
+
476
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
477
+ _mm512_mask_abs_epi8(__m512i __W, __mmask64 __U, __m512i __A) {
478
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
479
+ (__v64qi)_mm512_abs_epi8(__A),
480
+ (__v64qi)__W);
481
+ }
482
+
483
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
484
+ _mm512_maskz_abs_epi8(__mmask64 __U, __m512i __A) {
485
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
486
+ (__v64qi)_mm512_abs_epi8(__A),
487
+ (__v64qi)_mm512_setzero_si512());
488
+ }
489
+
490
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
491
+ _mm512_abs_epi16(__m512i __A) {
492
+ return (__m512i)__builtin_elementwise_abs((__v32hi)__A);
493
+ }
494
+
495
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
496
+ _mm512_mask_abs_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
497
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
498
+ (__v32hi)_mm512_abs_epi16(__A),
499
+ (__v32hi)__W);
500
+ }
501
+
502
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
503
+ _mm512_maskz_abs_epi16(__mmask32 __U, __m512i __A) {
504
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
505
+ (__v32hi)_mm512_abs_epi16(__A),
506
+ (__v32hi)_mm512_setzero_si512());
507
+ }
508
+
509
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
510
+ _mm512_packs_epi32(__m512i __A, __m512i __B) {
511
+ return (__m512i)__builtin_ia32_packssdw512((__v16si)__A, (__v16si)__B);
512
+ }
513
+
514
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
515
+ _mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B)
516
+ {
517
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
518
+ (__v32hi)_mm512_packs_epi32(__A, __B),
519
+ (__v32hi)_mm512_setzero_si512());
520
+ }
521
+
522
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
523
+ _mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
524
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
525
+ (__v32hi)_mm512_packs_epi32(__A, __B),
526
+ (__v32hi)__W);
527
+ }
528
+
529
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
530
+ _mm512_packs_epi16(__m512i __A, __m512i __B) {
531
+ return (__m512i)__builtin_ia32_packsswb512((__v32hi)__A, (__v32hi) __B);
532
+ }
533
+
534
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
535
+ _mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
536
+ {
537
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
538
+ (__v64qi)_mm512_packs_epi16(__A, __B),
539
+ (__v64qi)__W);
540
+ }
541
+
542
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
543
+ _mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B)
544
+ {
545
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
546
+ (__v64qi)_mm512_packs_epi16(__A, __B),
547
+ (__v64qi)_mm512_setzero_si512());
548
+ }
549
+
550
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
551
+ _mm512_packus_epi32(__m512i __A, __m512i __B) {
552
+ return (__m512i)__builtin_ia32_packusdw512((__v16si) __A, (__v16si) __B);
553
+ }
554
+
555
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
556
+ _mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B)
557
+ {
558
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
559
+ (__v32hi)_mm512_packus_epi32(__A, __B),
560
+ (__v32hi)_mm512_setzero_si512());
561
+ }
562
+
563
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
564
+ _mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
565
+ {
566
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
567
+ (__v32hi)_mm512_packus_epi32(__A, __B),
568
+ (__v32hi)__W);
569
+ }
570
+
571
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
572
+ _mm512_packus_epi16(__m512i __A, __m512i __B) {
573
+ return (__m512i)__builtin_ia32_packuswb512((__v32hi) __A, (__v32hi) __B);
574
+ }
575
+
576
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
577
+ _mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
578
+ {
579
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
580
+ (__v64qi)_mm512_packus_epi16(__A, __B),
581
+ (__v64qi)__W);
582
+ }
583
+
584
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
585
+ _mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B)
586
+ {
587
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
588
+ (__v64qi)_mm512_packus_epi16(__A, __B),
589
+ (__v64qi)_mm512_setzero_si512());
590
+ }
591
+
592
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
593
+ _mm512_adds_epi8(__m512i __A, __m512i __B) {
594
+ return (__m512i)__builtin_elementwise_add_sat((__v64qs)__A, (__v64qs)__B);
595
+ }
596
+
597
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
598
+ _mm512_mask_adds_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
599
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
600
+ (__v64qi)_mm512_adds_epi8(__A, __B),
601
+ (__v64qi)__W);
602
+ }
603
+
604
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
605
+ _mm512_maskz_adds_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
606
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
607
+ (__v64qi)_mm512_adds_epi8(__A, __B),
608
+ (__v64qi)_mm512_setzero_si512());
609
+ }
610
+
611
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
612
+ _mm512_adds_epi16(__m512i __A, __m512i __B) {
613
+ return (__m512i)__builtin_elementwise_add_sat((__v32hi)__A, (__v32hi)__B);
614
+ }
615
+
616
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
617
+ _mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
618
+ {
619
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
620
+ (__v32hi)_mm512_adds_epi16(__A, __B),
621
+ (__v32hi)__W);
622
+ }
623
+
624
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
625
+ _mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
626
+ {
627
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
628
+ (__v32hi)_mm512_adds_epi16(__A, __B),
629
+ (__v32hi)_mm512_setzero_si512());
630
+ }
631
+
632
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
633
+ _mm512_adds_epu8(__m512i __A, __m512i __B) {
634
+ return (__m512i)__builtin_elementwise_add_sat((__v64qu) __A, (__v64qu) __B);
635
+ }
636
+
637
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
638
+ _mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
639
+ {
640
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
641
+ (__v64qi)_mm512_adds_epu8(__A, __B),
642
+ (__v64qi)__W);
643
+ }
644
+
645
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
646
+ _mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
647
+ {
648
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
649
+ (__v64qi)_mm512_adds_epu8(__A, __B),
650
+ (__v64qi)_mm512_setzero_si512());
651
+ }
652
+
653
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
654
+ _mm512_adds_epu16(__m512i __A, __m512i __B) {
655
+ return (__m512i)__builtin_elementwise_add_sat((__v32hu) __A, (__v32hu) __B);
656
+ }
657
+
658
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
659
+ _mm512_mask_adds_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
660
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
661
+ (__v32hi)_mm512_adds_epu16(__A, __B),
662
+ (__v32hi)__W);
663
+ }
664
+
665
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
666
+ _mm512_maskz_adds_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
667
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
668
+ (__v32hi)_mm512_adds_epu16(__A, __B),
669
+ (__v32hi)_mm512_setzero_si512());
670
+ }
671
+
672
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
673
+ _mm512_avg_epu8(__m512i __A, __m512i __B) {
674
+ return (__m512i)__builtin_ia32_pavgb512((__v64qu)__A, (__v64qu)__B);
675
+ }
676
+
677
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
678
+ _mm512_mask_avg_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
679
+ return (__m512i)__builtin_ia32_selectb_512(
680
+ (__mmask64)__U, (__v64qi)_mm512_avg_epu8(__A, __B), (__v64qi)__W);
681
+ }
682
+
683
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
684
+ _mm512_maskz_avg_epu8(__mmask64 __U, __m512i __A, __m512i __B) {
685
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
686
+ (__v64qi)_mm512_avg_epu8(__A, __B),
687
+ (__v64qi)_mm512_setzero_si512());
688
+ }
689
+
690
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
691
+ _mm512_avg_epu16(__m512i __A, __m512i __B) {
692
+ return (__m512i)__builtin_ia32_pavgw512((__v32hu)__A, (__v32hu)__B);
693
+ }
694
+
695
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
696
+ _mm512_mask_avg_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
697
+ return (__m512i)__builtin_ia32_selectw_512(
698
+ (__mmask32)__U, (__v32hi)_mm512_avg_epu16(__A, __B), (__v32hi)__W);
699
+ }
700
+
701
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
702
+ _mm512_maskz_avg_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
703
+ return (__m512i)__builtin_ia32_selectw_512(
704
+ (__mmask32)__U, (__v32hi)_mm512_avg_epu16(__A, __B),
705
+ (__v32hi)_mm512_setzero_si512());
706
+ }
707
+
708
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
709
+ _mm512_max_epi8(__m512i __A, __m512i __B) {
710
+ return (__m512i)__builtin_elementwise_max((__v64qs) __A, (__v64qs) __B);
711
+ }
712
+
713
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
714
+ _mm512_maskz_max_epi8(__mmask64 __M, __m512i __A, __m512i __B) {
715
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
716
+ (__v64qi)_mm512_max_epi8(__A, __B),
717
+ (__v64qi)_mm512_setzero_si512());
718
+ }
719
+
720
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
721
+ _mm512_mask_max_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
722
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
723
+ (__v64qi)_mm512_max_epi8(__A, __B),
724
+ (__v64qi)__W);
725
+ }
726
+
727
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
728
+ _mm512_max_epi16(__m512i __A, __m512i __B) {
729
+ return (__m512i)__builtin_elementwise_max((__v32hi) __A, (__v32hi) __B);
730
+ }
731
+
732
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
733
+ _mm512_maskz_max_epi16(__mmask32 __M, __m512i __A, __m512i __B) {
734
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
735
+ (__v32hi)_mm512_max_epi16(__A, __B),
736
+ (__v32hi)_mm512_setzero_si512());
737
+ }
738
+
739
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
740
+ _mm512_mask_max_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
741
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
742
+ (__v32hi)_mm512_max_epi16(__A, __B),
743
+ (__v32hi)__W);
744
+ }
745
+
746
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
747
+ _mm512_max_epu8(__m512i __A, __m512i __B) {
748
+ return (__m512i)__builtin_elementwise_max((__v64qu)__A, (__v64qu)__B);
749
+ }
750
+
751
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
752
+ _mm512_maskz_max_epu8(__mmask64 __M, __m512i __A, __m512i __B) {
753
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
754
+ (__v64qi)_mm512_max_epu8(__A, __B),
755
+ (__v64qi)_mm512_setzero_si512());
756
+ }
757
+
758
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
759
+ _mm512_mask_max_epu8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
760
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
761
+ (__v64qi)_mm512_max_epu8(__A, __B),
762
+ (__v64qi)__W);
763
+ }
764
+
765
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
766
+ _mm512_max_epu16(__m512i __A, __m512i __B) {
767
+ return (__m512i)__builtin_elementwise_max((__v32hu)__A, (__v32hu)__B);
768
+ }
769
+
770
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
771
+ _mm512_maskz_max_epu16(__mmask32 __M, __m512i __A, __m512i __B) {
772
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
773
+ (__v32hi)_mm512_max_epu16(__A, __B),
774
+ (__v32hi)_mm512_setzero_si512());
775
+ }
776
+
777
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
778
+ _mm512_mask_max_epu16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
779
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
780
+ (__v32hi)_mm512_max_epu16(__A, __B),
781
+ (__v32hi)__W);
782
+ }
783
+
784
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
785
+ _mm512_min_epi8(__m512i __A, __m512i __B) {
786
+ return (__m512i)__builtin_elementwise_min((__v64qs) __A, (__v64qs) __B);
787
+ }
788
+
789
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
790
+ _mm512_maskz_min_epi8(__mmask64 __M, __m512i __A, __m512i __B) {
791
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
792
+ (__v64qi)_mm512_min_epi8(__A, __B),
793
+ (__v64qi)_mm512_setzero_si512());
794
+ }
795
+
796
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
797
+ _mm512_mask_min_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
798
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
799
+ (__v64qi)_mm512_min_epi8(__A, __B),
800
+ (__v64qi)__W);
801
+ }
802
+
803
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
804
+ _mm512_min_epi16(__m512i __A, __m512i __B) {
805
+ return (__m512i)__builtin_elementwise_min((__v32hi) __A, (__v32hi) __B);
806
+ }
807
+
808
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
809
+ _mm512_maskz_min_epi16(__mmask32 __M, __m512i __A, __m512i __B) {
810
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
811
+ (__v32hi)_mm512_min_epi16(__A, __B),
812
+ (__v32hi)_mm512_setzero_si512());
813
+ }
814
+
815
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
816
+ _mm512_mask_min_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
817
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
818
+ (__v32hi)_mm512_min_epi16(__A, __B),
819
+ (__v32hi)__W);
820
+ }
821
+
822
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
823
+ _mm512_min_epu8(__m512i __A, __m512i __B) {
824
+ return (__m512i)__builtin_elementwise_min((__v64qu)__A, (__v64qu)__B);
825
+ }
826
+
827
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
828
+ _mm512_maskz_min_epu8(__mmask64 __M, __m512i __A, __m512i __B) {
829
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
830
+ (__v64qi)_mm512_min_epu8(__A, __B),
831
+ (__v64qi)_mm512_setzero_si512());
832
+ }
833
+
834
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
835
+ _mm512_mask_min_epu8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
836
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
837
+ (__v64qi)_mm512_min_epu8(__A, __B),
838
+ (__v64qi)__W);
839
+ }
840
+
841
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
842
+ _mm512_min_epu16(__m512i __A, __m512i __B) {
843
+ return (__m512i)__builtin_elementwise_min((__v32hu)__A, (__v32hu)__B);
844
+ }
845
+
846
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
847
+ _mm512_maskz_min_epu16(__mmask32 __M, __m512i __A, __m512i __B) {
848
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
849
+ (__v32hi)_mm512_min_epu16(__A, __B),
850
+ (__v32hi)_mm512_setzero_si512());
851
+ }
852
+
853
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
854
+ _mm512_mask_min_epu16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
855
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
856
+ (__v32hi)_mm512_min_epu16(__A, __B),
857
+ (__v32hi)__W);
858
+ }
859
+
860
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
861
+ _mm512_shuffle_epi8(__m512i __A, __m512i __B) {
862
+ return (__m512i)__builtin_ia32_pshufb512((__v64qi)__A,(__v64qi)__B);
863
+ }
864
+
865
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
866
+ _mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
867
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
868
+ (__v64qi)_mm512_shuffle_epi8(__A, __B),
869
+ (__v64qi)__W);
870
+ }
871
+
872
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
873
+ _mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
874
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
875
+ (__v64qi)_mm512_shuffle_epi8(__A, __B),
876
+ (__v64qi)_mm512_setzero_si512());
877
+ }
878
+
879
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
880
+ _mm512_subs_epi8(__m512i __A, __m512i __B) {
881
+ return (__m512i)__builtin_elementwise_sub_sat((__v64qs)__A, (__v64qs)__B);
882
+ }
883
+
884
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
885
+ _mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
886
+ {
887
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
888
+ (__v64qi)_mm512_subs_epi8(__A, __B),
889
+ (__v64qi)__W);
890
+ }
891
+
892
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
893
+ _mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
894
+ {
895
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
896
+ (__v64qi)_mm512_subs_epi8(__A, __B),
897
+ (__v64qi)_mm512_setzero_si512());
898
+ }
899
+
900
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
901
+ _mm512_subs_epi16(__m512i __A, __m512i __B) {
902
+ return (__m512i)__builtin_elementwise_sub_sat((__v32hi)__A, (__v32hi)__B);
903
+ }
904
+
905
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
906
+ _mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
907
+ {
908
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
909
+ (__v32hi)_mm512_subs_epi16(__A, __B),
910
+ (__v32hi)__W);
911
+ }
912
+
913
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
914
+ _mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
915
+ {
916
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
917
+ (__v32hi)_mm512_subs_epi16(__A, __B),
918
+ (__v32hi)_mm512_setzero_si512());
919
+ }
920
+
921
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
922
+ _mm512_subs_epu8(__m512i __A, __m512i __B) {
923
+ return (__m512i)__builtin_elementwise_sub_sat((__v64qu) __A, (__v64qu) __B);
924
+ }
925
+
926
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
927
+ _mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
928
+ {
929
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
930
+ (__v64qi)_mm512_subs_epu8(__A, __B),
931
+ (__v64qi)__W);
932
+ }
933
+
934
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
935
+ _mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
936
+ {
937
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
938
+ (__v64qi)_mm512_subs_epu8(__A, __B),
939
+ (__v64qi)_mm512_setzero_si512());
940
+ }
941
+
942
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
943
+ _mm512_subs_epu16(__m512i __A, __m512i __B) {
944
+ return (__m512i)__builtin_elementwise_sub_sat((__v32hu) __A, (__v32hu) __B);
945
+ }
946
+
947
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
948
+ _mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
949
+ {
950
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
951
+ (__v32hi)_mm512_subs_epu16(__A, __B),
952
+ (__v32hi)__W);
953
+ }
954
+
955
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
956
+ _mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
957
+ {
958
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
959
+ (__v32hi)_mm512_subs_epu16(__A, __B),
960
+ (__v32hi)_mm512_setzero_si512());
961
+ }
962
+
963
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
964
+ _mm512_permutex2var_epi16(__m512i __A, __m512i __I, __m512i __B) {
965
+ return (__m512i)__builtin_ia32_vpermi2varhi512((__v32hi)__A, (__v32hi)__I,
966
+ (__v32hi)__B);
967
+ }
968
+
969
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
970
+ _mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i __I,
971
+ __m512i __B) {
972
+ return (__m512i)__builtin_ia32_selectw_512(__U,
973
+ (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B),
974
+ (__v32hi)__A);
975
+ }
976
+
977
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
978
+ _mm512_mask2_permutex2var_epi16(__m512i __A, __m512i __I, __mmask32 __U,
979
+ __m512i __B) {
980
+ return (__m512i)__builtin_ia32_selectw_512(__U,
981
+ (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B),
982
+ (__v32hi)__I);
983
+ }
984
+
985
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
986
+ _mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I,
987
+ __m512i __B) {
988
+ return (__m512i)__builtin_ia32_selectw_512(__U,
989
+ (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B),
990
+ (__v32hi)_mm512_setzero_si512());
991
+ }
992
+
993
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
994
+ _mm512_mulhrs_epi16(__m512i __A, __m512i __B) {
995
+ return (__m512i)__builtin_ia32_pmulhrsw512((__v32hi)__A, (__v32hi)__B);
996
+ }
997
+
998
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
999
+ _mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1000
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1001
+ (__v32hi)_mm512_mulhrs_epi16(__A, __B),
1002
+ (__v32hi)__W);
1003
+ }
1004
+
1005
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1006
+ _mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1007
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1008
+ (__v32hi)_mm512_mulhrs_epi16(__A, __B),
1009
+ (__v32hi)_mm512_setzero_si512());
1010
+ }
1011
+
1012
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1013
+ _mm512_mulhi_epi16(__m512i __A, __m512i __B) {
1014
+ return (__m512i)__builtin_ia32_pmulhw512((__v32hi)__A, (__v32hi)__B);
1015
+ }
1016
+
1017
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1018
+ _mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1019
+ return (__m512i)__builtin_ia32_selectw_512(
1020
+ (__mmask32)__U, (__v32hi)_mm512_mulhi_epi16(__A, __B), (__v32hi)__W);
1021
+ }
1022
+
1023
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1024
+ _mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1025
+ return (__m512i)__builtin_ia32_selectw_512(
1026
+ (__mmask32)__U, (__v32hi)_mm512_mulhi_epi16(__A, __B),
1027
+ (__v32hi)_mm512_setzero_si512());
1028
+ }
1029
+
1030
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1031
+ _mm512_mulhi_epu16(__m512i __A, __m512i __B) {
1032
+ return (__m512i)__builtin_ia32_pmulhuw512((__v32hu)__A, (__v32hu)__B);
1033
+ }
1034
+
1035
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1036
+ _mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1037
+ return (__m512i)__builtin_ia32_selectw_512(
1038
+ (__mmask32)__U, (__v32hi)_mm512_mulhi_epu16(__A, __B), (__v32hi)__W);
1039
+ }
1040
+
1041
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1042
+ _mm512_maskz_mulhi_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
1043
+ return (__m512i)__builtin_ia32_selectw_512(
1044
+ (__mmask32)__U, (__v32hi)_mm512_mulhi_epu16(__A, __B),
1045
+ (__v32hi)_mm512_setzero_si512());
1046
+ }
1047
+
1048
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1049
+ _mm512_maddubs_epi16(__m512i __X, __m512i __Y) {
1050
+ return (__m512i)__builtin_ia32_pmaddubsw512((__v64qi)__X, (__v64qi)__Y);
1051
+ }
1052
+
1053
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1054
+ _mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X,
1055
+ __m512i __Y) {
1056
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U,
1057
+ (__v32hi)_mm512_maddubs_epi16(__X, __Y),
1058
+ (__v32hi)__W);
1059
+ }
1060
+
1061
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1062
+ _mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y) {
1063
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U,
1064
+ (__v32hi)_mm512_maddubs_epi16(__X, __Y),
1065
+ (__v32hi)_mm512_setzero_si512());
1066
+ }
1067
+
1068
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1069
+ _mm512_madd_epi16(__m512i __A, __m512i __B) {
1070
+ return (__m512i)__builtin_ia32_pmaddwd512((__v32hi)__A, (__v32hi)__B);
1071
+ }
1072
+
1073
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1074
+ _mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
1075
+ return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
1076
+ (__v16si)_mm512_madd_epi16(__A, __B),
1077
+ (__v16si)__W);
1078
+ }
1079
+
1080
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1081
+ _mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B) {
1082
+ return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
1083
+ (__v16si)_mm512_madd_epi16(__A, __B),
1084
+ (__v16si)_mm512_setzero_si512());
1085
+ }
1086
+
1087
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1088
+ _mm512_cvtsepi16_epi8 (__m512i __A) {
1089
+ return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1090
+ (__v32qi)_mm256_setzero_si256(),
1091
+ (__mmask32) -1);
1092
+ }
1093
+
1094
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1095
+ _mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1096
+ return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1097
+ (__v32qi)__O,
1098
+ __M);
1099
+ }
1100
+
1101
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1102
+ _mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A) {
1103
+ return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1104
+ (__v32qi) _mm256_setzero_si256(),
1105
+ __M);
1106
+ }
1107
+
1108
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1109
+ _mm512_cvtusepi16_epi8 (__m512i __A) {
1110
+ return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1111
+ (__v32qi) _mm256_setzero_si256(),
1112
+ (__mmask32) -1);
1113
+ }
1114
+
1115
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1116
+ _mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1117
+ return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1118
+ (__v32qi) __O,
1119
+ __M);
1120
+ }
1121
+
1122
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1123
+ _mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A) {
1124
+ return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1125
+ (__v32qi) _mm256_setzero_si256(),
1126
+ __M);
1127
+ }
1128
+
1129
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1130
+ _mm512_cvtepi16_epi8 (__m512i __A) {
1131
+ return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1132
+ (__v32qi) _mm256_undefined_si256(),
1133
+ (__mmask32) -1);
1134
+ }
1135
+
1136
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1137
+ _mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1138
+ return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1139
+ (__v32qi) __O,
1140
+ __M);
1141
+ }
1142
+
1143
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1144
+ _mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A) {
1145
+ return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1146
+ (__v32qi) _mm256_setzero_si256(),
1147
+ __M);
1148
+ }
1149
+
1150
+ static __inline__ void __DEFAULT_FN_ATTRS512
1151
+ _mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1152
+ {
1153
+ __builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1154
+ }
1155
+
1156
+ static __inline__ void __DEFAULT_FN_ATTRS512
1157
+ _mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1158
+ {
1159
+ __builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1160
+ }
1161
+
1162
+ static __inline__ void __DEFAULT_FN_ATTRS512
1163
+ _mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1164
+ {
1165
+ __builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1166
+ }
1167
+
1168
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1169
+ _mm512_unpackhi_epi8(__m512i __A, __m512i __B) {
1170
+ return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,
1171
+ 8, 64+8, 9, 64+9,
1172
+ 10, 64+10, 11, 64+11,
1173
+ 12, 64+12, 13, 64+13,
1174
+ 14, 64+14, 15, 64+15,
1175
+ 24, 64+24, 25, 64+25,
1176
+ 26, 64+26, 27, 64+27,
1177
+ 28, 64+28, 29, 64+29,
1178
+ 30, 64+30, 31, 64+31,
1179
+ 40, 64+40, 41, 64+41,
1180
+ 42, 64+42, 43, 64+43,
1181
+ 44, 64+44, 45, 64+45,
1182
+ 46, 64+46, 47, 64+47,
1183
+ 56, 64+56, 57, 64+57,
1184
+ 58, 64+58, 59, 64+59,
1185
+ 60, 64+60, 61, 64+61,
1186
+ 62, 64+62, 63, 64+63);
1187
+ }
1188
+
1189
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1190
+ _mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1191
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1192
+ (__v64qi)_mm512_unpackhi_epi8(__A, __B),
1193
+ (__v64qi)__W);
1194
+ }
1195
+
1196
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1197
+ _mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1198
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1199
+ (__v64qi)_mm512_unpackhi_epi8(__A, __B),
1200
+ (__v64qi)_mm512_setzero_si512());
1201
+ }
1202
+
1203
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1204
+ _mm512_unpackhi_epi16(__m512i __A, __m512i __B) {
1205
+ return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,
1206
+ 4, 32+4, 5, 32+5,
1207
+ 6, 32+6, 7, 32+7,
1208
+ 12, 32+12, 13, 32+13,
1209
+ 14, 32+14, 15, 32+15,
1210
+ 20, 32+20, 21, 32+21,
1211
+ 22, 32+22, 23, 32+23,
1212
+ 28, 32+28, 29, 32+29,
1213
+ 30, 32+30, 31, 32+31);
1214
+ }
1215
+
1216
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1217
+ _mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1218
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1219
+ (__v32hi)_mm512_unpackhi_epi16(__A, __B),
1220
+ (__v32hi)__W);
1221
+ }
1222
+
1223
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1224
+ _mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1225
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1226
+ (__v32hi)_mm512_unpackhi_epi16(__A, __B),
1227
+ (__v32hi)_mm512_setzero_si512());
1228
+ }
1229
+
1230
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1231
+ _mm512_unpacklo_epi8(__m512i __A, __m512i __B) {
1232
+ return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,
1233
+ 0, 64+0, 1, 64+1,
1234
+ 2, 64+2, 3, 64+3,
1235
+ 4, 64+4, 5, 64+5,
1236
+ 6, 64+6, 7, 64+7,
1237
+ 16, 64+16, 17, 64+17,
1238
+ 18, 64+18, 19, 64+19,
1239
+ 20, 64+20, 21, 64+21,
1240
+ 22, 64+22, 23, 64+23,
1241
+ 32, 64+32, 33, 64+33,
1242
+ 34, 64+34, 35, 64+35,
1243
+ 36, 64+36, 37, 64+37,
1244
+ 38, 64+38, 39, 64+39,
1245
+ 48, 64+48, 49, 64+49,
1246
+ 50, 64+50, 51, 64+51,
1247
+ 52, 64+52, 53, 64+53,
1248
+ 54, 64+54, 55, 64+55);
1249
+ }
1250
+
1251
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1252
+ _mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1253
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1254
+ (__v64qi)_mm512_unpacklo_epi8(__A, __B),
1255
+ (__v64qi)__W);
1256
+ }
1257
+
1258
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1259
+ _mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1260
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1261
+ (__v64qi)_mm512_unpacklo_epi8(__A, __B),
1262
+ (__v64qi)_mm512_setzero_si512());
1263
+ }
1264
+
1265
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1266
+ _mm512_unpacklo_epi16(__m512i __A, __m512i __B) {
1267
+ return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,
1268
+ 0, 32+0, 1, 32+1,
1269
+ 2, 32+2, 3, 32+3,
1270
+ 8, 32+8, 9, 32+9,
1271
+ 10, 32+10, 11, 32+11,
1272
+ 16, 32+16, 17, 32+17,
1273
+ 18, 32+18, 19, 32+19,
1274
+ 24, 32+24, 25, 32+25,
1275
+ 26, 32+26, 27, 32+27);
1276
+ }
1277
+
1278
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1279
+ _mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1280
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1281
+ (__v32hi)_mm512_unpacklo_epi16(__A, __B),
1282
+ (__v32hi)__W);
1283
+ }
1284
+
1285
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1286
+ _mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1287
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1288
+ (__v32hi)_mm512_unpacklo_epi16(__A, __B),
1289
+ (__v32hi)_mm512_setzero_si512());
1290
+ }
1291
+
1292
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1293
+ _mm512_cvtepi8_epi16(__m256i __A) {
1294
+ /* This function always performs a signed extension, but __v32qi is a char
1295
+ which may be signed or unsigned, so use __v32qs. */
1296
+ return (__m512i)__builtin_convertvector((__v32qs)__A, __v32hi);
1297
+ }
1298
+
1299
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1300
+ _mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
1301
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1302
+ (__v32hi)_mm512_cvtepi8_epi16(__A),
1303
+ (__v32hi)__W);
1304
+ }
1305
+
1306
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1307
+ _mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A) {
1308
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1309
+ (__v32hi)_mm512_cvtepi8_epi16(__A),
1310
+ (__v32hi)_mm512_setzero_si512());
1311
+ }
1312
+
1313
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1314
+ _mm512_cvtepu8_epi16(__m256i __A) {
1315
+ return (__m512i)__builtin_convertvector((__v32qu)__A, __v32hi);
1316
+ }
1317
+
1318
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1319
+ _mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
1320
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1321
+ (__v32hi)_mm512_cvtepu8_epi16(__A),
1322
+ (__v32hi)__W);
1323
+ }
1324
+
1325
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1326
+ _mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A) {
1327
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1328
+ (__v32hi)_mm512_cvtepu8_epi16(__A),
1329
+ (__v32hi)_mm512_setzero_si512());
1330
+ }
1331
+
1332
+ #define _mm512_shufflehi_epi16(A, imm) \
1333
+ ((__m512i)__builtin_ia32_pshufhw512((__v32hi)(__m512i)(A), (int)(imm)))
1334
+
1335
+ #define _mm512_mask_shufflehi_epi16(W, U, A, imm) \
1336
+ ((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1337
+ (__v32hi)_mm512_shufflehi_epi16((A), \
1338
+ (imm)), \
1339
+ (__v32hi)(__m512i)(W)))
1340
+
1341
+ #define _mm512_maskz_shufflehi_epi16(U, A, imm) \
1342
+ ((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1343
+ (__v32hi)_mm512_shufflehi_epi16((A), \
1344
+ (imm)), \
1345
+ (__v32hi)_mm512_setzero_si512()))
1346
+
1347
+ #define _mm512_shufflelo_epi16(A, imm) \
1348
+ ((__m512i)__builtin_ia32_pshuflw512((__v32hi)(__m512i)(A), (int)(imm)))
1349
+
1350
+
1351
+ #define _mm512_mask_shufflelo_epi16(W, U, A, imm) \
1352
+ ((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1353
+ (__v32hi)_mm512_shufflelo_epi16((A), \
1354
+ (imm)), \
1355
+ (__v32hi)(__m512i)(W)))
1356
+
1357
+
1358
+ #define _mm512_maskz_shufflelo_epi16(U, A, imm) \
1359
+ ((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1360
+ (__v32hi)_mm512_shufflelo_epi16((A), \
1361
+ (imm)), \
1362
+ (__v32hi)_mm512_setzero_si512()))
1363
+
1364
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1365
+ _mm512_sllv_epi16(__m512i __A, __m512i __B)
1366
+ {
1367
+ return (__m512i)__builtin_ia32_psllv32hi((__v32hi) __A, (__v32hi) __B);
1368
+ }
1369
+
1370
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1371
+ _mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1372
+ {
1373
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1374
+ (__v32hi)_mm512_sllv_epi16(__A, __B),
1375
+ (__v32hi)__W);
1376
+ }
1377
+
1378
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1379
+ _mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1380
+ {
1381
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1382
+ (__v32hi)_mm512_sllv_epi16(__A, __B),
1383
+ (__v32hi)_mm512_setzero_si512());
1384
+ }
1385
+
1386
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1387
+ _mm512_sll_epi16(__m512i __A, __m128i __B) {
1388
+ return (__m512i)__builtin_ia32_psllw512((__v32hi) __A, (__v8hi) __B);
1389
+ }
1390
+
1391
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1392
+ _mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) {
1393
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1394
+ (__v32hi)_mm512_sll_epi16(__A, __B),
1395
+ (__v32hi)__W);
1396
+ }
1397
+
1398
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1399
+ _mm512_maskz_sll_epi16(__mmask32 __U, __m512i __A, __m128i __B) {
1400
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1401
+ (__v32hi)_mm512_sll_epi16(__A, __B),
1402
+ (__v32hi)_mm512_setzero_si512());
1403
+ }
1404
+
1405
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1406
+ _mm512_slli_epi16(__m512i __A, unsigned int __B) {
1407
+ return (__m512i)__builtin_ia32_psllwi512((__v32hi)__A, (int)__B);
1408
+ }
1409
+
1410
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1411
+ _mm512_mask_slli_epi16(__m512i __W, __mmask32 __U, __m512i __A,
1412
+ unsigned int __B) {
1413
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1414
+ (__v32hi)_mm512_slli_epi16(__A, __B),
1415
+ (__v32hi)__W);
1416
+ }
1417
+
1418
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1419
+ _mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A, unsigned int __B) {
1420
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1421
+ (__v32hi)_mm512_slli_epi16(__A, __B),
1422
+ (__v32hi)_mm512_setzero_si512());
1423
+ }
1424
+
1425
+ #define _mm512_bslli_epi128(a, imm) \
1426
+ ((__m512i)__builtin_ia32_pslldqi512_byteshift((__v64qi)(__m512i)(a), \
1427
+ (int)(imm)))
1428
+
1429
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1430
+ _mm512_srlv_epi16(__m512i __A, __m512i __B)
1431
+ {
1432
+ return (__m512i)__builtin_ia32_psrlv32hi((__v32hi)__A, (__v32hi)__B);
1433
+ }
1434
+
1435
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1436
+ _mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1437
+ {
1438
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1439
+ (__v32hi)_mm512_srlv_epi16(__A, __B),
1440
+ (__v32hi)__W);
1441
+ }
1442
+
1443
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1444
+ _mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1445
+ {
1446
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1447
+ (__v32hi)_mm512_srlv_epi16(__A, __B),
1448
+ (__v32hi)_mm512_setzero_si512());
1449
+ }
1450
+
1451
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1452
+ _mm512_srav_epi16(__m512i __A, __m512i __B)
1453
+ {
1454
+ return (__m512i)__builtin_ia32_psrav32hi((__v32hi)__A, (__v32hi)__B);
1455
+ }
1456
+
1457
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1458
+ _mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1459
+ {
1460
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1461
+ (__v32hi)_mm512_srav_epi16(__A, __B),
1462
+ (__v32hi)__W);
1463
+ }
1464
+
1465
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1466
+ _mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1467
+ {
1468
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1469
+ (__v32hi)_mm512_srav_epi16(__A, __B),
1470
+ (__v32hi)_mm512_setzero_si512());
1471
+ }
1472
+
1473
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1474
+ _mm512_sra_epi16(__m512i __A, __m128i __B) {
1475
+ return (__m512i)__builtin_ia32_psraw512((__v32hi) __A, (__v8hi) __B);
1476
+ }
1477
+
1478
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1479
+ _mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) {
1480
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1481
+ (__v32hi)_mm512_sra_epi16(__A, __B),
1482
+ (__v32hi)__W);
1483
+ }
1484
+
1485
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1486
+ _mm512_maskz_sra_epi16(__mmask32 __U, __m512i __A, __m128i __B) {
1487
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1488
+ (__v32hi)_mm512_sra_epi16(__A, __B),
1489
+ (__v32hi)_mm512_setzero_si512());
1490
+ }
1491
+
1492
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1493
+ _mm512_srai_epi16(__m512i __A, unsigned int __B) {
1494
+ return (__m512i)__builtin_ia32_psrawi512((__v32hi)__A, (int)__B);
1495
+ }
1496
+
1497
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1498
+ _mm512_mask_srai_epi16(__m512i __W, __mmask32 __U, __m512i __A,
1499
+ unsigned int __B) {
1500
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1501
+ (__v32hi)_mm512_srai_epi16(__A, __B),
1502
+ (__v32hi)__W);
1503
+ }
1504
+
1505
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1506
+ _mm512_maskz_srai_epi16(__mmask32 __U, __m512i __A, unsigned int __B) {
1507
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1508
+ (__v32hi)_mm512_srai_epi16(__A, __B),
1509
+ (__v32hi)_mm512_setzero_si512());
1510
+ }
1511
+
1512
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1513
+ _mm512_srl_epi16(__m512i __A, __m128i __B) {
1514
+ return (__m512i)__builtin_ia32_psrlw512((__v32hi) __A, (__v8hi) __B);
1515
+ }
1516
+
1517
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1518
+ _mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) {
1519
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1520
+ (__v32hi)_mm512_srl_epi16(__A, __B),
1521
+ (__v32hi)__W);
1522
+ }
1523
+
1524
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1525
+ _mm512_maskz_srl_epi16(__mmask32 __U, __m512i __A, __m128i __B) {
1526
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1527
+ (__v32hi)_mm512_srl_epi16(__A, __B),
1528
+ (__v32hi)_mm512_setzero_si512());
1529
+ }
1530
+
1531
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1532
+ _mm512_srli_epi16(__m512i __A, unsigned int __B) {
1533
+ return (__m512i)__builtin_ia32_psrlwi512((__v32hi)__A, (int)__B);
1534
+ }
1535
+
1536
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1537
+ _mm512_mask_srli_epi16(__m512i __W, __mmask32 __U, __m512i __A,
1538
+ unsigned int __B) {
1539
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1540
+ (__v32hi)_mm512_srli_epi16(__A, __B),
1541
+ (__v32hi)__W);
1542
+ }
1543
+
1544
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1545
+ _mm512_maskz_srli_epi16(__mmask32 __U, __m512i __A, int __B) {
1546
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1547
+ (__v32hi)_mm512_srli_epi16(__A, (unsigned int)__B),
1548
+ (__v32hi)_mm512_setzero_si512());
1549
+ }
1550
+
1551
+ #define _mm512_bsrli_epi128(a, imm) \
1552
+ ((__m512i)__builtin_ia32_psrldqi512_byteshift((__v64qi)(__m512i)(a), \
1553
+ (int)(imm)))
1554
+
1555
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1556
+ _mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
1557
+ {
1558
+ return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
1559
+ (__v32hi) __A,
1560
+ (__v32hi) __W);
1561
+ }
1562
+
1563
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1564
+ _mm512_maskz_mov_epi16(__mmask32 __U, __m512i __A) {
1565
+ return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
1566
+ (__v32hi) __A,
1567
+ (__v32hi) _mm512_setzero_si512 ());
1568
+ }
1569
+
1570
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1571
+ _mm512_mask_mov_epi8(__m512i __W, __mmask64 __U, __m512i __A) {
1572
+ return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
1573
+ (__v64qi) __A,
1574
+ (__v64qi) __W);
1575
+ }
1576
+
1577
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1578
+ _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A)
1579
+ {
1580
+ return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
1581
+ (__v64qi) __A,
1582
+ (__v64qi) _mm512_setzero_si512 ());
1583
+ }
1584
+
1585
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1586
+ _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A)
1587
+ {
1588
+ return (__m512i) __builtin_ia32_selectb_512(__M,
1589
+ (__v64qi)_mm512_set1_epi8(__A),
1590
+ (__v64qi) __O);
1591
+ }
1592
+
1593
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1594
+ _mm512_maskz_set1_epi8(__mmask64 __M, char __A) {
1595
+ return (__m512i) __builtin_ia32_selectb_512(__M,
1596
+ (__v64qi) _mm512_set1_epi8(__A),
1597
+ (__v64qi) _mm512_setzero_si512());
1598
+ }
1599
+
1600
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS_CONSTEXPR
1601
+ _mm512_kunpackd(__mmask64 __A, __mmask64 __B) {
1602
+ return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,
1603
+ (__mmask64) __B);
1604
+ }
1605
+
1606
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS_CONSTEXPR
1607
+ _mm512_kunpackw(__mmask32 __A, __mmask32 __B) {
1608
+ return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,
1609
+ (__mmask32) __B);
1610
+ }
1611
+
1612
+ static __inline __m512i __DEFAULT_FN_ATTRS512
1613
+ _mm512_loadu_epi16 (void const *__P)
1614
+ {
1615
+ struct __loadu_epi16 {
1616
+ __m512i_u __v;
1617
+ } __attribute__((__packed__, __may_alias__));
1618
+ return ((const struct __loadu_epi16*)__P)->__v;
1619
+ }
1620
+
1621
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1622
+ _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P)
1623
+ {
1624
+ return (__m512i) __builtin_ia32_loaddquhi512_mask ((const __v32hi *) __P,
1625
+ (__v32hi) __W,
1626
+ (__mmask32) __U);
1627
+ }
1628
+
1629
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1630
+ _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P)
1631
+ {
1632
+ return (__m512i) __builtin_ia32_loaddquhi512_mask ((const __v32hi *) __P,
1633
+ (__v32hi)
1634
+ _mm512_setzero_si512 (),
1635
+ (__mmask32) __U);
1636
+ }
1637
+
1638
+ static __inline __m512i __DEFAULT_FN_ATTRS512
1639
+ _mm512_loadu_epi8 (void const *__P)
1640
+ {
1641
+ struct __loadu_epi8 {
1642
+ __m512i_u __v;
1643
+ } __attribute__((__packed__, __may_alias__));
1644
+ return ((const struct __loadu_epi8*)__P)->__v;
1645
+ }
1646
+
1647
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1648
+ _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P)
1649
+ {
1650
+ return (__m512i) __builtin_ia32_loaddquqi512_mask ((const __v64qi *) __P,
1651
+ (__v64qi) __W,
1652
+ (__mmask64) __U);
1653
+ }
1654
+
1655
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1656
+ _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P)
1657
+ {
1658
+ return (__m512i) __builtin_ia32_loaddquqi512_mask ((const __v64qi *) __P,
1659
+ (__v64qi)
1660
+ _mm512_setzero_si512 (),
1661
+ (__mmask64) __U);
1662
+ }
1663
+
1664
+ static __inline void __DEFAULT_FN_ATTRS512
1665
+ _mm512_storeu_epi16 (void *__P, __m512i __A)
1666
+ {
1667
+ struct __storeu_epi16 {
1668
+ __m512i_u __v;
1669
+ } __attribute__((__packed__, __may_alias__));
1670
+ ((struct __storeu_epi16*)__P)->__v = __A;
1671
+ }
1672
+
1673
+ static __inline__ void __DEFAULT_FN_ATTRS512
1674
+ _mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)
1675
+ {
1676
+ __builtin_ia32_storedquhi512_mask ((__v32hi *) __P,
1677
+ (__v32hi) __A,
1678
+ (__mmask32) __U);
1679
+ }
1680
+
1681
+ static __inline void __DEFAULT_FN_ATTRS512
1682
+ _mm512_storeu_epi8 (void *__P, __m512i __A)
1683
+ {
1684
+ struct __storeu_epi8 {
1685
+ __m512i_u __v;
1686
+ } __attribute__((__packed__, __may_alias__));
1687
+ ((struct __storeu_epi8*)__P)->__v = __A;
1688
+ }
1689
+
1690
+ static __inline__ void __DEFAULT_FN_ATTRS512
1691
+ _mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)
1692
+ {
1693
+ __builtin_ia32_storedquqi512_mask ((__v64qi *) __P,
1694
+ (__v64qi) __A,
1695
+ (__mmask64) __U);
1696
+ }
1697
+
1698
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS512_CONSTEXPR
1699
+ _mm512_test_epi8_mask(__m512i __A, __m512i __B) {
1700
+ return _mm512_cmpneq_epi8_mask (_mm512_and_epi32 (__A, __B),
1701
+ _mm512_setzero_si512());
1702
+ }
1703
+
1704
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS512_CONSTEXPR
1705
+ _mm512_mask_test_epi8_mask(__mmask64 __U, __m512i __A, __m512i __B) {
1706
+ return _mm512_mask_cmpneq_epi8_mask (__U, _mm512_and_epi32 (__A, __B),
1707
+ _mm512_setzero_si512());
1708
+ }
1709
+
1710
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS512_CONSTEXPR
1711
+ _mm512_test_epi16_mask(__m512i __A, __m512i __B) {
1712
+ return _mm512_cmpneq_epi16_mask (_mm512_and_epi32 (__A, __B),
1713
+ _mm512_setzero_si512());
1714
+ }
1715
+
1716
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS512_CONSTEXPR
1717
+ _mm512_mask_test_epi16_mask(__mmask32 __U, __m512i __A, __m512i __B) {
1718
+ return _mm512_mask_cmpneq_epi16_mask (__U, _mm512_and_epi32 (__A, __B),
1719
+ _mm512_setzero_si512());
1720
+ }
1721
+
1722
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS512_CONSTEXPR
1723
+ _mm512_testn_epi8_mask(__m512i __A, __m512i __B) {
1724
+ return _mm512_cmpeq_epi8_mask (_mm512_and_epi32 (__A, __B), _mm512_setzero_si512());
1725
+ }
1726
+
1727
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS512_CONSTEXPR
1728
+ _mm512_mask_testn_epi8_mask(__mmask64 __U, __m512i __A, __m512i __B) {
1729
+ return _mm512_mask_cmpeq_epi8_mask (__U, _mm512_and_epi32 (__A, __B),
1730
+ _mm512_setzero_si512());
1731
+ }
1732
+
1733
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS512_CONSTEXPR
1734
+ _mm512_testn_epi16_mask(__m512i __A, __m512i __B) {
1735
+ return _mm512_cmpeq_epi16_mask (_mm512_and_epi32 (__A, __B),
1736
+ _mm512_setzero_si512());
1737
+ }
1738
+
1739
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS512_CONSTEXPR
1740
+ _mm512_mask_testn_epi16_mask(__mmask32 __U, __m512i __A, __m512i __B) {
1741
+ return _mm512_mask_cmpeq_epi16_mask (__U, _mm512_and_epi32 (__A, __B),
1742
+ _mm512_setzero_si512());
1743
+ }
1744
+
1745
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS512_CONSTEXPR
1746
+ _mm512_movepi8_mask(__m512i __A) {
1747
+ return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A);
1748
+ }
1749
+
1750
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS512_CONSTEXPR
1751
+ _mm512_movepi16_mask(__m512i __A) {
1752
+ return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A);
1753
+ }
1754
+
1755
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1756
+ _mm512_movm_epi8(__mmask64 __A) {
1757
+ return (__m512i) __builtin_ia32_cvtmask2b512 (__A);
1758
+ }
1759
+
1760
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1761
+ _mm512_movm_epi16(__mmask32 __A) {
1762
+ return (__m512i) __builtin_ia32_cvtmask2w512 (__A);
1763
+ }
1764
+
1765
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1766
+ _mm512_broadcastb_epi8(__m128i __A) {
1767
+ return (__m512i)__builtin_shufflevector((__v16qi) __A, (__v16qi) __A,
1768
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1770
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1772
+ }
1773
+
1774
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1775
+ _mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)
1776
+ {
1777
+ return (__m512i)__builtin_ia32_selectb_512(__M,
1778
+ (__v64qi) _mm512_broadcastb_epi8(__A),
1779
+ (__v64qi) __O);
1780
+ }
1781
+
1782
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1783
+ _mm512_maskz_broadcastb_epi8(__mmask64 __M, __m128i __A) {
1784
+ return (__m512i)__builtin_ia32_selectb_512(__M,
1785
+ (__v64qi) _mm512_broadcastb_epi8(__A),
1786
+ (__v64qi) _mm512_setzero_si512());
1787
+ }
1788
+
1789
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1790
+ _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)
1791
+ {
1792
+ return (__m512i) __builtin_ia32_selectw_512(__M,
1793
+ (__v32hi) _mm512_set1_epi16(__A),
1794
+ (__v32hi) __O);
1795
+ }
1796
+
1797
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1798
+ _mm512_maskz_set1_epi16(__mmask32 __M, short __A) {
1799
+ return (__m512i) __builtin_ia32_selectw_512(__M,
1800
+ (__v32hi) _mm512_set1_epi16(__A),
1801
+ (__v32hi) _mm512_setzero_si512());
1802
+ }
1803
+
1804
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1805
+ _mm512_broadcastw_epi16(__m128i __A) {
1806
+ return (__m512i)__builtin_shufflevector((__v8hi) __A, (__v8hi) __A,
1807
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1809
+ }
1810
+
1811
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1812
+ _mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)
1813
+ {
1814
+ return (__m512i)__builtin_ia32_selectw_512(__M,
1815
+ (__v32hi) _mm512_broadcastw_epi16(__A),
1816
+ (__v32hi) __O);
1817
+ }
1818
+
1819
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1820
+ _mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A)
1821
+ {
1822
+ return (__m512i)__builtin_ia32_selectw_512(__M,
1823
+ (__v32hi) _mm512_broadcastw_epi16(__A),
1824
+ (__v32hi) _mm512_setzero_si512());
1825
+ }
1826
+
1827
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1828
+ _mm512_permutexvar_epi16(__m512i __A, __m512i __B) {
1829
+ return (__m512i)__builtin_ia32_permvarhi512((__v32hi)__B, (__v32hi)__A);
1830
+ }
1831
+
1832
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1833
+ _mm512_maskz_permutexvar_epi16(__mmask32 __M, __m512i __A, __m512i __B) {
1834
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
1835
+ (__v32hi)_mm512_permutexvar_epi16(__A, __B),
1836
+ (__v32hi)_mm512_setzero_si512());
1837
+ }
1838
+
1839
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1840
+ _mm512_mask_permutexvar_epi16(__m512i __W, __mmask32 __M, __m512i __A,
1841
+ __m512i __B) {
1842
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
1843
+ (__v32hi)_mm512_permutexvar_epi16(__A, __B),
1844
+ (__v32hi)__W);
1845
+ }
1846
+
1847
+ #define _mm512_alignr_epi8(A, B, N) \
1848
+ ((__m512i)__builtin_ia32_palignr512((__v64qi)(__m512i)(A), \
1849
+ (__v64qi)(__m512i)(B), (int)(N)))
1850
+
1851
+ #define _mm512_mask_alignr_epi8(W, U, A, B, N) \
1852
+ ((__m512i)__builtin_ia32_selectb_512((__mmask64)(U), \
1853
+ (__v64qi)_mm512_alignr_epi8((A), (B), (int)(N)), \
1854
+ (__v64qi)(__m512i)(W)))
1855
+
1856
+ #define _mm512_maskz_alignr_epi8(U, A, B, N) \
1857
+ ((__m512i)__builtin_ia32_selectb_512((__mmask64)(U), \
1858
+ (__v64qi)_mm512_alignr_epi8((A), (B), (int)(N)), \
1859
+ (__v64qi)(__m512i)_mm512_setzero_si512()))
1860
+
1861
+ #define _mm512_dbsad_epu8(A, B, imm) \
1862
+ ((__m512i)__builtin_ia32_dbpsadbw512((__v64qi)(__m512i)(A), \
1863
+ (__v64qi)(__m512i)(B), (int)(imm)))
1864
+
1865
+ #define _mm512_mask_dbsad_epu8(W, U, A, B, imm) \
1866
+ ((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1867
+ (__v32hi)_mm512_dbsad_epu8((A), (B), (imm)), \
1868
+ (__v32hi)(__m512i)(W)))
1869
+
1870
+ #define _mm512_maskz_dbsad_epu8(U, A, B, imm) \
1871
+ ((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1872
+ (__v32hi)_mm512_dbsad_epu8((A), (B), (imm)), \
1873
+ (__v32hi)_mm512_setzero_si512()))
1874
+
1875
+ static __inline__ __m512i
1876
+ __DEFAULT_FN_ATTRS512_CONSTEXPR _mm512_sad_epu8(__m512i __A, __m512i __B) {
1877
+ return (__m512i)__builtin_ia32_psadbw512((__v64qu)__A, (__v64qu)__B);
1878
+ }
1879
+
1880
+ #undef __DEFAULT_FN_ATTRS512
1881
+ #undef __DEFAULT_FN_ATTRS
1882
+ #undef __DEFAULT_FN_ATTRS512_CONSTEXPR
1883
+ #undef __DEFAULT_FN_ATTRS_CONSTEXPR
1884
+
1885
+ #endif