Skip to main content

Module simd

Module 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.

Enums§

SimdAlignExperimental
A type for alignment options for SIMD masked load/store intrinsics.

Functions§

simd_addExperimentalvalidated
Adds two simd vectors elementwise.
simd_andExperimentalvalidated
“And“s vectors elementwise.
simd_arith_offsetExperimentalvalidated
Calculates the offset from a pointer vector elementwise, potentially wrapping.
simd_asExperimentalvalidated
Numerically casts a vector, elementwise.
simd_bitmaskExperimentalvalidated
Truncates an integer vector to a bitmask.
simd_bitreverseExperimentalvalidated
Reverses bits of each element.
simd_bswapExperimentalvalidated
Swaps bytes of each element.
simd_carryless_mulExperimentalvalidated
Compute the carry-less product.
simd_castExperimentalvalidated
Numerically casts a vector, elementwise.
simd_cast_ptrExperimentalvalidated
Casts a vector of pointers.
simd_ceilExperimentalvalidated
Rounds up each element to the next highest integer-valued float.
simd_ctlzExperimentalvalidated
Counts the leading zeros of each element.
simd_ctpopExperimentalvalidated
Counts the number of ones in each element.
simd_cttzExperimentalvalidated
Counts the trailing zeros of each element.
simd_divExperimentalvalidated
Divides lhs by rhs elementwise.
simd_eqExperimentalvalidated
Tests elementwise equality of two vectors.
simd_expose_provenanceExperimentalvalidated
Exposes a vector of pointers as a vector of addresses.
simd_extractExperimentalvalidated
Extracts an element from a vector.
simd_extract_dynExperimentalvalidated
Extracts an element from a vector.
simd_fabsExperimentalvalidated
Returns absolute value of a vector, elementwise.
simd_fcosExperimentalvalidated
T must be a vector of floats.
simd_fexpExperimentalvalidated
T must be a vector of floats.
simd_fexp2Experimentalvalidated
T must be a vector of floats.
simd_flogExperimentalvalidated
T must be a vector of floats.
simd_flog2Experimentalvalidated
T must be a vector of floats.
simd_flog10Experimentalvalidated
T must be a vector of floats.
simd_floorExperimentalvalidated
Rounds down each element to the next lowest integer-valued float.
simd_fmaExperimentalvalidated
Computes (x*y) + z for each element, but without any intermediate rounding.
simd_fsinExperimentalvalidated
T must be a vector of floats.
simd_fsqrtExperimentalvalidated
Takes the square root of each element.
simd_funnel_shlExperimentalvalidated
Funnel Shifts vector left elementwise, with UB on overflow.
simd_funnel_shrExperimentalvalidated
Funnel Shifts vector right elementwise, with UB on overflow.
simd_gatherExperimentalvalidated
Reads a vector of pointers.
simd_geExperimentalvalidated
Tests if x is greater than or equal to y, elementwise.
simd_gtExperimentalvalidated
Tests if x is greater than y, elementwise.
simd_insertExperimentalvalidated
Inserts an element into a vector, returning the updated vector.
simd_insert_dynExperimentalvalidated
Inserts an element into a vector, returning the updated vector.
simd_leExperimentalvalidated
Tests if x is less than or equal to y, elementwise.
simd_ltExperimentalvalidated
Tests if x is less than y, elementwise.
simd_masked_loadExperimentalvalidated
Reads a vector of pointers.
simd_masked_storeExperimentalvalidated
Writes to a vector of pointers.
simd_maximum_number_nszExperimentalvalidated
Returns the maximum of two vectors, elementwise.
simd_minimum_number_nszExperimentalvalidated
Returns the minimum of two vectors, elementwise.
simd_mulExperimentalvalidated
Multiplies two simd vectors elementwise.
simd_neExperimentalvalidated
Tests elementwise inequality equality of two vectors.
simd_negExperimentalvalidated
Negates a vector elementwise.
simd_orExperimentalvalidated
“Ors” vectors elementwise.
simd_reduce_add_orderedExperimentalvalidated
Adds elements within a vector from left to right.
simd_reduce_add_unorderedExperimentalvalidated
Adds elements within a vector in arbitrary order. May also be re-associated with unordered additions on the inputs/outputs.
simd_reduce_allExperimentalvalidated
Checks if all mask values are true.
simd_reduce_andExperimentalvalidated
Logical “and“s all elements together.
simd_reduce_anyExperimentalvalidated
Checks if any mask value is true.
simd_reduce_maxExperimentalvalidated
Returns the maximum element of a vector.
simd_reduce_minExperimentalvalidated
Returns the minimum element of a vector.
simd_reduce_mul_orderedExperimentalvalidated
Multiplies elements within a vector from left to right.
simd_reduce_mul_unorderedExperimentalvalidated
Multiplies elements within a vector in arbitrary order. May also be re-associated with unordered additions on the inputs/outputs.
simd_reduce_orExperimentalvalidated
Logical “ors” all elements together.
simd_reduce_xorExperimentalvalidated
Logical “exclusive ors” all elements together.
simd_relaxed_fmaExperimentalvalidated
Computes (x*y) + z for each element, non-deterministically executing either a fused multiply-add or two operations with rounding of the intermediate result.
simd_remExperimentalvalidated
Returns remainder of two vectors elementwise.
simd_roundExperimentalvalidated
Rounds each element to the closest integer-valued float. Ties are resolved by rounding away from 0.
simd_round_ties_evenExperimentalvalidated
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_addExperimentalvalidated
Adds two simd vectors elementwise, with saturation.
simd_saturating_subExperimentalvalidated
Subtracts two simd vectors elementwise, with saturation.
simd_scatterExperimentalvalidated
Writes to a vector of pointers.
simd_selectExperimentalvalidated
Selects elements from a mask.
simd_select_bitmaskExperimentalvalidated
Selects elements from a bitmask.
simd_shlExperimentalvalidated
Shifts vector left elementwise, with UB on overflow.
simd_shrExperimentalvalidated
Shifts vector right elementwise, with UB on overflow.
simd_shuffleExperimentalvalidated
Shuffles two vectors by const indices.
simd_splatExperimentalvalidated
Creates a vector where every lane has the provided value.
simd_subExperimentalvalidated
Subtracts rhs from lhs elementwise.
simd_truncExperimentalvalidated
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_provenanceExperimentalvalidated
Creates a vector of pointers from a vector of addresses.
simd_xorExperimentalvalidated
“Exclusive ors” vectors elementwise.