Go to the documentation of this file.
23 #if (defined(__linux__) || defined(__ANDROID__)) && HAVE_GETAUXVAL
27 #define HWCAP_AARCH64_ASIMDDP (1 << 20)
28 #define HWCAP2_AARCH64_I8MM (1 << 13)
34 unsigned long hwcap = getauxval(AT_HWCAP);
35 unsigned long hwcap2 = getauxval(AT_HWCAP2);
37 if (hwcap & HWCAP_AARCH64_ASIMDDP)
39 if (hwcap2 & HWCAP2_AARCH64_I8MM)
45 #elif defined(__APPLE__) && HAVE_SYSCTLBYNAME
46 #include <sys/sysctl.h>
55 if (!sysctlbyname(
"hw.optional.arm.FEAT_DotProd", &
value, &
size,
NULL, 0)) {
60 if (!sysctlbyname(
"hw.optional.arm.FEAT_I8MM", &
value, &
size,
NULL, 0)) {
73 #ifdef PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
74 if (IsProcessorFeaturePresent(PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE))
93 #ifdef __ARM_FEATURE_DOTPROD
96 #ifdef __ARM_FEATURE_MATMUL_INT8
#define AV_CPU_FLAG_DOTPROD
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
size_t ff_get_cpu_max_align_aarch64(void)
int ff_get_cpu_flags_aarch64(void)
static int detect_flags(void)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default value
#define AV_CPU_FLAG_ARMV8
#define flags(name, subs,...)