Function core::intrinsics::simd::simd_gather
source · pub unsafe extern "platform-intrinsic" fn simd_gather<T, U, V>(
val: T,
ptr: U,
mask: V
) -> T
🔬This is a nightly-only experimental API. (
core_intrinsics
)Expand description
Read a vector of pointers.
T
must be a vector.
U
must be a vector of pointers to the element type of T
, with the same length as T
.
V
must be a vector of integers with the same length as T
(but any element size).
idx
must be a constant: either naming a constant item, or an inline
const {}
expression.
For each pointer in ptr
, if the corresponding value in mask
is !0
, read the pointer.
Otherwise if the corresponding value in mask
is 0
, return the corresponding value from
val
.
Safety
Unmasked values in T
must be readable as if by <ptr>::read
(e.g. aligned to the element
type).
mask
must only contain 0
or !0
values.