Struct thermite::backends::avx2::AVX2[][src]

pub struct AVX2;

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

The resulting type after applying the << operator.

Performs the << operation. Read more

The resulting type after applying the << operator.

Performs the << operation. Read more

The resulting type after applying the << operator.

Performs the << operation. Read more

The resulting type after applying the << operator.

Performs the << operation. Read more

The resulting type after applying the << operator.

Performs the << operation. Read more

The resulting type after applying the << operator.

Performs the << operation. Read more

Performs the <<= operation. Read more

Performs the <<= operation. Read more

Performs the <<= operation. Read more

Performs the <<= operation. Read more

Performs the <<= operation. Read more

Performs the <<= operation. Read more

The resulting type after applying the >> operator.

Performs the >> operation. Read more

The resulting type after applying the >> operator.

Performs the >> operation. Read more

The resulting type after applying the >> operator.

Performs the >> operation. Read more

The resulting type after applying the >> operator.

Performs the >> operation. Read more

The resulting type after applying the >> operator.

Performs the >> operation. Read more

The resulting type after applying the >> operator.

Performs the >> operation. Read more

Performs the >>= operation. Read more

Performs the >>= operation. Read more

Performs the >>= operation. Read more

Performs the >>= operation. Read more

Performs the >>= operation. Read more

Performs the >>= operation. Read more

32-bit signed integer vector Read more

64-bit signed integer vector Read more

32-bit unsigned integer vector

64-bit unsigned integer vector

Single-precision 32-bit floating point vector Read more

Double-precision 64-bit floating point vector Read more

Computes !self & other, may be more performant than the naive version

Bitmask corresponding to all lanes of the mask being truthy.

Returns an integer where each bit corresponds to the binary truthy-ness of each lane from the mask.

Computes !self & other, may be more performant than the naive version

Bitmask corresponding to all lanes of the mask being truthy.

Returns an integer where each bit corresponds to the binary truthy-ness of each lane from the mask.

Computes !self & other, may be more performant than the naive version

Bitmask corresponding to all lanes of the mask being truthy.

Returns an integer where each bit corresponds to the binary truthy-ness of each lane from the mask.

Computes !self & other, may be more performant than the naive version

Bitmask corresponding to all lanes of the mask being truthy.

Returns an integer where each bit corresponds to the binary truthy-ness of each lane from the mask.

Computes !self & other, may be more performant than the naive version

Bitmask corresponding to all lanes of the mask being truthy.

Returns an integer where each bit corresponds to the binary truthy-ness of each lane from the mask.

Computes !self & other, may be more performant than the naive version

Bitmask corresponding to all lanes of the mask being truthy.

Returns an integer where each bit corresponds to the binary truthy-ness of each lane from the mask.

Can convert to a signed integer faster than a regular cast, but may not provide correct results above a certain range. Read more

Can convert to an unsigned integer faster than a regular cast, but may not provide correct results above a certain range. Read more

Compute the horizontal sum of all elements

Compute the horizontal product of all elements

Fused multiply-add

Fused multiply-subtract

Fused negated multiply-add

Fused negated multiply-subtract

Fused multiply-add, with at worst precision equal to x * m + a

Fused multiply-subtract, with at worst precision equal to x * m - s

Fused negated multiply-add, with at worst precision equal to a - x * m

Fused negated multiply-subtract, with at worst precision equal to -x * m - s

Rounds downward towards negative infinity.

Rounds upwards towards positive infinity.

Rounds to the nearest representable integer.

Truncates any rational value towards zero

Calculates the square-root of each element in the vector. Read more

Compute the approximate reciprocal of the square root 1/sqrt(x)

Computes the approximate reciprocal/inverse of each value

Load half-precision floats and up-convert them into Self

Down-convert self into half-precision and store

Converts floating-point values to integer values that can be used for total equality, ordering and hashing. Read more

