llvm-runtime-resources-darwin 0.0.0 → 22.1.8

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 (350) 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 +229 -0
  6. package/include/__clang_cuda_device_functions.h +1572 -0
  7. package/include/__clang_cuda_intrinsics.h +994 -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 +284 -0
  11. package/include/__clang_cuda_runtime_wrapper.h +522 -0
  12. package/include/__clang_cuda_texture_intrinsics.h +1177 -0
  13. package/include/__clang_hip_cmath.h +848 -0
  14. package/include/__clang_hip_libdevice_declares.h +340 -0
  15. package/include/__clang_hip_math.h +1405 -0
  16. package/include/__clang_hip_runtime_wrapper.h +165 -0
  17. package/include/__clang_hip_stdlib.h +43 -0
  18. package/include/__clang_spirv_builtins.h +217 -0
  19. package/include/__float_float.h +176 -0
  20. package/include/__float_header_macro.h +12 -0
  21. package/include/__float_infinity_nan.h +20 -0
  22. package/include/__stdarg___gnuc_va_list.h +13 -0
  23. package/include/__stdarg___va_copy.h +12 -0
  24. package/include/__stdarg_header_macro.h +12 -0
  25. package/include/__stdarg_va_arg.h +22 -0
  26. package/include/__stdarg_va_copy.h +12 -0
  27. package/include/__stdarg_va_list.h +13 -0
  28. package/include/__stddef_header_macro.h +12 -0
  29. package/include/__stddef_max_align_t.h +27 -0
  30. package/include/__stddef_null.h +29 -0
  31. package/include/__stddef_nullptr_t.h +29 -0
  32. package/include/__stddef_offsetof.h +17 -0
  33. package/include/__stddef_ptrdiff_t.h +20 -0
  34. package/include/__stddef_rsize_t.h +20 -0
  35. package/include/__stddef_size_t.h +20 -0
  36. package/include/__stddef_unreachable.h +21 -0
  37. package/include/__stddef_wchar_t.h +28 -0
  38. package/include/__stddef_wint_t.h +15 -0
  39. package/include/__wmmintrin_aes.h +140 -0
  40. package/include/__wmmintrin_pclmul.h +48 -0
  41. package/include/adcintrin.h +165 -0
  42. package/include/adxintrin.h +107 -0
  43. package/include/altivec.h +19364 -0
  44. package/include/amdgpuintrin.h +191 -0
  45. package/include/ammintrin.h +183 -0
  46. package/include/amo.h +131 -0
  47. package/include/amxavx512intrin.h +596 -0
  48. package/include/amxcomplexintrin.h +167 -0
  49. package/include/amxfp16intrin.h +93 -0
  50. package/include/amxfp8intrin.h +230 -0
  51. package/include/amxintrin.h +492 -0
  52. package/include/amxmovrsintrin.h +48 -0
  53. package/include/amxtf32intrin.h +108 -0
  54. package/include/andes_vector.h +16 -0
  55. package/include/arm64intr.h +35 -0
  56. package/include/arm_acle.h +865 -0
  57. package/include/arm_bf16.h +20 -0
  58. package/include/arm_cde.h +410 -0
  59. package/include/arm_cmse.h +217 -0
  60. package/include/arm_fp16.h +596 -0
  61. package/include/arm_mve.h +19187 -0
  62. package/include/arm_neon.h +74183 -0
  63. package/include/arm_neon_sve_bridge.h +182 -0
  64. package/include/arm_sme.h +3741 -0
  65. package/include/arm_sve.h +32278 -0
  66. package/include/arm_vector_types.h +432 -0
  67. package/include/armintr.h +31 -0
  68. package/include/avx10_2_512bf16intrin.h +568 -0
  69. package/include/avx10_2_512convertintrin.h +322 -0
  70. package/include/avx10_2_512minmaxintrin.h +127 -0
  71. package/include/avx10_2_512niintrin.h +314 -0
  72. package/include/avx10_2_512satcvtdsintrin.h +307 -0
  73. package/include/avx10_2_512satcvtintrin.h +301 -0
  74. package/include/avx10_2bf16intrin.h +1094 -0
  75. package/include/avx10_2convertintrin.h +3257 -0
  76. package/include/avx10_2copyintrin.h +66 -0
  77. package/include/avx10_2minmaxintrin.h +232 -0
  78. package/include/avx10_2niintrin.h +409 -0
  79. package/include/avx10_2satcvtdsintrin.h +376 -0
  80. package/include/avx10_2satcvtintrin.h +312 -0
  81. package/include/avx2intrin.h +5191 -0
  82. package/include/avx512bf16intrin.h +292 -0
  83. package/include/avx512bitalgintrin.h +75 -0
  84. package/include/avx512bwintrin.h +1895 -0
  85. package/include/avx512cdintrin.h +112 -0
  86. package/include/avx512dqintrin.h +1350 -0
  87. package/include/avx512fintrin.h +9378 -0
  88. package/include/avx512fp16intrin.h +3355 -0
  89. package/include/avx512ifmaintrin.h +68 -0
  90. package/include/avx512ifmavlintrin.h +138 -0
  91. package/include/avx512vbmi2intrin.h +368 -0
  92. package/include/avx512vbmiintrin.h +98 -0
  93. package/include/avx512vbmivlintrin.h +179 -0
  94. package/include/avx512vlbf16intrin.h +527 -0
  95. package/include/avx512vlbitalgintrin.h +135 -0
  96. package/include/avx512vlbwintrin.h +3064 -0
  97. package/include/avx512vlcdintrin.h +202 -0
  98. package/include/avx512vldqintrin.h +1156 -0
  99. package/include/avx512vlfp16intrin.h +2090 -0
  100. package/include/avx512vlintrin.h +8083 -0
  101. package/include/avx512vlvbmi2intrin.h +710 -0
  102. package/include/avx512vlvnniintrin.h +313 -0
  103. package/include/avx512vlvp2intersectintrin.h +123 -0
  104. package/include/avx512vnniintrin.h +116 -0
  105. package/include/avx512vp2intersectintrin.h +77 -0
  106. package/include/avx512vpopcntdqintrin.h +62 -0
  107. package/include/avx512vpopcntdqvlintrin.h +105 -0
  108. package/include/avxifmaintrin.h +193 -0
  109. package/include/avxintrin.h +5064 -0
  110. package/include/avxneconvertintrin.h +484 -0
  111. package/include/avxvnniint16intrin.h +451 -0
  112. package/include/avxvnniint8intrin.h +454 -0
  113. package/include/avxvnniintrin.h +233 -0
  114. package/include/bmi2intrin.h +253 -0
  115. package/include/bmiintrin.h +604 -0
  116. package/include/builtins.h +19 -0
  117. package/include/cet.h +66 -0
  118. package/include/cetintrin.h +115 -0
  119. package/include/cldemoteintrin.h +36 -0
  120. package/include/clflushoptintrin.h +36 -0
  121. package/include/clwbintrin.h +38 -0
  122. package/include/clzerointrin.h +38 -0
  123. package/include/cmpccxaddintrin.h +70 -0
  124. package/include/cpuid.h +451 -0
  125. package/include/crc32intrin.h +100 -0
  126. package/include/cuda_wrappers/__utility/declval.h +28 -0
  127. package/include/cuda_wrappers/algorithm +116 -0
  128. package/include/cuda_wrappers/bits/basic_string.h +9 -0
  129. package/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  130. package/include/cuda_wrappers/bits/c++config.h +61 -0
  131. package/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  132. package/include/cuda_wrappers/cmath +44 -0
  133. package/include/cuda_wrappers/complex +90 -0
  134. package/include/cuda_wrappers/new +108 -0
  135. package/include/emmintrin.h +4940 -0
  136. package/include/enqcmdintrin.h +63 -0
  137. package/include/f16cintrin.h +176 -0
  138. package/include/float.h +48 -0
  139. package/include/fma4intrin.h +220 -0
  140. package/include/fmaintrin.h +826 -0
  141. package/include/fuzzer/FuzzedDataProvider.h +397 -0
  142. package/include/fxsrintrin.h +91 -0
  143. package/include/gfniintrin.h +238 -0
  144. package/include/gpuintrin.h +330 -0
  145. package/include/hexagon_circ_brev_intrinsics.h +298 -0
  146. package/include/hexagon_protos.h +8439 -0
  147. package/include/hexagon_types.h +2628 -0
  148. package/include/hresetintrin.h +49 -0
  149. package/include/htmintrin.h +212 -0
  150. package/include/htmxlintrin.h +345 -0
  151. package/include/hvx_hexagon_protos.h +5399 -0
  152. package/include/ia32intrin.h +863 -0
  153. package/include/immintrin.h +595 -0
  154. package/include/intrin.h +491 -0
  155. package/include/intrin0.h +256 -0
  156. package/include/inttypes.h +101 -0
  157. package/include/invpcidintrin.h +23 -0
  158. package/include/iso646.h +31 -0
  159. package/include/keylockerintrin.h +518 -0
  160. package/include/larchintrin.h +260 -0
  161. package/include/lasxintrin.h +3999 -0
  162. package/include/limits.h +133 -0
  163. package/include/llvm_libc_wrappers/assert.h +32 -0
  164. package/include/llvm_libc_wrappers/ctype.h +28 -0
  165. package/include/llvm_libc_wrappers/inttypes.h +32 -0
  166. package/include/llvm_libc_wrappers/stdio.h +52 -0
  167. package/include/llvm_libc_wrappers/stdlib.h +32 -0
  168. package/include/llvm_libc_wrappers/string.h +28 -0
  169. package/include/llvm_libc_wrappers/time.h +28 -0
  170. package/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  171. package/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  172. package/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  173. package/include/lsxintrin.h +3752 -0
  174. package/include/lwpintrin.h +136 -0
  175. package/include/lzcntintrin.h +109 -0
  176. package/include/mm3dnow.h +22 -0
  177. package/include/mm_malloc.h +67 -0
  178. package/include/mmintrin.h +1541 -0
  179. package/include/module.modulemap +360 -0
  180. package/include/movdirintrin.h +49 -0
  181. package/include/movrs_avx10_2_512intrin.h +98 -0
  182. package/include/movrs_avx10_2intrin.h +174 -0
  183. package/include/movrsintrin.h +59 -0
  184. package/include/msa.h +573 -0
  185. package/include/mwaitxintrin.h +62 -0
  186. package/include/nmmintrin.h +20 -0
  187. package/include/nvptxintrin.h +219 -0
  188. package/include/opencl-c-base.h +758 -0
  189. package/include/opencl-c.h +18676 -0
  190. package/include/openmp_wrappers/__clang_openmp_device_functions.h +104 -0
  191. package/include/openmp_wrappers/cmath +132 -0
  192. package/include/openmp_wrappers/complex +55 -0
  193. package/include/openmp_wrappers/complex.h +35 -0
  194. package/include/openmp_wrappers/complex_cmath.h +393 -0
  195. package/include/openmp_wrappers/math.h +61 -0
  196. package/include/openmp_wrappers/new +48 -0
  197. package/include/pconfigintrin.h +40 -0
  198. package/include/pkuintrin.h +34 -0
  199. package/include/pmmintrin.h +302 -0
  200. package/include/popcntintrin.h +59 -0
  201. package/include/ppc_wrappers/bmi2intrin.h +134 -0
  202. package/include/ppc_wrappers/bmiintrin.h +165 -0
  203. package/include/ppc_wrappers/emmintrin.h +2269 -0
  204. package/include/ppc_wrappers/immintrin.h +27 -0
  205. package/include/ppc_wrappers/mm_malloc.h +45 -0
  206. package/include/ppc_wrappers/mmintrin.h +1453 -0
  207. package/include/ppc_wrappers/nmmintrin.h +26 -0
  208. package/include/ppc_wrappers/pmmintrin.h +145 -0
  209. package/include/ppc_wrappers/smmintrin.h +683 -0
  210. package/include/ppc_wrappers/tmmintrin.h +453 -0
  211. package/include/ppc_wrappers/x86gprintrin.h +17 -0
  212. package/include/ppc_wrappers/x86intrin.h +28 -0
  213. package/include/ppc_wrappers/xmmintrin.h +1827 -0
  214. package/include/prfchiintrin.h +61 -0
  215. package/include/prfchwintrin.h +57 -0
  216. package/include/profile/InstrProfData.inc +1001 -0
  217. package/include/profile/instr_prof_interface.h +88 -0
  218. package/include/ptrauth.h +407 -0
  219. package/include/ptwriteintrin.h +37 -0
  220. package/include/raointintrin.h +203 -0
  221. package/include/rdpruintrin.h +57 -0
  222. package/include/rdseedintrin.h +105 -0
  223. package/include/riscv_bitmanip.h +195 -0
  224. package/include/riscv_corev_alu.h +128 -0
  225. package/include/riscv_crypto.h +170 -0
  226. package/include/riscv_mips.h +34 -0
  227. package/include/riscv_nds.h +89 -0
  228. package/include/riscv_ntlh.h +26 -0
  229. package/include/riscv_vector.h +422 -0
  230. package/include/rtmintrin.h +45 -0
  231. package/include/s390intrin.h +25 -0
  232. package/include/sanitizer/allocator_interface.h +106 -0
  233. package/include/sanitizer/asan_interface.h +348 -0
  234. package/include/sanitizer/common_interface_defs.h +544 -0
  235. package/include/sanitizer/coverage_interface.h +36 -0
  236. package/include/sanitizer/dfsan_interface.h +220 -0
  237. package/include/sanitizer/hwasan_interface.h +109 -0
  238. package/include/sanitizer/linux_syscall_hooks.h +3112 -0
  239. package/include/sanitizer/lsan_interface.h +89 -0
  240. package/include/sanitizer/msan_interface.h +135 -0
  241. package/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
  242. package/include/sanitizer/rtsan_interface.h +75 -0
  243. package/include/sanitizer/scudo_interface.h +38 -0
  244. package/include/sanitizer/tsan_interface.h +316 -0
  245. package/include/sanitizer/tsan_interface_atomic.h +223 -0
  246. package/include/sanitizer/ubsan_interface.h +34 -0
  247. package/include/serializeintrin.h +30 -0
  248. package/include/sgxintrin.h +60 -0
  249. package/include/sha512intrin.h +200 -0
  250. package/include/shaintrin.h +190 -0
  251. package/include/sifive_vector.h +174 -0
  252. package/include/sm3intrin.h +238 -0
  253. package/include/sm4evexintrin.h +32 -0
  254. package/include/sm4intrin.h +269 -0
  255. package/include/smmintrin.h +2352 -0
  256. package/include/spirvintrin.h +194 -0
  257. package/include/stdalign.h +24 -0
  258. package/include/stdarg.h +75 -0
  259. package/include/stdatomic.h +204 -0
  260. package/include/stdbool.h +39 -0
  261. package/include/stdckdint.h +42 -0
  262. package/include/stdcountof.h +15 -0
  263. package/include/stddef.h +139 -0
  264. package/include/stddefer.h +19 -0
  265. package/include/stdint.h +844 -0
  266. package/include/stdnoreturn.h +35 -0
  267. package/include/tbmintrin.h +128 -0
  268. package/include/tgmath.h +1368 -0
  269. package/include/tmmintrin.h +779 -0
  270. package/include/tsxldtrkintrin.h +56 -0
  271. package/include/uintrintrin.h +157 -0
  272. package/include/unwind.h +332 -0
  273. package/include/usermsrintrin.h +51 -0
  274. package/include/vadefs.h +51 -0
  275. package/include/vaesintrin.h +86 -0
  276. package/include/varargs.h +16 -0
  277. package/include/vecintrin.h +12868 -0
  278. package/include/velintrin.h +71 -0
  279. package/include/velintrin_approx.h +120 -0
  280. package/include/velintrin_gen.h +1257 -0
  281. package/include/vpclmulqdqintrin.h +30 -0
  282. package/include/waitpkgintrin.h +42 -0
  283. package/include/wasm_simd128.h +2143 -0
  284. package/include/wbnoinvdintrin.h +24 -0
  285. package/include/wmmintrin.h +23 -0
  286. package/include/x86gprintrin.h +49 -0
  287. package/include/x86intrin.h +35 -0
  288. package/include/xmmintrin.h +3175 -0
  289. package/include/xopintrin.h +780 -0
  290. package/include/xsavecintrin.h +84 -0
  291. package/include/xsaveintrin.h +63 -0
  292. package/include/xsaveoptintrin.h +34 -0
  293. package/include/xsavesintrin.h +44 -0
  294. package/include/xtestintrin.h +27 -0
  295. package/include/yvals_core.h +25 -0
  296. package/include/zos_wrappers/builtins.h +18 -0
  297. package/index.js +5 -0
  298. package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
  299. package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
  300. package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
  301. package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
  302. package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  303. package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  304. package/lib/darwin/libclang_rt.cc_kext.a +0 -0
  305. package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
  306. package/lib/darwin/libclang_rt.fuzzer_interceptors_ios.a +0 -0
  307. package/lib/darwin/libclang_rt.fuzzer_interceptors_iossim.a +0 -0
  308. package/lib/darwin/libclang_rt.fuzzer_interceptors_osx.a +0 -0
  309. package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
  310. package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
  311. package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
  312. package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
  313. package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
  314. package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
  315. package/lib/darwin/libclang_rt.ios.a +0 -0
  316. package/lib/darwin/libclang_rt.iossim.a +0 -0
  317. package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
  318. package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
  319. package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
  320. package/lib/darwin/libclang_rt.osx.a +0 -0
  321. package/lib/darwin/libclang_rt.profile_ios.a +0 -0
  322. package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
  323. package/lib/darwin/libclang_rt.profile_osx.a +0 -0
  324. package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
  325. package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
  326. package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
  327. package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
  328. package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
  329. package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
  330. package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
  331. package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
  332. package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
  333. package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
  334. package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
  335. package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
  336. package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
  337. package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
  338. package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
  339. package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
  340. package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  341. package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
  342. package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
  343. package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
  344. package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
  345. package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
  346. package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
  347. package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  348. package/package.json +40 -1
  349. package/share/asan_ignorelist.txt +14 -0
  350. package/share/cfi_ignorelist.txt +17 -0
