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
r? @ghost
feel free to
r+once green