Same as self * sign.signum() or select(sign_bit(sign), -self, self), but more efficient where possible.

Returns the fractional part of a number (the part between 0 and ±1)

Clamps self to between 0 and 1

Can convert to a signed integer faster than a regular cast, but may not provide correct results above a certain range. Read more

Can convert to an unsigned integer faster than a regular cast, but may not provide correct results above a certain range. Read more

Compute the horizontal sum of all elements

Compute the horizontal product of all elements

Fused multiply-add

Fused multiply-subtract

Fused negated multiply-add

Fused negated multiply-subtract

Fused multiply-add, with at worst precision equal to x * m + a

Fused multiply-subtract, with at worst precision equal to x * m - s

Fused negated multiply-add, with at worst precision equal to a - x * m

Fused negated multiply-subtract, with at worst precision equal to -x * m - s

Rounds downward towards negative infinity.

Rounds upwards towards positive infinity.

Rounds to the nearest representable integer.

Truncates any rational value towards zero

Calculates the square-root of each element in the vector. Read more

Load half-precision floats and up-convert them into Self

Down-convert self into half-precision and store

Converts floating-point values to integer values that can be used for total equality, ordering and hashing. Read more

Same as self * sign.signum() or select(sign_bit(sign), -self, self), but more efficient where possible.

Returns the fractional part of a number (the part between 0 and ±1)

Compute the approximate reciprocal of the square root 1/sqrt(x)

Computes the approximate reciprocal/inverse of each value

Clamps self to between 0 and 1

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Saturating addition, will not wrap

Saturating subtraction, will not wrap

Sum all lanes together, wrapping the result if it can’t fit in T

Multiply all lanes together, wrapping the result if it can’t fit in T

Rotates the bits in each lane to the left (towards HSB) by the number of bits specified in the corresponding lane of cnt

Rotates the bits in each lane to the right (towards LSB) by the number of bits specified in the corresponding lane of cnt

Reverses the bits of each lane in the vector.

Counts the number of 1 bits in each lane of the vector.

Counts the number of leading zeros in each lane of the vector.

Counts the number of trailing zeros in each lane of the vector.

Rotates the bits in each lane to the left (towards HSB) by the number of bits specified in cnt

Rotates the bits in each lane to the right (towards LSB) by the number of bits specified in cnt

Counts the number of 0 bits in each lane of the vector.

Counts the number of leading ones in each lane of the vector.

Counts the number of trailing ones in each lane of the vector.

Saturating addition, will not wrap

Saturating subtraction, will not wrap

Sum all lanes together, wrapping the result if it can’t fit in T

Multiply all lanes together, wrapping the result if it can’t fit in T

Rotates the bits in each lane to the left (towards HSB) by the number of bits specified in the corresponding lane of cnt

Rotates the bits in each lane to the right (towards LSB) by the number of bits specified in the corresponding lane of cnt

Reverses the bits of each lane in the vector.

Counts the number of 1 bits in each lane of the vector.

Counts the number of leading zeros in each lane of the vector.

Counts the number of trailing zeros in each lane of the vector.

Rotates the bits in each lane to the left (towards HSB) by the number of bits specified in cnt

Rotates the bits in each lane to the right (towards LSB) by the number of bits specified in cnt

Counts the number of 0 bits in each lane of the vector.

Counts the number of leading ones in each lane of the vector.

Counts the number of trailing ones in each lane of the vector.

Saturating addition, will not wrap

Saturating subtraction, will not wrap

Sum all lanes together, wrapping the result if it can’t fit in T

Multiply all lanes together, wrapping the result if it can’t fit in T

Rotates the bits in each lane to the left (towards HSB) by the number of bits specified in the corresponding lane of cnt

Rotates the bits in each lane to the right (towards LSB) by the number of bits specified in the corresponding lane of cnt

Reverses the bits of each lane in the vector.

Counts the number of 1 bits in each lane of the vector.

