Module core::intrinsics::simd
source · 🔬This is a nightly-only experimental API. (
core_intrinsics
)Expand description
SIMD compiler intrinsics.
In this module, a “vector” is any repr(simd)
type.
Functions
- simd_add⚠ExperimentalAdd two simd vectors elementwise.
- simd_and⚠ExperimentalElementwise vector “and”.
- simd_arith_offset⚠ExperimentalElementwise calculates the offset from a pointer vector, potentially wrapping.
- simd_as⚠ExperimentalNumerically cast a vector, elementwise.
- simd_bitmask⚠ExperimentalTruncate an integer vector to a bitmask.
- simd_bitreverse⚠ExperimentalReverse bits of each element.
- simd_bswap⚠ExperimentalSwap bytes of each element.
- simd_cast⚠ExperimentalNumerically cast a vector, elementwise.
- simd_cast_ptr⚠ExperimentalCast a vector of pointers.
- simd_ctlz⚠ExperimentalCount the leading zeros of each element.
- simd_cttz⚠ExperimentalCount the trailing zeros of each element.
- simd_div⚠ExperimentalDivide
lhs
byrhs
elementwise. - simd_eq⚠ExperimentalTests elementwise equality of two vectors.
- simd_expose_addr⚠ExperimentalExpose a vector of pointers as a vector of addresses.
- simd_fabs⚠ExperimentalElementwise absolute value of a vector.
- simd_fmax⚠ExperimentalElementwise maximum of a vector.
- simd_fmin⚠ExperimentalElementwise minimum of a vector.
- simd_from_exposed_addr⚠ExperimentalCreate a vector of pointers from a vector of addresses.
- simd_gather⚠ExperimentalRead a vector of pointers.
- simd_ge⚠ExperimentalTests if
x
is greater than or equal toy
, elementwise. - simd_gt⚠ExperimentalTests if
x
is greater thany
, elementwise. - simd_le⚠ExperimentalTests if
x
is less than or equal toy
, elementwise. - simd_lt⚠ExperimentalTests if
x
is less thany
, elementwise. - simd_masked_load⚠ExperimentalRead a vector of pointers.
- simd_masked_store⚠ExperimentalWrite to a vector of pointers.
- simd_mul⚠ExperimentalMultiply two simd vectors elementwise.
- simd_ne⚠ExperimentalTests elementwise inequality equality of two vectors.
- simd_neg⚠ExperimentalElementwise negation of a vector.
- simd_or⚠ExperimentalElementwise vector “or”.
- simd_reduce_add_ordered⚠ExperimentalAdd elements within a vector from left to right.
- simd_reduce_all⚠ExperimentalCheck if all mask values are true.
- simd_reduce_and⚠ExperimentalLogical “and” all elements together.
- simd_reduce_any⚠ExperimentalCheck if all mask values are true.
- simd_reduce_max⚠ExperimentalReturn the maximum element of a vector.
- simd_reduce_min⚠ExperimentalReturn the minimum element of a vector.
- simd_reduce_mul_ordered⚠ExperimentalMultiply elements within a vector from left to right.
- simd_reduce_or⚠ExperimentalLogical “or” all elements together.
- simd_reduce_xor⚠ExperimentalLogical “exclusive or” all elements together.
- simd_rem⚠ExperimentalRemainder of two vectors elementwise
- simd_saturating_add⚠ExperimentalAdd two simd vectors elementwise, with saturation.
- simd_saturating_sub⚠ExperimentalSubtract two simd vectors elementwise, with saturation.
- simd_scatter⚠ExperimentalWrite to a vector of pointers.
- simd_select⚠ExperimentalSelect elements from a mask.
- simd_select_bitmask⚠ExperimentalSelect elements from a bitmask.
- simd_shl⚠ExperimentalElementwise vector left shift, with UB on overflow.
- simd_shr⚠ExperimentalElementwise vector right shift, with UB on overflow.
- simd_shuffle⚠ExperimentalShuffle two vectors by const indices.
- simd_sub⚠ExperimentalSubtract
rhs
fromlhs
elementwise. - simd_xor⚠ExperimentalElementwise vector “exclusive or”.