src/features/cpu.c file

Functions

static auto vm_cpu_probe_sve(void) -> int
Probes SVE via Linux AT_HWCAP.
static auto vm_cpu_probe_sve2(void) -> int
Probes SVE2 via Linux AT_HWCAP2.
auto vm_cpu_compiled_features(void) -> vm_cpu_features_t
ISA bits compiled into this binary.
auto vm_cpu_runtime_features(void) -> vm_cpu_features_t
ISA bits detected on this CPU (cached).
auto vm_cpu_selected_features(void) -> vm_cpu_features_t
Highest-priority ISA that is both compiled and present.
auto vm_cpu_name(const vm_cpu_features_t features) -> const char*
Short name of the highest bit set in features.

Variables

static vm_cpu_features_t runtime_cache
static atomic_int runtime_cached
static atomic_flag runtime_lock

Function documentation

static int vm_cpu_probe_sve(void)

Probes SVE via Linux AT_HWCAP.

Returns Non-zero if SVE is usable.

static int vm_cpu_probe_sve2(void)

Probes SVE2 via Linux AT_HWCAP2.

Returns Non-zero if SVE2 is usable.

vm_cpu_features_t vm_cpu_compiled_features(void)

ISA bits compiled into this binary.

Returns Feature mask of enabled backends.

vm_cpu_features_t vm_cpu_runtime_features(void)

ISA bits detected on this CPU (cached).

Returns Feature mask of usable backends.

vm_cpu_features_t vm_cpu_selected_features(void)

Highest-priority ISA that is both compiled and present.

Returns Single selected feature bit (or scalar).

const char* vm_cpu_name(const vm_cpu_features_t features)

Short name of the highest bit set in features.

Parameters
features Feature mask.
Returns Stable string such as avx2 or scalar.