Counts the number of leading zeros in each lane of the vector.

Counts the number of trailing zeros in each lane of the vector.

Rotates the bits in each lane to the left (towards HSB) by the number of bits specified in cnt

Rotates the bits in each lane to the right (towards LSB) by the number of bits specified in cnt

Counts the number of 0 bits in each lane of the vector.

Counts the number of leading ones in each lane of the vector.

Counts the number of trailing ones in each lane of the vector.

Saturating addition, will not wrap

Saturating subtraction, will not wrap

Sum all lanes together, wrapping the result if it can’t fit in T

Multiply all lanes together, wrapping the result if it can’t fit in T

Rotates the bits in each lane to the left (towards HSB) by the number of bits specified in the corresponding lane of cnt

Rotates the bits in each lane to the right (towards LSB) by the number of bits specified in the corresponding lane of cnt

Reverses the bits of each lane in the vector.

Counts the number of 1 bits in each lane of the vector.

Counts the number of leading zeros in each lane of the vector.

Counts the number of trailing zeros in each lane of the vector.

Rotates the bits in each lane to the left (towards HSB) by the number of bits specified in cnt

Rotates the bits in each lane to the right (towards LSB) by the number of bits specified in cnt

Counts the number of 0 bits in each lane of the vector.

Counts the number of leading ones in each lane of the vector.

Counts the number of trailing ones in each lane of the vector.

Minimum positive number

Returns -1 if less than zero, +1 otherwise.

Copies the sign from sign to self

Absolute value

For each lane, if the mask is true, negate the value.

On platforms with true “select” instructions, they often only check the HSB, which happens to correspond to the “sign” bit for both floats and twos-compliment integers, so we can save a cmpgt(self, zero) by calling this Read more

Test if positive, greater or equal to zero

Test if negative, less than zero

Minimum positive number

Returns -1 if less than zero, +1 otherwise.

Copies the sign from sign to self

Absolute value

For each lane, if the mask is true, negate the value.

On platforms with true “select” instructions, they often only check the HSB, which happens to correspond to the “sign” bit for both floats and twos-compliment integers, so we can save a cmpgt(self, zero) by calling this Read more

Test if positive, greater or equal to zero

Test if negative, less than zero

Minimum positive number

Absolute value

Test if positive, greater or equal to zero

Test if negative, less than zero

On platforms with true “select” instructions, they often only check the HSB, which happens to correspond to the “sign” bit for both floats and twos-compliment integers, so we can save a cmpgt(self, zero) by calling this Read more

For each lane, if the mask is true, negate the value.

Copies the sign from sign to self

Returns -1 if less than zero, +1 otherwise.

Minimum positive number

Absolute value

Test if positive, greater or equal to zero

Test if negative, less than zero

On platforms with true “select” instructions, they often only check the HSB, which happens to correspond to the “sign” bit for both floats and twos-compliment integers, so we can save a cmpgt(self, zero) by calling this Read more

For each lane, if the mask is true, negate the value.

Copies the sign from sign to self

Returns -1 if less than zero, +1 otherwise.

Returns next_power_of_two(x) - 1

Returns floor(log2(x)) + 1

Returns a mask wherein if a lane was a power of two, the corresponding mask lane will be truthy

Returns next_power_of_two(x) - 1

Returns floor(log2(x)) + 1

Returns a mask wherein if a lane was a power of two, the corresponding mask lane will be truthy

Returns a vector where the first lane is zero, and each subsequent lane is one plus the previous lane. Read more

Maximum representable valid value

Minimum representable valid value (may be negative)

Per-lane, select the minimum value

Per-lane, select the maximum value

Find the minimum value across all lanes

Find the maximum value across all lanes

Loads values from arbitrary addresses in memory based on offsets from a base address.

Stores values to arbitrary addresses in memory based on offsets from a base address.

Add self and value only if the corresponding lane in the given mask is true.

