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.
- package/LICENSE +201 -0
- package/NOTICE +33 -0
- package/include/__clang_cuda_builtin_vars.h +121 -0
- package/include/__clang_cuda_cmath.h +512 -0
- package/include/__clang_cuda_complex_builtins.h +236 -0
- package/include/__clang_cuda_device_functions.h +1572 -0
- package/include/__clang_cuda_intrinsics.h +975 -0
- package/include/__clang_cuda_libdevice_declares.h +468 -0
- package/include/__clang_cuda_math.h +353 -0
- package/include/__clang_cuda_math_forward_declares.h +289 -0
- package/include/__clang_cuda_runtime_wrapper.h +526 -0
- package/include/__clang_cuda_texture_intrinsics.h +1177 -0
- package/include/__clang_gpu_builtin_vars.h +71 -0
- package/include/__clang_gpu_device_functions.h +411 -0
- package/include/__clang_gpu_intrinsics.h +242 -0
- package/include/__clang_hip_cmath.h +848 -0
- package/include/__clang_hip_libdevice_declares.h +238 -0
- package/include/__clang_hip_math.h +1405 -0
- package/include/__clang_hip_runtime_wrapper.h +170 -0
- package/include/__clang_hip_stdlib.h +43 -0
- package/include/__clang_spirv_builtins.h +217 -0
- package/include/__clang_spirv_libdevice_declares.h +170 -0
- package/include/__clang_spirv_math.h +719 -0
- package/include/__float_float.h +176 -0
- package/include/__float_header_macro.h +12 -0
- package/include/__float_infinity_nan.h +20 -0
- package/include/__stdarg___gnuc_va_list.h +13 -0
- package/include/__stdarg___va_copy.h +12 -0
- package/include/__stdarg_header_macro.h +12 -0
- package/include/__stdarg_va_arg.h +22 -0
- package/include/__stdarg_va_copy.h +12 -0
- package/include/__stdarg_va_list.h +13 -0
- package/include/__stddef_header_macro.h +12 -0
- package/include/__stddef_max_align_t.h +27 -0
- package/include/__stddef_null.h +29 -0
- package/include/__stddef_nullptr_t.h +29 -0
- package/include/__stddef_offsetof.h +17 -0
- package/include/__stddef_ptrdiff_t.h +20 -0
- package/include/__stddef_rsize_t.h +20 -0
- package/include/__stddef_size_t.h +20 -0
- package/include/__stddef_unreachable.h +21 -0
- package/include/__stddef_wchar_t.h +28 -0
- package/include/__stddef_wint_t.h +15 -0
- package/include/__wmmintrin_aes.h +140 -0
- package/include/__wmmintrin_pclmul.h +48 -0
- package/include/adcintrin.h +165 -0
- package/include/adxintrin.h +107 -0
- package/include/altivec.h +19434 -0
- package/include/amdgpuintrin.h +164 -0
- package/include/amdhsa_abi.h +83 -0
- package/include/ammintrin.h +183 -0
- package/include/amo.h +220 -0
- package/include/amxavx512intrin.h +596 -0
- package/include/amxcomplexintrin.h +167 -0
- package/include/amxfp16intrin.h +93 -0
- package/include/amxfp8intrin.h +230 -0
- package/include/amxintrin.h +492 -0
- package/include/amxmovrsintrin.h +48 -0
- package/include/andes_vector.h +21 -0
- package/include/arm64_neon.h +21 -0
- package/include/arm64intr.h +45 -0
- package/include/arm_acle.h +866 -0
- package/include/arm_bf16.h +20 -0
- package/include/arm_cde.h +410 -0
- package/include/arm_cmse.h +217 -0
- package/include/arm_fp16.h +596 -0
- package/include/arm_mve.h +19187 -0
- package/include/arm_neon.h +74351 -0
- package/include/arm_neon_sve_bridge.h +182 -0
- package/include/arm_sme.h +3753 -0
- package/include/arm_sve.h +32698 -0
- package/include/arm_vector_types.h +432 -0
- package/include/armintr.h +31 -0
- package/include/avx10_2_512bf16intrin.h +568 -0
- package/include/avx10_2_512convertintrin.h +322 -0
- package/include/avx10_2_512minmaxintrin.h +127 -0
- package/include/avx10_2_512niintrin.h +314 -0
- package/include/avx10_2_512satcvtdsintrin.h +307 -0
- package/include/avx10_2_512satcvtintrin.h +301 -0
- package/include/avx10_2bf16intrin.h +1094 -0
- package/include/avx10_2convertintrin.h +3257 -0
- package/include/avx10_2copyintrin.h +66 -0
- package/include/avx10_2minmaxintrin.h +232 -0
- package/include/avx10_2niintrin.h +409 -0
- package/include/avx10_2satcvtdsintrin.h +376 -0
- package/include/avx10_2satcvtintrin.h +312 -0
- package/include/avx2intrin.h +5190 -0
- package/include/avx512bf16intrin.h +292 -0
- package/include/avx512bitalgintrin.h +75 -0
- package/include/avx512bmmintrin.h +174 -0
- package/include/avx512bmmvlintrin.h +245 -0
- package/include/avx512bwintrin.h +1885 -0
- package/include/avx512cdintrin.h +112 -0
- package/include/avx512dqintrin.h +1350 -0
- package/include/avx512fintrin.h +9351 -0
- package/include/avx512fp16intrin.h +3349 -0
- package/include/avx512ifmaintrin.h +68 -0
- package/include/avx512ifmavlintrin.h +138 -0
- package/include/avx512vbmi2intrin.h +364 -0
- package/include/avx512vbmiintrin.h +98 -0
- package/include/avx512vbmivlintrin.h +179 -0
- package/include/avx512vlbf16intrin.h +527 -0
- package/include/avx512vlbitalgintrin.h +135 -0
- package/include/avx512vlbwintrin.h +3052 -0
- package/include/avx512vlcdintrin.h +202 -0
- package/include/avx512vldqintrin.h +1156 -0
- package/include/avx512vlfp16intrin.h +2090 -0
- package/include/avx512vlintrin.h +8067 -0
- package/include/avx512vlvbmi2intrin.h +702 -0
- package/include/avx512vlvnniintrin.h +308 -0
- package/include/avx512vlvp2intersectintrin.h +123 -0
- package/include/avx512vnniintrin.h +113 -0
- package/include/avx512vp2intersectintrin.h +77 -0
- package/include/avx512vpopcntdqintrin.h +62 -0
- package/include/avx512vpopcntdqvlintrin.h +105 -0
- package/include/avxifmaintrin.h +193 -0
- package/include/avxintrin.h +5064 -0
- package/include/avxneconvertintrin.h +484 -0
- package/include/avxvnniint16intrin.h +451 -0
- package/include/avxvnniint8intrin.h +454 -0
- package/include/avxvnniintrin.h +238 -0
- package/include/bmi2intrin.h +253 -0
- package/include/bmiintrin.h +604 -0
- package/include/builtins.h +19 -0
- package/include/cet.h +66 -0
- package/include/cetintrin.h +115 -0
- package/include/cldemoteintrin.h +36 -0
- package/include/clflushoptintrin.h +36 -0
- package/include/clwbintrin.h +38 -0
- package/include/clzerointrin.h +38 -0
- package/include/cmpccxaddintrin.h +70 -0
- package/include/cpuid.h +451 -0
- package/include/crc32intrin.h +102 -0
- package/include/cuda_wrappers/__utility/declval.h +28 -0
- package/include/cuda_wrappers/algorithm +116 -0
- package/include/cuda_wrappers/bits/basic_string.h +9 -0
- package/include/cuda_wrappers/bits/basic_string.tcc +9 -0
- package/include/cuda_wrappers/bits/c++config.h +61 -0
- package/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
- package/include/cuda_wrappers/cmath +44 -0
- package/include/cuda_wrappers/complex +90 -0
- package/include/cuda_wrappers/new +108 -0
- package/include/emmintrin.h +4940 -0
- package/include/endian.h +91 -0
- package/include/enqcmdintrin.h +63 -0
- package/include/f16cintrin.h +176 -0
- package/include/float.h +48 -0
- package/include/fma4intrin.h +220 -0
- package/include/fmaintrin.h +826 -0
- package/include/fuzzer/FuzzedDataProvider.h +397 -0
- package/include/fxsrintrin.h +91 -0
- package/include/gfniintrin.h +238 -0
- package/include/gpuintrin.h +348 -0
- package/include/hexagon_circ_brev_intrinsics.h +298 -0
- package/include/hexagon_protos.h +8439 -0
- package/include/hexagon_types.h +2628 -0
- package/include/hlsl_alias_intrinsics_gen.inc +3869 -0
- package/include/hlsl_inline_intrinsics_gen.inc +546 -0
- package/include/hresetintrin.h +49 -0
- package/include/htmintrin.h +212 -0
- package/include/htmxlintrin.h +345 -0
- package/include/hvx_hexagon_protos.h +5421 -0
- package/include/ia32intrin.h +863 -0
- package/include/immintrin.h +597 -0
- package/include/intrin.h +501 -0
- package/include/intrin0.h +256 -0
- package/include/inttypes.h +101 -0
- package/include/invpcidintrin.h +23 -0
- package/include/iso646.h +31 -0
- package/include/keylockerintrin.h +518 -0
- package/include/larchintrin.h +262 -0
- package/include/lasxintrin.h +3999 -0
- package/include/limits.h +133 -0
- package/include/llvm_libc_wrappers/assert.h +32 -0
- package/include/llvm_libc_wrappers/ctype.h +29 -0
- package/include/llvm_libc_wrappers/inttypes.h +32 -0
- package/include/llvm_libc_wrappers/stdio.h +52 -0
- package/include/llvm_libc_wrappers/stdlib.h +32 -0
- package/include/llvm_libc_wrappers/string.h +29 -0
- package/include/llvm_libc_wrappers/time.h +28 -0
- package/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
- package/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
- package/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
- package/include/lsxintrin.h +3752 -0
- package/include/lwpintrin.h +136 -0
- package/include/lzcntintrin.h +109 -0
- package/include/mm3dnow.h +22 -0
- package/include/mm_malloc.h +67 -0
- package/include/mmintrin.h +1541 -0
- package/include/module.modulemap +375 -0
- package/include/movdirintrin.h +49 -0
- package/include/movrs_avx10_2_512intrin.h +98 -0
- package/include/movrs_avx10_2intrin.h +174 -0
- package/include/movrsintrin.h +59 -0
- package/include/msa.h +573 -0
- package/include/mwaitxintrin.h +62 -0
- package/include/nmmintrin.h +20 -0
- package/include/nvptxintrin.h +208 -0
- package/include/opencl-c-base.h +765 -0
- package/include/opencl-c.h +18737 -0
- package/include/openmp_wrappers/__clang_openmp_device_functions.h +118 -0
- package/include/openmp_wrappers/cmath +132 -0
- package/include/openmp_wrappers/complex +61 -0
- package/include/openmp_wrappers/complex.h +41 -0
- package/include/openmp_wrappers/complex_cmath.h +393 -0
- package/include/openmp_wrappers/math.h +71 -0
- package/include/openmp_wrappers/new +48 -0
- package/include/pconfigintrin.h +40 -0
- package/include/pkuintrin.h +34 -0
- package/include/pmmintrin.h +302 -0
- package/include/popcntintrin.h +59 -0
- package/include/ppc_wrappers/bmi2intrin.h +134 -0
- package/include/ppc_wrappers/bmiintrin.h +165 -0
- package/include/ppc_wrappers/emmintrin.h +2269 -0
- package/include/ppc_wrappers/immintrin.h +27 -0
- package/include/ppc_wrappers/mm_malloc.h +45 -0
- package/include/ppc_wrappers/mmintrin.h +1453 -0
- package/include/ppc_wrappers/nmmintrin.h +26 -0
- package/include/ppc_wrappers/pmmintrin.h +145 -0
- package/include/ppc_wrappers/smmintrin.h +683 -0
- package/include/ppc_wrappers/tmmintrin.h +453 -0
- package/include/ppc_wrappers/x86gprintrin.h +17 -0
- package/include/ppc_wrappers/x86intrin.h +28 -0
- package/include/ppc_wrappers/xmmintrin.h +1827 -0
- package/include/prfchiintrin.h +61 -0
- package/include/prfchwintrin.h +57 -0
- package/include/profile/InstrProfData.inc +1063 -0
- package/include/profile/instr_prof_interface.h +88 -0
- package/include/ptrauth.h +485 -0
- package/include/ptwriteintrin.h +37 -0
- package/include/raointintrin.h +203 -0
- package/include/rdpruintrin.h +57 -0
- package/include/rdseedintrin.h +105 -0
- package/include/riscv_bitmanip.h +202 -0
- package/include/riscv_corev_alu.h +130 -0
- package/include/riscv_crypto.h +178 -0
- package/include/riscv_mips.h +36 -0
- package/include/riscv_nds.h +92 -0
- package/include/riscv_ntlh.h +28 -0
- package/include/riscv_packed_simd.h +644 -0
- package/include/riscv_vector.h +465 -0
- package/include/rtmintrin.h +45 -0
- package/include/s390intrin.h +25 -0
- package/include/sanitizer/allocator_interface.h +106 -0
- package/include/sanitizer/asan_interface.h +398 -0
- package/include/sanitizer/common_interface_defs.h +507 -0
- package/include/sanitizer/coverage_interface.h +36 -0
- package/include/sanitizer/dfsan_interface.h +220 -0
- package/include/sanitizer/hwasan_interface.h +109 -0
- package/include/sanitizer/linux_syscall_hooks.h +3112 -0
- package/include/sanitizer/lsan_interface.h +89 -0
- package/include/sanitizer/msan_interface.h +135 -0
- package/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
- package/include/sanitizer/rtsan_interface.h +75 -0
- package/include/sanitizer/safestack_interface.h +50 -0
- package/include/sanitizer/scudo_interface.h +38 -0
- package/include/sanitizer/tsan_interface.h +316 -0
- package/include/sanitizer/tsan_interface_atomic.h +223 -0
- package/include/sanitizer/tysan_interface.h +36 -0
- package/include/sanitizer/ubsan_interface.h +64 -0
- package/include/serializeintrin.h +30 -0
- package/include/sgxintrin.h +60 -0
- package/include/sha512intrin.h +200 -0
- package/include/shaintrin.h +190 -0
- package/include/sifive_vector.h +192 -0
- package/include/sm3intrin.h +238 -0
- package/include/sm4evexintrin.h +32 -0
- package/include/sm4intrin.h +269 -0
- package/include/smmintrin.h +2352 -0
- package/include/spirvintrin.h +167 -0
- package/include/stdalign.h +24 -0
- package/include/stdarg.h +75 -0
- package/include/stdatomic.h +204 -0
- package/include/stdbool.h +39 -0
- package/include/stdckdint.h +42 -0
- package/include/stdcountof.h +15 -0
- package/include/stddef.h +139 -0
- package/include/stddefer.h +19 -0
- package/include/stdint.h +835 -0
- package/include/stdnoreturn.h +35 -0
- package/include/tbmintrin.h +128 -0
- package/include/tgmath.h +1368 -0
- package/include/tmmintrin.h +779 -0
- package/include/tsxldtrkintrin.h +56 -0
- package/include/uintrintrin.h +157 -0
- package/include/unwind.h +332 -0
- package/include/usermsrintrin.h +51 -0
- package/include/vadefs.h +51 -0
- package/include/vaesintrin.h +86 -0
- package/include/varargs.h +16 -0
- package/include/vecintrin.h +12868 -0
- package/include/velintrin.h +71 -0
- package/include/velintrin_approx.h +120 -0
- package/include/velintrin_gen.h +1257 -0
- package/include/vpclmulqdqintrin.h +30 -0
- package/include/waitpkgintrin.h +42 -0
- package/include/wasm_simd128.h +2160 -0
- package/include/wbnoinvdintrin.h +24 -0
- package/include/wmmintrin.h +23 -0
- package/include/x86gprintrin.h +49 -0
- package/include/x86intrin.h +35 -0
- package/include/xmmintrin.h +3176 -0
- package/include/xopintrin.h +780 -0
- package/include/xsavecintrin.h +84 -0
- package/include/xsaveintrin.h +63 -0
- package/include/xsaveoptintrin.h +34 -0
- package/include/xsavesintrin.h +44 -0
- package/include/xtestintrin.h +27 -0
- package/include/yvals_core.h +25 -0
- package/include/zos_wrappers/builtins.h +18 -0
- package/include/zos_wrappers/grp.h +19 -0
- package/include/zos_wrappers/locale.h +19 -0
- package/include/zos_wrappers/math.h +31 -0
- package/include/zos_wrappers/poll.h +19 -0
- package/include/zos_wrappers/stdlib.h +20 -0
- package/include/zos_wrappers/string.h +19 -0
- package/include/zos_wrappers/time.h +19 -0
- package/include/zos_wrappers/variant.h +19 -0
- package/index.js +5 -0
- package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
- package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
- package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
- package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.cc_kext.a +0 -0
- package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_interceptors_ios.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_interceptors_iossim.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_interceptors_osx.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
- package/lib/darwin/libclang_rt.ios.a +0 -0
- package/lib/darwin/libclang_rt.iossim.a +0 -0
- package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.osx.a +0 -0
- package/lib/darwin/libclang_rt.profile_ios.a +0 -0
- package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
- package/lib/darwin/libclang_rt.profile_osx.a +0 -0
- package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
- package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
- package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
- package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
- package/package.json +40 -1
- package/share/asan_ignorelist.txt +14 -0
- package/share/cfi_ignorelist.txt +17 -0
|
@@ -0,0 +1,568 @@
|
|
|
1
|
+
/*===----------- avx10_2_512bf16intrin.h - AVX10-BF16 intrinsics ---------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
#ifndef __IMMINTRIN_H
|
|
10
|
+
#error \
|
|
11
|
+
"Never use <avx10_2_512bf16intrin.h> directly; include <immintrin.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifdef __SSE2__
|
|
15
|
+
|
|
16
|
+
#ifndef __AVX10_2_512BF16INTRIN_H
|
|
17
|
+
#define __AVX10_2_512BF16INTRIN_H
|
|
18
|
+
|
|
19
|
+
/* Define the default attributes for the functions in this file. */
|
|
20
|
+
typedef __bf16 __m512bh_u __attribute__((__vector_size__(64), __aligned__(1)));
|
|
21
|
+
|
|
22
|
+
/* Define the default attributes for the functions in this file. */
|
|
23
|
+
#define __DEFAULT_FN_ATTRS512 \
|
|
24
|
+
__attribute__((__always_inline__, __nodebug__, __target__("avx10.2"), \
|
|
25
|
+
__min_vector_width__(512)))
|
|
26
|
+
|
|
27
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
28
|
+
#define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512 constexpr
|
|
29
|
+
#else
|
|
30
|
+
#define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
static __inline __m512bh __DEFAULT_FN_ATTRS512 _mm512_setzero_pbh(void) {
|
|
34
|
+
return __builtin_bit_cast(__m512bh, _mm512_setzero_ps());
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_undefined_pbh(void) {
|
|
38
|
+
return (__m512bh)__builtin_ia32_undef512();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
static __inline __m512bh __DEFAULT_FN_ATTRS512 _mm512_set1_pbh(__bf16 bf) {
|
|
42
|
+
return (__m512bh)(__v32bf){bf, bf, bf, bf, bf, bf, bf, bf, bf, bf, bf,
|
|
43
|
+
bf, bf, bf, bf, bf, bf, bf, bf, bf, bf, bf,
|
|
44
|
+
bf, bf, bf, bf, bf, bf, bf, bf, bf, bf};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
static __inline __m512bh __DEFAULT_FN_ATTRS512 _mm512_set_pbh(
|
|
48
|
+
__bf16 bf1, __bf16 bf2, __bf16 bf3, __bf16 bf4, __bf16 bf5, __bf16 bf6,
|
|
49
|
+
__bf16 bf7, __bf16 bf8, __bf16 bf9, __bf16 bf10, __bf16 bf11, __bf16 bf12,
|
|
50
|
+
__bf16 bf13, __bf16 bf14, __bf16 bf15, __bf16 bf16, __bf16 bf17,
|
|
51
|
+
__bf16 bf18, __bf16 bf19, __bf16 bf20, __bf16 bf21, __bf16 bf22,
|
|
52
|
+
__bf16 bf23, __bf16 bf24, __bf16 bf25, __bf16 bf26, __bf16 bf27,
|
|
53
|
+
__bf16 bf28, __bf16 bf29, __bf16 bf30, __bf16 bf31, __bf16 bf32) {
|
|
54
|
+
return (__m512bh)(__v32bf){bf32, bf31, bf30, bf29, bf28, bf27, bf26, bf25,
|
|
55
|
+
bf24, bf23, bf22, bf21, bf20, bf19, bf18, bf17,
|
|
56
|
+
bf16, bf15, bf14, bf13, bf12, bf11, bf10, bf9,
|
|
57
|
+
bf8, bf7, bf6, bf5, bf4, bf3, bf2, bf1};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
#define _mm512_setr_pbh(bf1, bf2, bf3, bf4, bf5, bf6, bf7, bf8, bf9, bf10, \
|
|
61
|
+
bf11, bf12, bf13, bf14, bf15, bf16, bf17, bf18, bf19, \
|
|
62
|
+
bf20, bf21, bf22, bf23, bf24, bf25, bf26, bf27, bf28, \
|
|
63
|
+
bf29, bf30, bf31, bf32) \
|
|
64
|
+
_mm512_set_pbh((bf32), (bf31), (bf30), (bf29), (bf28), (bf27), (bf26), \
|
|
65
|
+
(bf25), (bf24), (bf23), (bf22), (bf21), (bf20), (bf19), \
|
|
66
|
+
(bf18), (bf17), (bf16), (bf15), (bf14), (bf13), (bf12), \
|
|
67
|
+
(bf11), (bf10), (bf9), (bf8), (bf7), (bf6), (bf5), (bf4), \
|
|
68
|
+
(bf3), (bf2), (bf1))
|
|
69
|
+
|
|
70
|
+
static __inline__ __m512 __DEFAULT_FN_ATTRS512
|
|
71
|
+
_mm512_castbf16_ps(__m512bh __a) {
|
|
72
|
+
return (__m512)__a;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
static __inline__ __m512d __DEFAULT_FN_ATTRS512
|
|
76
|
+
_mm512_castbf16_pd(__m512bh __a) {
|
|
77
|
+
return (__m512d)__a;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
81
|
+
_mm512_castbf16_si512(__m512bh __a) {
|
|
82
|
+
return (__m512i)__a;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_castps_pbh(__m512 __a) {
|
|
86
|
+
return (__m512bh)__a;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
90
|
+
_mm512_castpd_pbh(__m512d __a) {
|
|
91
|
+
return (__m512bh)__a;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
95
|
+
_mm512_castsi512_pbh(__m512i __a) {
|
|
96
|
+
return (__m512bh)__a;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
static __inline__ __m128bh __DEFAULT_FN_ATTRS512
|
|
100
|
+
_mm512_castbf16512_pbh128(__m512bh __a) {
|
|
101
|
+
return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
static __inline__ __m256bh __DEFAULT_FN_ATTRS512
|
|
105
|
+
_mm512_castbf16512_pbh256(__m512bh __a) {
|
|
106
|
+
return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
|
|
107
|
+
12, 13, 14, 15);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
111
|
+
_mm512_castbf16128_pbh512(__m128bh __a) {
|
|
112
|
+
return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, -1,
|
|
113
|
+
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
114
|
+
-1, -1, -1, -1, -1, -1, -1, -1, -1);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
118
|
+
_mm512_castbf16256_pbh512(__m256bh __a) {
|
|
119
|
+
return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
|
|
120
|
+
12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
121
|
+
-1, -1, -1, -1, -1, -1, -1, -1);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
125
|
+
_mm512_zextbf16128_pbh512(__m128bh __a) {
|
|
126
|
+
return __builtin_shufflevector(
|
|
127
|
+
__a, (__v8bf)_mm_setzero_pbh(), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
|
|
128
|
+
13, 14, 15, 8, 9, 10, 11, 12, 13, 14, 15, 8, 9, 10, 11, 12, 13, 14, 15);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
132
|
+
_mm512_zextbf16256_pbh512(__m256bh __a) {
|
|
133
|
+
return __builtin_shufflevector(__a, (__v16bf)_mm256_setzero_pbh(), 0, 1, 2, 3,
|
|
134
|
+
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
|
|
135
|
+
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
|
|
136
|
+
29, 30, 31);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_abs_pbh(__m512bh __A) {
|
|
140
|
+
return (__m512bh)_mm512_and_epi32(_mm512_set1_epi32(0x7FFF7FFF),
|
|
141
|
+
(__m512i)__A);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
145
|
+
_mm512_load_pbh(void const *__p) {
|
|
146
|
+
return *(const __m512bh *)__p;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
150
|
+
_mm512_loadu_pbh(void const *__p) {
|
|
151
|
+
struct __loadu_pbh {
|
|
152
|
+
__m512bh_u __v;
|
|
153
|
+
} __attribute__((__packed__, __may_alias__));
|
|
154
|
+
return ((const struct __loadu_pbh *)__p)->__v;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
static __inline__ void __DEFAULT_FN_ATTRS512 _mm512_store_pbh(void *__P,
|
|
158
|
+
__m512bh __A) {
|
|
159
|
+
*(__m512bh *)__P = __A;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
static __inline__ void __DEFAULT_FN_ATTRS512 _mm512_storeu_pbh(void *__P,
|
|
163
|
+
__m512bh __A) {
|
|
164
|
+
struct __storeu_pbh {
|
|
165
|
+
__m512bh_u __v;
|
|
166
|
+
} __attribute__((__packed__, __may_alias__));
|
|
167
|
+
((struct __storeu_pbh *)__P)->__v = __A;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
171
|
+
_mm512_mask_blend_pbh(__mmask32 __U, __m512bh __A, __m512bh __W) {
|
|
172
|
+
return (__m512bh)__builtin_ia32_selectpbf_512((__mmask32)__U, (__v32bf)__W,
|
|
173
|
+
(__v32bf)__A);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512_CONSTEXPR
|
|
177
|
+
_mm512_permutex2var_pbh(__m512bh __A, __m512i __I, __m512bh __B) {
|
|
178
|
+
return (__m512bh)__builtin_ia32_vpermi2varhi512((__v32hi)__A, (__v32hi)__I,
|
|
179
|
+
(__v32hi)__B);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512_CONSTEXPR
|
|
183
|
+
_mm512_permutexvar_pbh(__m512i __A, __m512bh __B) {
|
|
184
|
+
return (__m512bh)__builtin_ia32_permvarhi512((__v32hi)__B, (__v32hi)__A);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_add_pbh(__m512bh __A,
|
|
188
|
+
__m512bh __B) {
|
|
189
|
+
return (__m512bh)((__v32bf)__A + (__v32bf)__B);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
193
|
+
_mm512_mask_add_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
194
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
195
|
+
(__mmask32)__U, (__v32bf)_mm512_add_pbh(__A, __B), (__v32bf)__W);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
199
|
+
_mm512_maskz_add_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
200
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
201
|
+
(__mmask32)__U, (__v32bf)_mm512_add_pbh(__A, __B),
|
|
202
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_sub_pbh(__m512bh __A,
|
|
206
|
+
__m512bh __B) {
|
|
207
|
+
return (__m512bh)((__v32bf)__A - (__v32bf)__B);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
211
|
+
_mm512_mask_sub_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
212
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
213
|
+
(__mmask32)__U, (__v32bf)_mm512_sub_pbh(__A, __B), (__v32bf)__W);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
217
|
+
_mm512_maskz_sub_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
218
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
219
|
+
(__mmask32)__U, (__v32bf)_mm512_sub_pbh(__A, __B),
|
|
220
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mul_pbh(__m512bh __A,
|
|
224
|
+
__m512bh __B) {
|
|
225
|
+
return (__m512bh)((__v32bf)__A * (__v32bf)__B);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
229
|
+
_mm512_mask_mul_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
230
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
231
|
+
(__mmask32)__U, (__v32bf)_mm512_mul_pbh(__A, __B), (__v32bf)__W);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
235
|
+
_mm512_maskz_mul_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
236
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
237
|
+
(__mmask32)__U, (__v32bf)_mm512_mul_pbh(__A, __B),
|
|
238
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_div_pbh(__m512bh __A,
|
|
242
|
+
__m512bh __B) {
|
|
243
|
+
return (__m512bh)((__v32bf)__A / (__v32bf)__B);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
247
|
+
_mm512_mask_div_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
248
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
249
|
+
(__mmask32)__U, (__v32bf)_mm512_div_pbh(__A, __B), (__v32bf)__W);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
253
|
+
_mm512_maskz_div_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
254
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
255
|
+
(__mmask32)__U, (__v32bf)_mm512_div_pbh(__A, __B),
|
|
256
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_max_pbh(__m512bh __A,
|
|
260
|
+
__m512bh __B) {
|
|
261
|
+
return (__m512bh)__builtin_ia32_vmaxbf16512((__v32bf)__A, (__v32bf)__B);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
265
|
+
_mm512_mask_max_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
266
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
267
|
+
(__mmask32)__U, (__v32bf)_mm512_max_pbh(__A, __B), (__v32bf)__W);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
271
|
+
_mm512_maskz_max_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
272
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
273
|
+
(__mmask32)__U, (__v32bf)_mm512_max_pbh(__A, __B),
|
|
274
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_min_pbh(__m512bh __A,
|
|
278
|
+
__m512bh __B) {
|
|
279
|
+
return (__m512bh)__builtin_ia32_vminbf16512((__v32bf)__A, (__v32bf)__B);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
283
|
+
_mm512_mask_min_pbh(__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
284
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
285
|
+
(__mmask32)__U, (__v32bf)_mm512_min_pbh(__A, __B), (__v32bf)__W);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
289
|
+
_mm512_maskz_min_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
290
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
291
|
+
(__mmask32)__U, (__v32bf)_mm512_min_pbh(__A, __B),
|
|
292
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
#define _mm512_cmp_pbh_mask(__A, __B, __P) \
|
|
296
|
+
((__mmask32)__builtin_ia32_vcmpbf16512_mask((__v32bf)(__m512bh)(__A), \
|
|
297
|
+
(__v32bf)(__m512bh)(__B), \
|
|
298
|
+
(int)(__P), (__mmask32) - 1))
|
|
299
|
+
|
|
300
|
+
#define _mm512_mask_cmp_pbh_mask(__U, __A, __B, __P) \
|
|
301
|
+
((__mmask32)__builtin_ia32_vcmpbf16512_mask((__v32bf)(__m512bh)(__A), \
|
|
302
|
+
(__v32bf)(__m512bh)(__B), \
|
|
303
|
+
(int)(__P), (__mmask32)(__U)))
|
|
304
|
+
|
|
305
|
+
#define _mm512_mask_fpclass_pbh_mask(__U, __A, imm) \
|
|
306
|
+
((__mmask32)__builtin_ia32_vfpclassbf16512_mask( \
|
|
307
|
+
(__v32bf)(__m512bh)(__A), (int)(imm), (__mmask32)(__U)))
|
|
308
|
+
|
|
309
|
+
#define _mm512_fpclass_pbh_mask(__A, imm) \
|
|
310
|
+
((__mmask32)__builtin_ia32_vfpclassbf16512_mask( \
|
|
311
|
+
(__v32bf)(__m512bh)(__A), (int)(imm), (__mmask32) - 1))
|
|
312
|
+
|
|
313
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
314
|
+
_mm512_scalef_pbh(__m512bh __A, __m512bh __B) {
|
|
315
|
+
return (__m512bh)__builtin_ia32_vscalefbf16512_mask(
|
|
316
|
+
(__v32bf)__A, (__v32bf)__B, (__v32bf)_mm512_undefined_pbh(),
|
|
317
|
+
(__mmask32)-1);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask_scalef_pbh(
|
|
321
|
+
__m512bh __W, __mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
322
|
+
return (__m512bh)__builtin_ia32_vscalefbf16512_mask(
|
|
323
|
+
(__v32bf)__A, (__v32bf)__B, (__v32bf)__W, (__mmask32)__U);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
327
|
+
_mm512_maskz_scalef_pbh(__mmask32 __U, __m512bh __A, __m512bh __B) {
|
|
328
|
+
return (__m512bh)__builtin_ia32_vscalefbf16512_mask(
|
|
329
|
+
(__v32bf)__A, (__v32bf)__B, (__v32bf)_mm512_setzero_pbh(),
|
|
330
|
+
(__mmask32)__U);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_rcp_pbh(__m512bh __A) {
|
|
334
|
+
return (__m512bh)__builtin_ia32_vrcpbf16512_mask(
|
|
335
|
+
(__v32bf)__A, (__v32bf)_mm512_undefined_pbh(), (__mmask32)-1);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
339
|
+
_mm512_mask_rcp_pbh(__m512bh __W, __mmask32 __U, __m512bh __A) {
|
|
340
|
+
return (__m512bh)__builtin_ia32_vrcpbf16512_mask((__v32bf)__A, (__v32bf)__W,
|
|
341
|
+
(__mmask32)__U);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
345
|
+
_mm512_maskz_rcp_pbh(__mmask32 __U, __m512bh __A) {
|
|
346
|
+
return (__m512bh)__builtin_ia32_vrcpbf16512_mask(
|
|
347
|
+
(__v32bf)__A, (__v32bf)_mm512_setzero_pbh(), (__mmask32)__U);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
351
|
+
_mm512_getexp_pbh(__m512bh __A) {
|
|
352
|
+
return (__m512bh)__builtin_ia32_vgetexpbf16512_mask(
|
|
353
|
+
(__v32bf)__A, (__v32bf)_mm512_undefined_pbh(), (__mmask32)-1);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
357
|
+
_mm512_mask_getexp_pbh(__m512bh __W, __mmask32 __U, __m512bh __A) {
|
|
358
|
+
return (__m512bh)__builtin_ia32_vgetexpbf16512_mask(
|
|
359
|
+
(__v32bf)__A, (__v32bf)__W, (__mmask32)__U);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
363
|
+
_mm512_maskz_getexp_pbh(__mmask32 __U, __m512bh __A) {
|
|
364
|
+
return (__m512bh)__builtin_ia32_vgetexpbf16512_mask(
|
|
365
|
+
(__v32bf)__A, (__v32bf)_mm512_setzero_pbh(), (__mmask32)__U);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
369
|
+
_mm512_rsqrt_pbh(__m512bh __A) {
|
|
370
|
+
return (__m512bh)__builtin_ia32_vrsqrtbf16512_mask(
|
|
371
|
+
(__v32bf)__A, (__v32bf)_mm512_undefined_pbh(), (__mmask32)-1);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
375
|
+
_mm512_mask_rsqrt_pbh(__m512bh __W, __mmask32 __U, __m512bh __A) {
|
|
376
|
+
return (__m512bh)__builtin_ia32_vrsqrtbf16512_mask((__v32bf)__A, (__v32bf)__W,
|
|
377
|
+
(__mmask32)__U);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
381
|
+
_mm512_maskz_rsqrt_pbh(__mmask32 __U, __m512bh __A) {
|
|
382
|
+
return (__m512bh)__builtin_ia32_vrsqrtbf16512_mask(
|
|
383
|
+
(__v32bf)__A, (__v32bf)_mm512_setzero_pbh(), (__mmask32)__U);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
#define _mm512_reduce_pbh(__A, imm) \
|
|
387
|
+
((__m512bh)__builtin_ia32_vreducebf16512_mask( \
|
|
388
|
+
(__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)_mm512_undefined_pbh(), \
|
|
389
|
+
(__mmask32) - 1))
|
|
390
|
+
|
|
391
|
+
#define _mm512_mask_reduce_pbh(__W, __U, __A, imm) \
|
|
392
|
+
((__m512bh)__builtin_ia32_vreducebf16512_mask( \
|
|
393
|
+
(__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)(__m512bh)(__W), \
|
|
394
|
+
(__mmask32)(__U)))
|
|
395
|
+
|
|
396
|
+
#define _mm512_maskz_reduce_pbh(__U, __A, imm) \
|
|
397
|
+
((__m512bh)__builtin_ia32_vreducebf16512_mask( \
|
|
398
|
+
(__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)_mm512_setzero_pbh(), \
|
|
399
|
+
(__mmask32)(__U)))
|
|
400
|
+
|
|
401
|
+
#define _mm512_roundscale_pbh(__A, imm) \
|
|
402
|
+
((__m512bh)__builtin_ia32_vrndscalebf16_mask( \
|
|
403
|
+
(__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)_mm512_setzero_pbh(), \
|
|
404
|
+
(__mmask32) - 1))
|
|
405
|
+
|
|
406
|
+
#define _mm512_mask_roundscale_pbh(__W, __U, __A, imm) \
|
|
407
|
+
((__m512bh)__builtin_ia32_vrndscalebf16_mask( \
|
|
408
|
+
(__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)(__m512bh)(__W), \
|
|
409
|
+
(__mmask32)(__U)))
|
|
410
|
+
|
|
411
|
+
#define _mm512_maskz_roundscale_pbh(__U, __A, imm) \
|
|
412
|
+
((__m512bh)__builtin_ia32_vrndscalebf16_mask( \
|
|
413
|
+
(__v32bf)(__m512bh)(__A), (int)(imm), (__v32bf)_mm512_setzero_pbh(), \
|
|
414
|
+
(__mmask32)(__U)))
|
|
415
|
+
|
|
416
|
+
#define _mm512_getmant_pbh(__A, __B, __C) \
|
|
417
|
+
((__m512bh)__builtin_ia32_vgetmantbf16512_mask( \
|
|
418
|
+
(__v32bf)(__m512bh)(__A), (int)(((__C) << 2) | (__B)), \
|
|
419
|
+
(__v32bf)_mm512_undefined_pbh(), (__mmask32) - 1))
|
|
420
|
+
|
|
421
|
+
#define _mm512_mask_getmant_pbh(__W, __U, __A, __B, __C) \
|
|
422
|
+
((__m512bh)__builtin_ia32_vgetmantbf16512_mask( \
|
|
423
|
+
(__v32bf)(__m512bh)(__A), (int)(((__C) << 2) | (__B)), \
|
|
424
|
+
(__v32bf)(__m512bh)(__W), (__mmask32)(__U)))
|
|
425
|
+
|
|
426
|
+
#define _mm512_maskz_getmant_pbh(__U, __A, __B, __C) \
|
|
427
|
+
((__m512bh)__builtin_ia32_vgetmantbf16512_mask( \
|
|
428
|
+
(__v32bf)(__m512bh)(__A), (int)(((__C) << 2) | (__B)), \
|
|
429
|
+
(__v32bf)_mm512_setzero_pbh(), (__mmask32)(__U)))
|
|
430
|
+
|
|
431
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_sqrt_pbh(__m512bh __A) {
|
|
432
|
+
return __builtin_elementwise_sqrt(__A);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
436
|
+
_mm512_mask_sqrt_pbh(__m512bh __W, __mmask32 __U, __m512bh __A) {
|
|
437
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
438
|
+
(__mmask32)__U, (__v32bf)_mm512_sqrt_pbh(__A), (__v32bf)__W);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
442
|
+
_mm512_maskz_sqrt_pbh(__mmask32 __U, __m512bh __A) {
|
|
443
|
+
return (__m512bh)__builtin_ia32_selectpbf_512((__mmask32)__U,
|
|
444
|
+
(__v32bf)_mm512_sqrt_pbh(__A),
|
|
445
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
449
|
+
_mm512_fmadd_pbh(__m512bh __A, __m512bh __B, __m512bh __C) {
|
|
450
|
+
return (__m512bh)__builtin_elementwise_fma((__v32bf)__A, (__v32bf)__B,
|
|
451
|
+
(__v32bf)__C);
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
455
|
+
_mm512_mask_fmadd_pbh(__m512bh __A, __mmask32 __U, __m512bh __B, __m512bh __C) {
|
|
456
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
457
|
+
(__mmask32)__U,
|
|
458
|
+
_mm512_fmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C), (__v32bf)__A);
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask3_fmadd_pbh(
|
|
462
|
+
__m512bh __A, __m512bh __B, __m512bh __C, __mmask32 __U) {
|
|
463
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
464
|
+
(__mmask32)__U,
|
|
465
|
+
_mm512_fmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C), (__v32bf)__C);
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_maskz_fmadd_pbh(
|
|
469
|
+
__mmask32 __U, __m512bh __A, __m512bh __B, __m512bh __C) {
|
|
470
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
471
|
+
(__mmask32)__U,
|
|
472
|
+
_mm512_fmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
|
|
473
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
477
|
+
_mm512_fmsub_pbh(__m512bh __A, __m512bh __B, __m512bh __C) {
|
|
478
|
+
return (__m512bh)__builtin_elementwise_fma((__v32bf)__A, (__v32bf)__B,
|
|
479
|
+
-(__v32bf)__C);
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
483
|
+
_mm512_mask_fmsub_pbh(__m512bh __A, __mmask32 __U, __m512bh __B, __m512bh __C) {
|
|
484
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
485
|
+
(__mmask32)__U,
|
|
486
|
+
_mm512_fmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C), (__v32bf)__A);
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask3_fmsub_pbh(
|
|
490
|
+
__m512bh __A, __m512bh __B, __m512bh __C, __mmask32 __U) {
|
|
491
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
492
|
+
(__mmask32)__U,
|
|
493
|
+
_mm512_fmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C), (__v32bf)__C);
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_maskz_fmsub_pbh(
|
|
497
|
+
__mmask32 __U, __m512bh __A, __m512bh __B, __m512bh __C) {
|
|
498
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
499
|
+
(__mmask32)__U,
|
|
500
|
+
_mm512_fmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
|
|
501
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
505
|
+
_mm512_fnmadd_pbh(__m512bh __A, __m512bh __B, __m512bh __C) {
|
|
506
|
+
return (__m512bh)__builtin_elementwise_fma((__v32bf)__A, -(__v32bf)__B,
|
|
507
|
+
(__v32bf)__C);
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask_fnmadd_pbh(
|
|
511
|
+
__m512bh __A, __mmask32 __U, __m512bh __B, __m512bh __C) {
|
|
512
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
513
|
+
(__mmask32)__U,
|
|
514
|
+
_mm512_fnmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
|
|
515
|
+
(__v32bf)__A);
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask3_fnmadd_pbh(
|
|
519
|
+
__m512bh __A, __m512bh __B, __m512bh __C, __mmask32 __U) {
|
|
520
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
521
|
+
(__mmask32)__U,
|
|
522
|
+
_mm512_fnmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
|
|
523
|
+
(__v32bf)__C);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_maskz_fnmadd_pbh(
|
|
527
|
+
__mmask32 __U, __m512bh __A, __m512bh __B, __m512bh __C) {
|
|
528
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
529
|
+
(__mmask32)__U,
|
|
530
|
+
_mm512_fnmadd_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
|
|
531
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512
|
|
535
|
+
_mm512_fnmsub_pbh(__m512bh __A, __m512bh __B, __m512bh __C) {
|
|
536
|
+
return (__m512bh)__builtin_elementwise_fma((__v32bf)__A, -(__v32bf)__B,
|
|
537
|
+
-(__v32bf)__C);
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask_fnmsub_pbh(
|
|
541
|
+
__m512bh __A, __mmask32 __U, __m512bh __B, __m512bh __C) {
|
|
542
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
543
|
+
(__mmask32)__U,
|
|
544
|
+
_mm512_fnmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
|
|
545
|
+
(__v32bf)__A);
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_mask3_fnmsub_pbh(
|
|
549
|
+
__m512bh __A, __m512bh __B, __m512bh __C, __mmask32 __U) {
|
|
550
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
551
|
+
(__mmask32)__U,
|
|
552
|
+
_mm512_fnmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
|
|
553
|
+
(__v32bf)__C);
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
static __inline__ __m512bh __DEFAULT_FN_ATTRS512 _mm512_maskz_fnmsub_pbh(
|
|
557
|
+
__mmask32 __U, __m512bh __A, __m512bh __B, __m512bh __C) {
|
|
558
|
+
return (__m512bh)__builtin_ia32_selectpbf_512(
|
|
559
|
+
(__mmask32)__U,
|
|
560
|
+
_mm512_fnmsub_pbh((__v32bf)__A, (__v32bf)__B, (__v32bf)__C),
|
|
561
|
+
(__v32bf)_mm512_setzero_pbh());
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
#undef __DEFAULT_FN_ATTRS512_CONSTEXPR
|
|
565
|
+
#undef __DEFAULT_FN_ATTRS512
|
|
566
|
+
|
|
567
|
+
#endif
|
|
568
|
+
#endif
|