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