Subtracts value from self only if the corresponding lane in the given mask is true.

Returns a vector where the first lane is zero, and each subsequent lane is one plus the previous lane. Read more

Maximum representable valid value

Minimum representable valid value (may be negative)

Per-lane, select the minimum value

Per-lane, select the maximum value

Find the minimum value across all lanes

Find the maximum value across all lanes

Loads values from arbitrary addresses in memory based on offsets from a base address.

Stores values to arbitrary addresses in memory based on offsets from a base address.

Add self and value only if the corresponding lane in the given mask is true.

Subtracts value from self only if the corresponding lane in the given mask is true.

Returns a vector where the first lane is zero, and each subsequent lane is one plus the previous lane. Read more

Per-lane, select the minimum value

Per-lane, select the maximum value

Maximum representable valid value

Minimum representable valid value (may be negative)

Find the minimum value across all lanes

Find the maximum value across all lanes

Loads values from arbitrary addresses in memory based on offsets from a base address.

Stores values to arbitrary addresses in memory based on offsets from a base address.

Add self and value only if the corresponding lane in the given mask is true.

Subtracts value from self only if the corresponding lane in the given mask is true.

Returns a vector where the first lane is zero, and each subsequent lane is one plus the previous lane. Read more

Maximum representable valid value

Minimum representable valid value (may be negative)

Find the minimum value across all lanes

Find the maximum value across all lanes

Loads values from arbitrary addresses in memory based on offsets from a base address.

Stores values to arbitrary addresses in memory based on offsets from a base address.

Per-lane, select the minimum value

Per-lane, select the maximum value

Add self and value only if the corresponding lane in the given mask is true.

Subtracts value from self only if the corresponding lane in the given mask is true.

Returns a vector where the first lane is zero, and each subsequent lane is one plus the previous lane. Read more

Per-lane, select the minimum value

Per-lane, select the maximum value

Maximum representable valid value

Minimum representable valid value (may be negative)

Find the minimum value across all lanes

Find the maximum value across all lanes

Loads values from arbitrary addresses in memory based on offsets from a base address.

Stores values to arbitrary addresses in memory based on offsets from a base address.

Add self and value only if the corresponding lane in the given mask is true.

Subtracts value from self only if the corresponding lane in the given mask is true.

Returns a vector where the first lane is zero, and each subsequent lane is one plus the previous lane. Read more

Maximum representable valid value

Minimum representable valid value (may be negative)

Find the minimum value across all lanes

Find the maximum value across all lanes

Loads values from arbitrary addresses in memory based on offsets from a base address.

Stores values to arbitrary addresses in memory based on offsets from a base address.

Per-lane, select the minimum value

Per-lane, select the maximum value

Add self and value only if the corresponding lane in the given mask is true.

Subtracts value from self only if the corresponding lane in the given mask is true.

Creates a new vector with all lanes set to the given value

Returns a vector containing possibly undefined or uninitialized data

Loads a vector from the given aligned address. Read more

Loads a vector from a given address (does not have to be aligned). Read more

Stores a vector to the given aligned address. Read more

Stores a vector to a given address (does not have to be aligned). Read more

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Shuffles between two vectors based on the static indices provided in INDICES Read more

Like Self::gather, but individual lanes are loaded based on the corresponding lane of the mask. If the mask lane is truthy, the source lane is loaded, otherwise it’s given the lane value from default. Read more

Size of element type in bytes

Same as splat, but is more convenient for initializing with data that can be converted into the element type.

Splats a value by casting to the element type via value as Element. Read more

Maps each lane of the vector to a new vector using a scalar function

Shuffles between two vectors based on the static indices provided in INDICES Read more

Shuffles between two vectors based on the dynamic indices provided. Read more

Like Self::shuffle_dyn, but does not check for valid indices or input length. Read more

Reverses the elements in the vector

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Loads a vector from a slice that has an alignment of at least Self::ALIGNMENT Read more

