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_addExperimental
    Add two simd vectors elementwise.
  • simd_andExperimental
    Elementwise vector “and”.
  • simd_arith_offsetExperimental
    Elementwise calculates the offset from a pointer vector, potentially wrapping.
  • simd_asExperimental
    Numerically cast a vector, elementwise.
  • simd_bitmaskExperimental
    Truncate an integer vector to a bitmask.
  • simd_bitreverseExperimental
    Reverse bits of each element.
  • simd_bswapExperimental
    Swap bytes of each element.
  • simd_castExperimental
    Numerically cast a vector, elementwise.
  • simd_cast_ptrExperimental
    Cast a vector of pointers.
  • simd_ctlzExperimental
    Count the leading zeros of each element.
  • simd_cttzExperimental
    Count the trailing zeros of each element.
  • simd_divExperimental
    Divide lhs by rhs elementwise.
  • simd_eqExperimental
    Tests elementwise equality of two vectors.
  • simd_expose_addrExperimental
    Expose a vector of pointers as a vector of addresses.
  • simd_fabsExperimental
    Elementwise absolute value of a vector.
  • simd_fmaxExperimental
    Elementwise maximum of a vector.
  • simd_fminExperimental
    Elementwise minimum of a vector.
  • simd_from_exposed_addrExperimental
    Create a vector of pointers from a vector of addresses.
  • simd_gatherExperimental
    Read a vector of pointers.
  • simd_geExperimental
    Tests if x is greater than or equal to y, elementwise.
  • simd_gtExperimental
    Tests if x is greater than y, elementwise.
  • simd_leExperimental
    Tests if x is less than or equal to y, elementwise.
  • simd_ltExperimental
    Tests if x is less than y, elementwise.
  • simd_masked_loadExperimental
    Read a vector of pointers.
  • simd_masked_storeExperimental
    Write to a vector of pointers.
  • simd_mulExperimental
    Multiply two simd vectors elementwise.
  • simd_neExperimental
    Tests elementwise inequality equality of two vectors.
  • simd_negExperimental
    Elementwise negation of a vector.
  • simd_orExperimental
    Elementwise vector “or”.
  • Add elements within a vector from left to right.
  • simd_reduce_allExperimental
    Check if all mask values are true.
  • simd_reduce_andExperimental
    Logical “and” all elements together.
  • simd_reduce_anyExperimental
    Check if all mask values are true.
  • simd_reduce_maxExperimental
    Return the maximum element of a vector.
  • simd_reduce_minExperimental
    Return the minimum element of a vector.
  • Multiply elements within a vector from left to right.
  • simd_reduce_orExperimental
    Logical “or” all elements together.
  • simd_reduce_xorExperimental
    Logical “exclusive or” all elements together.
  • simd_remExperimental
    Remainder of two vectors elementwise
  • simd_saturating_addExperimental
    Add two simd vectors elementwise, with saturation.
  • simd_saturating_subExperimental
    Subtract two simd vectors elementwise, with saturation.
  • simd_scatterExperimental
    Write to a vector of pointers.
  • simd_selectExperimental
    Select elements from a mask.
  • simd_select_bitmaskExperimental
    Select elements from a bitmask.
  • simd_shlExperimental
    Elementwise vector left shift, with UB on overflow.
  • simd_shrExperimental
    Elementwise vector right shift, with UB on overflow.
  • simd_shuffleExperimental
    Shuffle two vectors by const indices.
  • simd_subExperimental
    Subtract rhs from lhs elementwise.
  • simd_xorExperimental
    Elementwise vector “exclusive or”.