allow_cpu_features
Provides the ability for a function to
use intrinsic functions and architecture specific functionality.
Syntax
Windows:
__declspec(allow_cpu_features
(
featp1
[
,
featp2
]
)
)
Linux:
__attribute__((allow_cpu_features
(
featp1
[
,
featp2
]
)
)
)
Arguments
- featp1
- Specifies features to allow for the function. Values are integral constant expressions that evaluate to the page one bitmask of permissible features from the libirc CPUID information. The evaluated type is an unsigned 64-bit integer which permits use of template-dependent code. Possible values are:
- _FEATURE_GENERIC_IA32
- _FEATURE_FPU
- _FEATURE_CMOV
- _FEATURE_MMX
- _FEATURE_FXSAVE
- _FEATURE_SSE
- _FEATURE_SSE2
- _FEATURE_SSE3
- _FEATURE_SSSE3
- _FEATURE_SSE4_1
- _FEATURE_SSE4_2
- _FEATURE_MOVBE
- _FEATURE_POPCNT
- _FEATURE_PCLMULQDQ
- _FEATURE_AES
- _FEATURE_F16C
- _FEATURE_AVX
- _FEATURE_RDRND
- _FEATURE_FMA
- _FEATURE_BMI
- _FEATURE_LZCNT
- _FEATURE_HLE
- _FEATURE_RTM
- _FEATURE_AVX2
- _FEATURE_AVX512DQ
- _FEATURE_PTWRITE
- _FEATURE_AVX512F
- _FEATURE_ADX
- _FEATURE_RDSEED
- _FEATURE_AVX512IFMA52
- _FEATURE_AVX512ER
- _FEATURE_AVX512PF
- _FEATURE_AVX512CD
- _FEATURE_SHA
- _FEATURE_MPX
- _FEATURE_AVX512BW
- _FEATURE_AVX512VL
- _FEATURE_AVX512VBMI
- _FEATURE_AVX512_4FMAPS
- _FEATURE_AVX512_4VNNIW
- _FEATURE_AVX512_VPOPCNTDQ
- _FEATURE_AVX512_BITALG
- _FEATURE_AVX512_VBMI2
- _FEATURE_GFNI
- _FEATURE_VAES
- _FEATURE_VPCLMULQDQ
- _FEATURE_AVX512_VNNI
- _FEATURE_CLWB
- _FEATURE_RDPID
- _FEATURE_IBT
- _FEATURE_SHSTK
- _FEATURE_SGX
- _FEATURE_WBNOINVD
- _FEATURE_PCONFIG
- _FEATURE_AXV512_VP2INTERSECT
- featp2
- Optional. Specifies features to allow for the function. Values are integral constant expressions that evaluate to the page two bitmask of permissible features from the libirc CPUID information. The evaluated type is an unsigned 64-bit integer which permits use of template-dependent code. If only features from page two are desired, specify 0 forfeatp1. Possible values are:
- _FEATURE_CLDEMOTE
- _FEATURE_MOVDIRI
- _FEATURE_MOVDIR64B
- _FEATURE_WAITPKG
- _FEATURE_AVX512_Bf16
- _FEATURE_ENQCMD
- _FEATURE_AVX_VNNI
- _FEATURE_AMX_TILE
- _FEATURE_AMX_INT8
- _FEATURE_AMX_BF16
- _FEATURE_KL
- _FEATURE_WIDE_KL
Description
This keyword can be added to a function to specify
intrinsic functions and architecture specific functionality that the function
is allowed to use. The function is generated as if the specified features are
available.