🔬This is a nightly-only experimental API. (
core_intrinsics)Expand description
SIMD compiler intrinsics.
In this module, a “vector” is any repr(simd) type.
Enums§
- Simd
Align Experimental Non- ferrocene_subset - A type for alignment options for SIMD masked load/store intrinsics.
Functions§
- simd_
add ⚠Experimental - Adds two simd vectors elementwise.
- simd_
and ⚠Experimental Non- ferrocene_subset - “And“s vectors elementwise.
- simd_
arith_ ⚠offset Experimental Non- ferrocene_subset - Calculates the offset from a pointer vector elementwise, potentially wrapping.
- simd_as⚠
Experimental Non- ferrocene_subset - Numerically casts a vector, elementwise.
- simd_
bitmask ⚠Experimental Non- ferrocene_subset - Truncates an integer vector to a bitmask.
- simd_
bitreverse ⚠Experimental Non- ferrocene_subset - Reverses bits of each element.
- simd_
bswap ⚠Experimental Non- ferrocene_subset - Swaps bytes of each element.
- simd_
cast ⚠Experimental Non- ferrocene_subset - Numerically casts a vector, elementwise.
- simd_
cast_ ⚠ptr Experimental Non- ferrocene_subset - Casts a vector of pointers.
- simd_
ceil ⚠Experimental Non- ferrocene_subset - Rounds up each element to the next highest integer-valued float.
- simd_
ctlz ⚠Experimental Non- ferrocene_subset - Counts the leading zeros of each element.
- simd_
ctpop ⚠Experimental Non- ferrocene_subset - Counts the number of ones in each element.
- simd_
cttz ⚠Experimental Non- ferrocene_subset - Counts the trailing zeros of each element.
- simd_
div ⚠Experimental Non- ferrocene_subset - Divides
lhsbyrhselementwise. - simd_eq⚠
Experimental Non- ferrocene_subset - Tests elementwise equality of two vectors.
- simd_
expose_ ⚠provenance Experimental Non- ferrocene_subset - Exposes a vector of pointers as a vector of addresses.
- simd_
extract ⚠Experimental - Extracts an element from a vector.
- simd_
extract_ ⚠dyn Experimental Non- ferrocene_subset - Extracts an element from a vector.
- simd_
fabs ⚠Experimental Non- ferrocene_subset - Returns absolute value of a vector, elementwise.
- simd_
fcos ⚠Experimental Non- ferrocene_subset Tmust be a vector of floats.- simd_
fexp ⚠Experimental Non- ferrocene_subset Tmust be a vector of floats.- simd_
fexp2 ⚠Experimental Non- ferrocene_subset Tmust be a vector of floats.- simd_
flog ⚠Experimental Non- ferrocene_subset Tmust be a vector of floats.- simd_
flog2 ⚠Experimental Non- ferrocene_subset Tmust be a vector of floats.- simd_
flog10 ⚠Experimental Non- ferrocene_subset Tmust be a vector of floats.- simd_
floor ⚠Experimental Non- ferrocene_subset - Rounds down each element to the next lowest integer-valued float.
- simd_
fma ⚠Experimental - Computes
(x*y) + zfor each element, but without any intermediate rounding. - simd_
fmax ⚠Experimental Non- ferrocene_subset - Returns the maximum of two vectors, elementwise.
- simd_
fmin ⚠Experimental Non- ferrocene_subset - Returns the minimum of two vectors, elementwise.
- simd_
fsin ⚠Experimental Non- ferrocene_subset Tmust be a vector of floats.- simd_
fsqrt ⚠Experimental Non- ferrocene_subset - Takes the square root of each element.
- simd_
funnel_ ⚠shl Experimental Non- ferrocene_subset - Funnel Shifts vector left elementwise, with UB on overflow.
- simd_
funnel_ ⚠shr Experimental Non- ferrocene_subset - Funnel Shifts vector right elementwise, with UB on overflow.
- simd_
gather ⚠Experimental Non- ferrocene_subset - Reads a vector of pointers.
- simd_ge⚠
Experimental Non- ferrocene_subset - Tests if
xis greater than or equal toy, elementwise. - simd_gt⚠
Experimental Non- ferrocene_subset - Tests if
xis greater thany, elementwise. - simd_
insert ⚠Experimental - Inserts an element into a vector, returning the updated vector.
- simd_
insert_ ⚠dyn Experimental Non- ferrocene_subset - Inserts an element into a vector, returning the updated vector.
- simd_le⚠
Experimental Non- ferrocene_subset - Tests if
xis less than or equal toy, elementwise. - simd_lt⚠
Experimental Non- ferrocene_subset - Tests if
xis less thany, elementwise. - simd_
masked_ ⚠load Experimental Non- ferrocene_subset - Reads a vector of pointers.
- simd_
masked_ ⚠store Experimental Non- ferrocene_subset - Writes to a vector of pointers.
- simd_
mul ⚠Experimental - Multiplies two simd vectors elementwise.
- simd_ne⚠
Experimental Non- ferrocene_subset - Tests elementwise inequality equality of two vectors.
- simd_
neg ⚠Experimental - Negates a vector elementwise.
- simd_or⚠
Experimental Non- ferrocene_subset - “Ors” vectors elementwise.
- simd_
reduce_ ⚠add_ ordered Experimental Non- ferrocene_subset - Adds elements within a vector from left to right.
- simd_
reduce_ ⚠add_ unordered Experimental Non- ferrocene_subset - Adds elements within a vector in arbitrary order. May also be re-associated with unordered additions on the inputs/outputs.
- simd_
reduce_ ⚠all Experimental Non- ferrocene_subset - Checks if all mask values are true.
- simd_
reduce_ ⚠and Experimental Non- ferrocene_subset - Logical “and“s all elements together.
- simd_
reduce_ ⚠any Experimental Non- ferrocene_subset - Checks if any mask value is true.
- simd_
reduce_ ⚠max Experimental Non- ferrocene_subset - Returns the maximum element of a vector.
- simd_
reduce_ ⚠min Experimental Non- ferrocene_subset - Returns the minimum element of a vector.
- simd_
reduce_ ⚠mul_ ordered Experimental Non- ferrocene_subset - Multiplies elements within a vector from left to right.
- simd_
reduce_ ⚠mul_ unordered Experimental Non- ferrocene_subset - Multiplies elements within a vector in arbitrary order. May also be re-associated with unordered additions on the inputs/outputs.
- simd_
reduce_ ⚠or Experimental Non- ferrocene_subset - Logical “ors” all elements together.
- simd_
reduce_ ⚠xor Experimental Non- ferrocene_subset - Logical “exclusive ors” all elements together.
- simd_
relaxed_ ⚠fma Experimental Non- ferrocene_subset - Computes
(x*y) + zfor each element, non-deterministically executing either a fused multiply-add or two operations with rounding of the intermediate result. - simd_
rem ⚠Experimental Non- ferrocene_subset - Returns remainder of two vectors elementwise.
- simd_
round ⚠Experimental Non- ferrocene_subset - Rounds each element to the closest integer-valued float. Ties are resolved by rounding away from 0.
- simd_
round_ ⚠ties_ even Experimental Non- ferrocene_subset - Rounds each element to the closest integer-valued float. Ties are resolved by rounding to the number with an even least significant digit
- simd_
saturating_ ⚠add Experimental Non- ferrocene_subset - Adds two simd vectors elementwise, with saturation.
- simd_
saturating_ ⚠sub Experimental Non- ferrocene_subset - Subtracts two simd vectors elementwise, with saturation.
- simd_
scatter ⚠Experimental Non- ferrocene_subset - Writes to a vector of pointers.
- simd_
select ⚠Experimental Non- ferrocene_subset - Selects elements from a mask.
- simd_
select_ ⚠bitmask Experimental Non- ferrocene_subset - Selects elements from a bitmask.
- simd_
shl ⚠Experimental Non- ferrocene_subset - Shifts vector left elementwise, with UB on overflow.
- simd_
shr ⚠Experimental Non- ferrocene_subset - Shifts vector right elementwise, with UB on overflow.
- simd_
shuffle ⚠Experimental - Shuffles two vectors by const indices.
- simd_
sub ⚠Experimental - Subtracts
rhsfromlhselementwise. - simd_
trunc ⚠Experimental Non- ferrocene_subset - Returns the integer part of each element as an integer-valued float. In other words, non-integer values are truncated towards zero.
- simd_
with_ ⚠exposed_ provenance Experimental Non- ferrocene_subset - Creates a vector of pointers from a vector of addresses.
- simd_
xor ⚠Experimental - “Exclusive ors” vectors elementwise.