Sync from portable simd 2026 07 20#159582
Conversation
the `float-cmp` and `num-traits` libraries don't (yet) support f16. Turns out we didn't really need much from them, just the ulps check. I've adapted the ulps check from miri instead
relevant for the cranelift backend, possibly other cases/targets too
Fix pointer API to match what was stabilized
We can do swizzles for 24, 32, 48 and 64 byte vectors by stacking multiple TBL instructions. See https://godbolt.org/z/PE95nrqjj for a comparison of the generated assembly.
Optimize `swizzle_dyn` for AArch64 with N > 16
`From` impls were already provided for the normal AArch64 ACLE vector types, but not for the x2,x3,x4 tuples of ACLE vectors. Rectify that. Also provide impls for vectors of `f16`, as I noticed they were missing.
For symmetry with `Mask::first_set`
Add `Mask::last_set` method
…mpls Provide `From` impls for AArch64 ACLE tuple types.
Use `impl` restrictions over hand-sealed traits
Optimize `swizzle_dyn` for LoongArch64 with N is 16 or 32
run `f16` float tests
…nelift backend
…m-portable-simd-2026-07-20
|
|
|
|
This sync (specifically ignoring f16 tests) will help with rust-lang/rustc_codegen_cranelift#1675 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
cc @rust-lang/miri |
This comment has been minimized.
This comment has been minimized.
e7ea91d to
7629861
Compare
This comment has been minimized.
This comment has been minimized.
|
Hmm, blocked on rust-lang/miri#5219 (needs to be merged and synced). |
|
We can also disable that test on aarch64 for now with a FIXME, if you want to not block this sync. It's a very new test. |
0574ce9 to
f32f69b
Compare
|
@bors r+ |
|
@bors p=1 |
…-2026-07-20, r=oli-obk Sync from portable simd 2026 07 20 r? @ghost feel free to `r+` once green
…uwer Rollup of 7 pull requests Successful merges: - #159582 (Sync from portable simd 2026 07 20) - #157270 (ergonomic_clones_dotuse_capture_by_ref: Capture upvar by ref for `.use` in non-move closures) - #158496 (Move `check_rustc_pub_transparent` into the attribute parser) - #158547 (Move `std::io::buffered` to `alloc::io`) - #159505 (make rustdoc::bare_urls strip trailing periods from url) - #159578 (Extract coroutine closure helper functions) - #159613 (Set the rustc lib path for unstable-book-gen)
|
⌛ Testing commit f32f69b with merge 64ae15d... Workflow: https://github.com/rust-lang/rust/actions/runs/29798410909 |
…, r=oli-obk Sync from portable simd 2026 07 20 r? @ghost feel free to `r+` once green
|
yielding to hopefully include this in a rollup @bors yield |
|
Auto build was cancelled. Cancelled workflows: The next pull request likely to be tested is #159149. |
|
maybe not; looks like the floating point tests added are failing @bors r- |
|
This PR was contained in a rollup (#159622), which was unapproved. |
r? @ghost
feel free to
r+once green