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,245 @@
|
|
|
1
|
+
/*===------------- avx512bmmvlintrin.h - BMM intrinsics ------------------===
|
|
2
|
+
*
|
|
3
|
+
*
|
|
4
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
5
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
7
|
+
*
|
|
8
|
+
*===-----------------------------------------------------------------------===
|
|
9
|
+
*/
|
|
10
|
+
#ifndef __IMMINTRIN_H
|
|
11
|
+
#error \
|
|
12
|
+
"Never use <avx512bmmvlintrin.h> directly; include <immintrin.h> instead."
|
|
13
|
+
#endif
|
|
14
|
+
|
|
15
|
+
#ifndef __BMMVLINTRIN_H
|
|
16
|
+
#define __BMMVLINTRIN_H
|
|
17
|
+
|
|
18
|
+
/* Define the default attributes for the functions in this file. */
|
|
19
|
+
#define __DEFAULT_FN_ATTRS128 \
|
|
20
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
21
|
+
__target__("avx512bmm,avx512vl"), __min_vector_width__(128)))
|
|
22
|
+
#define __DEFAULT_FN_ATTRS256 \
|
|
23
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
24
|
+
__target__("avx512bmm,avx512vl"), __min_vector_width__(256)))
|
|
25
|
+
|
|
26
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
27
|
+
#define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128 constexpr
|
|
28
|
+
#define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256 constexpr
|
|
29
|
+
#else
|
|
30
|
+
#define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128
|
|
31
|
+
#define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
/// Multiplies two 16x16 bit matrices using OR reduction and ORs the product
|
|
35
|
+
/// into a third 16x16 bit matrix (which is also the destination).
|
|
36
|
+
///
|
|
37
|
+
/// For the 256-bit YMM form, the source registers/memory each contain a single
|
|
38
|
+
/// 16x16 (256-bit) matrix in bits [255:0]. The operation performs:
|
|
39
|
+
/// \code{.operation}
|
|
40
|
+
/// for i in 0 to 15
|
|
41
|
+
/// for j in 0 to 15
|
|
42
|
+
/// reduction_bit = __C[16*i+j]
|
|
43
|
+
/// for k in 0 to 15
|
|
44
|
+
/// reduction_bit |= __A[16*i+k] & __B[16*k+j]
|
|
45
|
+
/// end for k
|
|
46
|
+
/// dest[16*i+j] = reduction_bit
|
|
47
|
+
/// end for j
|
|
48
|
+
/// end for i
|
|
49
|
+
/// \endcode
|
|
50
|
+
///
|
|
51
|
+
/// \headerfile <immintrin.h>
|
|
52
|
+
///
|
|
53
|
+
/// This intrinsic corresponds to the <c> VBMACOR16X16X16 </c> instruction.
|
|
54
|
+
///
|
|
55
|
+
/// \param __A
|
|
56
|
+
/// A 256-bit vector containing a 16x16 bit matrix.
|
|
57
|
+
/// \param __B
|
|
58
|
+
/// A 256-bit vector containing a 16x16 bit matrix.
|
|
59
|
+
/// \param __C
|
|
60
|
+
/// A 256-bit accumulator vector containing the initial values to OR with.
|
|
61
|
+
/// \returns A 256-bit vector containing the accumulated result.
|
|
62
|
+
/// \note This instruction does not support masking.
|
|
63
|
+
static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
|
|
64
|
+
_mm256_bmacor16x16x16(__m256i __A, __m256i __B, __m256i __C) {
|
|
65
|
+
return (__m256i)__builtin_ia32_bmacor16x16x16_v16hi(
|
|
66
|
+
(__v16hi)__A, (__v16hi)__B, (__v16hi)__C);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/// Multiplies two 16x16 bit matrices using XOR reduction and XORs the product
|
|
70
|
+
/// into a third 16x16 bit matrix (which is also the destination).
|
|
71
|
+
///
|
|
72
|
+
/// For the 256-bit YMM form, the source registers/memory each contain a single
|
|
73
|
+
/// 16x16 (256-bit) matrix in bits [255:0]. The operation performs:
|
|
74
|
+
/// \code{.operation}
|
|
75
|
+
/// for i in 0 to 15
|
|
76
|
+
/// for j in 0 to 15
|
|
77
|
+
/// reduction_bit = __C[16*i+j]
|
|
78
|
+
/// for k in 0 to 15
|
|
79
|
+
/// reduction_bit ^= __A[16*i+k] & __B[16*k+j]
|
|
80
|
+
/// end for k
|
|
81
|
+
/// dest[16*i+j] = reduction_bit
|
|
82
|
+
/// end for j
|
|
83
|
+
/// end for i
|
|
84
|
+
/// \endcode
|
|
85
|
+
///
|
|
86
|
+
/// \headerfile <immintrin.h>
|
|
87
|
+
///
|
|
88
|
+
/// This intrinsic corresponds to the <c> VBMACXOR16X16X16 </c> instruction.
|
|
89
|
+
///
|
|
90
|
+
/// \param __A
|
|
91
|
+
/// A 256-bit vector containing a 16x16 bit matrix.
|
|
92
|
+
/// \param __B
|
|
93
|
+
/// A 256-bit vector containing a 16x16 bit matrix.
|
|
94
|
+
/// \param __C
|
|
95
|
+
/// A 256-bit accumulator vector containing the initial values to XOR with.
|
|
96
|
+
/// \returns A 256-bit vector containing the accumulated result.
|
|
97
|
+
/// \note This instruction does not support masking.
|
|
98
|
+
static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
|
|
99
|
+
_mm256_bmacxor16x16x16(__m256i __A, __m256i __B, __m256i __C) {
|
|
100
|
+
return (__m256i)__builtin_ia32_bmacxor16x16x16_v16hi(
|
|
101
|
+
(__v16hi)__A, (__v16hi)__B, (__v16hi)__C);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/// Reverses the bits within each byte of the source vector.
|
|
105
|
+
///
|
|
106
|
+
/// For each byte in the source, reverses the order of its 8 bits to generate
|
|
107
|
+
/// the corresponding destination byte. For example, 0b10110001 becomes
|
|
108
|
+
/// 0b10001101.
|
|
109
|
+
///
|
|
110
|
+
/// \headerfile <immintrin.h>
|
|
111
|
+
///
|
|
112
|
+
/// This intrinsic corresponds to the <c> VBITREV </c> instruction.
|
|
113
|
+
///
|
|
114
|
+
/// \param __A
|
|
115
|
+
/// A 128-bit vector of [16 x i8] where each byte will have its bits
|
|
116
|
+
/// reversed.
|
|
117
|
+
/// \returns A 128-bit vector of [16 x i8] with bit-reversed bytes.
|
|
118
|
+
static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
|
|
119
|
+
_mm128_bitrev_epi8(__m128i __A) {
|
|
120
|
+
return (__m128i)__builtin_elementwise_bitreverse((__v16qi)__A);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/// Reverses the bits within each byte of the source vector.
|
|
124
|
+
///
|
|
125
|
+
/// For each byte in the source, reverses the order of its 8 bits to generate
|
|
126
|
+
/// the corresponding destination byte. For example, 0b10110001 becomes
|
|
127
|
+
/// 0b10001101.
|
|
128
|
+
///
|
|
129
|
+
/// \headerfile <immintrin.h>
|
|
130
|
+
///
|
|
131
|
+
/// This intrinsic corresponds to the <c> VBITREV </c> instruction.
|
|
132
|
+
///
|
|
133
|
+
/// \param __A
|
|
134
|
+
/// A 256-bit vector of [32 x i8] where each byte will have its bits
|
|
135
|
+
/// reversed.
|
|
136
|
+
/// \returns A 256-bit vector of [32 x i8] with bit-reversed bytes.
|
|
137
|
+
static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
|
|
138
|
+
_mm256_bitrev_epi8(__m256i __A) {
|
|
139
|
+
return (__m256i)__builtin_elementwise_bitreverse((__v32qi)__A);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/// Reverses the bits within each byte of the source vector, using a writemask
|
|
143
|
+
/// to conditionally select elements.
|
|
144
|
+
///
|
|
145
|
+
/// For each byte position, if the corresponding mask bit is 1, the byte from
|
|
146
|
+
/// \a A has its bits reversed and stored in the result. If the mask bit is 0,
|
|
147
|
+
/// the corresponding byte from \a B is copied to the result (merge masking).
|
|
148
|
+
///
|
|
149
|
+
/// \headerfile <immintrin.h>
|
|
150
|
+
///
|
|
151
|
+
/// This intrinsic corresponds to the <c> VBITREV </c> instruction.
|
|
152
|
+
///
|
|
153
|
+
/// \param __U
|
|
154
|
+
/// A 16-bit mask value where each bit controls one byte (per 8-bit element).
|
|
155
|
+
/// A 1 performs bit reversal; a 0 selects the passthrough byte from __B.
|
|
156
|
+
/// \param __A
|
|
157
|
+
/// A 128-bit vector of [16 x i8] to be bit-reversed.
|
|
158
|
+
/// \param __B
|
|
159
|
+
/// A 128-bit vector of [16 x i8] providing passthrough values.
|
|
160
|
+
/// \returns A 128-bit vector combining bit-reversed and passthrough bytes.
|
|
161
|
+
static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
|
|
162
|
+
_mm128_mask_bitrev_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
|
|
163
|
+
return (__m128i)__builtin_ia32_selectb_128(
|
|
164
|
+
(__mmask16)__U, (__v16qi)_mm128_bitrev_epi8(__A), (__v16qi)__B);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/// Reverses the bits within each byte of the source vector, using a writemask
|
|
168
|
+
/// to conditionally select elements.
|
|
169
|
+
///
|
|
170
|
+
/// For each byte position, if the corresponding mask bit is 1, the byte from
|
|
171
|
+
/// \a A has its bits reversed and stored in the result. If the mask bit is 0,
|
|
172
|
+
/// the corresponding byte from \a B is copied to the result (merge masking).
|
|
173
|
+
///
|
|
174
|
+
/// \headerfile <immintrin.h>
|
|
175
|
+
///
|
|
176
|
+
/// This intrinsic corresponds to the <c> VBITREV </c> instruction.
|
|
177
|
+
///
|
|
178
|
+
/// \param __U
|
|
179
|
+
/// A 32-bit mask value where each bit controls one byte (per 8-bit element).
|
|
180
|
+
/// A 1 performs bit reversal; a 0 selects the passthrough byte from __B.
|
|
181
|
+
/// \param __A
|
|
182
|
+
/// A 256-bit vector of [32 x i8] to be bit-reversed.
|
|
183
|
+
/// \param __B
|
|
184
|
+
/// A 256-bit vector of [32 x i8] providing passthrough values.
|
|
185
|
+
/// \returns A 256-bit vector combining bit-reversed and passthrough bytes.
|
|
186
|
+
static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
|
|
187
|
+
_mm256_mask_bitrev_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
|
|
188
|
+
return (__m256i)__builtin_ia32_selectb_256(
|
|
189
|
+
(__mmask32)__U, (__v32qi)_mm256_bitrev_epi8(__A), (__v32qi)__B);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/// Reverses the bits within each byte of the source vector, zeroing elements
|
|
193
|
+
/// based on the writemask.
|
|
194
|
+
///
|
|
195
|
+
/// For each byte position, if the corresponding mask bit is 1, the byte from
|
|
196
|
+
/// \a A has its bits reversed and stored in the result. If the mask bit is 0,
|
|
197
|
+
/// the result byte is set to zero (zero masking).
|
|
198
|
+
///
|
|
199
|
+
/// \headerfile <immintrin.h>
|
|
200
|
+
///
|
|
201
|
+
/// This intrinsic corresponds to the <c> VBITREV </c> instruction.
|
|
202
|
+
///
|
|
203
|
+
/// \param __U
|
|
204
|
+
/// A 16-bit mask value where each bit controls one byte (per 8-bit element).
|
|
205
|
+
/// A 1 performs bit reversal; a 0 sets the byte to zero.
|
|
206
|
+
/// \param __A
|
|
207
|
+
/// A 128-bit vector of [16 x i8] to be bit-reversed.
|
|
208
|
+
/// \returns A 128-bit vector with bit-reversed or zeroed bytes.
|
|
209
|
+
static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
|
|
210
|
+
_mm128_maskz_bitrev_epi8(__mmask16 __U, __m128i __A) {
|
|
211
|
+
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
|
|
212
|
+
(__v16qi)_mm128_bitrev_epi8(__A),
|
|
213
|
+
(__v16qi)_mm_setzero_si128());
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/// Reverses the bits within each byte of the source vector, zeroing elements
|
|
217
|
+
/// based on the writemask.
|
|
218
|
+
///
|
|
219
|
+
/// For each byte position, if the corresponding mask bit is 1, the byte from
|
|
220
|
+
/// \a A has its bits reversed and stored in the result. If the mask bit is 0,
|
|
221
|
+
/// the result byte is set to zero (zero masking).
|
|
222
|
+
///
|
|
223
|
+
/// \headerfile <immintrin.h>
|
|
224
|
+
///
|
|
225
|
+
/// This intrinsic corresponds to the <c> VBITREV </c> instruction.
|
|
226
|
+
///
|
|
227
|
+
/// \param __U
|
|
228
|
+
/// A 32-bit mask value where each bit controls one byte (per 8-bit element).
|
|
229
|
+
/// A 1 performs bit reversal; a 0 sets the byte to zero.
|
|
230
|
+
/// \param __A
|
|
231
|
+
/// A 256-bit vector of [32 x i8] to be bit-reversed.
|
|
232
|
+
/// \returns A 256-bit vector with bit-reversed or zeroed bytes.
|
|
233
|
+
static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
|
|
234
|
+
_mm256_maskz_bitrev_epi8(__mmask32 __U, __m256i __A) {
|
|
235
|
+
return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
|
|
236
|
+
(__v32qi)_mm256_bitrev_epi8(__A),
|
|
237
|
+
(__v32qi)_mm256_setzero_si256());
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
#undef __DEFAULT_FN_ATTRS128_CONSTEXPR
|
|
241
|
+
#undef __DEFAULT_FN_ATTRS256_CONSTEXPR
|
|
242
|
+
#undef __DEFAULT_FN_ATTRS128
|
|
243
|
+
#undef __DEFAULT_FN_ATTRS256
|
|
244
|
+
|
|
245
|
+
#endif
|