spirv-builder only looks for the exact
librustc_codegen_spirv.{so,dylib,dll} filename in the dylib search path.
That works in the rust-gpu workspace, but it misses external build.rs
consumers where Cargo only exposes hashed deps artifacts such as
librustc_codegen_spirv-<hash>.so. This showed up in a downstream
workspace update to current rust-gpu main where the consumer path only
had hashed backend artifacts available to default SpirvBuilder
discovery.
Keep preferring the exact filename when present, then fall back to the
newest hashed rustc_codegen_spirv dylib in the same search paths. Add
tests for exact matches, hashed fallback, and exact-over-hashed
precedence.
rustc renamed fabsf32/fabsf64/fabsf128 to a single unified `fabs`
symbol, and minnumf32/f64/f128 and maxnumf32/f64/f128 to
minimumf32/f64/f128 and maximumf32/f64/f128 respectively.
Remove the compile-fail test that casts constant data to `*const RuntimeArray<T>`. We do not want to support constructing `RuntimeArray` from Rust constant data.
Revert the `const_str` reshaping and the direct `RuntimeArray` constant-loading path in `read_from_const_alloc_at`. This restores the older behavior of treating `RuntimeArray` constants as unsupported instead of trying to materialize them from Rust constant data.
The generic unsized constant reader already handles `RuntimeArray` constants, including the trailing-bytes error case covered by the new compile-fail test. Keep `const_bitcast` on the direct `try_read_from_const_alloc` path instead of carrying a second fallback that no longer changes behavior.
Add a UI compile-fail test for casting a 3-byte constant allocation to `*const RuntimeArray<u16>`. This exercises the existing trailing-bytes diagnostic for unsupported unsized constants and guards the review concern that this shape must fail instead of silently lowering.
This disassembly test only cares about the rotate lowering pattern, not source
line tables. Strip OpLine records entirely so line-number drift across toolchains
does not require reblessing the test.
Keep the existing runtime-array reification path for const pointer bitcasts,
but report a specific zombie reason when the backing allocation size is not a
multiple of the runtime-array element size instead of silently falling through
to the generic const_bitcast error.
Use exact rust_gpu attribute paths with get_attrs_by_path, let
AggregatedSpirvAttributes parse filtered iterators directly, and replace the
manual debug filename arena allocation with DroplessArena::alloc_str.
Also port the rustc-private API drift in this nightly by importing
assert_matches from std, using rustc_span::Spanned directly, and renaming
BackendRepr::ScalableVector to SimdScalableVector.
Update the pinned workspace toolchain to rustc 1.96.0-nightly
(1d8897a4e 2026-03-13) and keep REQUIRED_RUST_TOOLCHAIN in sync.
Mirror the current rustc_codegen_ssa crate-attribute header in lib.rs,
keep rustc_codegen_spirv-specific lint allowances outside that mirrored block,
and drop the now-unneeded bootstrap-only header filtering from build.rs.