Instruments for getting runtime information about the target system architecture. More...
Namespaces | |
Chusov | |
Basic chsvlib namespace. | |
Macros | |
#define | X86_MMX_ID 0x0000000000000001llu |
A bit mask used to request support of the Intel MMX instruction set. More... | |
#define | X86_SSE_ID 0x0000000000000002llu |
A bit mask used to request support of the Intel SSE instruction set. More... | |
#define | X86_SSE2_ID 0x0000000000000004llu |
A bit mask used to request support of the Intel SSE2 instruction set. More... | |
#define | X86_SSE3_ID 0x0000000000000008llu |
A bit mask used to request support of the Intel SSE3 instruction set. More... | |
#define | X86_SSSE3_ID 0x0000000000000010llu |
A bit mask used to request support of the Intel SSSE3 instruction set. More... | |
#define | X86_SSE4_1_ID 0x0000000000000038llu |
A bit mask used to request support of the Intel SSE4.1 instruction set. More... | |
#define | X86_SSE4_2_ID 0x0000000000000070llu |
A bit mask used to request support of the Intel SSE4.2 instruction set. More... | |
#define | X86_CRC32_ID 0x0000000000000040llu |
A bit mask used to request support of the Intel CRC32 instruction. More... | |
#define | X86_MOVBE_ID 0x0000000000000080llu |
A bit mask used to request support of the Intel MOVBE instruction. More... | |
#define | X86_POPCNT_ID 0x0000000000000140llu |
A bit mask used to request support of the Intel POPCNT instruction. More... | |
#define | X86_AESNI_ID 0x0000000000000206llu |
A bit mask used to request support of the Intel AESNI instructions. More... | |
#define | X86_CLMUL_ID 0x0000000000000406llu |
A bit mask used to request support of the Intel CLMUL instruction set. More... | |
#define | X86_OSXSAVE_ID 0x0000000000000800llu |
A bit mask used to request support of the Intel XSAVE instructions from the CPU and the OS. More... | |
#define | X86_AVX_ID 0x0000000000001000llu |
A bit mask used to request support of the Intel AVX instruction set. More... | |
#define | X86_FMA_ID 0x0000000000003000llu |
A bit mask used to request support of the Intel FMA instruction set. More... | |
#define | X86_VAES_ID 0x0000000000004000llu |
A bit mask used to request support of the Intel VAES instructions. More... | |
#define | X86_AVX2_ID 0x0000000000009000llu |
A bit mask used to request support of the Intel AVX2 instruction set. More... | |
#define | X86_AVX512F_ID 0x0000000000010000llu |
A bit mask used to request support of the Intel AVX512F instruction set. More... | |
#define | X86_AVX512DQ_ID 0x0000000000030000llu |
A bit mask used to request support of the Intel AVX512DQ instruction set. More... | |
#define | X86_AVX512_IFMA_ID 0x0000000000050000llu |
A bit mask used to request support of the Intel AVX512_IFMA instruction set. More... | |
#define | X86_AVX512PF_ID 0x0000000000090000llu |
A bit mask used to request support of the Intel AVX512PF instruction set. More... | |
#define | X86_AVX512ER_ID 0x0000000000110000llu |
A bit mask used to request support of the Intel AVX512ER instruction set. More... | |
#define | X86_AVX512CD_ID 0x0000000000210000llu |
A bit mask used to request support of the Intel AVX512CD instruction set. More... | |
#define | X86_AVX512BW_ID 0x0000000000410000llu |
A bit mask used to request support of the Intel AVX512BW instruction set. More... | |
#define | X86_AVX512VL_F_ID 0x0000000000810000llu |
A bit mask used to request support of the Intel AVX512VL+AVX512F instruction set. More... | |
#define | X86_AVX512VL_CD_ID 0x0000000000A10000llu |
A bit mask used to request support of the Intel AVX512VL+AVX512CD instruction set. More... | |
#define | X86_AVX512VL_DQ_ID 0x0000000000830000llu |
A bit mask used to request support of the Intel AVX512VL+AVX512DQ instruction set. More... | |
#define | X86_AVX512VL_BW_ID 0x0000000000C10000llu |
A bit mask used to request support of the Intel AVX512VL+AVX512BW instruction set. More... | |
#define | X86_AVX512_VBMI_ID 0x0000000001000000llu |
A bit mask used to request support of the Intel VBMI instruction set. More... | |
#define | X86_AVX512_VBMI2_ID 0x0000000002000000llu |
A bit mask used to request support of the Intel VBMI2 instruction set. More... | |
#define | X86_AVX512_VNNI_ID 0x0000000004000000llu |
A bit mask used to request support of the Intel AVX512_VNNI instruction set. More... | |
#define | X86_AVX_VNNI_ID X86_AVX512_VNNI_ID |
A bit mask used to request support of the Intel AVX_VNNI instruction set. More... | |
#define | X86_VPCLMULQDQ_ID 0x0000000008000000llu |
A bit mask used to request support of the Intel VPCLMULQDQ instruction. More... | |
#define | X86_AVX512_BITALG_ID 0x0000000010000000llu |
A bit mask used to request support of the Intel AVX512_BITALG instruction set. More... | |
#define | X86_AVX512_VPOPCNTDQ_ID 0x0000000020000000llu |
A bit mask used to request support of the Intel AVX512_VPOPCNTD instruction. More... | |
#define | X86_AVX512_VP2INTERSECT_ID 0x0000000040000000llu |
A bit mask used to request support of the Intel AVX512_VPOPCNTD instruction. More... | |
#define | X86_SHA_ID 0x0000000080000000llu |
A bit mask used to request support of the Intel SHA instruction set. More... | |
#define | X86_BMI1_ID 0x0000000100000000llu |
A bit mask used to request support of the Intel BMI1 instruction set. More... | |
#define | X86_BMI2_ID 0x0000000200000000llu |
A bit mask used to request support of the Intel BMI2 instruction set. More... | |
#define | X86_LZCNT_ID 0x0000000400000000llu |
A bit mask used to request support of the Intel LZCNT instruction. To check availability of TZCNT, use the ... mask. More... | |
#define | X86_RDTSCP_ID 0x0000000800000000llu |
A bit mask used to request support of the Intel RDTSCP instruction. More... | |
#define | x86_cpuid_test_feature(feature_id) implementation |
DOXYGEN. More... | |
#define | x86_cpuid_max_basic_level() implementation |
Returns a maximum input value for basic CPUID information about the active x86 or x86-64 CPU, or a compile-time zero if the target architecture is neither of those two. | |
#define | x86_cpuid_max_extended_level() implementation |
Returns a maximum input value for extended function CPUID information about the active x86 or x86-64 CPU, or a compile-time zero if the target architecture is neither of those two. | |
#define | get_xcr0() implementation |
Returns the lower 32 bits of the XCR0 register, or zero if the target architecture is neither x86 nor x86-64. More... | |
#define | MMX_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_MMX_ID) |
#define | MMX_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_MMX_ID)) |
Checks whether the current central processor supports Intel MMX. | |
#define | SSE_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_SSE_ID) |
#define | SSE_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_SSE_ID)) |
Checks whether the current central processor supports Intel SSE. | |
#define | SSE2_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_SSE2_ID) |
#define | SSE2_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_SSE2_ID)) |
Checks whether the current central processor supports Intel SSE2. | |
#define | SSE3_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_SSE3_ID) |
#define | SSE3_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_SSE3_ID)) |
Checks whether the current central processor supports Intel SSE3. | |
#define | SSSE3_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_SSSE3_ID) |
#define | SSSE3_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_SSSE3_ID)) |
Checks whether the current central processor supports Intel SSSE3. | |
#define | SSE4_1_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_SSE4_1_ID) |
#define | SSE4_1_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_SSE4_1_ID)) |
Checks whether the current central processor supports Intel SSE4.1. | |
#define | SSE4_2_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_SSE4_2_ID) |
#define | SSE4_2_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_SSE4_2_ID)) |
Checks whether the current central processor supports Intel SSE4.2. | |
#define | CRC32_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_CRC32_ID) |
#define | CRC32_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_CRC32_ID)) |
Checks whether the current central processor supports Intel AESNI instructions. | |
#define | MOVBE_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_MOVBE_ID) |
#define | MOVBE_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_MOVBE_ID)) |
Checks whether the current central processor supports Intel MOVBE instruction. | |
#define | POPCNT_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_POPCNT_ID) |
#define | POPCNT_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_POPCNT_ID)) |
Checks whether the current central processor supports Intel MOVBE instruction. | |
#define | AESNI_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AESNI_ID) |
#define | AESNI_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_AESNI_ID)) |
Checks whether the current central processor supports Intel AESNI instructions. | |
#define | OSXSAVE_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_FMA_ID) |
#define | OSXSAVE_SUPPORTED() (((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_OSXSAVE_ID)) |
Checks whether the current central processor supports Intel OSXSAVE. | |
#define | FMA_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_FMA_ID) |
#define | FMA_SUPPORTED() (((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_FMA_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE))) |
Checks whether the current central processor supports Intel FMA. | |
#define | CLMUL_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_CLMUL_ID) |
#define | CLMUL_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_CLMUL_ID)) |
Checks whether the current central processor supports Intel CLMUL. | |
#define | AVX_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX_ID) |
#define | AVX_SUPPORTED() ((x86_cpuid_max_basic_level() >= 1) && x86_cpuid_test_feature(X86_AVX_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE)) |
Checks whether the current central processor supports Intel AVX. | |
#define | AVX2_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX2_ID) |
#define | AVX2_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX2_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE)) |
Checks whether the current central processor supports Intel AVX-2. | |
#define | AVX512F_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512F_ID) |
#define | AVX512F_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512F_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX-512F. | |
#define | AVX512PF_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512PF_ID) |
#define | AVX512PF_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512PF_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX-512PF. | |
#define | AVX512ER_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512ER_ID) |
#define | AVX512ER_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512ER_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX-512ER. | |
#define | AVX512CD_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512CD_ID) |
#define | AVX512CD_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512CD_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX-512CD. | |
#define | AVX512DQ_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512DQ_ID) |
#define | AVX512DQ_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512DQ_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX-512DQ. | |
#define | AVX512BW_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512BW_ID) |
#define | AVX512BW_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512BW_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX-512BW. | |
#define | AVX512VL_F_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512VL_F_ID) |
#define | AVX512VL_F_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512VL_F_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX-512VL extensions for AVX-512F instructions. | |
#define | AVX512VL_CD_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512VL_CD_ID) |
#define | AVX512VL_CD_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512VL_CD_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX-512VL extensions for AVX-512CD instructions. | |
#define | AVX512VL_DQ_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512VL_DQ_ID) |
#define | AVX512VL_DQ_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512VL_DQ_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX-512VL extensions for AVX-512DQ instructions. | |
#define | AVX512VL_BW_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512VL_BW_ID) |
#define | AVX512VL_BW_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512VL_BW_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX-512VL extensions for AVX-512BW instructions. | |
#define | AVX512_IFMA_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512_IFMA_ID) |
#define | AVX512_IFMA_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512_IFMA_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX512_IFMA instructions. | |
#define | AVX512_VNNI_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512_VNNI_ID) |
#define | AVX512_VNNI_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512_VNNI_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX512_VNNI. | |
#define | AVX_VNNI_SUPPORTED_MASK(mask) AVX512_VNNI_SUPPORTED_MASK(mask, X86_AVX512_VNNI_ID) |
#define | AVX_VNNI_SUPPORTED() AVX512_VNNI_SUPPORTED() |
Checks whether the current central processor supports Intel AVX512_VNNI. | |
#define | SHA_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_SHA_ID) |
#define | SHA_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_SHA_ID)) |
Checks whether the current central processor supports Intel SHA. | |
#define | VAES_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_VAES_ID) |
#define | VAES_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_VAES_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel VAES instructions. | |
#define | VPCLMULQDQ_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_VPCLMULQDQ_ID) |
#define | VPCLMULQDQ_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_VPCLMULQDQ_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel VPCLMULQDQ instruction. | |
#define | BMI1_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_BMI1_ID) |
#define | BMI1_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_BMI1_ID)) |
Checks whether the current central processor supports Intel BMI1 instructions. | |
#define | BMI2_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_BMI2_ID) |
#define | BMI2_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_BMI2_ID)) |
Checks whether the current central processor supports Intel BMI2 instructions. | |
#define | AVX512_VBMI_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512_VBMI_ID) |
#define | AVX512_VBMI_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512_VBMI_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX512_VBMI instructions. | |
#define | AVX512_VBMI2_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512_VBMI2_ID) |
#define | AVX512_VBMI2_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512_VBMI2_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX512_VBMI2 instructions. | |
#define | LZCNT_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_LZCNT_ID) |
#define | LZCNT_SUPPORTED() ((x86_cpuid_max_extended_level() >= 0x80000001u) && x86_cpuid_test_feature(X86_LZCNT_ID)) |
Checks whether the current central processor supports Intel LZCNT instruction. | |
#define | AVX512_BITALG_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512_BITALG_ID) |
#define | AVX512_BITALG_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512_BITALG_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX512_BITALG. | |
#define | AVX512_VPOPCNTDQ_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512_VPOPCNTDQ_ID) |
#define | AVX512_VPOPCNTDQ_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512_VPOPCNTDQ_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX512VPOPCNTDQ. | |
#define | AVX512_VP2INTERSECT_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_AVX512_VP2INTERSECT_ID) |
#define | AVX512_VP2INTERSECT_SUPPORTED() ((x86_cpuid_max_basic_level() >= 7) && x86_cpuid_test_feature(X86_AVX512_VP2INTERSECT_ID | X86_OSXSAVE_ID) && CHECKMASKFLAG(get_xcr0(), X86_XCR0_SSE_STATE | X86_XCR0_AVX_STATE | X86_XCR0_AVX512_STATE)) |
Checks whether the current central processor supports Intel AVX512_VP2INTERSECT instructions. | |
#define | RDTSCP_SUPPORTED_MASK(mask) CHECKMASKFLAG(mask, X86_RDTSCP_ID) |
#define | RDTSCP_SUPPORTED() ((x86_cpuid_max_extended_level() >= 0x80000001u) && x86_cpuid_test_feature(X86_RDTSCP_ID)) |
Checks whether the current central processor supports Intel RDTSCP instruction. | |
Functions | |
unsigned long long | get_x86_cpu_info () noexcept |
Returns a bit mask indicating a support by the current processor of various Intel x86 and Intel x86-64 CPU extensions. More... | |
Instruments for getting runtime information about the target system architecture.
Returns a bit mask indicating a support by the current processor of various Intel x86 and Intel x86-64 CPU extensions.
The following macro constants define CPU features that can be tested on the target processor using x86_cpuid_max_basic_level(), x86_cpuid_max_extended_level(), x86_cpuid_test_feature() and get_x86_cpu_info() functions.
1X86_AVX_VNNI_ID is equivalent to X86_AVX512_VNNI_ID.