Cargo Features
[dependencies]
multiversed = { version = "0.3.1", default-features = false, features = ["force-disable", "x86-64-v2", "x86-64-v3", "x86-64-v4", "x86-64-v4-modern", "x86-64-v4x", "arm64", "arm64-v2", "arm64-v3", "wasm32-simd128"] }
- default = arm64-v2, wasm32-simd128, x86-64-v3, x86-64-v4x
-
These default features are set whenever
multiversedis added withoutsomewhere in the dependency tree.default-features = false - force-disable
-
Disable all multiversioning (passthrough only, useful for debugging/faster builds)
- x86-64-v2
-
============================================================================
x86/x86_64 presets (above baseline - baseline is implicit)
============================================================================
x86-64-v2: SSE4.2 + POPCNT (Nehalem 2008+, most CPUs since ~2010) - x86-64-v3 default
-
x86-64-v3: AVX2 + FMA + BMI (Haswell 2013+, Zen 2 2019+) - RECOMMENDED
- x86-64-v4
-
x86-64-v4: AVX-512 base (Skylake-X 2017+, Zen 4 2022+)
- x86-64-v4-modern = x86-64-v4x
-
x86-64-v4-modern / x86-64-v4x: Full modern AVX-512 (Ice Lake 2019+, Zen 4 2022+)
Matches archmage X64V4xToken: VNNI, VBMI2, BITALG, GFNI, VAES - NOT available on Skylake-X - x86-64-v4x default x86-64-v4-modern?
- arm64 = arm64-v2
-
============================================================================
aarch64 presets (above baseline - NEON is implicit)
============================================================================
arm64: Alias for arm64-v2 (backwards compatibility)
In 0.2.x this was neon+fp16; now resolves to the full Arm64V2Token feature set. - arm64-v2 default arm64?
-
arm64-v2: Modern ARM baseline (Cortex-A55+, Apple M1+, Graviton 2+) - RECOMMENDED Matches archmage Arm64V2Token: NEON + CRC + RDM + DotProd + FP16 + AES + SHA2
- arm64-v3
-
arm64-v3: Full modern ARM SIMD (Cortex-A510+, Apple M2+, Graviton 3+)
Matches archmage Arm64V3Token: v2 + FHM + FCMA + SHA3 + I8MM + BF16 - wasm32-simd128 default
-
============================================================================
wasm32 presets
============================================================================
wasm32-simd128: WASM SIMD (matches archmage Wasm128Token)
multiversion elides on wasm32 — this is a no-op but signals intent