@cpp-linter/clang-tidy-darwin-arm64 19.1.0 → 20.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/README.md +2 -2
- package/bin/clang-tidy +2 -2
- package/lib/clang/{19 → 20}/include/__clang_cuda_device_functions.h +14 -0
- package/lib/clang/{19 → 20}/include/__clang_cuda_math.h +5 -0
- package/lib/clang/{19 → 20}/include/__clang_hip_cmath.h +6 -1
- package/lib/clang/{19 → 20}/include/__clang_hip_math.h +5 -0
- package/lib/clang/{19 → 20}/include/adcintrin.h +5 -0
- package/lib/clang/{19 → 20}/include/adxintrin.h +5 -0
- package/lib/clang/{19 → 20}/include/altivec.h +8 -8
- package/lib/clang/20/include/amdgpuintrin.h +194 -0
- package/lib/clang/20/include/amxavx512intrin.h +382 -0
- package/lib/clang/20/include/amxbf16transposeintrin.h +94 -0
- package/lib/clang/20/include/amxcomplextransposeintrin.h +303 -0
- package/lib/clang/{19 → 20}/include/amxfp16intrin.h +35 -0
- package/lib/clang/20/include/amxfp16transposeintrin.h +94 -0
- package/lib/clang/20/include/amxfp8intrin.h +230 -0
- package/lib/clang/{19 → 20}/include/amxintrin.h +5 -35
- package/lib/clang/20/include/amxmovrsintrin.h +48 -0
- package/lib/clang/20/include/amxmovrstransposeintrin.h +200 -0
- package/lib/clang/20/include/amxtf32intrin.h +108 -0
- package/lib/clang/20/include/amxtf32transposeintrin.h +105 -0
- package/lib/clang/20/include/amxtransposeintrin.h +248 -0
- package/lib/clang/{19 → 20}/include/arm_acle.h +18 -21
- package/lib/clang/{19 → 20}/include/arm_neon.h +3587 -1696
- package/lib/clang/{19 → 20}/include/arm_sme.h +322 -94
- package/lib/clang/{19 → 20}/include/arm_sve.h +1105 -84
- package/lib/clang/{19 → 20}/include/arm_vector_types.h +87 -0
- package/lib/clang/20/include/avx10_2_512bf16intrin.h +561 -0
- package/lib/clang/20/include/avx10_2_512convertintrin.h +320 -0
- package/lib/clang/20/include/avx10_2_512minmaxintrin.h +127 -0
- package/lib/clang/20/include/avx10_2_512niintrin.h +314 -0
- package/lib/clang/20/include/avx10_2_512satcvtdsintrin.h +303 -0
- package/lib/clang/20/include/avx10_2_512satcvtintrin.h +301 -0
- package/lib/clang/20/include/avx10_2bf16intrin.h +1085 -0
- package/lib/clang/20/include/avx10_2convertintrin.h +589 -0
- package/lib/clang/20/include/avx10_2copyintrin.h +66 -0
- package/lib/clang/20/include/avx10_2minmaxintrin.h +277 -0
- package/lib/clang/20/include/avx10_2niintrin.h +2075 -0
- package/lib/clang/20/include/avx10_2satcvtdsintrin.h +496 -0
- package/lib/clang/20/include/avx10_2satcvtintrin.h +444 -0
- package/lib/clang/{19 → 20}/include/avx2intrin.h +9 -0
- package/lib/clang/{19 → 20}/include/avx512bitalgintrin.h +2 -2
- package/lib/clang/{19 → 20}/include/avx512fintrin.h +22 -14
- package/lib/clang/{19 → 20}/include/avx512vlbitalgintrin.h +4 -4
- package/lib/clang/{19 → 20}/include/avx512vpopcntdqintrin.h +12 -4
- package/lib/clang/{19 → 20}/include/avx512vpopcntdqvlintrin.h +16 -8
- package/lib/clang/{19 → 20}/include/avxintrin.h +30 -16
- package/lib/clang/{19 → 20}/include/avxvnniint16intrin.h +36 -77
- package/lib/clang/{19 → 20}/include/avxvnniint8intrin.h +36 -77
- package/lib/clang/{19 → 20}/include/bmi2intrin.h +15 -17
- package/lib/clang/{19 → 20}/include/bmiintrin.h +31 -37
- package/lib/clang/{19 → 20}/include/cmpccxaddintrin.h +1 -1
- package/lib/clang/{19 → 20}/include/cpuid.h +12 -11
- package/lib/clang/{19 → 20}/include/cuda_wrappers/cmath +4 -0
- package/lib/clang/{19 → 20}/include/cuda_wrappers/new +2 -0
- package/lib/clang/{19 → 20}/include/emmintrin.h +141 -107
- package/lib/clang/{19 → 20}/include/gfniintrin.h +32 -10
- package/lib/clang/20/include/gpuintrin.h +224 -0
- package/lib/clang/{19 → 20}/include/hexagon_types.h +8 -4
- package/lib/clang/{19 → 20}/include/hlsl/hlsl_basic_types.h +47 -1
- package/lib/clang/20/include/hlsl/hlsl_detail.h +84 -0
- package/lib/clang/{19 → 20}/include/hlsl/hlsl_intrinsics.h +1199 -82
- package/lib/clang/{19 → 20}/include/hlsl.h +11 -0
- package/lib/clang/{19 → 20}/include/hvx_hexagon_protos.h +427 -0
- package/lib/clang/{19 → 20}/include/immintrin.h +87 -3
- package/lib/clang/{19 → 20}/include/intrin.h +20 -10
- package/lib/clang/{19 → 20}/include/intrin0.h +10 -1
- package/lib/clang/{19 → 20}/include/larchintrin.h +22 -8
- package/lib/clang/{19 → 20}/include/lasxintrin.h +27 -25
- package/lib/clang/{19 → 20}/include/limits.h +7 -4
- package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/ctype.h +38 -0
- package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/stdlib.h +8 -0
- package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
- package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
- package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
- package/lib/clang/{19 → 20}/include/lsxintrin.h +27 -25
- package/lib/clang/{19 → 20}/include/lzcntintrin.h +10 -7
- package/lib/clang/{19 → 20}/include/mmintrin.h +209 -155
- package/lib/clang/{19 → 20}/include/module.modulemap +2 -4
- package/lib/clang/20/include/movrs_avx10_2_512intrin.h +98 -0
- package/lib/clang/20/include/movrs_avx10_2intrin.h +174 -0
- package/lib/clang/20/include/movrsintrin.h +59 -0
- package/lib/clang/20/include/nvptxintrin.h +202 -0
- package/lib/clang/{19 → 20}/include/opencl-c-base.h +4 -0
- package/lib/clang/{19 → 20}/include/openmp_wrappers/__clang_openmp_device_functions.h +4 -5
- package/lib/clang/{19 → 20}/include/openmp_wrappers/complex_cmath.h +7 -2
- package/lib/clang/{19 → 20}/include/pmmintrin.h +16 -3
- package/lib/clang/{19 → 20}/include/popcntintrin.h +7 -7
- package/lib/clang/{19 → 20}/include/ptrauth.h +6 -0
- package/lib/clang/20/include/riscv_corev_alu.h +128 -0
- package/lib/clang/{19 → 20}/include/riscv_vector.h +0 -1
- package/lib/clang/20/include/sm4evexintrin.h +32 -0
- package/lib/clang/{19 → 20}/include/smmintrin.h +6 -0
- package/lib/clang/{19 → 20}/include/stdalign.h +0 -5
- package/lib/clang/{19 → 20}/include/tbmintrin.h +25 -37
- package/lib/clang/{19 → 20}/include/tmmintrin.h +64 -38
- package/lib/clang/{19 → 20}/include/vecintrin.h +1778 -60
- package/lib/clang/{19 → 20}/include/wasm_simd128.h +167 -21
- package/lib/clang/{19 → 20}/include/xmmintrin.h +170 -177
- package/package.json +6 -6
- /package/lib/clang/{19 → 20}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_intrinsics.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_runtime_wrapper.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_hip_libdevice_declares.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_hip_runtime_wrapper.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg_header_macro.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg_va_arg.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_header_macro.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_null.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{19 → 20}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{19 → 20}/include/ammintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm64intr.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_bf16.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_cde.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_cmse.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_fp16.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_mve.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{19 → 20}/include/armintr.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512bf16intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512bwintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512fp16intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512ifmavlintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlbf16intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlbwintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlfp16intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlvnniintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/builtins.h +0 -0
- /package/lib/clang/{19 → 20}/include/cet.h +0 -0
- /package/lib/clang/{19 → 20}/include/cetintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/clwbintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/clzerointrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/crc32intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{19 → 20}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{19 → 20}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{19 → 20}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{19 → 20}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{19 → 20}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/f16cintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/float.h +0 -0
- /package/lib/clang/{19 → 20}/include/fma4intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/fmaintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{19 → 20}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{19 → 20}/include/hresetintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/htmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ia32intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/inttypes.h +0 -0
- /package/lib/clang/{19 → 20}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/iso646.h +0 -0
- /package/lib/clang/{19 → 20}/include/keylockerintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/assert.h +0 -0
- /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/inttypes.h +0 -0
- /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/stdio.h +0 -0
- /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/string.h +0 -0
- /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/time.h +0 -0
- /package/lib/clang/{19 → 20}/include/lwpintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/mm3dnow.h +0 -0
- /package/lib/clang/{19 → 20}/include/mm_malloc.h +0 -0
- /package/lib/clang/{19 → 20}/include/movdirintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/msa.h +0 -0
- /package/lib/clang/{19 → 20}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/nmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/opencl-c.h +0 -0
- /package/lib/clang/{19 → 20}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{19 → 20}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{19 → 20}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{19 → 20}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{19 → 20}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{19 → 20}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/pkuintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/raointintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/riscv_bitmanip.h +0 -0
- /package/lib/clang/{19 → 20}/include/riscv_crypto.h +0 -0
- /package/lib/clang/{19 → 20}/include/riscv_ntlh.h +0 -0
- /package/lib/clang/{19 → 20}/include/rtmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/s390intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/serializeintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/sgxintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/sha512intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/shaintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/sifive_vector.h +0 -0
- /package/lib/clang/{19 → 20}/include/sm3intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/sm4intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdarg.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdatomic.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdbool.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdckdint.h +0 -0
- /package/lib/clang/{19 → 20}/include/stddef.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdint.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdnoreturn.h +0 -0
- /package/lib/clang/{19 → 20}/include/tgmath.h +0 -0
- /package/lib/clang/{19 → 20}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/uintrintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/unwind.h +0 -0
- /package/lib/clang/{19 → 20}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/vadefs.h +0 -0
- /package/lib/clang/{19 → 20}/include/vaesintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/varargs.h +0 -0
- /package/lib/clang/{19 → 20}/include/velintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{19 → 20}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{19 → 20}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/wmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/x86gprintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/x86intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xopintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xtestintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/yvals_core.h +0 -0
- /package/lib/clang/{19 → 20}/include/zos_wrappers/builtins.h +0 -0
|
@@ -50,12 +50,29 @@ typedef __bf16 __m256bh __attribute__((__vector_size__(32), __aligned__(32)));
|
|
|
50
50
|
#endif
|
|
51
51
|
|
|
52
52
|
/* Define the default attributes for the functions in this file. */
|
|
53
|
+
#if defined(__EVEX512__) && !defined(__AVX10_1_512__)
|
|
53
54
|
#define __DEFAULT_FN_ATTRS \
|
|
54
55
|
__attribute__((__always_inline__, __nodebug__, __target__("avx,no-evex512"), \
|
|
55
56
|
__min_vector_width__(256)))
|
|
56
57
|
#define __DEFAULT_FN_ATTRS128 \
|
|
57
58
|
__attribute__((__always_inline__, __nodebug__, __target__("avx,no-evex512"), \
|
|
58
59
|
__min_vector_width__(128)))
|
|
60
|
+
#else
|
|
61
|
+
#define __DEFAULT_FN_ATTRS \
|
|
62
|
+
__attribute__((__always_inline__, __nodebug__, __target__("avx"), \
|
|
63
|
+
__min_vector_width__(256)))
|
|
64
|
+
#define __DEFAULT_FN_ATTRS128 \
|
|
65
|
+
__attribute__((__always_inline__, __nodebug__, __target__("avx"), \
|
|
66
|
+
__min_vector_width__(128)))
|
|
67
|
+
#endif
|
|
68
|
+
|
|
69
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
70
|
+
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
|
|
71
|
+
#define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128 constexpr
|
|
72
|
+
#else
|
|
73
|
+
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS128
|
|
74
|
+
#define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS
|
|
75
|
+
#endif
|
|
59
76
|
|
|
60
77
|
/* Arithmetic */
|
|
61
78
|
/// Adds two 256-bit vectors of [4 x double].
|
|
@@ -3689,7 +3706,7 @@ _mm256_undefined_si256(void)
|
|
|
3689
3706
|
/// A double-precision floating-point value used to initialize bits [63:0]
|
|
3690
3707
|
/// of the result.
|
|
3691
3708
|
/// \returns An initialized 256-bit floating-point vector of [4 x double].
|
|
3692
|
-
static __inline __m256d
|
|
3709
|
+
static __inline __m256d __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
3693
3710
|
_mm256_set_pd(double __a, double __b, double __c, double __d)
|
|
3694
3711
|
{
|
|
3695
3712
|
return __extension__ (__m256d){ __d, __c, __b, __a };
|
|
@@ -3728,7 +3745,7 @@ _mm256_set_pd(double __a, double __b, double __c, double __d)
|
|
|
3728
3745
|
/// A single-precision floating-point value used to initialize bits [31:0]
|
|
3729
3746
|
/// of the result.
|
|
3730
3747
|
/// \returns An initialized 256-bit floating-point vector of [8 x float].
|
|
3731
|
-
static __inline __m256
|
|
3748
|
+
static __inline __m256 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
3732
3749
|
_mm256_set_ps(float __a, float __b, float __c, float __d,
|
|
3733
3750
|
float __e, float __f, float __g, float __h)
|
|
3734
3751
|
{
|
|
@@ -3955,7 +3972,7 @@ _mm256_set_epi64x(long long __a, long long __b, long long __c, long long __d)
|
|
|
3955
3972
|
/// A double-precision floating-point value used to initialize bits [255:192]
|
|
3956
3973
|
/// of the result.
|
|
3957
3974
|
/// \returns An initialized 256-bit floating-point vector of [4 x double].
|
|
3958
|
-
static __inline __m256d
|
|
3975
|
+
static __inline __m256d __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
3959
3976
|
_mm256_setr_pd(double __a, double __b, double __c, double __d)
|
|
3960
3977
|
{
|
|
3961
3978
|
return _mm256_set_pd(__d, __c, __b, __a);
|
|
@@ -3995,7 +4012,7 @@ _mm256_setr_pd(double __a, double __b, double __c, double __d)
|
|
|
3995
4012
|
/// A single-precision floating-point value used to initialize bits [255:224]
|
|
3996
4013
|
/// of the result.
|
|
3997
4014
|
/// \returns An initialized 256-bit floating-point vector of [8 x float].
|
|
3998
|
-
static __inline __m256
|
|
4015
|
+
static __inline __m256 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
3999
4016
|
_mm256_setr_ps(float __a, float __b, float __c, float __d,
|
|
4000
4017
|
float __e, float __f, float __g, float __h)
|
|
4001
4018
|
{
|
|
@@ -4212,7 +4229,7 @@ _mm256_setr_epi64x(long long __a, long long __b, long long __c, long long __d)
|
|
|
4212
4229
|
/// A double-precision floating-point value used to initialize each vector
|
|
4213
4230
|
/// element of the result.
|
|
4214
4231
|
/// \returns An initialized 256-bit floating-point vector of [4 x double].
|
|
4215
|
-
static __inline __m256d
|
|
4232
|
+
static __inline __m256d __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
4216
4233
|
_mm256_set1_pd(double __w)
|
|
4217
4234
|
{
|
|
4218
4235
|
return _mm256_set_pd(__w, __w, __w, __w);
|
|
@@ -4231,7 +4248,7 @@ _mm256_set1_pd(double __w)
|
|
|
4231
4248
|
/// A single-precision floating-point value used to initialize each vector
|
|
4232
4249
|
/// element of the result.
|
|
4233
4250
|
/// \returns An initialized 256-bit floating-point vector of [8 x float].
|
|
4234
|
-
static __inline __m256
|
|
4251
|
+
static __inline __m256 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
4235
4252
|
_mm256_set1_ps(float __w)
|
|
4236
4253
|
{
|
|
4237
4254
|
return _mm256_set_ps(__w, __w, __w, __w, __w, __w, __w, __w);
|
|
@@ -4322,10 +4339,8 @@ _mm256_set1_epi64x(long long __q)
|
|
|
4322
4339
|
/// This intrinsic corresponds to the <c> VXORPS </c> instruction.
|
|
4323
4340
|
///
|
|
4324
4341
|
/// \returns A 256-bit vector of [4 x double] with all elements set to zero.
|
|
4325
|
-
static __inline __m256d
|
|
4326
|
-
|
|
4327
|
-
{
|
|
4328
|
-
return __extension__ (__m256d){ 0.0, 0.0, 0.0, 0.0 };
|
|
4342
|
+
static __inline __m256d __DEFAULT_FN_ATTRS_CONSTEXPR _mm256_setzero_pd(void) {
|
|
4343
|
+
return __extension__(__m256d){0.0, 0.0, 0.0, 0.0};
|
|
4329
4344
|
}
|
|
4330
4345
|
|
|
4331
4346
|
/// Constructs a 256-bit floating-point vector of [8 x float] with all
|
|
@@ -4336,9 +4351,7 @@ _mm256_setzero_pd(void)
|
|
|
4336
4351
|
/// This intrinsic corresponds to the <c> VXORPS </c> instruction.
|
|
4337
4352
|
///
|
|
4338
4353
|
/// \returns A 256-bit vector of [8 x float] with all elements set to zero.
|
|
4339
|
-
static __inline __m256
|
|
4340
|
-
_mm256_setzero_ps(void)
|
|
4341
|
-
{
|
|
4354
|
+
static __inline __m256 __DEFAULT_FN_ATTRS_CONSTEXPR _mm256_setzero_ps(void) {
|
|
4342
4355
|
return __extension__ (__m256){ 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
|
|
4343
4356
|
}
|
|
4344
4357
|
|
|
@@ -4349,9 +4362,8 @@ _mm256_setzero_ps(void)
|
|
|
4349
4362
|
/// This intrinsic corresponds to the <c> VXORPS </c> instruction.
|
|
4350
4363
|
///
|
|
4351
4364
|
/// \returns A 256-bit integer vector initialized to zero.
|
|
4352
|
-
static __inline __m256i
|
|
4353
|
-
_mm256_setzero_si256(void)
|
|
4354
|
-
{
|
|
4365
|
+
static __inline __m256i __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
4366
|
+
_mm256_setzero_si256(void) {
|
|
4355
4367
|
return __extension__ (__m256i)(__v4di){ 0, 0, 0, 0 };
|
|
4356
4368
|
}
|
|
4357
4369
|
|
|
@@ -5121,6 +5133,8 @@ _mm256_storeu2_m128i(__m128i_u *__addr_hi, __m128i_u *__addr_lo, __m256i __a)
|
|
|
5121
5133
|
}
|
|
5122
5134
|
|
|
5123
5135
|
#undef __DEFAULT_FN_ATTRS
|
|
5136
|
+
#undef __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
5124
5137
|
#undef __DEFAULT_FN_ATTRS128
|
|
5138
|
+
#undef __DEFAULT_FN_ATTRS128_CONSTEXPR
|
|
5125
5139
|
|
|
5126
5140
|
#endif /* __AVXINTRIN_H */
|
|
@@ -15,14 +15,6 @@
|
|
|
15
15
|
#ifndef __AVXVNNIINT16INTRIN_H
|
|
16
16
|
#define __AVXVNNIINT16INTRIN_H
|
|
17
17
|
|
|
18
|
-
/* Define the default attributes for the functions in this file. */
|
|
19
|
-
#define __DEFAULT_FN_ATTRS128 \
|
|
20
|
-
__attribute__((__always_inline__, __nodebug__, __target__("avxvnniint16"), \
|
|
21
|
-
__min_vector_width__(128)))
|
|
22
|
-
#define __DEFAULT_FN_ATTRS256 \
|
|
23
|
-
__attribute__((__always_inline__, __nodebug__, __target__("avxvnniint16"), \
|
|
24
|
-
__min_vector_width__(256)))
|
|
25
|
-
|
|
26
18
|
/// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a __A with
|
|
27
19
|
/// corresponding unsigned 16-bit integers in \a __B, producing 2 intermediate
|
|
28
20
|
/// signed 16-bit results. Sum these 2 results with the corresponding
|
|
@@ -53,12 +45,9 @@
|
|
|
53
45
|
/// ENDFOR
|
|
54
46
|
/// dst[MAX:128] := 0
|
|
55
47
|
/// \endcode
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return (__m128i)__builtin_ia32_vpdpwsud128((__v4si)__W, (__v4si)__A,
|
|
60
|
-
(__v4si)__B);
|
|
61
|
-
}
|
|
48
|
+
#define _mm_dpwsud_epi32(__W, __A, __B) \
|
|
49
|
+
((__m128i)__builtin_ia32_vpdpwsud128((__v4si)(__W), (__v4si)(__A), \
|
|
50
|
+
(__v4si)(__B)))
|
|
62
51
|
|
|
63
52
|
/// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a __A with
|
|
64
53
|
/// corresponding unsigned 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -90,11 +79,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpwsud_epi32(__m128i __W,
|
|
|
90
79
|
/// ENDFOR
|
|
91
80
|
/// dst[MAX:256] := 0
|
|
92
81
|
/// \endcode
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
(__v8si)__B);
|
|
97
|
-
}
|
|
82
|
+
#define _mm256_dpwsud_epi32(__W, __A, __B) \
|
|
83
|
+
((__m256i)__builtin_ia32_vpdpwsud256((__v8si)(__W), (__v8si)(__A), \
|
|
84
|
+
(__v8si)(__B)))
|
|
98
85
|
|
|
99
86
|
/// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a __A with
|
|
100
87
|
/// corresponding unsigned 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -127,12 +114,9 @@ _mm256_dpwsud_epi32(__m256i __W, __m256i __A, __m256i __B) {
|
|
|
127
114
|
/// ENDFOR
|
|
128
115
|
/// dst[MAX:128] := 0
|
|
129
116
|
/// \endcode
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
return (__m128i)__builtin_ia32_vpdpwsuds128((__v4si)__W, (__v4si)__A,
|
|
134
|
-
(__v4si)__B);
|
|
135
|
-
}
|
|
117
|
+
#define _mm_dpwsuds_epi32(__W, __A, __B) \
|
|
118
|
+
((__m128i)__builtin_ia32_vpdpwsuds128((__v4si)(__W), (__v4si)(__A), \
|
|
119
|
+
(__v4si)(__B)))
|
|
136
120
|
|
|
137
121
|
/// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a __A with
|
|
138
122
|
/// corresponding unsigned 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -165,11 +149,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpwsuds_epi32(__m128i __W,
|
|
|
165
149
|
/// ENDFOR
|
|
166
150
|
/// dst[MAX:256] := 0
|
|
167
151
|
/// \endcode
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
(__v8si)__B);
|
|
172
|
-
}
|
|
152
|
+
#define _mm256_dpwsuds_epi32(__W, __A, __B) \
|
|
153
|
+
((__m256i)__builtin_ia32_vpdpwsuds256((__v8si)(__W), (__v8si)(__A), \
|
|
154
|
+
(__v8si)(__B)))
|
|
173
155
|
|
|
174
156
|
/// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A with
|
|
175
157
|
/// corresponding signed 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -201,12 +183,9 @@ _mm256_dpwsuds_epi32(__m256i __W, __m256i __A, __m256i __B) {
|
|
|
201
183
|
/// ENDFOR
|
|
202
184
|
/// dst[MAX:128] := 0
|
|
203
185
|
/// \endcode
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
return (__m128i)__builtin_ia32_vpdpwusd128((__v4si)__W, (__v4si)__A,
|
|
208
|
-
(__v4si)__B);
|
|
209
|
-
}
|
|
186
|
+
#define _mm_dpwusd_epi32(__W, __A, __B) \
|
|
187
|
+
((__m128i)__builtin_ia32_vpdpwusd128((__v4si)(__W), (__v4si)(__A), \
|
|
188
|
+
(__v4si)(__B)))
|
|
210
189
|
|
|
211
190
|
/// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A with
|
|
212
191
|
/// corresponding signed 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -238,11 +217,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpwusd_epi32(__m128i __W,
|
|
|
238
217
|
/// ENDFOR
|
|
239
218
|
/// dst[MAX:256] := 0
|
|
240
219
|
/// \endcode
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
(__v8si)__B);
|
|
245
|
-
}
|
|
220
|
+
#define _mm256_dpwusd_epi32(__W, __A, __B) \
|
|
221
|
+
((__m256i)__builtin_ia32_vpdpwusd256((__v8si)(__W), (__v8si)(__A), \
|
|
222
|
+
(__v8si)(__B)))
|
|
246
223
|
|
|
247
224
|
/// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A with
|
|
248
225
|
/// corresponding signed 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -275,12 +252,9 @@ _mm256_dpwusd_epi32(__m256i __W, __m256i __A, __m256i __B) {
|
|
|
275
252
|
/// ENDFOR
|
|
276
253
|
/// dst[MAX:128] := 0
|
|
277
254
|
/// \endcode
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
return (__m128i)__builtin_ia32_vpdpwusds128((__v4si)__W, (__v4si)__A,
|
|
282
|
-
(__v4si)__B);
|
|
283
|
-
}
|
|
255
|
+
#define _mm_dpwusds_epi32(__W, __A, __B) \
|
|
256
|
+
((__m128i)__builtin_ia32_vpdpwusds128((__v4si)(__W), (__v4si)(__A), \
|
|
257
|
+
(__v4si)(__B)))
|
|
284
258
|
|
|
285
259
|
/// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A with
|
|
286
260
|
/// corresponding signed 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -313,11 +287,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpwusds_epi32(__m128i __W,
|
|
|
313
287
|
/// ENDFOR
|
|
314
288
|
/// dst[MAX:256] := 0
|
|
315
289
|
/// \endcode
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
(__v8si)__B);
|
|
320
|
-
}
|
|
290
|
+
#define _mm256_dpwusds_epi32(__W, __A, __B) \
|
|
291
|
+
((__m256i)__builtin_ia32_vpdpwusds256((__v8si)(__W), (__v8si)(__A), \
|
|
292
|
+
(__v8si)(__B)))
|
|
321
293
|
|
|
322
294
|
/// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A with
|
|
323
295
|
/// corresponding unsigned 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -349,12 +321,9 @@ _mm256_dpwusds_epi32(__m256i __W, __m256i __A, __m256i __B) {
|
|
|
349
321
|
/// ENDFOR
|
|
350
322
|
/// dst[MAX:128] := 0
|
|
351
323
|
/// \endcode
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
return (__m128i)__builtin_ia32_vpdpwuud128((__v4si)__W, (__v4si)__A,
|
|
356
|
-
(__v4si)__B);
|
|
357
|
-
}
|
|
324
|
+
#define _mm_dpwuud_epi32(__W, __A, __B) \
|
|
325
|
+
((__m128i)__builtin_ia32_vpdpwuud128((__v4si)(__W), (__v4si)(__A), \
|
|
326
|
+
(__v4si)(__B)))
|
|
358
327
|
|
|
359
328
|
/// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A with
|
|
360
329
|
/// corresponding unsigned 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -386,11 +355,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpwuud_epi32(__m128i __W,
|
|
|
386
355
|
/// ENDFOR
|
|
387
356
|
/// dst[MAX:256] := 0
|
|
388
357
|
/// \endcode
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
(__v8si)__B);
|
|
393
|
-
}
|
|
358
|
+
#define _mm256_dpwuud_epi32(__W, __A, __B) \
|
|
359
|
+
((__m256i)__builtin_ia32_vpdpwuud256((__v8si)(__W), (__v8si)(__A), \
|
|
360
|
+
(__v8si)(__B)))
|
|
394
361
|
|
|
395
362
|
/// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A with
|
|
396
363
|
/// corresponding unsigned 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -423,12 +390,9 @@ _mm256_dpwuud_epi32(__m256i __W, __m256i __A, __m256i __B) {
|
|
|
423
390
|
/// ENDFOR
|
|
424
391
|
/// dst[MAX:128] := 0
|
|
425
392
|
/// \endcode
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
return (__m128i)__builtin_ia32_vpdpwuuds128((__v4si)__W, (__v4si)__A,
|
|
430
|
-
(__v4si)__B);
|
|
431
|
-
}
|
|
393
|
+
#define _mm_dpwuuds_epi32(__W, __A, __B) \
|
|
394
|
+
((__m128i)__builtin_ia32_vpdpwuuds128((__v4si)(__W), (__v4si)(__A), \
|
|
395
|
+
(__v4si)(__B)))
|
|
432
396
|
|
|
433
397
|
/// Multiply groups of 2 adjacent pairs of unsigned 16-bit integers in \a __A with
|
|
434
398
|
/// corresponding unsigned 16-bit integers in \a __B, producing 2 intermediate
|
|
@@ -461,13 +425,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpwuuds_epi32(__m128i __W,
|
|
|
461
425
|
/// ENDFOR
|
|
462
426
|
/// dst[MAX:256] := 0
|
|
463
427
|
/// \endcode
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
(__v8si)__B);
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
#undef __DEFAULT_FN_ATTRS128
|
|
471
|
-
#undef __DEFAULT_FN_ATTRS256
|
|
428
|
+
#define _mm256_dpwuuds_epi32(__W, __A, __B) \
|
|
429
|
+
((__m256i)__builtin_ia32_vpdpwuuds256((__v8si)(__W), (__v8si)(__A), \
|
|
430
|
+
(__v8si)(__B)))
|
|
472
431
|
|
|
473
432
|
#endif // __AVXVNNIINT16INTRIN_H
|
|
@@ -14,14 +14,6 @@
|
|
|
14
14
|
#ifndef __AVXVNNIINT8INTRIN_H
|
|
15
15
|
#define __AVXVNNIINT8INTRIN_H
|
|
16
16
|
|
|
17
|
-
/* Define the default attributes for the functions in this file. */
|
|
18
|
-
#define __DEFAULT_FN_ATTRS256 \
|
|
19
|
-
__attribute__((__always_inline__, __nodebug__, __target__("avxvnniint8"), \
|
|
20
|
-
__min_vector_width__(256)))
|
|
21
|
-
#define __DEFAULT_FN_ATTRS128 \
|
|
22
|
-
__attribute__((__always_inline__, __nodebug__, __target__("avxvnniint8"), \
|
|
23
|
-
__min_vector_width__(128)))
|
|
24
|
-
|
|
25
17
|
/// Multiply groups of 4 adjacent pairs of signed 8-bit integers in \a __A with
|
|
26
18
|
/// corresponding signed 8-bit integers in \a __B, producing 4 intermediate
|
|
27
19
|
/// signed 16-bit results. Sum these 4 results with the corresponding
|
|
@@ -52,12 +44,9 @@
|
|
|
52
44
|
/// ENDFOR
|
|
53
45
|
/// dst[MAX:128] := 0
|
|
54
46
|
/// \endcode
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return (__m128i)__builtin_ia32_vpdpbssd128((__v4si)__W, (__v4si)__A,
|
|
59
|
-
(__v4si)__B);
|
|
60
|
-
}
|
|
47
|
+
#define _mm_dpbssd_epi32(__W, __A, __B) \
|
|
48
|
+
((__m128i)__builtin_ia32_vpdpbssd128((__v4si)(__W), (__v4si)(__A), \
|
|
49
|
+
(__v4si)(__B)))
|
|
61
50
|
|
|
62
51
|
/// Multiply groups of 4 adjacent pairs of signed 8-bit integers in \a __A with
|
|
63
52
|
/// corresponding signed 8-bit integers in \a __B, producing 4 intermediate
|
|
@@ -89,11 +78,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpbssd_epi32(__m128i __W,
|
|
|
89
78
|
/// ENDFOR
|
|
90
79
|
/// dst[MAX:256] := 0
|
|
91
80
|
/// \endcode
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
(__v8si)__B);
|
|
96
|
-
}
|
|
81
|
+
#define _mm256_dpbssd_epi32(__W, __A, __B) \
|
|
82
|
+
((__m256i)__builtin_ia32_vpdpbssd256((__v8si)(__W), (__v8si)(__A), \
|
|
83
|
+
(__v8si)(__B)))
|
|
97
84
|
|
|
98
85
|
/// Multiply groups of 4 adjacent pairs of signed 8-bit integers in \a __A with
|
|
99
86
|
/// corresponding signed 8-bit integers in \a __B, producing 4 intermediate
|
|
@@ -126,12 +113,9 @@ _mm256_dpbssd_epi32(__m256i __W, __m256i __A, __m256i __B) {
|
|
|
126
113
|
/// ENDFOR
|
|
127
114
|
/// dst[MAX:128] := 0
|
|
128
115
|
/// \endcode
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
return (__m128i)__builtin_ia32_vpdpbssds128((__v4si)__W, (__v4si)__A,
|
|
133
|
-
(__v4si)__B);
|
|
134
|
-
}
|
|
116
|
+
#define _mm_dpbssds_epi32(__W, __A, __B) \
|
|
117
|
+
((__m128i)__builtin_ia32_vpdpbssds128((__v4si)(__W), (__v4si)(__A), \
|
|
118
|
+
(__v4si)(__B)))
|
|
135
119
|
|
|
136
120
|
/// Multiply groups of 4 adjacent pairs of signed 8-bit integers in \a __A with
|
|
137
121
|
/// corresponding signed 8-bit integers in \a __B, producing 4 intermediate
|
|
@@ -164,11 +148,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpbssds_epi32(__m128i __W,
|
|
|
164
148
|
/// ENDFOR
|
|
165
149
|
/// dst[MAX:256] := 0
|
|
166
150
|
/// \endcode
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
(__v8si)__B);
|
|
171
|
-
}
|
|
151
|
+
#define _mm256_dpbssds_epi32(__W, __A, __B) \
|
|
152
|
+
((__m256i)__builtin_ia32_vpdpbssds256((__v8si)(__W), (__v8si)(__A), \
|
|
153
|
+
(__v8si)(__B)))
|
|
172
154
|
|
|
173
155
|
/// Multiply groups of 4 adjacent pairs of signed 8-bit integers in \a __A with
|
|
174
156
|
/// corresponding unsigned 8-bit integers in \a __B, producing 4 intermediate
|
|
@@ -200,12 +182,9 @@ _mm256_dpbssds_epi32(__m256i __W, __m256i __A, __m256i __B) {
|
|
|
200
182
|
/// ENDFOR
|
|
201
183
|
/// dst[MAX:128] := 0
|
|
202
184
|
/// \endcode
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
return (__m128i)__builtin_ia32_vpdpbsud128((__v4si)__W, (__v4si)__A,
|
|
207
|
-
(__v4si)__B);
|
|
208
|
-
}
|
|
185
|
+
#define _mm_dpbsud_epi32(__W, __A, __B) \
|
|
186
|
+
((__m128i)__builtin_ia32_vpdpbsud128((__v4si)(__W), (__v4si)(__A), \
|
|
187
|
+
(__v4si)(__B)))
|
|
209
188
|
|
|
210
189
|
/// Multiply groups of 4 adjacent pairs of signed 8-bit integers in \a __A with
|
|
211
190
|
/// corresponding unsigned 8-bit integers in \a __B, producing 4 intermediate
|
|
@@ -237,11 +216,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpbsud_epi32(__m128i __W,
|
|
|
237
216
|
/// ENDFOR
|
|
238
217
|
/// dst[MAX:256] := 0
|
|
239
218
|
/// \endcode
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
(__v8si)__B);
|
|
244
|
-
}
|
|
219
|
+
#define _mm256_dpbsud_epi32(__W, __A, __B) \
|
|
220
|
+
((__m256i)__builtin_ia32_vpdpbsud256((__v8si)(__W), (__v8si)(__A), \
|
|
221
|
+
(__v8si)(__B)))
|
|
245
222
|
|
|
246
223
|
/// Multiply groups of 4 adjacent pairs of signed 8-bit integers in \a __A with
|
|
247
224
|
/// corresponding unsigned 8-bit integers in \a __B, producing 4 intermediate
|
|
@@ -274,12 +251,9 @@ _mm256_dpbsud_epi32(__m256i __W, __m256i __A, __m256i __B) {
|
|
|
274
251
|
/// ENDFOR
|
|
275
252
|
/// dst[MAX:128] := 0
|
|
276
253
|
/// \endcode
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
return (__m128i)__builtin_ia32_vpdpbsuds128((__v4si)__W, (__v4si)__A,
|
|
281
|
-
(__v4si)__B);
|
|
282
|
-
}
|
|
254
|
+
#define _mm_dpbsuds_epi32(__W, __A, __B) \
|
|
255
|
+
((__m128i)__builtin_ia32_vpdpbsuds128((__v4si)(__W), (__v4si)(__A), \
|
|
256
|
+
(__v4si)(__B)))
|
|
283
257
|
|
|
284
258
|
/// Multiply groups of 4 adjacent pairs of signed 8-bit integers in \a __A with
|
|
285
259
|
/// corresponding unsigned 8-bit integers in \a __B, producing 4 intermediate
|
|
@@ -312,11 +286,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpbsuds_epi32(__m128i __W,
|
|
|
312
286
|
/// ENDFOR
|
|
313
287
|
/// dst[MAX:256] := 0
|
|
314
288
|
/// \endcode
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
(__v8si)__B);
|
|
319
|
-
}
|
|
289
|
+
#define _mm256_dpbsuds_epi32(__W, __A, __B) \
|
|
290
|
+
((__m256i)__builtin_ia32_vpdpbsuds256((__v8si)(__W), (__v8si)(__A), \
|
|
291
|
+
(__v8si)(__B)))
|
|
320
292
|
|
|
321
293
|
/// Multiply groups of 4 adjacent pairs of unsigned 8-bit integers in \a __A with
|
|
322
294
|
/// corresponding unsigned 8-bit integers in \a __B, producing 4 intermediate
|
|
@@ -348,12 +320,9 @@ _mm256_dpbsuds_epi32(__m256i __W, __m256i __A, __m256i __B) {
|
|
|
348
320
|
/// ENDFOR
|
|
349
321
|
/// dst[MAX:128] := 0
|
|
350
322
|
/// \endcode
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
return (__m128i)__builtin_ia32_vpdpbuud128((__v4si)__W, (__v4si)__A,
|
|
355
|
-
(__v4si)__B);
|
|
356
|
-
}
|
|
323
|
+
#define _mm_dpbuud_epi32(__W, __A, __B) \
|
|
324
|
+
((__m128i)__builtin_ia32_vpdpbuud128((__v4si)(__W), (__v4si)(__A), \
|
|
325
|
+
(__v4si)(__B)))
|
|
357
326
|
|
|
358
327
|
/// Multiply groups of 4 adjacent pairs of unsigned 8-bit integers in \a __A with
|
|
359
328
|
/// corresponding unsigned 8-bit integers in \a __B, producing 4 intermediate
|
|
@@ -385,11 +354,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpbuud_epi32(__m128i __W,
|
|
|
385
354
|
/// ENDFOR
|
|
386
355
|
/// dst[MAX:256] := 0
|
|
387
356
|
/// \endcode
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
(__v8si)__B);
|
|
392
|
-
}
|
|
357
|
+
#define _mm256_dpbuud_epi32(__W, __A, __B) \
|
|
358
|
+
((__m256i)__builtin_ia32_vpdpbuud256((__v8si)(__W), (__v8si)(__A), \
|
|
359
|
+
(__v8si)(__B)))
|
|
393
360
|
|
|
394
361
|
/// Multiply groups of 4 adjacent pairs of unsigned 8-bit integers in \a __A with
|
|
395
362
|
/// corresponding unsigned 8-bit integers in \a __B, producing 4 intermediate
|
|
@@ -422,14 +389,10 @@ _mm256_dpbuud_epi32(__m256i __W, __m256i __A, __m256i __B) {
|
|
|
422
389
|
/// ENDFOR
|
|
423
390
|
/// dst[MAX:128] := 0
|
|
424
391
|
/// \endcode
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
return (__m128i)__builtin_ia32_vpdpbuuds128((__v4si)__W, (__v4si)__A,
|
|
429
|
-
(__v4si)__B);
|
|
430
|
-
}
|
|
392
|
+
#define _mm_dpbuuds_epi32(__W, __A, __B) \
|
|
393
|
+
((__m128i)__builtin_ia32_vpdpbuuds128((__v4si)(__W), (__v4si)(__A), \
|
|
394
|
+
(__v4si)(__B)))
|
|
431
395
|
|
|
432
|
-
/// Multiply groups of 4 adjacent pairs of signed 8-bit integers in \a __A with
|
|
433
396
|
/// corresponding unsigned 8-bit integers in \a __B, producing 4 intermediate
|
|
434
397
|
/// signed 16-bit results. Sum these 4 results with the corresponding
|
|
435
398
|
/// 32-bit integer in \a __W with signed saturation, and store the packed
|
|
@@ -460,12 +423,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_dpbuuds_epi32(__m128i __W,
|
|
|
460
423
|
/// ENDFOR
|
|
461
424
|
/// dst[MAX:256] := 0
|
|
462
425
|
/// \endcode
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
(__v8si)__B);
|
|
467
|
-
}
|
|
468
|
-
#undef __DEFAULT_FN_ATTRS128
|
|
469
|
-
#undef __DEFAULT_FN_ATTRS256
|
|
426
|
+
#define _mm256_dpbuuds_epi32(__W, __A, __B) \
|
|
427
|
+
((__m256i)__builtin_ia32_vpdpbuuds256((__v8si)(__W), (__v8si)(__A), \
|
|
428
|
+
(__v8si)(__B)))
|
|
470
429
|
|
|
471
430
|
#endif // __AVXVNNIINT8INTRIN_H
|
|
@@ -15,7 +15,13 @@
|
|
|
15
15
|
#define __BMI2INTRIN_H
|
|
16
16
|
|
|
17
17
|
/* Define the default attributes for the functions in this file. */
|
|
18
|
-
#
|
|
18
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
19
|
+
#define __DEFAULT_FN_ATTRS \
|
|
20
|
+
__attribute__((__always_inline__, __nodebug__, __target__("bmi2"))) constexpr
|
|
21
|
+
#else
|
|
22
|
+
#define __DEFAULT_FN_ATTRS \
|
|
23
|
+
__attribute__((__always_inline__, __nodebug__, __target__("bmi2")))
|
|
24
|
+
#endif
|
|
19
25
|
|
|
20
26
|
/// Copies the unsigned 32-bit integer \a __X and zeroes the upper bits
|
|
21
27
|
/// starting at bit number \a __Y.
|
|
@@ -38,8 +44,7 @@
|
|
|
38
44
|
/// The lower 8 bits specify the bit number of the lowest bit to zero.
|
|
39
45
|
/// \returns The partially zeroed 32-bit value.
|
|
40
46
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
41
|
-
_bzhi_u32(unsigned int __X, unsigned int __Y)
|
|
42
|
-
{
|
|
47
|
+
_bzhi_u32(unsigned int __X, unsigned int __Y) {
|
|
43
48
|
return __builtin_ia32_bzhi_si(__X, __Y);
|
|
44
49
|
}
|
|
45
50
|
|
|
@@ -68,8 +73,7 @@ _bzhi_u32(unsigned int __X, unsigned int __Y)
|
|
|
68
73
|
/// The 32-bit mask specifying where to deposit source bits.
|
|
69
74
|
/// \returns The 32-bit result.
|
|
70
75
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
71
|
-
_pdep_u32(unsigned int __X, unsigned int __Y)
|
|
72
|
-
{
|
|
76
|
+
_pdep_u32(unsigned int __X, unsigned int __Y) {
|
|
73
77
|
return __builtin_ia32_pdep_si(__X, __Y);
|
|
74
78
|
}
|
|
75
79
|
|
|
@@ -98,8 +102,7 @@ _pdep_u32(unsigned int __X, unsigned int __Y)
|
|
|
98
102
|
/// The 32-bit mask specifying which source bits to extract.
|
|
99
103
|
/// \returns The 32-bit result.
|
|
100
104
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
101
|
-
_pext_u32(unsigned int __X, unsigned int __Y)
|
|
102
|
-
{
|
|
105
|
+
_pext_u32(unsigned int __X, unsigned int __Y) {
|
|
103
106
|
return __builtin_ia32_pext_si(__X, __Y);
|
|
104
107
|
}
|
|
105
108
|
|
|
@@ -124,8 +127,7 @@ _pext_u32(unsigned int __X, unsigned int __Y)
|
|
|
124
127
|
/// A pointer to memory for storing the upper half of the product.
|
|
125
128
|
/// \returns The lower half of the product.
|
|
126
129
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
127
|
-
_mulx_u32(unsigned int __X, unsigned int __Y, unsigned int *__P)
|
|
128
|
-
{
|
|
130
|
+
_mulx_u32(unsigned int __X, unsigned int __Y, unsigned int *__P) {
|
|
129
131
|
unsigned long long __res = (unsigned long long) __X * __Y;
|
|
130
132
|
*__P = (unsigned int)(__res >> 32);
|
|
131
133
|
return (unsigned int)__res;
|
|
@@ -154,8 +156,7 @@ _mulx_u32(unsigned int __X, unsigned int __Y, unsigned int *__P)
|
|
|
154
156
|
/// The lower 8 bits specify the bit number of the lowest bit to zero.
|
|
155
157
|
/// \returns The partially zeroed 64-bit value.
|
|
156
158
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
157
|
-
_bzhi_u64(unsigned long long __X, unsigned long long __Y)
|
|
158
|
-
{
|
|
159
|
+
_bzhi_u64(unsigned long long __X, unsigned long long __Y) {
|
|
159
160
|
return __builtin_ia32_bzhi_di(__X, __Y);
|
|
160
161
|
}
|
|
161
162
|
|
|
@@ -184,8 +185,7 @@ _bzhi_u64(unsigned long long __X, unsigned long long __Y)
|
|
|
184
185
|
/// The 64-bit mask specifying where to deposit source bits.
|
|
185
186
|
/// \returns The 64-bit result.
|
|
186
187
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
187
|
-
_pdep_u64(unsigned long long __X, unsigned long long __Y)
|
|
188
|
-
{
|
|
188
|
+
_pdep_u64(unsigned long long __X, unsigned long long __Y) {
|
|
189
189
|
return __builtin_ia32_pdep_di(__X, __Y);
|
|
190
190
|
}
|
|
191
191
|
|
|
@@ -214,8 +214,7 @@ _pdep_u64(unsigned long long __X, unsigned long long __Y)
|
|
|
214
214
|
/// The 64-bit mask specifying which source bits to extract.
|
|
215
215
|
/// \returns The 64-bit result.
|
|
216
216
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
217
|
-
_pext_u64(unsigned long long __X, unsigned long long __Y)
|
|
218
|
-
{
|
|
217
|
+
_pext_u64(unsigned long long __X, unsigned long long __Y) {
|
|
219
218
|
return __builtin_ia32_pext_di(__X, __Y);
|
|
220
219
|
}
|
|
221
220
|
|
|
@@ -241,8 +240,7 @@ _pext_u64(unsigned long long __X, unsigned long long __Y)
|
|
|
241
240
|
/// \returns The lower half of the product.
|
|
242
241
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
243
242
|
_mulx_u64 (unsigned long long __X, unsigned long long __Y,
|
|
244
|
-
|
|
245
|
-
{
|
|
243
|
+
unsigned long long *__P) {
|
|
246
244
|
unsigned __int128 __res = (unsigned __int128) __X * __Y;
|
|
247
245
|
*__P = (unsigned long long) (__res >> 64);
|
|
248
246
|
return (unsigned long long) __res;
|