CpuFeature#

Fully qualified name: omni::platforminfo::CpuFeature

Defined in omni/platforminfo/ICpuInfo.h

enum class omni::platforminfo::CpuFeature#

CPU feature names.

Each feature name is used with ICpuInfo::isFeatureSupported() to determine if the requested CPU running on the calling system supports the feature. These feature flags mostly focus on the availability of specific instructions sets on the host CPU.

Values:

enumerator eX86Sse#

Intel specific features.

These names are largely labeled to match the mnemonics used in the Intel Instruction Set Programming Reference document from Intel. For the most part, only the casing differs and ‘-’ has been converted to an underscore.

Note

Many of these features originated with Intel hardware and therefore have ‘X86’ in their name. However, many of these features are or can also be supported on AMD CPUs. If an AMD CPU is detected, these feature names could still be valid and the related instructions usable. Intel SSE instructions are supported.

enumerator eX86Sse2#

Intel SSE2 instructions are supported.

enumerator eX86Sse3#

Intel SSE3 instructions are supported.

enumerator eX86Ssse3#

Intel supplementary SSE3 instructions are supported.

enumerator eX86Fma#

Fused multiply-add SIMD operations are supported.

enumerator eX86Sse41#

Intel SSE4.1 instructions are supported.

enumerator eX86Sse42#

Intel SSE4.2 instructions are supported.

enumerator eX86Avx#

Intel AVX instructions are supported.

enumerator eX86F16c#

16-bit floating point conversion instructions are supported.

enumerator eX86Popcnt#

Instruction for counting set bits are supported.

enumerator eX86Tsc#

The RDTSC instruction is supported.

enumerator eX86Mmx#

Intel MMX instructions are supported.

enumerator eX86Avx2#

Intel AVX2 instructions are supported.

enumerator eX86Avx512F#

The AVX-512 foundation instructions are supported.

enumerator eX86Avx512Dq#

The AVX-512 double and quad word instructions are supported.

enumerator eX86Avx512Ifma#

The AVX-512 integer fused multiply-add instructions are supported.

enumerator eX86Avx512Pf#

The AVX-512 prefetch instructions are supported.

enumerator eX86Avx512Er#

The AVX-512 exponential and reciprocal instructions are supported.

enumerator eX86Avx512Cd#

The AVX-512 conflict detection instructions are supported.

enumerator eX86Avx512Bw#

The AVX-512 byte and word instructions are supported.

enumerator eX86Avx512Vl#

The AVX-512 vector length extensions instructions are supported.

enumerator eX86Avx512_Vbmi#

The AVX-512 vector byte manipulation instructions are supported.

enumerator eX86Avx512_Vbmi2#

The AVX-512 vector byte manipulation 2 instructions are supported.

enumerator eX86Avx512_Vnni#

The AVX-512 vector neural network instructions are supported.

enumerator eX86Avx512_Bitalg#

The AVX-512 bit algorithms instructions are supported.

enumerator eX86Avx512_Vpopcntdq#

The AVX-512 vector population count instructions are supported.

enumerator eX86Avx512_4Vnniw#

The AVX-512 word vector neural network instructions are supported.

enumerator eX86Avx512_4fmaps#

The AVX-512 packed single fused multiply-add instructions are supported.

enumerator eX86Avx512_Vp2intersect#

The AVX-512 vector pair intersection instructions are supported.

enumerator eX86AvxVnni#

The AVX VEX-encoded versions of the neural network instructions are supported.

enumerator eX86Avx512_Bf16#

The AVX-512 16-bit floating point vector NN instructions are supported.

enumerator eAmd3DNow#

AMD specific features.

The AMD 3DNow! instruction set is supported.

enumerator eAmd3DNowExt#

The AMD 3DNow! extensions instruction set is supported.

enumerator eAmdMmxExt#

The AMD MMX extensions instruction set is supported.

enumerator eArmAsimd#

ARM specific features:

The advanced SIMD instructions are supported.

enumerator eArmNeon#

The ARM Neon instruction set is supported.

enumerator eArmAtomics#

The ARMv8 atomic instructions are supported.

enumerator eArmSha#

The SHA1 and SHA2 instruction sets are supported.

enumerator eArmCrypto#

The ARM AES instructions are supported.

enumerator eArmCrc32#

The ARM CRC32 instructions are supported.

enumerator eFeatureCount#