@@ -0,0 +1,1350 @@
1
+ /*===---- avx512dqintrin.h - AVX512DQ intrinsics ---------------------------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===-----------------------------------------------------------------------===
8
+ */
9
+
10
+ #ifndef __IMMINTRIN_H
11
+ #error "Never use <avx512dqintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __AVX512DQINTRIN_H
15
+ #define __AVX512DQINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS512 \
19
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), \
20
+ __min_vector_width__(512)))
21
+ #define __DEFAULT_FN_ATTRS \
22
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512dq")))
23
+
24
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
25
+ #define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512 constexpr
26
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
27
+ #else
28
+ #define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512
29
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
30
+ #endif
31
+
32
+ static __inline __mmask8 __DEFAULT_FN_ATTRS_CONSTEXPR
33
+ _knot_mask8(__mmask8 __M) {
34
+ return __builtin_ia32_knotqi(__M);
35
+ }
36
+
37
+ static __inline__ __mmask8 __DEFAULT_FN_ATTRS_CONSTEXPR
38
+ _kand_mask8(__mmask8 __A, __mmask8 __B) {
39
+ return (__mmask8)__builtin_ia32_kandqi((__mmask8)__A, (__mmask8)__B);
40
+ }
41
+
42
+ static __inline__ __mmask8 __DEFAULT_FN_ATTRS_CONSTEXPR
43
+ _kandn_mask8(__mmask8 __A, __mmask8 __B) {
44
+ return (__mmask8)__builtin_ia32_kandnqi((__mmask8)__A, (__mmask8)__B);
45
+ }
46
+
47
+ static __inline__ __mmask8 __DEFAULT_FN_ATTRS_CONSTEXPR
48
+ _kor_mask8(__mmask8 __A, __mmask8 __B) {
49
+ return (__mmask8)__builtin_ia32_korqi((__mmask8)__A, (__mmask8)__B);
50
+ }
51
+
52
+ static __inline__ __mmask8 __DEFAULT_FN_ATTRS_CONSTEXPR
53
+ _kxnor_mask8(__mmask8 __A, __mmask8 __B) {
54
+ return (__mmask8)__builtin_ia32_kxnorqi((__mmask8)__A, (__mmask8)__B);
55
+ }
56
+
57
+ static __inline__ __mmask8 __DEFAULT_FN_ATTRS_CONSTEXPR
58
+ _kxor_mask8(__mmask8 __A, __mmask8 __B) {
59
+ return (__mmask8)__builtin_ia32_kxorqi((__mmask8)__A, (__mmask8)__B);
60
+ }
61
+
62
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
63
+ _kortestc_mask8_u8(__mmask8 __A, __mmask8 __B) {
64
+ return (unsigned char)__builtin_ia32_kortestcqi(__A, __B);
65
+ }
66
+
67
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
68
+ _kortestz_mask8_u8(__mmask8 __A, __mmask8 __B) {
69
+ return (unsigned char)__builtin_ia32_kortestzqi(__A, __B);
70
+ }
71
+
72
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
73
+ _kortest_mask8_u8(__mmask8 __A, __mmask8 __B, unsigned char *__C) {
74
+ *__C = (unsigned char)__builtin_ia32_kortestcqi(__A, __B);
75
+ return (unsigned char)__builtin_ia32_kortestzqi(__A, __B);
76
+ }
77
+
78
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
79
+ _ktestc_mask8_u8(__mmask8 __A, __mmask8 __B) {
80
+ return (unsigned char)__builtin_ia32_ktestcqi(__A, __B);
81
+ }
82
+
83
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
84
+ _ktestz_mask8_u8(__mmask8 __A, __mmask8 __B) {
85
+ return (unsigned char)__builtin_ia32_ktestzqi(__A, __B);
86
+ }
87
+
88
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
89
+ _ktest_mask8_u8(__mmask8 __A, __mmask8 __B, unsigned char *__C) {
90
+ *__C = (unsigned char)__builtin_ia32_ktestcqi(__A, __B);
91
+ return (unsigned char)__builtin_ia32_ktestzqi(__A, __B);
92
+ }
93
+
94
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
95
+ _ktestc_mask16_u8(__mmask16 __A, __mmask16 __B) {
96
+ return (unsigned char)__builtin_ia32_ktestchi(__A, __B);
97
+ }
98
+
99
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
100
+ _ktestz_mask16_u8(__mmask16 __A, __mmask16 __B) {
101
+ return (unsigned char)__builtin_ia32_ktestzhi(__A, __B);
102
+ }
103
+
104
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
105
+ _ktest_mask16_u8(__mmask16 __A, __mmask16 __B, unsigned char *__C) {
106
+ *__C = (unsigned char)__builtin_ia32_ktestchi(__A, __B);
107
+ return (unsigned char)__builtin_ia32_ktestzhi(__A, __B);
108
+ }
109
+
110
+ static __inline__ __mmask8 __DEFAULT_FN_ATTRS_CONSTEXPR
111
+ _kadd_mask8(__mmask8 __A, __mmask8 __B) {
112
+ return (__mmask8)__builtin_ia32_kaddqi((__mmask8)__A, (__mmask8)__B);
113
+ }
114
+
115
+ static __inline__ __mmask16 __DEFAULT_FN_ATTRS_CONSTEXPR
116
+ _kadd_mask16(__mmask16 __A, __mmask16 __B) {
117
+ return (__mmask16)__builtin_ia32_kaddhi((__mmask16)__A, (__mmask16)__B);
118
+ }
119
+
120
+ #define _kshiftli_mask8(A, I) \
121
+ ((__mmask8)__builtin_ia32_kshiftliqi((__mmask8)(A), (unsigned int)(I)))
122
+
123
+ #define _kshiftri_mask8(A, I) \
124
+ ((__mmask8)__builtin_ia32_kshiftriqi((__mmask8)(A), (unsigned int)(I)))
125
+
126
+ static __inline__ unsigned int
127
+ __DEFAULT_FN_ATTRS_CONSTEXPR _cvtmask8_u32(__mmask8 __A) {
128
+ return (unsigned int)__builtin_ia32_kmovb((__mmask8)__A);
129
+ }
130
+
131
+ static __inline__ __mmask8 __DEFAULT_FN_ATTRS_CONSTEXPR
132
+ _cvtu32_mask8(unsigned int __A) {
133
+ return (__mmask8)__builtin_ia32_kmovb((__mmask8)__A);
134
+ }
135
+
136
+ static __inline__ __mmask8 __DEFAULT_FN_ATTRS
137
+ _load_mask8(__mmask8 *__A) {
138
+ return (__mmask8)__builtin_ia32_kmovb(*(__mmask8 *)__A);
139
+ }
140
+
141
+ static __inline__ void __DEFAULT_FN_ATTRS
142
+ _store_mask8(__mmask8 *__A, __mmask8 __B) {
143
+ *(__mmask8 *)__A = __builtin_ia32_kmovb((__mmask8)__B);
144
+ }
145
+
146
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
147
+ _mm512_mullo_epi64(__m512i __A, __m512i __B) {
148
+ return (__m512i) ((__v8du) __A * (__v8du) __B);
149
+ }
150
+
151
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
152
+ _mm512_mask_mullo_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
153
+ return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
154
+ (__v8di)_mm512_mullo_epi64(__A, __B),
155
+ (__v8di)__W);
156
+ }
157
+
158
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
159
+ _mm512_maskz_mullo_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
160
+ return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
161
+ (__v8di)_mm512_mullo_epi64(__A, __B),
162
+ (__v8di)_mm512_setzero_si512());
163
+ }
164
+
165
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
166
+ _mm512_xor_pd(__m512d __A, __m512d __B) {
167
+ return (__m512d)((__v8du)__A ^ (__v8du)__B);
168
+ }
169
+
170
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512
171
+ _mm512_mask_xor_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
172
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
173
+ (__v8df)_mm512_xor_pd(__A, __B),
174
+ (__v8df)__W);
175
+ }
176
+
177
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512
178
+ _mm512_maskz_xor_pd(__mmask8 __U, __m512d __A, __m512d __B) {
179
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
180
+ (__v8df)_mm512_xor_pd(__A, __B),
181
+ (__v8df)_mm512_setzero_pd());
182
+ }
183
+
184
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
185
+ _mm512_xor_ps (__m512 __A, __m512 __B) {
186
+ return (__m512)((__v16su)__A ^ (__v16su)__B);
187
+ }
188
+
189
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512
190
+ _mm512_mask_xor_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
191
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
192
+ (__v16sf)_mm512_xor_ps(__A, __B),
193
+ (__v16sf)__W);
194
+ }
195
+
196
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512
197
+ _mm512_maskz_xor_ps(__mmask16 __U, __m512 __A, __m512 __B) {
198
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
199
+ (__v16sf)_mm512_xor_ps(__A, __B),
200
+ (__v16sf)_mm512_setzero_ps());
201
+ }
202
+
203
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
204
+ _mm512_or_pd(__m512d __A, __m512d __B) {
205
+ return (__m512d)((__v8du)__A | (__v8du)__B);
206
+ }
207
+
208
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512
209
+ _mm512_mask_or_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
210
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
211
+ (__v8df)_mm512_or_pd(__A, __B),
212
+ (__v8df)__W);
213
+ }
214
+
215
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512
216
+ _mm512_maskz_or_pd(__mmask8 __U, __m512d __A, __m512d __B) {
217
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
218
+ (__v8df)_mm512_or_pd(__A, __B),
219
+ (__v8df)_mm512_setzero_pd());
220
+ }
221
+
222
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
223
+ _mm512_or_ps(__m512 __A, __m512 __B) {
224
+ return (__m512)((__v16su)__A | (__v16su)__B);
225
+ }
226
+
227
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512
228
+ _mm512_mask_or_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
229
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
230
+ (__v16sf)_mm512_or_ps(__A, __B),
231
+ (__v16sf)__W);
232
+ }
233
+
234
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512
235
+ _mm512_maskz_or_ps(__mmask16 __U, __m512 __A, __m512 __B) {
236
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
237
+ (__v16sf)_mm512_or_ps(__A, __B),
238
+ (__v16sf)_mm512_setzero_ps());
239
+ }
240
+
241
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
242
+ _mm512_and_pd(__m512d __A, __m512d __B) {
243
+ return (__m512d)((__v8du)__A & (__v8du)__B);
244
+ }
245
+
246
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512
247
+ _mm512_mask_and_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
248
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
249
+ (__v8df)_mm512_and_pd(__A, __B),
250
+ (__v8df)__W);
251
+ }
252
+
253
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512
254
+ _mm512_maskz_and_pd(__mmask8 __U, __m512d __A, __m512d __B) {
255
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
256
+ (__v8df)_mm512_and_pd(__A, __B),
257
+ (__v8df)_mm512_setzero_pd());
258
+ }
259
+
260
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
261
+ _mm512_and_ps(__m512 __A, __m512 __B) {
262
+ return (__m512)((__v16su)__A & (__v16su)__B);
263
+ }
264
+
265
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512
266
+ _mm512_mask_and_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
267
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
268
+ (__v16sf)_mm512_and_ps(__A, __B),
269
+ (__v16sf)__W);
270
+ }
271
+
272
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512
273
+ _mm512_maskz_and_ps(__mmask16 __U, __m512 __A, __m512 __B) {
274
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
275
+ (__v16sf)_mm512_and_ps(__A, __B),
276
+ (__v16sf)_mm512_setzero_ps());
277
+ }
278
+
279
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
280
+ _mm512_andnot_pd(__m512d __A, __m512d __B) {
281
+ return (__m512d)(~(__v8du)__A & (__v8du)__B);
282
+ }
283
+
284
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512
285
+ _mm512_mask_andnot_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
286
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
287
+ (__v8df)_mm512_andnot_pd(__A, __B),
288
+ (__v8df)__W);
289
+ }
290
+
291
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512
292
+ _mm512_maskz_andnot_pd(__mmask8 __U, __m512d __A, __m512d __B) {
293
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
294
+ (__v8df)_mm512_andnot_pd(__A, __B),
295
+ (__v8df)_mm512_setzero_pd());
296
+ }
297
+
298
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
299
+ _mm512_andnot_ps(__m512 __A, __m512 __B) {
300
+ return (__m512)(~(__v16su)__A & (__v16su)__B);
301
+ }
302
+
303
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512
304
+ _mm512_mask_andnot_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
305
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
306
+ (__v16sf)_mm512_andnot_ps(__A, __B),
307
+ (__v16sf)__W);
308
+ }
309
+
310
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512
311
+ _mm512_maskz_andnot_ps(__mmask16 __U, __m512 __A, __m512 __B) {
312
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
313
+ (__v16sf)_mm512_andnot_ps(__A, __B),
314
+ (__v16sf)_mm512_setzero_ps());
315
+ }
316
+
317
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
318
+ _mm512_cvtpd_epi64 (__m512d __A) {
319
+ return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
320
+ (__v8di) _mm512_setzero_si512(),
321
+ (__mmask8) -1,
322
+ _MM_FROUND_CUR_DIRECTION);
323
+ }
324
+
325
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
326
+ _mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) {
327
+ return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
328
+ (__v8di) __W,
329
+ (__mmask8) __U,
330
+ _MM_FROUND_CUR_DIRECTION);
331
+ }
332
+
333
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
334
+ _mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A) {
335
+ return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
336
+ (__v8di) _mm512_setzero_si512(),
337
+ (__mmask8) __U,
338
+ _MM_FROUND_CUR_DIRECTION);
339
+ }
340
+
341
+ #define _mm512_cvt_roundpd_epi64(A, R) \
342
+ ((__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \
343
+ (__v8di)_mm512_setzero_si512(), \
344
+ (__mmask8)-1, (int)(R)))
345
+
346
+ #define _mm512_mask_cvt_roundpd_epi64(W, U, A, R) \
347
+ ((__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \
348
+ (__v8di)(__m512i)(W), \
349
+ (__mmask8)(U), (int)(R)))
350
+
351
+ #define _mm512_maskz_cvt_roundpd_epi64(U, A, R) \
352
+ ((__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \
353
+ (__v8di)_mm512_setzero_si512(), \
354
+ (__mmask8)(U), (int)(R)))
355
+
356
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
357
+ _mm512_cvtpd_epu64 (__m512d __A) {
358
+ return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
359
+ (__v8di) _mm512_setzero_si512(),
360
+ (__mmask8) -1,
361
+ _MM_FROUND_CUR_DIRECTION);
362
+ }
363
+
364
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
365
+ _mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) {
366
+ return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
367
+ (__v8di) __W,
368
+ (__mmask8) __U,
369
+ _MM_FROUND_CUR_DIRECTION);
370
+ }
371
+
372
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
373
+ _mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A) {
374
+ return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
375
+ (__v8di) _mm512_setzero_si512(),
376
+ (__mmask8) __U,
377
+ _MM_FROUND_CUR_DIRECTION);
378
+ }
379
+
380
+ #define _mm512_cvt_roundpd_epu64(A, R) \
381
+ ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \
382
+ (__v8di)_mm512_setzero_si512(), \
383
+ (__mmask8)-1, (int)(R)))
384
+
385
+ #define _mm512_mask_cvt_roundpd_epu64(W, U, A, R) \
386
+ ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \
387
+ (__v8di)(__m512i)(W), \
388
+ (__mmask8)(U), (int)(R)))
389
+
390
+ #define _mm512_maskz_cvt_roundpd_epu64(U, A, R) \
391
+ ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \
392
+ (__v8di)_mm512_setzero_si512(), \
393
+ (__mmask8)(U), (int)(R)))
394
+
395
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
396
+ _mm512_cvtps_epi64 (__m256 __A) {
397
+ return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
398
+ (__v8di) _mm512_setzero_si512(),
399
+ (__mmask8) -1,
400
+ _MM_FROUND_CUR_DIRECTION);
401
+ }
402
+
403
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
404
+ _mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) {
405
+ return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
406
+ (__v8di) __W,
407
+ (__mmask8) __U,
408
+ _MM_FROUND_CUR_DIRECTION);
409
+ }
410
+
411
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
412
+ _mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A) {
413
+ return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
414
+ (__v8di) _mm512_setzero_si512(),
415
+ (__mmask8) __U,
416
+ _MM_FROUND_CUR_DIRECTION);
417
+ }
418
+
419
+ #define _mm512_cvt_roundps_epi64(A, R) \
420
+ ((__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \
421
+ (__v8di)_mm512_setzero_si512(), \
422
+ (__mmask8)-1, (int)(R)))
423
+
424
+ #define _mm512_mask_cvt_roundps_epi64(W, U, A, R) \
425
+ ((__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \
426
+ (__v8di)(__m512i)(W), \
427
+ (__mmask8)(U), (int)(R)))
428
+
429
+ #define _mm512_maskz_cvt_roundps_epi64(U, A, R) \
430
+ ((__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \
431
+ (__v8di)_mm512_setzero_si512(), \
432
+ (__mmask8)(U), (int)(R)))
433
+
434
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
435
+ _mm512_cvtps_epu64 (__m256 __A) {
436
+ return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
437
+ (__v8di) _mm512_setzero_si512(),
438
+ (__mmask8) -1,
439
+ _MM_FROUND_CUR_DIRECTION);
440
+ }
441
+
442
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
443
+ _mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) {
444
+ return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
445
+ (__v8di) __W,
446
+ (__mmask8) __U,
447
+ _MM_FROUND_CUR_DIRECTION);
448
+ }
449
+
450
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
451
+ _mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A) {
452
+ return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
453
+ (__v8di) _mm512_setzero_si512(),
454
+ (__mmask8) __U,
455
+ _MM_FROUND_CUR_DIRECTION);
456
+ }
457
+
458
+ #define _mm512_cvt_roundps_epu64(A, R) \
459
+ ((__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \
460
+ (__v8di)_mm512_setzero_si512(), \
461
+ (__mmask8)-1, (int)(R)))
462
+
463
+ #define _mm512_mask_cvt_roundps_epu64(W, U, A, R) \
464
+ ((__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \
465
+ (__v8di)(__m512i)(W), \
466
+ (__mmask8)(U), (int)(R)))
467
+
468
+ #define _mm512_maskz_cvt_roundps_epu64(U, A, R) \
469
+ ((__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \
470
+ (__v8di)_mm512_setzero_si512(), \
471
+ (__mmask8)(U), (int)(R)))
472
+
473
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
474
+ _mm512_cvtepi64_pd(__m512i __A) {
475
+ return (__m512d)__builtin_convertvector((__v8di)__A, __v8df);
476
+ }
477
+
478
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
479
+ _mm512_mask_cvtepi64_pd(__m512d __W, __mmask8 __U, __m512i __A) {
480
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
481
+ (__v8df)_mm512_cvtepi64_pd(__A),
482
+ (__v8df)__W);
483
+ }
484
+
485
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
486
+ _mm512_maskz_cvtepi64_pd(__mmask8 __U, __m512i __A) {
487
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
488
+ (__v8df)_mm512_cvtepi64_pd(__A),
489
+ (__v8df)_mm512_setzero_pd());
490
+ }
491
+
492
+ #define _mm512_cvt_roundepi64_pd(A, R) \
493
+ ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \
494
+ (__v8df)_mm512_setzero_pd(), \
495
+ (__mmask8)-1, (int)(R)))
496
+
497
+ #define _mm512_mask_cvt_roundepi64_pd(W, U, A, R) \
498
+ ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \
499
+ (__v8df)(__m512d)(W), \
500
+ (__mmask8)(U), (int)(R)))
501
+
502
+ #define _mm512_maskz_cvt_roundepi64_pd(U, A, R) \
503
+ ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \
504
+ (__v8df)_mm512_setzero_pd(), \
505
+ (__mmask8)(U), (int)(R)))
506
+
507
+ static __inline__ __m256 __DEFAULT_FN_ATTRS512
508
+ _mm512_cvtepi64_ps (__m512i __A) {
509
+ return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
510
+ (__v8sf) _mm256_setzero_ps(),
511
+ (__mmask8) -1,
512
+ _MM_FROUND_CUR_DIRECTION);
513
+ }
514
+
515
+ static __inline__ __m256 __DEFAULT_FN_ATTRS512
516
+ _mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A) {
517
+ return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
518
+ (__v8sf) __W,
519
+ (__mmask8) __U,
520
+ _MM_FROUND_CUR_DIRECTION);
521
+ }
522
+
523
+ static __inline__ __m256 __DEFAULT_FN_ATTRS512
524
+ _mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A) {
525
+ return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
526
+ (__v8sf) _mm256_setzero_ps(),
527
+ (__mmask8) __U,
528
+ _MM_FROUND_CUR_DIRECTION);
529
+ }
530
+
531
+ #define _mm512_cvt_roundepi64_ps(A, R) \
532
+ ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \
533
+ (__v8sf)_mm256_setzero_ps(), \
534
+ (__mmask8)-1, (int)(R)))
535
+
536
+ #define _mm512_mask_cvt_roundepi64_ps(W, U, A, R) \
537
+ ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \
538
+ (__v8sf)(__m256)(W), (__mmask8)(U), \
539
+ (int)(R)))
540
+
541
+ #define _mm512_maskz_cvt_roundepi64_ps(U, A, R) \
542
+ ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \
543
+ (__v8sf)_mm256_setzero_ps(), \
544
+ (__mmask8)(U), (int)(R)))
545
+
546
+
547
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
548
+ _mm512_cvttpd_epi64 (__m512d __A) {
549
+ return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
550
+ (__v8di) _mm512_setzero_si512(),
551
+ (__mmask8) -1,
552
+ _MM_FROUND_CUR_DIRECTION);
553
+ }
554
+
555
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
556
+ _mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) {
557
+ return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
558
+ (__v8di) __W,
559
+ (__mmask8) __U,
560
+ _MM_FROUND_CUR_DIRECTION);
561
+ }
562
+
563
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
564
+ _mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A) {
565
+ return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
566
+ (__v8di) _mm512_setzero_si512(),
567
+ (__mmask8) __U,
568
+ _MM_FROUND_CUR_DIRECTION);
569
+ }
570
+
571
+ #define _mm512_cvtt_roundpd_epi64(A, R) \
572
+ ((__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \
573
+ (__v8di)_mm512_setzero_si512(), \
574
+ (__mmask8)-1, (int)(R)))
575
+
576
+ #define _mm512_mask_cvtt_roundpd_epi64(W, U, A, R) \
577
+ ((__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \
578
+ (__v8di)(__m512i)(W), \
579
+ (__mmask8)(U), (int)(R)))
580
+
581
+ #define _mm512_maskz_cvtt_roundpd_epi64(U, A, R) \
582
+ ((__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \
583
+ (__v8di)_mm512_setzero_si512(), \
584
+ (__mmask8)(U), (int)(R)))
585
+
586
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
587
+ _mm512_cvttpd_epu64 (__m512d __A) {
588
+ return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
589
+ (__v8di) _mm512_setzero_si512(),
590
+ (__mmask8) -1,
591
+ _MM_FROUND_CUR_DIRECTION);
592
+ }
593
+
594
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
595
+ _mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) {
596
+ return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
597
+ (__v8di) __W,
598
+ (__mmask8) __U,
599
+ _MM_FROUND_CUR_DIRECTION);
600
+ }
601
+
602
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
603
+ _mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A) {
604
+ return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
605
+ (__v8di) _mm512_setzero_si512(),
606
+ (__mmask8) __U,
607
+ _MM_FROUND_CUR_DIRECTION);
608
+ }
609
+
610
+ #define _mm512_cvtt_roundpd_epu64(A, R) \
611
+ ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \
612
+ (__v8di)_mm512_setzero_si512(), \
613
+ (__mmask8)-1, (int)(R)))
614
+
615
+ #define _mm512_mask_cvtt_roundpd_epu64(W, U, A, R) \
616
+ ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \
617
+ (__v8di)(__m512i)(W), \
618
+ (__mmask8)(U), (int)(R)))
619
+
620
+ #define _mm512_maskz_cvtt_roundpd_epu64(U, A, R) \
621
+ ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \
622
+ (__v8di)_mm512_setzero_si512(), \
623
+ (__mmask8)(U), (int)(R)))
624
+
625
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
626
+ _mm512_cvttps_epi64 (__m256 __A) {
627
+ return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
628
+ (__v8di) _mm512_setzero_si512(),
629
+ (__mmask8) -1,
630
+ _MM_FROUND_CUR_DIRECTION);
631
+ }
632
+
633
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
634
+ _mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) {
635
+ return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
636
+ (__v8di) __W,
637
+ (__mmask8) __U,
638
+ _MM_FROUND_CUR_DIRECTION);
639
+ }
640
+
641
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
642
+ _mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A) {
643
+ return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
644
+ (__v8di) _mm512_setzero_si512(),
645
+ (__mmask8) __U,
646
+ _MM_FROUND_CUR_DIRECTION);
647
+ }
648
+
649
+ #define _mm512_cvtt_roundps_epi64(A, R) \
650
+ ((__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \
651
+ (__v8di)_mm512_setzero_si512(), \
652
+ (__mmask8)-1, (int)(R)))
653
+
654
+ #define _mm512_mask_cvtt_roundps_epi64(W, U, A, R) \
655
+ ((__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \
656
+ (__v8di)(__m512i)(W), \
657
+ (__mmask8)(U), (int)(R)))
658
+
659
+ #define _mm512_maskz_cvtt_roundps_epi64(U, A, R) \
660
+ ((__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \
661
+ (__v8di)_mm512_setzero_si512(), \
662
+ (__mmask8)(U), (int)(R)))
663
+
664
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
665
+ _mm512_cvttps_epu64 (__m256 __A) {
666
+ return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
667
+ (__v8di) _mm512_setzero_si512(),
668
+ (__mmask8) -1,
669
+ _MM_FROUND_CUR_DIRECTION);
670
+ }
671
+
672
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
673
+ _mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) {
674
+ return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
675
+ (__v8di) __W,
676
+ (__mmask8) __U,
677
+ _MM_FROUND_CUR_DIRECTION);
678
+ }
679
+
680
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
681
+ _mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A) {
682
+ return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
683
+ (__v8di) _mm512_setzero_si512(),
684
+ (__mmask8) __U,
685
+ _MM_FROUND_CUR_DIRECTION);
686
+ }
687
+
688
+ #define _mm512_cvtt_roundps_epu64(A, R) \
689
+ ((__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \
690
+ (__v8di)_mm512_setzero_si512(), \
691
+ (__mmask8)-1, (int)(R)))
692
+
693
+ #define _mm512_mask_cvtt_roundps_epu64(W, U, A, R) \
694
+ ((__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \
695
+ (__v8di)(__m512i)(W), \
696
+ (__mmask8)(U), (int)(R)))
697
+
698
+ #define _mm512_maskz_cvtt_roundps_epu64(U, A, R) \
699
+ ((__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \
700
+ (__v8di)_mm512_setzero_si512(), \
701
+ (__mmask8)(U), (int)(R)))
702
+
703
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
704
+ _mm512_cvtepu64_pd(__m512i __A) {
705
+ return (__m512d)__builtin_convertvector((__v8du)__A, __v8df);
706
+ }
707
+
708
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
709
+ _mm512_mask_cvtepu64_pd(__m512d __W, __mmask8 __U, __m512i __A) {
710
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
711
+ (__v8df)_mm512_cvtepu64_pd(__A),
712
+ (__v8df)__W);
713
+ }
714
+
715
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
716
+ _mm512_maskz_cvtepu64_pd(__mmask8 __U, __m512i __A) {
717
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
718
+ (__v8df)_mm512_cvtepu64_pd(__A),
719
+ (__v8df)_mm512_setzero_pd());
720
+ }
721
+
722
+ #define _mm512_cvt_roundepu64_pd(A, R) \
723
+ ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \
724
+ (__v8df)_mm512_setzero_pd(), \
725
+ (__mmask8)-1, (int)(R)))
726
+
727
+ #define _mm512_mask_cvt_roundepu64_pd(W, U, A, R) \
728
+ ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \
729
+ (__v8df)(__m512d)(W), \
730
+ (__mmask8)(U), (int)(R)))
731
+
732
+
733
+ #define _mm512_maskz_cvt_roundepu64_pd(U, A, R) \
734
+ ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \
735
+ (__v8df)_mm512_setzero_pd(), \
736
+ (__mmask8)(U), (int)(R)))
737
+
738
+
739
+ static __inline__ __m256 __DEFAULT_FN_ATTRS512
740
+ _mm512_cvtepu64_ps (__m512i __A) {
741
+ return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
742
+ (__v8sf) _mm256_setzero_ps(),
743
+ (__mmask8) -1,
744
+ _MM_FROUND_CUR_DIRECTION);
745
+ }
746
+
747
+ static __inline__ __m256 __DEFAULT_FN_ATTRS512
748
+ _mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A) {
749
+ return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
750
+ (__v8sf) __W,
751
+ (__mmask8) __U,
752
+ _MM_FROUND_CUR_DIRECTION);
753
+ }
754
+
755
+ static __inline__ __m256 __DEFAULT_FN_ATTRS512
756
+ _mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A) {
757
+ return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
758
+ (__v8sf) _mm256_setzero_ps(),
759
+ (__mmask8) __U,
760
+ _MM_FROUND_CUR_DIRECTION);
761
+ }
762
+
763
+ #define _mm512_cvt_roundepu64_ps(A, R) \
764
+ ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \
765
+ (__v8sf)_mm256_setzero_ps(), \
766
+ (__mmask8)-1, (int)(R)))
767
+
768
+ #define _mm512_mask_cvt_roundepu64_ps(W, U, A, R) \
769
+ ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \
770
+ (__v8sf)(__m256)(W), (__mmask8)(U), \
771
+ (int)(R)))
772
+
773
+ #define _mm512_maskz_cvt_roundepu64_ps(U, A, R) \
774
+ ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \
775
+ (__v8sf)_mm256_setzero_ps(), \
776
+ (__mmask8)(U), (int)(R)))
777
+
778
+ #define _mm512_range_pd(A, B, C) \
779
+ ((__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \
780
+ (__v8df)(__m512d)(B), (int)(C), \
781
+ (__v8df)_mm512_setzero_pd(), \
782
+ (__mmask8)-1, \
783
+ _MM_FROUND_CUR_DIRECTION))
784
+
785
+ #define _mm512_mask_range_pd(W, U, A, B, C) \
786
+ ((__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \
787
+ (__v8df)(__m512d)(B), (int)(C), \
788
+ (__v8df)(__m512d)(W), (__mmask8)(U), \
789
+ _MM_FROUND_CUR_DIRECTION))
790
+
791
+ #define _mm512_maskz_range_pd(U, A, B, C) \
792
+ ((__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \
793
+ (__v8df)(__m512d)(B), (int)(C), \
794
+ (__v8df)_mm512_setzero_pd(), \
795
+ (__mmask8)(U), \
796
+ _MM_FROUND_CUR_DIRECTION))
797
+
798
+ #define _mm512_range_round_pd(A, B, C, R) \
799
+ ((__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \
800
+ (__v8df)(__m512d)(B), (int)(C), \
801
+ (__v8df)_mm512_setzero_pd(), \
802
+ (__mmask8)-1, (int)(R)))
803
+
804
+ #define _mm512_mask_range_round_pd(W, U, A, B, C, R) \
805
+ ((__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \
806
+ (__v8df)(__m512d)(B), (int)(C), \
807
+ (__v8df)(__m512d)(W), (__mmask8)(U), \
808
+ (int)(R)))
809
+
810
+ #define _mm512_maskz_range_round_pd(U, A, B, C, R) \
811
+ ((__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \
812
+ (__v8df)(__m512d)(B), (int)(C), \
813
+ (__v8df)_mm512_setzero_pd(), \
814
+ (__mmask8)(U), (int)(R)))
815
+
816
+ #define _mm512_range_ps(A, B, C) \
817
+ ((__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \
818
+ (__v16sf)(__m512)(B), (int)(C), \
819
+ (__v16sf)_mm512_setzero_ps(), \
820
+ (__mmask16)-1, \
821
+ _MM_FROUND_CUR_DIRECTION))
822
+
823
+ #define _mm512_mask_range_ps(W, U, A, B, C) \
824
+ ((__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \
825
+ (__v16sf)(__m512)(B), (int)(C), \
826
+ (__v16sf)(__m512)(W), (__mmask16)(U), \
827
+ _MM_FROUND_CUR_DIRECTION))
828
+
829
+ #define _mm512_maskz_range_ps(U, A, B, C) \
830
+ ((__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \
831
+ (__v16sf)(__m512)(B), (int)(C), \
832
+ (__v16sf)_mm512_setzero_ps(), \
833
+ (__mmask16)(U), \
834
+ _MM_FROUND_CUR_DIRECTION))
835
+
836
+ #define _mm512_range_round_ps(A, B, C, R) \
837
+ ((__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \
838
+ (__v16sf)(__m512)(B), (int)(C), \
839
+ (__v16sf)_mm512_setzero_ps(), \
840
+ (__mmask16)-1, (int)(R)))
841
+
842
+ #define _mm512_mask_range_round_ps(W, U, A, B, C, R) \
843
+ ((__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \
844
+ (__v16sf)(__m512)(B), (int)(C), \
845
+ (__v16sf)(__m512)(W), (__mmask16)(U), \
846
+ (int)(R)))
847
+
848
+ #define _mm512_maskz_range_round_ps(U, A, B, C, R) \
849
+ ((__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \
850
+ (__v16sf)(__m512)(B), (int)(C), \
851
+ (__v16sf)_mm512_setzero_ps(), \
852
+ (__mmask16)(U), (int)(R)))
853
+
854
+ #define _mm_range_round_ss(A, B, C, R) \
855
+ ((__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \
856
+ (__v4sf)(__m128)(B), \
857
+ (__v4sf)_mm_setzero_ps(), \
858
+ (__mmask8) -1, (int)(C),\
859
+ (int)(R)))
860
+
861
+ #define _mm_range_ss(A ,B , C) _mm_range_round_ss(A, B, C ,_MM_FROUND_CUR_DIRECTION)
862
+
863
+ #define _mm_mask_range_round_ss(W, U, A, B, C, R) \
864
+ ((__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \
865
+ (__v4sf)(__m128)(B), \
866
+ (__v4sf)(__m128)(W),\
867
+ (__mmask8)(U), (int)(C),\
868
+ (int)(R)))
869
+
870
+ #define _mm_mask_range_ss(W , U, A, B, C) _mm_mask_range_round_ss(W, U, A, B, C , _MM_FROUND_CUR_DIRECTION)
871
+
872
+ #define _mm_maskz_range_round_ss(U, A, B, C, R) \
873
+ ((__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \
874
+ (__v4sf)(__m128)(B), \
875
+ (__v4sf)_mm_setzero_ps(), \
876
+ (__mmask8)(U), (int)(C),\
877
+ (int)(R)))
878
+
879
+ #define _mm_maskz_range_ss(U, A ,B , C) _mm_maskz_range_round_ss(U, A, B, C ,_MM_FROUND_CUR_DIRECTION)
880
+
881
+ #define _mm_range_round_sd(A, B, C, R) \
882
+ ((__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \
883
+ (__v2df)(__m128d)(B), \
884
+ (__v2df)_mm_setzero_pd(), \
885
+ (__mmask8) -1, (int)(C),\
886
+ (int)(R)))
887
+
888
+ #define _mm_range_sd(A ,B , C) _mm_range_round_sd(A, B, C ,_MM_FROUND_CUR_DIRECTION)
889
+
890
+ #define _mm_mask_range_round_sd(W, U, A, B, C, R) \
891
+ ((__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \
892
+ (__v2df)(__m128d)(B), \
893
+ (__v2df)(__m128d)(W),\
894
+ (__mmask8)(U), (int)(C),\
895
+ (int)(R)))
896
+
897
+ #define _mm_mask_range_sd(W, U, A, B, C) _mm_mask_range_round_sd(W, U, A, B, C ,_MM_FROUND_CUR_DIRECTION)
898
+
899
+ #define _mm_maskz_range_round_sd(U, A, B, C, R) \
900
+ ((__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \
901
+ (__v2df)(__m128d)(B), \
902
+ (__v2df)_mm_setzero_pd(), \
903
+ (__mmask8)(U), (int)(C),\
904
+ (int)(R)))
905
+
906
+ #define _mm_maskz_range_sd(U, A, B, C) _mm_maskz_range_round_sd(U, A, B, C ,_MM_FROUND_CUR_DIRECTION)
907
+
908
+ #define _mm512_reduce_pd(A, B) \
909
+ ((__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \
910
+ (__v8df)_mm512_setzero_pd(), \
911
+ (__mmask8)-1, \
912
+ _MM_FROUND_CUR_DIRECTION))
913
+
914
+ #define _mm512_mask_reduce_pd(W, U, A, B) \
915
+ ((__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \
916
+ (__v8df)(__m512d)(W), \
917
+ (__mmask8)(U), \
918
+ _MM_FROUND_CUR_DIRECTION))
919
+
920
+ #define _mm512_maskz_reduce_pd(U, A, B) \
921
+ ((__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \
922
+ (__v8df)_mm512_setzero_pd(), \
923
+ (__mmask8)(U), \
924
+ _MM_FROUND_CUR_DIRECTION))
925
+
926
+ #define _mm512_reduce_ps(A, B) \
927
+ ((__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \
928
+ (__v16sf)_mm512_setzero_ps(), \
929
+ (__mmask16)-1, \
930
+ _MM_FROUND_CUR_DIRECTION))
931
+
932
+ #define _mm512_mask_reduce_ps(W, U, A, B) \
933
+ ((__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \
934
+ (__v16sf)(__m512)(W), \
935
+ (__mmask16)(U), \
936
+ _MM_FROUND_CUR_DIRECTION))
937
+
938
+ #define _mm512_maskz_reduce_ps(U, A, B) \
939
+ ((__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \
940
+ (__v16sf)_mm512_setzero_ps(), \
941
+ (__mmask16)(U), \
942
+ _MM_FROUND_CUR_DIRECTION))
943
+
944
+ #define _mm512_reduce_round_pd(A, B, R) \
945
+ ((__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \
946
+ (__v8df)_mm512_setzero_pd(), \
947
+ (__mmask8)-1, (int)(R)))
948
+
949
+ #define _mm512_mask_reduce_round_pd(W, U, A, B, R) \
950
+ ((__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \
951
+ (__v8df)(__m512d)(W), \
952
+ (__mmask8)(U), (int)(R)))
953
+
954
+ #define _mm512_maskz_reduce_round_pd(U, A, B, R) \
955
+ ((__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \
956
+ (__v8df)_mm512_setzero_pd(), \
957
+ (__mmask8)(U), (int)(R)))
958
+
959
+ #define _mm512_reduce_round_ps(A, B, R) \
960
+ ((__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \
961
+ (__v16sf)_mm512_setzero_ps(), \
962
+ (__mmask16)-1, (int)(R)))
963
+
964
+ #define _mm512_mask_reduce_round_ps(W, U, A, B, R) \
965
+ ((__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \
966
+ (__v16sf)(__m512)(W), \
967
+ (__mmask16)(U), (int)(R)))
968
+
969
+ #define _mm512_maskz_reduce_round_ps(U, A, B, R) \
970
+ ((__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \
971
+ (__v16sf)_mm512_setzero_ps(), \
972
+ (__mmask16)(U), (int)(R)))
973
+
974
+ #define _mm_reduce_ss(A, B, C) \
975
+ ((__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \
976
+ (__v4sf)(__m128)(B), \
977
+ (__v4sf)_mm_setzero_ps(), (__mmask8)-1, \
978
+ (int)(C), _MM_FROUND_CUR_DIRECTION))
979
+
980
+ #define _mm_mask_reduce_ss(W, U, A, B, C) \
981
+ ((__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \
982
+ (__v4sf)(__m128)(B), \
983
+ (__v4sf)(__m128)(W), (__mmask8)(U), \
984
+ (int)(C), _MM_FROUND_CUR_DIRECTION))
985
+
986
+ #define _mm_maskz_reduce_ss(U, A, B, C) \
987
+ ((__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \
988
+ (__v4sf)(__m128)(B), \
989
+ (__v4sf)_mm_setzero_ps(), \
990
+ (__mmask8)(U), (int)(C), \
991
+ _MM_FROUND_CUR_DIRECTION))
992
+
993
+ #define _mm_reduce_round_ss(A, B, C, R) \
994
+ ((__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \
995
+ (__v4sf)(__m128)(B), \
996
+ (__v4sf)_mm_setzero_ps(), (__mmask8)-1, \
997
+ (int)(C), (int)(R)))
998
+
999
+ #define _mm_mask_reduce_round_ss(W, U, A, B, C, R) \
1000
+ ((__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \
1001
+ (__v4sf)(__m128)(B), \
1002
+ (__v4sf)(__m128)(W), (__mmask8)(U), \
1003
+ (int)(C), (int)(R)))
1004
+
1005
+ #define _mm_maskz_reduce_round_ss(U, A, B, C, R) \
1006
+ ((__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \
1007
+ (__v4sf)(__m128)(B), \
1008
+ (__v4sf)_mm_setzero_ps(), \
1009
+ (__mmask8)(U), (int)(C), (int)(R)))
1010
+
1011
+ #define _mm_reduce_sd(A, B, C) \
1012
+ ((__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \
1013
+ (__v2df)(__m128d)(B), \
1014
+ (__v2df)_mm_setzero_pd(), \
1015
+ (__mmask8)-1, (int)(C), \
1016
+ _MM_FROUND_CUR_DIRECTION))
1017
+
1018
+ #define _mm_mask_reduce_sd(W, U, A, B, C) \
1019
+ ((__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \
1020
+ (__v2df)(__m128d)(B), \
1021
+ (__v2df)(__m128d)(W), (__mmask8)(U), \
1022
+ (int)(C), _MM_FROUND_CUR_DIRECTION))
1023
+
1024
+ #define _mm_maskz_reduce_sd(U, A, B, C) \
1025
+ ((__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \
1026
+ (__v2df)(__m128d)(B), \
1027
+ (__v2df)_mm_setzero_pd(), \
1028
+ (__mmask8)(U), (int)(C), \
1029
+ _MM_FROUND_CUR_DIRECTION))
1030
+
1031
+ #define _mm_reduce_round_sd(A, B, C, R) \
1032
+ ((__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \
1033
+ (__v2df)(__m128d)(B), \
1034
+ (__v2df)_mm_setzero_pd(), \
1035
+ (__mmask8)-1, (int)(C), (int)(R)))
1036
+
1037
+ #define _mm_mask_reduce_round_sd(W, U, A, B, C, R) \
1038
+ ((__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \
1039
+ (__v2df)(__m128d)(B), \
1040
+ (__v2df)(__m128d)(W), (__mmask8)(U), \
1041
+ (int)(C), (int)(R)))
1042
+
1043
+ #define _mm_maskz_reduce_round_sd(U, A, B, C, R) \
1044
+ ((__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \
1045
+ (__v2df)(__m128d)(B), \
1046
+ (__v2df)_mm_setzero_pd(), \
1047
+ (__mmask8)(U), (int)(C), (int)(R)))
1048
+
1049
+ static __inline__ __mmask16
1050
+ __DEFAULT_FN_ATTRS512_CONSTEXPR _mm512_movepi32_mask(__m512i __A) {
1051
+ return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A);
1052
+ }
1053
+
1054
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1055
+ _mm512_movm_epi32(__mmask16 __A) {
1056
+ return (__m512i) __builtin_ia32_cvtmask2d512 (__A);
1057
+ }
1058
+
1059
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1060
+ _mm512_movm_epi64(__mmask8 __A) {
1061
+ return (__m512i) __builtin_ia32_cvtmask2q512 (__A);
1062
+ }
1063
+
1064
+ static __inline__ __mmask8 __DEFAULT_FN_ATTRS512_CONSTEXPR
1065
+ _mm512_movepi64_mask(__m512i __A) {
1066
+ return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A);
1067
+ }
1068
+
1069
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
1070
+ _mm512_broadcast_f32x2(__m128 __A) {
1071
+ return (__m512)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A,
1072
+ 0, 1, 0, 1, 0, 1, 0, 1,
1073
+ 0, 1, 0, 1, 0, 1, 0, 1);
1074
+ }
1075
+
1076
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
1077
+ _mm512_mask_broadcast_f32x2(__m512 __O, __mmask16 __M, __m128 __A) {
1078
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__M,
1079
+ (__v16sf)_mm512_broadcast_f32x2(__A),
1080
+ (__v16sf)__O);
1081
+ }
1082
+
1083
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
1084
+ _mm512_maskz_broadcast_f32x2(__mmask16 __M, __m128 __A) {
1085
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__M,
1086
+ (__v16sf)_mm512_broadcast_f32x2(__A),
1087
+ (__v16sf)_mm512_setzero_ps());
1088
+ }
1089
+
1090
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
1091
+ _mm512_broadcast_f32x8(__m256 __A) {
1092
+ return (__m512)__builtin_shufflevector((__v8sf)__A, (__v8sf)__A,
1093
+ 0, 1, 2, 3, 4, 5, 6, 7,
1094
+ 0, 1, 2, 3, 4, 5, 6, 7);
1095
+ }
1096
+
1097
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
1098
+ _mm512_mask_broadcast_f32x8(__m512 __O, __mmask16 __M, __m256 __A) {
1099
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__M,
1100
+ (__v16sf)_mm512_broadcast_f32x8(__A),
1101
+ (__v16sf)__O);
1102
+ }
1103
+
1104
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
1105
+ _mm512_maskz_broadcast_f32x8(__mmask16 __M, __m256 __A) {
1106
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__M,
1107
+ (__v16sf)_mm512_broadcast_f32x8(__A),
1108
+ (__v16sf)_mm512_setzero_ps());
1109
+ }
1110
+
1111
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
1112
+ _mm512_broadcast_f64x2(__m128d __A) {
1113
+ return (__m512d)__builtin_shufflevector((__v2df)__A, (__v2df)__A,
1114
+ 0, 1, 0, 1, 0, 1, 0, 1);
1115
+ }
1116
+
1117
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
1118
+ _mm512_mask_broadcast_f64x2(__m512d __O, __mmask8 __M, __m128d __A) {
1119
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M,
1120
+ (__v8df)_mm512_broadcast_f64x2(__A),
1121
+ (__v8df)__O);
1122
+ }
1123
+
1124
+ static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
1125
+ _mm512_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) {
1126
+ return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M,
1127
+ (__v8df)_mm512_broadcast_f64x2(__A),
1128
+ (__v8df)_mm512_setzero_pd());
1129
+ }
1130
+
1131
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1132
+ _mm512_broadcast_i32x2(__m128i __A) {
1133
+ return (__m512i)__builtin_shufflevector((__v4si)__A, (__v4si)__A,
1134
+ 0, 1, 0, 1, 0, 1, 0, 1,
1135
+ 0, 1, 0, 1, 0, 1, 0, 1);
1136
+ }
1137
+
1138
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1139
+ _mm512_mask_broadcast_i32x2(__m512i __O, __mmask16 __M, __m128i __A) {
1140
+ return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M,
1141
+ (__v16si)_mm512_broadcast_i32x2(__A),
1142
+ (__v16si)__O);
1143
+ }
1144
+
1145
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1146
+ _mm512_maskz_broadcast_i32x2(__mmask16 __M, __m128i __A) {
1147
+ return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M,
1148
+ (__v16si)_mm512_broadcast_i32x2(__A),
1149
+ (__v16si)_mm512_setzero_si512());
1150
+ }
1151
+
1152
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1153
+ _mm512_broadcast_i32x8(__m256i __A) {
1154
+ return (__m512i)__builtin_shufflevector((__v8si)__A, (__v8si)__A,
1155
+ 0, 1, 2, 3, 4, 5, 6, 7,
1156
+ 0, 1, 2, 3, 4, 5, 6, 7);
1157
+ }
1158
+
1159
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1160
+ _mm512_mask_broadcast_i32x8(__m512i __O, __mmask16 __M, __m256i __A) {
1161
+ return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M,
1162
+ (__v16si)_mm512_broadcast_i32x8(__A),
1163
+ (__v16si)__O);
1164
+ }
1165
+
1166
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1167
+ _mm512_maskz_broadcast_i32x8(__mmask16 __M, __m256i __A) {
1168
+ return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M,
1169
+ (__v16si)_mm512_broadcast_i32x8(__A),
1170
+ (__v16si)_mm512_setzero_si512());
1171
+ }
1172
+
1173
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1174
+ _mm512_broadcast_i64x2(__m128i __A) {
1175
+ return (__m512i)__builtin_shufflevector((__v2di)__A, (__v2di)__A,
1176
+ 0, 1, 0, 1, 0, 1, 0, 1);
1177
+ }
1178
+
1179
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1180
+ _mm512_mask_broadcast_i64x2(__m512i __O, __mmask8 __M, __m128i __A) {
1181
+ return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M,
1182
+ (__v8di)_mm512_broadcast_i64x2(__A),
1183
+ (__v8di)__O);
1184
+ }
1185
+
1186
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
1187
+ _mm512_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A) {
1188
+ return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M,
1189
+ (__v8di)_mm512_broadcast_i64x2(__A),
1190
+ (__v8di)_mm512_setzero_si512());
1191
+ }
1192
+
1193
+ #define _mm512_extractf32x8_ps(A, imm) \
1194
+ ((__m256)__builtin_ia32_extractf32x8_mask((__v16sf)(__m512)(A), (int)(imm), \
1195
+ (__v8sf)_mm256_setzero_ps(), \
1196
+ (__mmask8) - 1))
1197
+
1198
+ #define _mm512_mask_extractf32x8_ps(W, U, A, imm) \
1199
+ ((__m256)__builtin_ia32_extractf32x8_mask((__v16sf)(__m512)(A), (int)(imm), \
1200
+ (__v8sf)(__m256)(W), \
1201
+ (__mmask8)(U)))
1202
+
1203
+ #define _mm512_maskz_extractf32x8_ps(U, A, imm) \
1204
+ ((__m256)__builtin_ia32_extractf32x8_mask((__v16sf)(__m512)(A), (int)(imm), \
1205
+ (__v8sf)_mm256_setzero_ps(), \
1206
+ (__mmask8)(U)))
1207
+
1208
+ #define _mm512_extractf64x2_pd(A, imm) \
1209
+ ((__m128d)__builtin_ia32_extractf64x2_512_mask( \
1210
+ (__v8df)(__m512d)(A), (int)(imm), (__v2df)_mm_setzero_pd(), \
1211
+ (__mmask8) - 1))
1212
+
1213
+ #define _mm512_mask_extractf64x2_pd(W, U, A, imm) \
1214
+ ((__m128d)__builtin_ia32_extractf64x2_512_mask((__v8df)(__m512d)(A), \
1215
+ (int)(imm), \
1216
+ (__v2df)(__m128d)(W), \
1217
+ (__mmask8)(U)))
1218
+
1219
+ #define _mm512_maskz_extractf64x2_pd(U, A, imm) \
1220
+ ((__m128d)__builtin_ia32_extractf64x2_512_mask((__v8df)(__m512d)(A), \
1221
+ (int)(imm), \
1222
+ (__v2df)_mm_setzero_pd(), \
1223
+ (__mmask8)(U)))
1224
+
1225
+ #define _mm512_extracti32x8_epi32(A, imm) \
1226
+ ((__m256i)__builtin_ia32_extracti32x8_mask( \
1227
+ (__v16si)(__m512i)(A), (int)(imm), (__v8si)_mm256_setzero_si256(), \
1228
+ (__mmask8) - 1))
1229
+
1230
+ #define _mm512_mask_extracti32x8_epi32(W, U, A, imm) \
1231
+ ((__m256i)__builtin_ia32_extracti32x8_mask((__v16si)(__m512i)(A), (int)(imm), \
1232
+ (__v8si)(__m256i)(W), \
1233
+ (__mmask8)(U)))
1234
+
1235
+ #define _mm512_maskz_extracti32x8_epi32(U, A, imm) \
1236
+ ((__m256i)__builtin_ia32_extracti32x8_mask((__v16si)(__m512i)(A), (int)(imm), \
1237
+ (__v8si)_mm256_setzero_si256(), \
1238
+ (__mmask8)(U)))
1239
+
1240
+ #define _mm512_extracti64x2_epi64(A, imm) \
1241
+ ((__m128i)__builtin_ia32_extracti64x2_512_mask( \
1242
+ (__v8di)(__m512i)(A), (int)(imm), (__v2di)_mm_setzero_si128(), \
1243
+ (__mmask8) - 1))
1244
+
1245
+ #define _mm512_mask_extracti64x2_epi64(W, U, A, imm) \
1246
+ ((__m128i)__builtin_ia32_extracti64x2_512_mask((__v8di)(__m512i)(A), \
1247
+ (int)(imm), \
1248
+ (__v2di)(__m128i)(W), \
1249
+ (__mmask8)(U)))
1250
+
1251
+ #define _mm512_maskz_extracti64x2_epi64(U, A, imm) \
1252
+ ((__m128i)__builtin_ia32_extracti64x2_512_mask((__v8di)(__m512i)(A), \
1253
+ (int)(imm), \
1254
+ (__v2di)_mm_setzero_si128(), \
1255
+ (__mmask8)(U)))
1256
+
1257
+ #define _mm512_insertf32x8(A, B, imm) \
1258
+ ((__m512)__builtin_ia32_insertf32x8((__v16sf)(__m512)(A), \
1259
+ (__v8sf)(__m256)(B), (int)(imm)))
1260
+
1261
+ #define _mm512_mask_insertf32x8(W, U, A, B, imm) \
1262
+ ((__m512)__builtin_ia32_selectps_512((__mmask16)(U), \
1263
+ (__v16sf)_mm512_insertf32x8((A), (B), (imm)), \
1264
+ (__v16sf)(__m512)(W)))
1265
+
1266
+ #define _mm512_maskz_insertf32x8(U, A, B, imm) \
1267
+ ((__m512)__builtin_ia32_selectps_512((__mmask16)(U), \
1268
+ (__v16sf)_mm512_insertf32x8((A), (B), (imm)), \
1269
+ (__v16sf)_mm512_setzero_ps()))
1270
+
1271
+ #define _mm512_insertf64x2(A, B, imm) \
1272
+ ((__m512d)__builtin_ia32_insertf64x2_512((__v8df)(__m512d)(A), \
1273
+ (__v2df)(__m128d)(B), (int)(imm)))
1274
+
1275
+ #define _mm512_mask_insertf64x2(W, U, A, B, imm) \
1276
+ ((__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \
1277
+ (__v8df)_mm512_insertf64x2((A), (B), (imm)), \
1278
+ (__v8df)(__m512d)(W)))
1279
+
1280
+ #define _mm512_maskz_insertf64x2(U, A, B, imm) \
1281
+ ((__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \
1282
+ (__v8df)_mm512_insertf64x2((A), (B), (imm)), \
1283
+ (__v8df)_mm512_setzero_pd()))
1284
+
1285
+ #define _mm512_inserti32x8(A, B, imm) \
1286
+ ((__m512i)__builtin_ia32_inserti32x8((__v16si)(__m512i)(A), \
1287
+ (__v8si)(__m256i)(B), (int)(imm)))
1288
+
1289
+ #define _mm512_mask_inserti32x8(W, U, A, B, imm) \
1290
+ ((__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
1291
+ (__v16si)_mm512_inserti32x8((A), (B), (imm)), \
1292
+ (__v16si)(__m512i)(W)))
1293
+
1294
+ #define _mm512_maskz_inserti32x8(U, A, B, imm) \
1295
+ ((__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
1296
+ (__v16si)_mm512_inserti32x8((A), (B), (imm)), \
1297
+ (__v16si)_mm512_setzero_si512()))
1298
+
1299
+ #define _mm512_inserti64x2(A, B, imm) \
1300
+ ((__m512i)__builtin_ia32_inserti64x2_512((__v8di)(__m512i)(A), \
1301
+ (__v2di)(__m128i)(B), (int)(imm)))
1302
+
1303
+ #define _mm512_mask_inserti64x2(W, U, A, B, imm) \
1304
+ ((__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
1305
+ (__v8di)_mm512_inserti64x2((A), (B), (imm)), \
1306
+ (__v8di)(__m512i)(W)))
1307
+
1308
+ #define _mm512_maskz_inserti64x2(U, A, B, imm) \
1309
+ ((__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
1310
+ (__v8di)_mm512_inserti64x2((A), (B), (imm)), \
1311
+ (__v8di)_mm512_setzero_si512()))
1312
+
1313
+ #define _mm512_mask_fpclass_ps_mask(U, A, imm) \
1314
+ ((__mmask16)__builtin_ia32_fpclassps512_mask((__v16sf)(__m512)(A), \
1315
+ (int)(imm), (__mmask16)(U)))
1316
+
1317
+ #define _mm512_fpclass_ps_mask(A, imm) \
1318
+ ((__mmask16)__builtin_ia32_fpclassps512_mask((__v16sf)(__m512)(A), \
1319
+ (int)(imm), (__mmask16)-1))
1320
+
1321
+ #define _mm512_mask_fpclass_pd_mask(U, A, imm) \
1322
+ ((__mmask8)__builtin_ia32_fpclasspd512_mask((__v8df)(__m512d)(A), (int)(imm), \
1323
+ (__mmask8)(U)))
1324
+
1325
+ #define _mm512_fpclass_pd_mask(A, imm) \
1326
+ ((__mmask8)__builtin_ia32_fpclasspd512_mask((__v8df)(__m512d)(A), (int)(imm), \
1327
+ (__mmask8)-1))
1328
+
1329
+ #define _mm_fpclass_sd_mask(A, imm) \
1330
+ ((__mmask8)__builtin_ia32_fpclasssd_mask((__v2df)(__m128d)(A), (int)(imm), \
1331
+ (__mmask8)-1))
1332
+
1333
+ #define _mm_mask_fpclass_sd_mask(U, A, imm) \
1334
+ ((__mmask8)__builtin_ia32_fpclasssd_mask((__v2df)(__m128d)(A), (int)(imm), \
1335
+ (__mmask8)(U)))
1336
+
1337
+ #define _mm_fpclass_ss_mask(A, imm) \
1338
+ ((__mmask8)__builtin_ia32_fpclassss_mask((__v4sf)(__m128)(A), (int)(imm), \
1339
+ (__mmask8)-1))
1340
+
1341
+ #define _mm_mask_fpclass_ss_mask(U, A, imm) \
1342
+ ((__mmask8)__builtin_ia32_fpclassss_mask((__v4sf)(__m128)(A), (int)(imm), \
1343
+ (__mmask8)(U)))
1344
+
1345
+ #undef __DEFAULT_FN_ATTRS512
1346
+ #undef __DEFAULT_FN_ATTRS
1347
+ #undef __DEFAULT_FN_ATTRS512_CONSTEXPR
1348
+ #undef __DEFAULT_FN_ATTRS_CONSTEXPR
1349
+
1350
+ #endif