#[non_exhaustive]pub enum CpuLevel {
Scalar,
Sse2,
Sse42,
Bmi2,
Avx2,
Avx512,
Neon,
Sve,
}Expand description
The ceiling on the instruction sets the kernels may use: see
set_cpu_ceiling.
The ceiling on the instruction sets the kernels may use: see
set_cpu_ceiling.
The ceiling on the instruction sets the kernels may use: see
set_cpu_ceiling.
An instruction-set level the codec’s kernels may be limited to, from the
portable scalar code up. The x86 levels (Sse2 through Avx512) and the
aarch64 ones (Neon, Sve) are separate ladders; Scalar sits under
both.
Used with set_cpu_ceiling to compare kernel tiers on one machine.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Scalar
Portable code only.
Sse2
x86 SSE2.
Sse42
x86 SSE4.2.
Bmi2
x86 BMI2, with everything below it.
Avx2
x86 AVX2 (and BMI2), the x86-64-v3 kernels.
Avx512
x86 AVX-512 (the VBMI2 kernels, when built with kernel-vbmi2).
Neon
aarch64 NEON.
Sve
aarch64 SVE and SVE2.
Implementations§
Trait Implementations§
impl Copy for CpuLevel
impl Eq for CpuLevel
impl StructuralPartialEq for CpuLevel
Auto Trait Implementations§
impl Freeze for CpuLevel
impl RefUnwindSafe for CpuLevel
impl Send for CpuLevel
impl Sync for CpuLevel
impl Unpin for CpuLevel
impl UnsafeUnpin for CpuLevel
impl UnwindSafe for CpuLevel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more