Loads a vector from a slice Read more

Stores a vector into a slice with an alignment of at least Self::ALIGNMENT Read more

Stores a vector into a slice. Read more

Like self.scatter(), but individual lanes are stored based on the corresponding lane of the mask. If the mask lane is truthy, the destination lane is written to, otherwise it is a no-op. Read more

Creates a new vector with all lanes set to the given value

Returns a vector containing possibly undefined or uninitialized data

Loads a vector from the given aligned address. Read more

Loads a vector from a given address (does not have to be aligned). Read more

Stores a vector to the given aligned address. Read more

Stores a vector to a given address (does not have to be aligned). Read more

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Shuffles between two vectors based on the static indices provided in INDICES Read more

Like Self::gather, but individual lanes are loaded based on the corresponding lane of the mask. If the mask lane is truthy, the source lane is loaded, otherwise it’s given the lane value from default. Read more

Size of element type in bytes

Same as splat, but is more convenient for initializing with data that can be converted into the element type.

Splats a value by casting to the element type via value as Element. Read more

Maps each lane of the vector to a new vector using a scalar function

Shuffles between two vectors based on the static indices provided in INDICES Read more

Shuffles between two vectors based on the dynamic indices provided. Read more

Like Self::shuffle_dyn, but does not check for valid indices or input length. Read more

Reverses the elements in the vector

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Loads a vector from a slice that has an alignment of at least Self::ALIGNMENT Read more

Loads a vector from a slice Read more

Stores a vector into a slice with an alignment of at least Self::ALIGNMENT Read more

Stores a vector into a slice. Read more

Like self.scatter(), but individual lanes are stored based on the corresponding lane of the mask. If the mask lane is truthy, the destination lane is written to, otherwise it is a no-op. Read more

Creates a new vector with all lanes set to the given value

Returns a vector containing possibly undefined or uninitialized data

Loads a vector from the given aligned address. Read more

Loads a vector from a given address (does not have to be aligned). Read more

Stores a vector to the given aligned address. Read more

Stores a vector to a given address (does not have to be aligned). Read more

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Shuffles between two vectors based on the static indices provided in INDICES Read more

Like Self::gather, but individual lanes are loaded based on the corresponding lane of the mask. If the mask lane is truthy, the source lane is loaded, otherwise it’s given the lane value from default. Read more

Size of element type in bytes

Same as splat, but is more convenient for initializing with data that can be converted into the element type.

Splats a value by casting to the element type via value as Element. Read more

Maps each lane of the vector to a new vector using a scalar function

Shuffles between two vectors based on the static indices provided in INDICES Read more

Shuffles between two vectors based on the dynamic indices provided. Read more

Like Self::shuffle_dyn, but does not check for valid indices or input length. Read more

Reverses the elements in the vector

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Loads a vector from a slice that has an alignment of at least Self::ALIGNMENT Read more

Loads a vector from a slice Read more

Stores a vector into a slice with an alignment of at least Self::ALIGNMENT Read more

Stores a vector into a slice. Read more

Like self.scatter(), but individual lanes are stored based on the corresponding lane of the mask. If the mask lane is truthy, the destination lane is written to, otherwise it is a no-op. Read more

Creates a new vector with all lanes set to the given value

Returns a vector containing possibly undefined or uninitialized data

Loads a vector from the given aligned address. Read more

Stores a vector to the given aligned address. Read more

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Shuffles between two vectors based on the static indices provided in INDICES Read more

Like Self::gather, but individual lanes are loaded based on the corresponding lane of the mask. If the mask lane is truthy, the source lane is loaded, otherwise it’s given the lane value from default. Read more

Size of element type in bytes

Same as splat, but is more convenient for initializing with data that can be converted into the element type.

Splats a value by casting to the element type via value as Element. Read more

Maps each lane of the vector to a new vector using a scalar function

