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_ceil⚠ExperimentalRound up each element to the next highest integer-valued float.
 - simd_ctlz⚠ExperimentalCount the leading zeros of each element.
 - simd_cttz⚠ExperimentalCount the trailing zeros of each element.
 - simd_div⚠ExperimentalDivide
lhsbyrhselementwise. - simd_eq⚠ExperimentalTests elementwise equality of two vectors.
 - simd_expose_addr⚠ExperimentalExpose a vector of pointers as a vector of addresses.
 - simd_extract⚠ExperimentalExtract an element from a vector.
 - simd_fabs⚠ExperimentalElementwise absolute value of a vector.
 - simd_fcos⚠Experimental
Tmust be a vector of floats. - simd_fexp⚠Experimental
Tmust be a vector of floats. - simd_fexp2⚠Experimental
Tmust be a vector of floats. - simd_flog⚠Experimental
Tmust be a vector of floats. - simd_flog2⚠Experimental
Tmust be a vector of floats. - simd_flog10⚠Experimental
Tmust be a vector of floats. - simd_floor⚠ExperimentalRound down each element to the next lowest integer-valued float.
 - simd_fma⚠ExperimentalComputes
(x*y) + zfor each element, but without any intermediate rounding. - 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_fsin⚠Experimental
Tmust be a vector of floats. - simd_fsqrt⚠ExperimentalTakes the square root of each element.
 - simd_gather⚠ExperimentalRead a vector of pointers.
 - simd_ge⚠ExperimentalTests if
xis greater than or equal toy, elementwise. - simd_gt⚠ExperimentalTests if
xis greater thany, elementwise. - simd_insert⚠ExperimentalInsert an element into a vector, returning the updated vector.
 - simd_le⚠ExperimentalTests if
xis less than or equal toy, elementwise. - simd_lt⚠ExperimentalTests if
xis 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_add_unordered⚠ExperimentalAdd elements within a vector in arbitrary order. May also be re-associated with unordered additions on the inputs/outputs.
 - 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_mul_unordered⚠ExperimentalAdd elements within a vector in arbitrary order. May also be re-associated with unordered additions on the inputs/outputs.
 - 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_round⚠ExperimentalRound each element to the closest integer-valued float. Ties are resolved by rounding away from 0.
 - 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_shuffle_generic⚠ExperimentalShuffle two vectors by const indices.
 - simd_sub⚠ExperimentalSubtract
rhsfromlhselementwise. - simd_trunc⚠ExperimentalReturn the integer part of each element as an integer-valued float. In other words, non-integer values are truncated towards zero.
 - simd_xor⚠ExperimentalElementwise vector “exclusive or”.