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.