Shuffles between two vectors based on the static indices provided in INDICES Read more

Shuffles between two vectors based on the dynamic indices provided. Read more

Like Self::shuffle_dyn, but does not check for valid indices or input length. Read more

Reverses the elements in the vector

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Loads a vector from a slice that has an alignment of at least Self::ALIGNMENT Read more

Loads a vector from a slice Read more

Stores a vector into a slice with an alignment of at least Self::ALIGNMENT Read more

Stores a vector into a slice. Read more

Loads a vector from a given address (does not have to be aligned). Read more

Stores a vector to a given address (does not have to be aligned). Read more

Like self.scatter(), but individual lanes are stored based on the corresponding lane of the mask. If the mask lane is truthy, the destination lane is written to, otherwise it is a no-op. Read more

Creates a new vector with all lanes set to the given value

Returns a vector containing possibly undefined or uninitialized data

Loads a vector from the given aligned address. Read more

Loads a vector from a given address (does not have to be aligned). Read more

Stores a vector to the given aligned address. Read more

Stores a vector to a given address (does not have to be aligned). Read more

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Shuffles between two vectors based on the static indices provided in INDICES Read more

Like Self::gather, but individual lanes are loaded based on the corresponding lane of the mask. If the mask lane is truthy, the source lane is loaded, otherwise it’s given the lane value from default. Read more

Size of element type in bytes

Same as splat, but is more convenient for initializing with data that can be converted into the element type.

Splats a value by casting to the element type via value as Element. Read more

Maps each lane of the vector to a new vector using a scalar function

Shuffles between two vectors based on the static indices provided in INDICES Read more

Shuffles between two vectors based on the dynamic indices provided. Read more

Like Self::shuffle_dyn, but does not check for valid indices or input length. Read more

Reverses the elements in the vector

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Loads a vector from a slice that has an alignment of at least Self::ALIGNMENT Read more

Loads a vector from a slice Read more

Stores a vector into a slice with an alignment of at least Self::ALIGNMENT Read more

Stores a vector into a slice. Read more

Like self.scatter(), but individual lanes are stored based on the corresponding lane of the mask. If the mask lane is truthy, the destination lane is written to, otherwise it is a no-op. Read more

Creates a new vector with all lanes set to the given value

Returns a vector containing possibly undefined or uninitialized data

Loads a vector from the given aligned address. Read more

Stores a vector to the given aligned address. Read more

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Shuffles between two vectors based on the static indices provided in INDICES Read more

Like Self::gather, but individual lanes are loaded based on the corresponding lane of the mask. If the mask lane is truthy, the source lane is loaded, otherwise it’s given the lane value from default. Read more

Size of element type in bytes

Same as splat, but is more convenient for initializing with data that can be converted into the element type.

Splats a value by casting to the element type via value as Element. Read more

Maps each lane of the vector to a new vector using a scalar function

Shuffles between two vectors based on the static indices provided in INDICES Read more

Shuffles between two vectors based on the dynamic indices provided. Read more

Like Self::shuffle_dyn, but does not check for valid indices or input length. Read more

Reverses the elements in the vector

Extracts an element at the given lane index. Read more

Returns a new vector with the given value at the given lane index. Read more

Loads a vector from a slice that has an alignment of at least Self::ALIGNMENT Read more

Loads a vector from a slice Read more

Stores a vector into a slice with an alignment of at least Self::ALIGNMENT Read more

Stores a vector into a slice. Read more

Loads a vector from a given address (does not have to be aligned). Read more

Stores a vector to a given address (does not have to be aligned). Read more

Like self.scatter(), but individual lanes are stored based on the corresponding lane of the mask. If the mask lane is truthy, the destination lane is written to, otherwise it is a no-op. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

Casts one vector to another, performing proper numeric conversions on each element. Read more

Casts one mask to another, not caring about the value types, but rather expanding or truncating the mask bits as efficiently as possible. Read more

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.