@cpp-linter/clang-tidy-darwin-x64 17.0.6 → 18.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/clang-tidy +2 -2
- package/lib/clang/{17 → 18}/include/__clang_cuda_device_functions.h +2 -2
- package/lib/clang/{17 → 18}/include/__clang_cuda_libdevice_declares.h +2 -2
- package/lib/clang/{17 → 18}/include/__clang_cuda_math.h +2 -2
- package/lib/clang/{17 → 18}/include/__clang_cuda_runtime_wrapper.h +2 -2
- package/lib/clang/{17 → 18}/include/__clang_hip_math.h +192 -171
- package/lib/clang/{17 → 18}/include/__clang_hip_runtime_wrapper.h +34 -26
- package/lib/clang/18/include/__stdarg___gnuc_va_list.h +13 -0
- package/lib/clang/18/include/__stdarg___va_copy.h +12 -0
- package/lib/clang/18/include/__stdarg_va_arg.h +22 -0
- package/lib/clang/18/include/__stdarg_va_copy.h +12 -0
- package/lib/clang/18/include/__stdarg_va_list.h +13 -0
- package/lib/clang/{17 → 18}/include/__stddef_max_align_t.h +1 -1
- package/lib/clang/18/include/__stddef_null.h +29 -0
- package/lib/clang/18/include/__stddef_nullptr_t.h +29 -0
- package/lib/clang/18/include/__stddef_offsetof.h +17 -0
- package/lib/clang/18/include/__stddef_ptrdiff_t.h +20 -0
- package/lib/clang/18/include/__stddef_rsize_t.h +20 -0
- package/lib/clang/18/include/__stddef_size_t.h +20 -0
- package/lib/clang/18/include/__stddef_unreachable.h +21 -0
- package/lib/clang/18/include/__stddef_wchar_t.h +28 -0
- package/lib/clang/18/include/__stddef_wint_t.h +15 -0
- package/lib/clang/{17/include/adxintrin.h → 18/include/adcintrin.h} +27 -94
- package/lib/clang/18/include/adxintrin.h +102 -0
- package/lib/clang/{17 → 18}/include/altivec.h +31 -12
- package/lib/clang/{17 → 18}/include/ammintrin.h +4 -4
- package/lib/clang/{17 → 18}/include/arm_acle.h +111 -31
- package/lib/clang/{17 → 18}/include/arm_neon.h +85 -327
- package/lib/clang/18/include/arm_sme.h +2412 -0
- package/lib/clang/{17 → 18}/include/arm_sve.h +7386 -351
- package/lib/clang/18/include/arm_vector_types.h +345 -0
- package/lib/clang/{17 → 18}/include/avx2intrin.h +24 -3
- package/lib/clang/{17 → 18}/include/avx512bf16intrin.h +3 -2
- package/lib/clang/{17 → 18}/include/avx512bitalgintrin.h +4 -1
- package/lib/clang/{17 → 18}/include/avx512bwintrin.h +28 -38
- package/lib/clang/{17 → 18}/include/avx512cdintrin.h +3 -1
- package/lib/clang/{17 → 18}/include/avx512dqintrin.h +4 -2
- package/lib/clang/{17 → 18}/include/avx512fintrin.h +7 -3
- package/lib/clang/{17 → 18}/include/avx512fp16intrin.h +6 -4
- package/lib/clang/{17 → 18}/include/avx512ifmaintrin.h +3 -1
- package/lib/clang/{17 → 18}/include/avx512ifmavlintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512pfintrin.h +0 -5
- package/lib/clang/{17 → 18}/include/avx512vbmi2intrin.h +1 -1
- package/lib/clang/{17 → 18}/include/avx512vbmiintrin.h +3 -2
- package/lib/clang/{17 → 18}/include/avx512vbmivlintrin.h +8 -3
- package/lib/clang/{17 → 18}/include/avx512vlbf16intrin.h +8 -6
- package/lib/clang/{17 → 18}/include/avx512vlbitalgintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlbwintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlcdintrin.h +8 -3
- package/lib/clang/{17 → 18}/include/avx512vldqintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlfp16intrin.h +2 -2
- package/lib/clang/{17 → 18}/include/avx512vlintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlvbmi2intrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlvnniintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlvp2intersectintrin.h +6 -4
- package/lib/clang/{17 → 18}/include/avx512vnniintrin.h +3 -2
- package/lib/clang/{17 → 18}/include/avx512vp2intersectintrin.h +3 -2
- package/lib/clang/{17 → 18}/include/avx512vpopcntdqintrin.h +3 -1
- package/lib/clang/{17 → 18}/include/avx512vpopcntdqvlintrin.h +6 -2
- package/lib/clang/{17 → 18}/include/avxintrin.h +9 -5
- package/lib/clang/{17 → 18}/include/bmiintrin.h +231 -46
- package/lib/clang/{17 → 18}/include/emmintrin.h +10 -10
- package/lib/clang/{17 → 18}/include/gfniintrin.h +23 -6
- package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +624 -0
- package/lib/clang/18/include/ia32intrin.h +863 -0
- package/lib/clang/{17 → 18}/include/immintrin.h +66 -3
- package/lib/clang/{17 → 18}/include/intrin.h +16 -0
- package/lib/clang/{17 → 18}/include/larchintrin.h +13 -1
- package/lib/clang/18/include/lasxintrin.h +3884 -0
- package/lib/clang/{17 → 18}/include/limits.h +2 -4
- package/lib/clang/{17/include/llvm_libc_wrappers/stdio.h → 18/include/llvm_libc_wrappers/assert.h} +7 -7
- package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/ctype.h +17 -0
- package/lib/clang/18/include/llvm_libc_wrappers/stdio.h +80 -0
- package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/stdlib.h +4 -1
- package/lib/clang/18/include/llvm_libc_wrappers/string.h +96 -0
- package/lib/clang/{17/include/llvm_libc_wrappers/string.h → 18/include/llvm_libc_wrappers/time.h} +9 -12
- package/lib/clang/18/include/lsxintrin.h +3750 -0
- package/lib/clang/{17 → 18}/include/mmintrin.h +7 -5
- package/lib/clang/{17 → 18}/include/module.modulemap +155 -2
- package/lib/clang/{17 → 18}/include/opencl-c-base.h +5 -0
- package/lib/clang/{17 → 18}/include/openmp_wrappers/cmath +1 -1
- package/lib/clang/{17 → 18}/include/pmmintrin.h +3 -2
- package/lib/clang/18/include/ppc_wrappers/nmmintrin.h +26 -0
- package/lib/clang/{17 → 18}/include/ppc_wrappers/smmintrin.h +35 -15
- package/lib/clang/18/include/riscv_bitmanip.h +195 -0
- package/lib/clang/18/include/riscv_crypto.h +170 -0
- package/lib/clang/{17 → 18}/include/riscv_ntlh.h +3 -5
- package/lib/clang/{17 → 18}/include/riscv_vector.h +31 -0
- package/lib/clang/{17 → 18}/include/smmintrin.h +3 -3
- package/lib/clang/{17 → 18}/include/stdalign.h +1 -3
- package/lib/clang/18/include/stdarg.h +79 -0
- package/lib/clang/{17 → 18}/include/stdatomic.h +3 -5
- package/lib/clang/18/include/stdckdint.h +42 -0
- package/lib/clang/18/include/stddef.h +123 -0
- package/lib/clang/{17 → 18}/include/stdint.h +19 -48
- package/lib/clang/{17 → 18}/include/stdnoreturn.h +2 -2
- package/lib/clang/{17 → 18}/include/tmmintrin.h +7 -2
- package/lib/clang/18/include/usermsrintrin.h +51 -0
- package/lib/clang/{17 → 18}/include/vaesintrin.h +4 -2
- package/lib/clang/{17 → 18}/include/vecintrin.h +217 -199
- package/lib/clang/{17 → 18}/include/x86gprintrin.h +5 -0
- package/lib/clang/{17 → 18}/include/xmmintrin.h +9 -5
- package/package.json +6 -6
- package/lib/clang/17/include/arm_sme_draft_spec_subject_to_change.h +0 -642
- package/lib/clang/17/include/hlsl/hlsl_intrinsics.h +0 -480
- package/lib/clang/17/include/ia32intrin.h +0 -441
- package/lib/clang/17/include/stdarg.h +0 -51
- package/lib/clang/17/include/stddef.h +0 -133
- /package/lib/clang/{17 → 18}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_cuda_intrinsics.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_hip_cmath.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_hip_libdevice_declares.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{17 → 18}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{17 → 18}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{17 → 18}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/amxfp16intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/amxintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm64intr.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_bf16.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_cde.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_cmse.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_fp16.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_mve.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{17 → 18}/include/armintr.h +0 -0
- /package/lib/clang/{17 → 18}/include/avx512erintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/avxvnniint16intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/avxvnniint8intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/builtins.h +0 -0
- /package/lib/clang/{17 → 18}/include/cet.h +0 -0
- /package/lib/clang/{17 → 18}/include/cetintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/clwbintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/clzerointrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/cmpccxaddintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/cpuid.h +0 -0
- /package/lib/clang/{17 → 18}/include/crc32intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/cmath +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{17 → 18}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/f16cintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/float.h +0 -0
- /package/lib/clang/{17 → 18}/include/fma4intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/fmaintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{17 → 18}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{17 → 18}/include/hexagon_types.h +0 -0
- /package/lib/clang/{17 → 18}/include/hlsl/hlsl_basic_types.h +0 -0
- /package/lib/clang/{17 → 18}/include/hlsl.h +0 -0
- /package/lib/clang/{17 → 18}/include/hresetintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/htmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{17 → 18}/include/inttypes.h +0 -0
- /package/lib/clang/{17 → 18}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/iso646.h +0 -0
- /package/lib/clang/{17 → 18}/include/keylockerintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/inttypes.h +0 -0
- /package/lib/clang/{17 → 18}/include/lwpintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/mm3dnow.h +0 -0
- /package/lib/clang/{17 → 18}/include/mm_malloc.h +0 -0
- /package/lib/clang/{17 → 18}/include/movdirintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/msa.h +0 -0
- /package/lib/clang/{17 → 18}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/nmmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/opencl-c.h +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{17 → 18}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/pkuintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/popcntintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/raointintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/rtmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/s390intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/serializeintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/sgxintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/sha512intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/shaintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/sifive_vector.h +0 -0
- /package/lib/clang/{17 → 18}/include/sm3intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/sm4intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/stdbool.h +0 -0
- /package/lib/clang/{17 → 18}/include/tbmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/tgmath.h +0 -0
- /package/lib/clang/{17 → 18}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/uintrintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/unwind.h +0 -0
- /package/lib/clang/{17 → 18}/include/vadefs.h +0 -0
- /package/lib/clang/{17 → 18}/include/varargs.h +0 -0
- /package/lib/clang/{17 → 18}/include/velintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{17 → 18}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{17 → 18}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/wasm_simd128.h +0 -0
- /package/lib/clang/{17 → 18}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/wmmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/x86intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xopintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xtestintrin.h +0 -0
|
@@ -19,18 +19,17 @@
|
|
|
19
19
|
to use it as a potentially faster version of BSF. */
|
|
20
20
|
#define __RELAXED_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
|
|
21
21
|
|
|
22
|
-
#define _tzcnt_u16(a) (__tzcnt_u16((a)))
|
|
23
|
-
|
|
24
22
|
/// Counts the number of trailing zero bits in the operand.
|
|
25
23
|
///
|
|
26
24
|
/// \headerfile <x86intrin.h>
|
|
27
25
|
///
|
|
28
|
-
/// This intrinsic corresponds to the
|
|
26
|
+
/// This intrinsic corresponds to the \c TZCNT instruction.
|
|
29
27
|
///
|
|
30
28
|
/// \param __X
|
|
31
29
|
/// An unsigned 16-bit integer whose trailing zeros are to be counted.
|
|
32
30
|
/// \returns An unsigned 16-bit integer containing the number of trailing zero
|
|
33
31
|
/// bits in the operand.
|
|
32
|
+
/// \see _tzcnt_u16
|
|
34
33
|
static __inline__ unsigned short __RELAXED_FN_ATTRS
|
|
35
34
|
__tzcnt_u16(unsigned short __X)
|
|
36
35
|
{
|
|
@@ -41,13 +40,30 @@ __tzcnt_u16(unsigned short __X)
|
|
|
41
40
|
///
|
|
42
41
|
/// \headerfile <x86intrin.h>
|
|
43
42
|
///
|
|
44
|
-
///
|
|
43
|
+
/// \code
|
|
44
|
+
/// unsigned short _tzcnt_u16(unsigned short __X);
|
|
45
|
+
/// \endcode
|
|
46
|
+
///
|
|
47
|
+
/// This intrinsic corresponds to the \c TZCNT instruction.
|
|
48
|
+
///
|
|
49
|
+
/// \param __X
|
|
50
|
+
/// An unsigned 16-bit integer whose trailing zeros are to be counted.
|
|
51
|
+
/// \returns An unsigned 16-bit integer containing the number of trailing zero
|
|
52
|
+
/// bits in the operand.
|
|
53
|
+
/// \see __tzcnt_u16
|
|
54
|
+
#define _tzcnt_u16 __tzcnt_u16
|
|
55
|
+
|
|
56
|
+
/// Counts the number of trailing zero bits in the operand.
|
|
57
|
+
///
|
|
58
|
+
/// \headerfile <x86intrin.h>
|
|
59
|
+
///
|
|
60
|
+
/// This intrinsic corresponds to the \c TZCNT instruction.
|
|
45
61
|
///
|
|
46
62
|
/// \param __X
|
|
47
63
|
/// An unsigned 32-bit integer whose trailing zeros are to be counted.
|
|
48
64
|
/// \returns An unsigned 32-bit integer containing the number of trailing zero
|
|
49
65
|
/// bits in the operand.
|
|
50
|
-
/// \see _mm_tzcnt_32
|
|
66
|
+
/// \see { _mm_tzcnt_32 _tzcnt_u32 }
|
|
51
67
|
static __inline__ unsigned int __RELAXED_FN_ATTRS
|
|
52
68
|
__tzcnt_u32(unsigned int __X)
|
|
53
69
|
{
|
|
@@ -58,20 +74,35 @@ __tzcnt_u32(unsigned int __X)
|
|
|
58
74
|
///
|
|
59
75
|
/// \headerfile <x86intrin.h>
|
|
60
76
|
///
|
|
61
|
-
/// This intrinsic corresponds to the
|
|
77
|
+
/// This intrinsic corresponds to the \c TZCNT instruction.
|
|
62
78
|
///
|
|
63
79
|
/// \param __X
|
|
64
80
|
/// An unsigned 32-bit integer whose trailing zeros are to be counted.
|
|
65
|
-
/// \returns
|
|
81
|
+
/// \returns A 32-bit integer containing the number of trailing zero bits in
|
|
66
82
|
/// the operand.
|
|
67
|
-
/// \see __tzcnt_u32
|
|
83
|
+
/// \see { __tzcnt_u32 _tzcnt_u32 }
|
|
68
84
|
static __inline__ int __RELAXED_FN_ATTRS
|
|
69
85
|
_mm_tzcnt_32(unsigned int __X)
|
|
70
86
|
{
|
|
71
87
|
return (int)__builtin_ia32_tzcnt_u32(__X);
|
|
72
88
|
}
|
|
73
89
|
|
|
74
|
-
|
|
90
|
+
/// Counts the number of trailing zero bits in the operand.
|
|
91
|
+
///
|
|
92
|
+
/// \headerfile <x86intrin.h>
|
|
93
|
+
///
|
|
94
|
+
/// \code
|
|
95
|
+
/// unsigned int _tzcnt_u32(unsigned int __X);
|
|
96
|
+
/// \endcode
|
|
97
|
+
///
|
|
98
|
+
/// This intrinsic corresponds to the \c TZCNT instruction.
|
|
99
|
+
///
|
|
100
|
+
/// \param __X
|
|
101
|
+
/// An unsigned 32-bit integer whose trailing zeros are to be counted.
|
|
102
|
+
/// \returns An unsigned 32-bit integer containing the number of trailing zero
|
|
103
|
+
/// bits in the operand.
|
|
104
|
+
/// \see { _mm_tzcnt_32 __tzcnt_u32 }
|
|
105
|
+
#define _tzcnt_u32 __tzcnt_u32
|
|
75
106
|
|
|
76
107
|
#ifdef __x86_64__
|
|
77
108
|
|
|
@@ -79,13 +110,13 @@ _mm_tzcnt_32(unsigned int __X)
|
|
|
79
110
|
///
|
|
80
111
|
/// \headerfile <x86intrin.h>
|
|
81
112
|
///
|
|
82
|
-
/// This intrinsic corresponds to the
|
|
113
|
+
/// This intrinsic corresponds to the \c TZCNT instruction.
|
|
83
114
|
///
|
|
84
115
|
/// \param __X
|
|
85
116
|
/// An unsigned 64-bit integer whose trailing zeros are to be counted.
|
|
86
117
|
/// \returns An unsigned 64-bit integer containing the number of trailing zero
|
|
87
118
|
/// bits in the operand.
|
|
88
|
-
/// \see _mm_tzcnt_64
|
|
119
|
+
/// \see { _mm_tzcnt_64 _tzcnt_u64 }
|
|
89
120
|
static __inline__ unsigned long long __RELAXED_FN_ATTRS
|
|
90
121
|
__tzcnt_u64(unsigned long long __X)
|
|
91
122
|
{
|
|
@@ -96,20 +127,35 @@ __tzcnt_u64(unsigned long long __X)
|
|
|
96
127
|
///
|
|
97
128
|
/// \headerfile <x86intrin.h>
|
|
98
129
|
///
|
|
99
|
-
/// This intrinsic corresponds to the
|
|
130
|
+
/// This intrinsic corresponds to the \c TZCNT instruction.
|
|
100
131
|
///
|
|
101
132
|
/// \param __X
|
|
102
133
|
/// An unsigned 64-bit integer whose trailing zeros are to be counted.
|
|
103
134
|
/// \returns An 64-bit integer containing the number of trailing zero bits in
|
|
104
135
|
/// the operand.
|
|
105
|
-
/// \see __tzcnt_u64
|
|
136
|
+
/// \see { __tzcnt_u64 _tzcnt_u64 }
|
|
106
137
|
static __inline__ long long __RELAXED_FN_ATTRS
|
|
107
138
|
_mm_tzcnt_64(unsigned long long __X)
|
|
108
139
|
{
|
|
109
140
|
return (long long)__builtin_ia32_tzcnt_u64(__X);
|
|
110
141
|
}
|
|
111
142
|
|
|
112
|
-
|
|
143
|
+
/// Counts the number of trailing zero bits in the operand.
|
|
144
|
+
///
|
|
145
|
+
/// \headerfile <x86intrin.h>
|
|
146
|
+
///
|
|
147
|
+
/// \code
|
|
148
|
+
/// unsigned long long _tzcnt_u64(unsigned long long __X);
|
|
149
|
+
/// \endcode
|
|
150
|
+
///
|
|
151
|
+
/// This intrinsic corresponds to the \c TZCNT instruction.
|
|
152
|
+
///
|
|
153
|
+
/// \param __X
|
|
154
|
+
/// An unsigned 64-bit integer whose trailing zeros are to be counted.
|
|
155
|
+
/// \returns An unsigned 64-bit integer containing the number of trailing zero
|
|
156
|
+
/// bits in the operand.
|
|
157
|
+
/// \see { _mm_tzcnt_64 __tzcnt_u64
|
|
158
|
+
#define _tzcnt_u64 __tzcnt_u64
|
|
113
159
|
|
|
114
160
|
#endif /* __x86_64__ */
|
|
115
161
|
|
|
@@ -121,21 +167,12 @@ _mm_tzcnt_64(unsigned long long __X)
|
|
|
121
167
|
/* Define the default attributes for the functions in this file. */
|
|
122
168
|
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("bmi")))
|
|
123
169
|
|
|
124
|
-
#define _andn_u32(a, b) (__andn_u32((a), (b)))
|
|
125
|
-
|
|
126
|
-
/* _bextr_u32 != __bextr_u32 */
|
|
127
|
-
#define _blsi_u32(a) (__blsi_u32((a)))
|
|
128
|
-
|
|
129
|
-
#define _blsmsk_u32(a) (__blsmsk_u32((a)))
|
|
130
|
-
|
|
131
|
-
#define _blsr_u32(a) (__blsr_u32((a)))
|
|
132
|
-
|
|
133
170
|
/// Performs a bitwise AND of the second operand with the one's
|
|
134
171
|
/// complement of the first operand.
|
|
135
172
|
///
|
|
136
173
|
/// \headerfile <x86intrin.h>
|
|
137
174
|
///
|
|
138
|
-
/// This intrinsic corresponds to the
|
|
175
|
+
/// This intrinsic corresponds to the \c ANDN instruction.
|
|
139
176
|
///
|
|
140
177
|
/// \param __X
|
|
141
178
|
/// An unsigned integer containing one of the operands.
|
|
@@ -143,19 +180,40 @@ _mm_tzcnt_64(unsigned long long __X)
|
|
|
143
180
|
/// An unsigned integer containing one of the operands.
|
|
144
181
|
/// \returns An unsigned integer containing the bitwise AND of the second
|
|
145
182
|
/// operand with the one's complement of the first operand.
|
|
183
|
+
/// \see _andn_u32
|
|
146
184
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
147
185
|
__andn_u32(unsigned int __X, unsigned int __Y)
|
|
148
186
|
{
|
|
149
187
|
return ~__X & __Y;
|
|
150
188
|
}
|
|
151
189
|
|
|
190
|
+
/// Performs a bitwise AND of the second operand with the one's
|
|
191
|
+
/// complement of the first operand.
|
|
192
|
+
///
|
|
193
|
+
/// \headerfile <x86intrin.h>
|
|
194
|
+
///
|
|
195
|
+
/// \code
|
|
196
|
+
/// unsigned int _andn_u32(unsigned int __X, unsigned int __Y);
|
|
197
|
+
/// \endcode
|
|
198
|
+
///
|
|
199
|
+
/// This intrinsic corresponds to the \c ANDN instruction.
|
|
200
|
+
///
|
|
201
|
+
/// \param __X
|
|
202
|
+
/// An unsigned integer containing one of the operands.
|
|
203
|
+
/// \param __Y
|
|
204
|
+
/// An unsigned integer containing one of the operands.
|
|
205
|
+
/// \returns An unsigned integer containing the bitwise AND of the second
|
|
206
|
+
/// operand with the one's complement of the first operand.
|
|
207
|
+
/// \see __andn_u32
|
|
208
|
+
#define _andn_u32 __andn_u32
|
|
209
|
+
|
|
152
210
|
/* AMD-specified, double-leading-underscore version of BEXTR */
|
|
153
211
|
/// Extracts the specified bits from the first operand and returns them
|
|
154
212
|
/// in the least significant bits of the result.
|
|
155
213
|
///
|
|
156
214
|
/// \headerfile <x86intrin.h>
|
|
157
215
|
///
|
|
158
|
-
/// This intrinsic corresponds to the
|
|
216
|
+
/// This intrinsic corresponds to the \c BEXTR instruction.
|
|
159
217
|
///
|
|
160
218
|
/// \param __X
|
|
161
219
|
/// An unsigned integer whose bits are to be extracted.
|
|
@@ -178,7 +236,7 @@ __bextr_u32(unsigned int __X, unsigned int __Y)
|
|
|
178
236
|
///
|
|
179
237
|
/// \headerfile <x86intrin.h>
|
|
180
238
|
///
|
|
181
|
-
/// This intrinsic corresponds to the
|
|
239
|
+
/// This intrinsic corresponds to the \c BEXTR instruction.
|
|
182
240
|
///
|
|
183
241
|
/// \param __X
|
|
184
242
|
/// An unsigned integer whose bits are to be extracted.
|
|
@@ -203,7 +261,7 @@ _bextr_u32(unsigned int __X, unsigned int __Y, unsigned int __Z)
|
|
|
203
261
|
///
|
|
204
262
|
/// \headerfile <x86intrin.h>
|
|
205
263
|
///
|
|
206
|
-
/// This intrinsic corresponds to the
|
|
264
|
+
/// This intrinsic corresponds to the \c BEXTR instruction.
|
|
207
265
|
///
|
|
208
266
|
/// \param __X
|
|
209
267
|
/// An unsigned integer whose bits are to be extracted.
|
|
@@ -224,69 +282,117 @@ _bextr2_u32(unsigned int __X, unsigned int __Y) {
|
|
|
224
282
|
///
|
|
225
283
|
/// \headerfile <x86intrin.h>
|
|
226
284
|
///
|
|
227
|
-
/// This intrinsic corresponds to the
|
|
285
|
+
/// This intrinsic corresponds to the \c BLSI instruction.
|
|
228
286
|
///
|
|
229
287
|
/// \param __X
|
|
230
288
|
/// An unsigned integer whose bits are to be cleared.
|
|
231
289
|
/// \returns An unsigned integer containing the result of clearing the bits from
|
|
232
290
|
/// the source operand.
|
|
291
|
+
/// \see _blsi_u32
|
|
233
292
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
234
293
|
__blsi_u32(unsigned int __X)
|
|
235
294
|
{
|
|
236
295
|
return __X & -__X;
|
|
237
296
|
}
|
|
238
297
|
|
|
298
|
+
/// Clears all bits in the source except for the least significant bit
|
|
299
|
+
/// containing a value of 1 and returns the result.
|
|
300
|
+
///
|
|
301
|
+
/// \headerfile <x86intrin.h>
|
|
302
|
+
///
|
|
303
|
+
/// \code
|
|
304
|
+
/// unsigned int _blsi_u32(unsigned int __X);
|
|
305
|
+
/// \endcode
|
|
306
|
+
///
|
|
307
|
+
/// This intrinsic corresponds to the \c BLSI instruction.
|
|
308
|
+
///
|
|
309
|
+
/// \param __X
|
|
310
|
+
/// An unsigned integer whose bits are to be cleared.
|
|
311
|
+
/// \returns An unsigned integer containing the result of clearing the bits from
|
|
312
|
+
/// the source operand.
|
|
313
|
+
/// \see __blsi_u32
|
|
314
|
+
#define _blsi_u32 __blsi_u32
|
|
315
|
+
|
|
239
316
|
/// Creates a mask whose bits are set to 1, using bit 0 up to and
|
|
240
317
|
/// including the least significant bit that is set to 1 in the source
|
|
241
318
|
/// operand and returns the result.
|
|
242
319
|
///
|
|
243
320
|
/// \headerfile <x86intrin.h>
|
|
244
321
|
///
|
|
245
|
-
/// This intrinsic corresponds to the
|
|
322
|
+
/// This intrinsic corresponds to the \c BLSMSK instruction.
|
|
246
323
|
///
|
|
247
324
|
/// \param __X
|
|
248
325
|
/// An unsigned integer used to create the mask.
|
|
249
326
|
/// \returns An unsigned integer containing the newly created mask.
|
|
327
|
+
/// \see _blsmsk_u32
|
|
250
328
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
251
329
|
__blsmsk_u32(unsigned int __X)
|
|
252
330
|
{
|
|
253
331
|
return __X ^ (__X - 1);
|
|
254
332
|
}
|
|
255
333
|
|
|
334
|
+
/// Creates a mask whose bits are set to 1, using bit 0 up to and
|
|
335
|
+
/// including the least significant bit that is set to 1 in the source
|
|
336
|
+
/// operand and returns the result.
|
|
337
|
+
///
|
|
338
|
+
/// \headerfile <x86intrin.h>
|
|
339
|
+
///
|
|
340
|
+
/// \code
|
|
341
|
+
/// unsigned int _blsmsk_u32(unsigned int __X);
|
|
342
|
+
/// \endcode
|
|
343
|
+
///
|
|
344
|
+
/// This intrinsic corresponds to the \c BLSMSK instruction.
|
|
345
|
+
///
|
|
346
|
+
/// \param __X
|
|
347
|
+
/// An unsigned integer used to create the mask.
|
|
348
|
+
/// \returns An unsigned integer containing the newly created mask.
|
|
349
|
+
/// \see __blsmsk_u32
|
|
350
|
+
#define _blsmsk_u32 __blsmsk_u32
|
|
351
|
+
|
|
256
352
|
/// Clears the least significant bit that is set to 1 in the source
|
|
257
353
|
/// operand and returns the result.
|
|
258
354
|
///
|
|
259
355
|
/// \headerfile <x86intrin.h>
|
|
260
356
|
///
|
|
261
|
-
/// This intrinsic corresponds to the
|
|
357
|
+
/// This intrinsic corresponds to the \c BLSR instruction.
|
|
262
358
|
///
|
|
263
359
|
/// \param __X
|
|
264
360
|
/// An unsigned integer containing the operand to be cleared.
|
|
265
361
|
/// \returns An unsigned integer containing the result of clearing the source
|
|
266
362
|
/// operand.
|
|
363
|
+
/// \see _blsr_u32
|
|
267
364
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
268
365
|
__blsr_u32(unsigned int __X)
|
|
269
366
|
{
|
|
270
367
|
return __X & (__X - 1);
|
|
271
368
|
}
|
|
272
369
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
370
|
+
/// Clears the least significant bit that is set to 1 in the source
|
|
371
|
+
/// operand and returns the result.
|
|
372
|
+
///
|
|
373
|
+
/// \headerfile <x86intrin.h>
|
|
374
|
+
///
|
|
375
|
+
/// \code
|
|
376
|
+
/// unsigned int _bls4_u32(unsigned int __X);
|
|
377
|
+
/// \endcode
|
|
378
|
+
///
|
|
379
|
+
/// This intrinsic corresponds to the \c BLSR instruction.
|
|
380
|
+
///
|
|
381
|
+
/// \param __X
|
|
382
|
+
/// An unsigned integer containing the operand to be cleared.
|
|
383
|
+
/// \returns An unsigned integer containing the result of clearing the source
|
|
384
|
+
/// operand.
|
|
385
|
+
/// \see __blsr_u32
|
|
386
|
+
#define _blsr_u32 __blsr_u32
|
|
281
387
|
|
|
282
|
-
#
|
|
388
|
+
#ifdef __x86_64__
|
|
283
389
|
|
|
284
390
|
/// Performs a bitwise AND of the second operand with the one's
|
|
285
391
|
/// complement of the first operand.
|
|
286
392
|
///
|
|
287
393
|
/// \headerfile <x86intrin.h>
|
|
288
394
|
///
|
|
289
|
-
/// This intrinsic corresponds to the
|
|
395
|
+
/// This intrinsic corresponds to the \c ANDN instruction.
|
|
290
396
|
///
|
|
291
397
|
/// \param __X
|
|
292
398
|
/// An unsigned 64-bit integer containing one of the operands.
|
|
@@ -294,19 +400,41 @@ __blsr_u32(unsigned int __X)
|
|
|
294
400
|
/// An unsigned 64-bit integer containing one of the operands.
|
|
295
401
|
/// \returns An unsigned 64-bit integer containing the bitwise AND of the second
|
|
296
402
|
/// operand with the one's complement of the first operand.
|
|
403
|
+
/// \see _andn_u64
|
|
297
404
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
298
405
|
__andn_u64 (unsigned long long __X, unsigned long long __Y)
|
|
299
406
|
{
|
|
300
407
|
return ~__X & __Y;
|
|
301
408
|
}
|
|
302
409
|
|
|
410
|
+
/// Performs a bitwise AND of the second operand with the one's
|
|
411
|
+
/// complement of the first operand.
|
|
412
|
+
///
|
|
413
|
+
/// \headerfile <x86intrin.h>
|
|
414
|
+
///
|
|
415
|
+
/// \code
|
|
416
|
+
/// unsigned long long _andn_u64(unsigned long long __X,
|
|
417
|
+
/// unsigned long long __Y);
|
|
418
|
+
/// \endcode
|
|
419
|
+
///
|
|
420
|
+
/// This intrinsic corresponds to the \c ANDN instruction.
|
|
421
|
+
///
|
|
422
|
+
/// \param __X
|
|
423
|
+
/// An unsigned 64-bit integer containing one of the operands.
|
|
424
|
+
/// \param __Y
|
|
425
|
+
/// An unsigned 64-bit integer containing one of the operands.
|
|
426
|
+
/// \returns An unsigned 64-bit integer containing the bitwise AND of the second
|
|
427
|
+
/// operand with the one's complement of the first operand.
|
|
428
|
+
/// \see __andn_u64
|
|
429
|
+
#define _andn_u64 __andn_u64
|
|
430
|
+
|
|
303
431
|
/* AMD-specified, double-leading-underscore version of BEXTR */
|
|
304
432
|
/// Extracts the specified bits from the first operand and returns them
|
|
305
433
|
/// in the least significant bits of the result.
|
|
306
434
|
///
|
|
307
435
|
/// \headerfile <x86intrin.h>
|
|
308
436
|
///
|
|
309
|
-
/// This intrinsic corresponds to the
|
|
437
|
+
/// This intrinsic corresponds to the \c BEXTR instruction.
|
|
310
438
|
///
|
|
311
439
|
/// \param __X
|
|
312
440
|
/// An unsigned 64-bit integer whose bits are to be extracted.
|
|
@@ -329,7 +457,7 @@ __bextr_u64(unsigned long long __X, unsigned long long __Y)
|
|
|
329
457
|
///
|
|
330
458
|
/// \headerfile <x86intrin.h>
|
|
331
459
|
///
|
|
332
|
-
/// This intrinsic corresponds to the
|
|
460
|
+
/// This intrinsic corresponds to the \c BEXTR instruction.
|
|
333
461
|
///
|
|
334
462
|
/// \param __X
|
|
335
463
|
/// An unsigned 64-bit integer whose bits are to be extracted.
|
|
@@ -354,7 +482,7 @@ _bextr_u64(unsigned long long __X, unsigned int __Y, unsigned int __Z)
|
|
|
354
482
|
///
|
|
355
483
|
/// \headerfile <x86intrin.h>
|
|
356
484
|
///
|
|
357
|
-
/// This intrinsic corresponds to the
|
|
485
|
+
/// This intrinsic corresponds to the \c BEXTR instruction.
|
|
358
486
|
///
|
|
359
487
|
/// \param __X
|
|
360
488
|
/// An unsigned 64-bit integer whose bits are to be extracted.
|
|
@@ -375,52 +503,109 @@ _bextr2_u64(unsigned long long __X, unsigned long long __Y) {
|
|
|
375
503
|
///
|
|
376
504
|
/// \headerfile <x86intrin.h>
|
|
377
505
|
///
|
|
378
|
-
/// This intrinsic corresponds to the
|
|
506
|
+
/// This intrinsic corresponds to the \c BLSI instruction.
|
|
379
507
|
///
|
|
380
508
|
/// \param __X
|
|
381
509
|
/// An unsigned 64-bit integer whose bits are to be cleared.
|
|
382
510
|
/// \returns An unsigned 64-bit integer containing the result of clearing the
|
|
383
511
|
/// bits from the source operand.
|
|
512
|
+
/// \see _blsi_u64
|
|
384
513
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
385
514
|
__blsi_u64(unsigned long long __X)
|
|
386
515
|
{
|
|
387
516
|
return __X & -__X;
|
|
388
517
|
}
|
|
389
518
|
|
|
519
|
+
/// Clears all bits in the source except for the least significant bit
|
|
520
|
+
/// containing a value of 1 and returns the result.
|
|
521
|
+
///
|
|
522
|
+
/// \headerfile <x86intrin.h>
|
|
523
|
+
///
|
|
524
|
+
/// \code
|
|
525
|
+
/// unsigned long long _blsi_u64(unsigned long long __X);
|
|
526
|
+
/// \endcode
|
|
527
|
+
///
|
|
528
|
+
/// This intrinsic corresponds to the \c BLSI instruction.
|
|
529
|
+
///
|
|
530
|
+
/// \param __X
|
|
531
|
+
/// An unsigned 64-bit integer whose bits are to be cleared.
|
|
532
|
+
/// \returns An unsigned 64-bit integer containing the result of clearing the
|
|
533
|
+
/// bits from the source operand.
|
|
534
|
+
/// \see __blsi_u64
|
|
535
|
+
#define _blsi_u64 __blsi_u64
|
|
536
|
+
|
|
390
537
|
/// Creates a mask whose bits are set to 1, using bit 0 up to and
|
|
391
538
|
/// including the least significant bit that is set to 1 in the source
|
|
392
539
|
/// operand and returns the result.
|
|
393
540
|
///
|
|
394
541
|
/// \headerfile <x86intrin.h>
|
|
395
542
|
///
|
|
396
|
-
/// This intrinsic corresponds to the
|
|
543
|
+
/// This intrinsic corresponds to the \c BLSMSK instruction.
|
|
397
544
|
///
|
|
398
545
|
/// \param __X
|
|
399
546
|
/// An unsigned 64-bit integer used to create the mask.
|
|
400
547
|
/// \returns An unsigned 64-bit integer containing the newly created mask.
|
|
548
|
+
/// \see _blsmsk_u64
|
|
401
549
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
402
550
|
__blsmsk_u64(unsigned long long __X)
|
|
403
551
|
{
|
|
404
552
|
return __X ^ (__X - 1);
|
|
405
553
|
}
|
|
406
554
|
|
|
555
|
+
/// Creates a mask whose bits are set to 1, using bit 0 up to and
|
|
556
|
+
/// including the least significant bit that is set to 1 in the source
|
|
557
|
+
/// operand and returns the result.
|
|
558
|
+
///
|
|
559
|
+
/// \headerfile <x86intrin.h>
|
|
560
|
+
///
|
|
561
|
+
/// \code
|
|
562
|
+
/// unsigned long long _blsmsk_u64(unsigned long long __X);
|
|
563
|
+
/// \endcode
|
|
564
|
+
///
|
|
565
|
+
/// This intrinsic corresponds to the \c BLSMSK instruction.
|
|
566
|
+
///
|
|
567
|
+
/// \param __X
|
|
568
|
+
/// An unsigned 64-bit integer used to create the mask.
|
|
569
|
+
/// \returns An unsigned 64-bit integer containing the newly created mask.
|
|
570
|
+
/// \see __blsmsk_u64
|
|
571
|
+
#define _blsmsk_u64 __blsmsk_u64
|
|
572
|
+
|
|
407
573
|
/// Clears the least significant bit that is set to 1 in the source
|
|
408
574
|
/// operand and returns the result.
|
|
409
575
|
///
|
|
410
576
|
/// \headerfile <x86intrin.h>
|
|
411
577
|
///
|
|
412
|
-
/// This intrinsic corresponds to the
|
|
578
|
+
/// This intrinsic corresponds to the \c BLSR instruction.
|
|
413
579
|
///
|
|
414
580
|
/// \param __X
|
|
415
581
|
/// An unsigned 64-bit integer containing the operand to be cleared.
|
|
416
582
|
/// \returns An unsigned 64-bit integer containing the result of clearing the
|
|
417
583
|
/// source operand.
|
|
584
|
+
/// \see _blsr_u64
|
|
418
585
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
419
586
|
__blsr_u64(unsigned long long __X)
|
|
420
587
|
{
|
|
421
588
|
return __X & (__X - 1);
|
|
422
589
|
}
|
|
423
590
|
|
|
591
|
+
/// Clears the least significant bit that is set to 1 in the source
|
|
592
|
+
/// operand and returns the result.
|
|
593
|
+
///
|
|
594
|
+
/// \headerfile <x86intrin.h>
|
|
595
|
+
///
|
|
596
|
+
/// \code
|
|
597
|
+
/// unsigned long long _blsr_u64(unsigned long long __X);
|
|
598
|
+
/// \endcode
|
|
599
|
+
///
|
|
600
|
+
/// This intrinsic corresponds to the \c BLSR instruction.
|
|
601
|
+
///
|
|
602
|
+
/// \param __X
|
|
603
|
+
/// An unsigned 64-bit integer containing the operand to be cleared.
|
|
604
|
+
/// \returns An unsigned 64-bit integer containing the result of clearing the
|
|
605
|
+
/// source operand.
|
|
606
|
+
/// \see __blsr_u64
|
|
607
|
+
#define _blsr_u64 __blsr_u64
|
|
608
|
+
|
|
424
609
|
#endif /* __x86_64__ */
|
|
425
610
|
|
|
426
611
|
#undef __DEFAULT_FN_ATTRS
|
|
@@ -50,11 +50,11 @@ typedef __bf16 __m128bh __attribute__((__vector_size__(16), __aligned__(16)));
|
|
|
50
50
|
|
|
51
51
|
/* Define the default attributes for the functions in this file. */
|
|
52
52
|
#define __DEFAULT_FN_ATTRS \
|
|
53
|
-
__attribute__((__always_inline__, __nodebug__,
|
|
54
|
-
__min_vector_width__(128)))
|
|
53
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
54
|
+
__target__("sse2,no-evex512"), __min_vector_width__(128)))
|
|
55
55
|
#define __DEFAULT_FN_ATTRS_MMX \
|
|
56
|
-
__attribute__((__always_inline__, __nodebug__,
|
|
57
|
-
__min_vector_width__(64)))
|
|
56
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
57
|
+
__target__("mmx,sse2,no-evex512"), __min_vector_width__(64)))
|
|
58
58
|
|
|
59
59
|
/// Adds lower double-precision values in both operands and returns the
|
|
60
60
|
/// sum in the lower 64 bits of the result. The upper 64 bits of the result
|
|
@@ -3945,7 +3945,7 @@ static __inline__ void __DEFAULT_FN_ATTRS _mm_storel_epi64(__m128i_u *__p,
|
|
|
3945
3945
|
/// A pointer to the 128-bit aligned memory location used to store the value.
|
|
3946
3946
|
/// \param __a
|
|
3947
3947
|
/// A vector of [2 x double] containing the 64-bit values to be stored.
|
|
3948
|
-
static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pd(
|
|
3948
|
+
static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pd(void *__p,
|
|
3949
3949
|
__m128d __a) {
|
|
3950
3950
|
__builtin_nontemporal_store((__v2df)__a, (__v2df *)__p);
|
|
3951
3951
|
}
|
|
@@ -3963,7 +3963,7 @@ static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pd(double *__p,
|
|
|
3963
3963
|
/// A pointer to the 128-bit aligned memory location used to store the value.
|
|
3964
3964
|
/// \param __a
|
|
3965
3965
|
/// A 128-bit integer vector containing the values to be stored.
|
|
3966
|
-
static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_si128(
|
|
3966
|
+
static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_si128(void *__p,
|
|
3967
3967
|
__m128i __a) {
|
|
3968
3968
|
__builtin_nontemporal_store((__v2di)__a, (__v2di *)__p);
|
|
3969
3969
|
}
|
|
@@ -3983,8 +3983,8 @@ static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_si128(__m128i *__p,
|
|
|
3983
3983
|
/// A 32-bit integer containing the value to be stored.
|
|
3984
3984
|
static __inline__ void
|
|
3985
3985
|
__attribute__((__always_inline__, __nodebug__, __target__("sse2")))
|
|
3986
|
-
_mm_stream_si32(
|
|
3987
|
-
__builtin_ia32_movnti(__p, __a);
|
|
3986
|
+
_mm_stream_si32(void *__p, int __a) {
|
|
3987
|
+
__builtin_ia32_movnti((int *)__p, __a);
|
|
3988
3988
|
}
|
|
3989
3989
|
|
|
3990
3990
|
#ifdef __x86_64__
|
|
@@ -4003,8 +4003,8 @@ static __inline__ void
|
|
|
4003
4003
|
/// A 64-bit integer containing the value to be stored.
|
|
4004
4004
|
static __inline__ void
|
|
4005
4005
|
__attribute__((__always_inline__, __nodebug__, __target__("sse2")))
|
|
4006
|
-
_mm_stream_si64(
|
|
4007
|
-
__builtin_ia32_movnti64(__p, __a);
|
|
4006
|
+
_mm_stream_si64(void *__p, long long __a) {
|
|
4007
|
+
__builtin_ia32_movnti64((long long *)__p, __a);
|
|
4008
4008
|
}
|
|
4009
4009
|
#endif
|
|
4010
4010
|
|
|
@@ -15,19 +15,36 @@
|
|
|
15
15
|
#define __GFNIINTRIN_H
|
|
16
16
|
|
|
17
17
|
/* Default attributes for simple form (no masking). */
|
|
18
|
-
#define __DEFAULT_FN_ATTRS
|
|
18
|
+
#define __DEFAULT_FN_ATTRS \
|
|
19
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
20
|
+
__target__("gfni,no-evex512"), __min_vector_width__(128)))
|
|
19
21
|
|
|
20
22
|
/* Default attributes for YMM unmasked form. */
|
|
21
|
-
#define __DEFAULT_FN_ATTRS_Y
|
|
23
|
+
#define __DEFAULT_FN_ATTRS_Y \
|
|
24
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
25
|
+
__target__("avx,gfni,no-evex512"), \
|
|
26
|
+
__min_vector_width__(256)))
|
|
22
27
|
|
|
23
28
|
/* Default attributes for ZMM unmasked forms. */
|
|
24
|
-
#define __DEFAULT_FN_ATTRS_Z
|
|
29
|
+
#define __DEFAULT_FN_ATTRS_Z \
|
|
30
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
31
|
+
__target__("avx512f,evex512,gfni"), \
|
|
32
|
+
__min_vector_width__(512)))
|
|
25
33
|
/* Default attributes for ZMM masked forms. */
|
|
26
|
-
#define __DEFAULT_FN_ATTRS_Z_MASK
|
|
34
|
+
#define __DEFAULT_FN_ATTRS_Z_MASK \
|
|
35
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
36
|
+
__target__("avx512bw,evex512,gfni"), \
|
|
37
|
+
__min_vector_width__(512)))
|
|
27
38
|
|
|
28
39
|
/* Default attributes for VLX masked forms. */
|
|
29
|
-
#define __DEFAULT_FN_ATTRS_VL128
|
|
30
|
-
|
|
40
|
+
#define __DEFAULT_FN_ATTRS_VL128 \
|
|
41
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
42
|
+
__target__("avx512bw,avx512vl,gfni,no-evex512"), \
|
|
43
|
+
__min_vector_width__(128)))
|
|
44
|
+
#define __DEFAULT_FN_ATTRS_VL256 \
|
|
45
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
46
|
+
__target__("avx512bw,avx512vl,gfni,no-evex512"), \
|
|
47
|
+
__min_vector_width__(256)))
|
|
31
48
|
|
|
32
49
|
#define _mm_gf2p8affineinv_epi64_epi8(A, B, I) \
|
|
33
50
|
((__m128i)__builtin_ia32_vgf2p8affineinvqb_v16qi((__v16qi)(__m128i)(A), \
|