Repository navigation
feat: ungate AVX512 from nightly_simd and set rust-version to 1.89 - #83
Merged
Merged
Conversation
jvdd
force-pushed
the
feat/stable-avx512
branch
from
October 6, 2026 07:45
bbe421e to
dd19fac
Compare
jvdd
force-pushed
the
feat/stable-avx512
branch
from
October 6, 2026 08:53
dd19fac to
96a2f93
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AVX-512 target features and intrinsics are stable since Rust 1.89 (
stdarch_x86_avx512, rust#138940, tracking issue rust#111137 closed). So the AVX512 code no longer needs thenightly_simdfeature.Changes
nightly_simdgate from all AVX512 code: theavx512modules insimd_*.rs, theAVX512struct inconfig.rs, the runtime dispatch inlib.rs(avx512_supported, from fix: only dispatch 8 and 16-bit data to AVX512 when AVX512BW is available #84) and the AVX512 test cases.#![feature(...)]attributes now apply only to 32-bit ARM (stdarch_arm_neon_intrinsics,stdarch_arm_feature_detection,arm_target_feature). Removedcfg_version,stdsimd,stdarch_x86_avx512andavx512_target_feature; they are not necessary with an MSRV of 1.89.rust-version = "1.89"toCargo.toml.nightly_simdis only necessary for NEON on 32-bit ARM. NEON on aarch64 is stable since Rust 1.59 and was already not gated.Check_Stablenow also checks the default features, on x86_64 and aarch64.Check_MSRVjob: checks all features with therust-versionfromCargo.toml. There is noCargo.lock, so the job usesCARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=fallback.Side effect: on x86 and aarch64,
nightly_simdnow has no effect. Thus, the default features build on stable Rust for these targets. On 32-bit ARM, the default features still need nightly, as before (rust#111800 is still open). Thenightly_simdfeature stays, because dependents enable it (e.g. Polars:simd = ["argminmax/nightly_simd"]).Checked
cargo test --features half(the AVX512 implementations run)cargo check --all-featurescargo test --features halfon stable and nightlynightly_simdand stable without it build