1
Fork 0

Rollup merge of #137447 - folkertdev:simd-extract-insert-dyn, r=scottmcm

add `core::intrinsics::simd::{simd_extract_dyn, simd_insert_dyn}`

fixes https://github.com/rust-lang/rust/issues/137372

adds `core::intrinsics::simd::{simd_extract_dyn, simd_insert_dyn}`, which contrary to their non-dyn counterparts allow a non-const index. Many platforms (but notably not x86_64 or aarch64) have dedicated instructions for this operation, which stdarch can emit with this change.

Future work is to also make the `Index` operation on the `Simd` type emit this operation, but the intrinsic can't be used directly. We'll need some MIR shenanigans for that.

r? `@ghost`
This commit is contained in:
Stuart Cook 2025-04-11 13:31:43 +10:00 committed by GitHub
commit 45ebc4060b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 197 additions and 37 deletions

View file

@ -1913,6 +1913,7 @@ symbols! {
simd_eq,
simd_expose_provenance,
simd_extract,
simd_extract_dyn,
simd_fabs,
simd_fcos,
simd_fexp,
@ -1931,6 +1932,7 @@ symbols! {
simd_ge,
simd_gt,
simd_insert,
simd_insert_dyn,
simd_le,
simd_lt,
simd_masked_load,