Type Definition packed_simd_2::u32x4[][src]

type u32x4 = Simd<[u32; 4]>;
Expand description

A 128-bit vector with 4 u32 lanes.

Implementations

impl u32x4[src]

pub const fn new(x0: u32, x1: u32, x2: u32, x3: u32) -> Self[src]

Creates a new instance with each vector elements initialized with the provided values.

pub const fn lanes() -> usize[src]

Returns the number of vector lanes.

pub const fn splat(value: u32) -> Self[src]

Constructs a new instance with each element initialized to value.

pub fn extract(self, index: usize) -> u32[src]

Extracts the value at index.

Panics

If index >= Self::lanes().

pub unsafe fn extract_unchecked(self, index: usize) -> u32[src]

Extracts the value at index.

Safety

If index >= Self::lanes() the behavior is undefined.

#[must_use = "replace does not modify the original value - \ it returns a new vector with the value at `index` \ replaced by `new_value`d"]
pub fn replace(self, index: usize, new_value: u32) -> Self
[src]

Returns a new vector where the value at index is replaced by new_value.

Panics

If index >= Self::lanes().

#[must_use = "replace_unchecked does not modify the original value - \ it returns a new vector with the value at `index` \ replaced by `new_value`d"]
pub unsafe fn replace_unchecked(self, index: usize, new_value: u32) -> Self
[src]

Returns a new vector where the value at index is replaced by new_value.

Safety

If index >= Self::lanes() the behavior is undefined.

impl u32x4[src]

pub fn rotate_left(self, n: u32x4) -> u32x4[src]

Shifts the bits of each lane to the left by the specified amount in the corresponding lane of n, wrapping the truncated bits to the end of the resulting integer.

Note: this is neither the same operation as << nor equivalent to slice::rotate_left.

pub fn rotate_right(self, n: u32x4) -> u32x4[src]

Shifts the bits of each lane to the right by the specified amount in the corresponding lane of n, wrapping the truncated bits to the beginning of the resulting integer.

Note: this is neither the same operation as << nor equivalent to slice::rotate_left.

impl u32x4[src]

pub fn min(self, x: Self) -> Self[src]

Minimum of two vectors.

Returns a new vector containing the minimum value of each of the input vector lanes.

pub fn max(self, x: Self) -> Self[src]

Maximum of two vectors.

Returns a new vector containing the maximum value of each of the input vector lanes.

impl u32x4[src]

pub fn wrapping_sum(self) -> u32[src]

Horizontal wrapping sum of the vector elements.

The intrinsic performs a tree-reduction of the vector elements. That is, for an 8 element vector:

((x0 + x1) + (x2 + x3)) + ((x4 + x5) + (x6 + x7))

If an operation overflows it returns the mathematical result modulo 2^n where n is the number of times it overflows.

pub fn wrapping_product(self) -> u32[src]

Horizontal wrapping product of the vector elements.

The intrinsic performs a tree-reduction of the vector elements. That is, for an 8 element vector:

((x0 * x1) * (x2 * x3)) * ((x4 * x5) * (x6 * x7))

If an operation overflows it returns the mathematical result modulo 2^n where n is the number of times it overflows.

impl u32x4[src]

pub fn max_element(self) -> u32[src]

Largest vector element value.

pub fn min_element(self) -> u32[src]

Smallest vector element value.

impl u32x4[src]

pub fn and(self) -> u32[src]

Lane-wise bitwise and of the vector elements.

Note: if the vector has one lane, the first element of the vector is returned.

pub fn or(self) -> u32[src]

Lane-wise bitwise or of the vector elements.

Note: if the vector has one lane, the first element of the vector is returned.

pub fn xor(self) -> u32[src]

Lane-wise bitwise xor of the vector elements.

Note: if the vector has one lane, the first element of the vector is returned.

impl u32x4[src]

pub fn from_slice_aligned(slice: &[u32]) -> Self[src]

Instantiates a new vector with the values of the slice.

Panics

If slice.len() < Self::lanes() or &slice[0] is not aligned to an align_of::<Self>() boundary.

pub fn from_slice_unaligned(slice: &[u32]) -> Self[src]

Instantiates a new vector with the values of the slice.

Panics

If slice.len() < Self::lanes().

pub unsafe fn from_slice_aligned_unchecked(slice: &[u32]) -> Self[src]

Instantiates a new vector with the values of the slice.

Safety

If slice.len() < Self::lanes() or &slice[0] is not aligned to an align_of::<Self>() boundary, the behavior is undefined.

pub unsafe fn from_slice_unaligned_unchecked(slice: &[u32]) -> Self[src]

Instantiates a new vector with the values of the slice.

Safety

If slice.len() < Self::lanes() the behavior is undefined.

impl u32x4[src]

pub fn write_to_slice_aligned(self, slice: &mut [u32])[src]

Writes the values of the vector to the slice.

Panics

If slice.len() < Self::lanes() or &slice[0] is not aligned to an align_of::<Self>() boundary.

pub fn write_to_slice_unaligned(self, slice: &mut [u32])[src]

Writes the values of the vector to the slice.

Panics

If slice.len() < Self::lanes().

pub unsafe fn write_to_slice_aligned_unchecked(self, slice: &mut [u32])[src]

Writes the values of the vector to the slice.

Safety

If slice.len() < Self::lanes() or &slice[0] is not aligned to an align_of::<Self>() boundary, the behavior is undefined.

pub unsafe fn write_to_slice_unaligned_unchecked(self, slice: &mut [u32])[src]

Writes the values of the vector to the slice.

Safety

If slice.len() < Self::lanes() the behavior is undefined.

impl u32x4[src]

pub fn swap_bytes(self) -> Self[src]

Reverses the byte order of the vector.

pub fn to_le(self) -> Self[src]

Converts self to little endian from the target’s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

pub fn to_be(self) -> Self[src]

Converts self to big endian from the target’s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

pub fn from_le(x: Self) -> Self[src]

Converts a vector from little endian to the target’s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

pub fn from_be(x: Self) -> Self[src]

Converts a vector from big endian to the target’s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

impl u32x4[src]

pub fn count_ones(self) -> Self[src]

Returns the number of ones in the binary representation of the lanes of self.

pub fn count_zeros(self) -> Self[src]

Returns the number of zeros in the binary representation of the lanes of self.

pub fn leading_zeros(self) -> Self[src]

Returns the number of leading zeros in the binary representation of the lanes of self.

pub fn trailing_zeros(self) -> Self[src]

Returns the number of trailing zeros in the binary representation of the lanes of self.

impl u32x4[src]

pub fn shuffle1_dyn<I>(self, indices: I) -> Self where
    Self: Shuffle1Dyn<Indices = I>, 
[src]

Shuffle vector elements according to indices.

impl u32x4[src]

pub fn eq(self, other: Self) -> m32x4[src]

Lane-wise equality comparison.

pub fn ne(self, other: Self) -> m32x4[src]

Lane-wise inequality comparison.

pub fn lt(self, other: Self) -> m32x4[src]

Lane-wise less-than comparison.

pub fn le(self, other: Self) -> m32x4[src]

Lane-wise less-than-or-equals comparison.

pub fn gt(self, other: Self) -> m32x4[src]

Lane-wise greater-than comparison.

pub fn ge(self, other: Self) -> m32x4[src]

Lane-wise greater-than-or-equals comparison.

impl u32x4[src]

pub fn partial_lex_ord(&self) -> LexicographicallyOrdered<u32x4>[src]

Returns a wrapper that implements PartialOrd.

impl u32x4[src]

pub fn lex_ord(&self) -> LexicographicallyOrdered<u32x4>[src]

Returns a wrapper that implements Ord.

impl u32x4[src]

pub fn bitmask(self) -> u8[src]

Creates a bitmask with the MSB of each vector lane.

If the vector has less than 8 lanes, the bits that do not correspond to any vector lanes are cleared.

Trait Implementations

impl Add<Simd<[u32; 4]>> for u32x4[src]

type Output = Self

The resulting type after applying the + operator.

fn add(self, other: Self) -> Self[src]

Performs the + operation. Read more

impl Add<u32> for u32x4[src]

type Output = Self

The resulting type after applying the + operator.

fn add(self, other: u32) -> Self[src]

Performs the + operation. Read more

impl AddAssign<Simd<[u32; 4]>> for u32x4[src]

fn add_assign(&mut self, other: Self)[src]

Performs the += operation. Read more

impl AddAssign<u32> for u32x4[src]

fn add_assign(&mut self, other: u32)[src]

Performs the += operation. Read more

impl Binary for u32x4[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter.

impl BitAnd<Simd<[u32; 4]>> for u32x4[src]

type Output = Self

The resulting type after applying the & operator.

fn bitand(self, other: Self) -> Self[src]

Performs the & operation. Read more

impl BitAnd<u32> for u32x4[src]

type Output = Self

The resulting type after applying the & operator.

fn bitand(self, other: u32) -> Self[src]

Performs the & operation. Read more

impl BitAndAssign<Simd<[u32; 4]>> for u32x4[src]

fn bitand_assign(&mut self, other: Self)[src]

Performs the &= operation. Read more

impl BitAndAssign<u32> for u32x4[src]

fn bitand_assign(&mut self, other: u32)[src]

Performs the &= operation. Read more

impl BitOr<Simd<[u32; 4]>> for u32x4[src]

type Output = Self

The resulting type after applying the | operator.

fn bitor(self, other: Self) -> Self[src]

Performs the | operation. Read more

impl BitOr<u32> for u32x4[src]

type Output = Self

The resulting type after applying the | operator.

fn bitor(self, other: u32) -> Self[src]

Performs the | operation. Read more

impl BitOrAssign<Simd<[u32; 4]>> for u32x4[src]

fn bitor_assign(&mut self, other: Self)[src]

Performs the |= operation. Read more

impl BitOrAssign<u32> for u32x4[src]

fn bitor_assign(&mut self, other: u32)[src]

Performs the |= operation. Read more

impl BitXor<Simd<[u32; 4]>> for u32x4[src]

type Output = Self

The resulting type after applying the ^ operator.

fn bitxor(self, other: Self) -> Self[src]

Performs the ^ operation. Read more

impl BitXor<u32> for u32x4[src]

type Output = Self

The resulting type after applying the ^ operator.

fn bitxor(self, other: u32) -> Self[src]

Performs the ^ operation. Read more

impl BitXorAssign<Simd<[u32; 4]>> for u32x4[src]

fn bitxor_assign(&mut self, other: Self)[src]

Performs the ^= operation. Read more

impl BitXorAssign<u32> for u32x4[src]

fn bitxor_assign(&mut self, other: u32)[src]

Performs the ^= operation. Read more

impl Debug for u32x4[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Default for u32x4[src]

fn default() -> Self[src]

Returns the “default value” for a type. Read more

impl Div<Simd<[u32; 4]>> for u32x4[src]

type Output = Self

The resulting type after applying the / operator.

fn div(self, other: Self) -> Self[src]

Performs the / operation. Read more

impl Div<u32> for u32x4[src]

type Output = Self

The resulting type after applying the / operator.

fn div(self, other: u32) -> Self[src]

Performs the / operation. Read more

impl DivAssign<Simd<[u32; 4]>> for u32x4[src]

fn div_assign(&mut self, other: Self)[src]

Performs the /= operation. Read more

impl DivAssign<u32> for u32x4[src]

fn div_assign(&mut self, other: u32)[src]

Performs the /= operation. Read more

impl From<[u32; 4]> for u32x4[src]

fn from(array: [u32; 4]) -> Self[src]

Performs the conversion.

impl From<Simd<[u16; 4]>> for u32x4[src]

fn from(source: u16x4) -> Self[src]

Performs the conversion.

impl From<Simd<[u8; 4]>> for u32x4[src]

fn from(source: u8x4) -> Self[src]

Performs the conversion.

impl FromBits<Simd<[f32; 4]>> for u32x4[src]

fn from_bits(x: f32x4) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[f64; 2]>> for u32x4[src]

fn from_bits(x: f64x2) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[i128; 1]>> for u32x4[src]

fn from_bits(x: i128x1) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[i16; 8]>> for u32x4[src]

fn from_bits(x: i16x8) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[i32; 4]>> for u32x4[src]

fn from_bits(x: i32x4) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[i64; 2]>> for u32x4[src]

fn from_bits(x: i64x2) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[i8; 16]>> for u32x4[src]

fn from_bits(x: i8x16) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[m128; 1]>> for u32x4[src]

fn from_bits(x: m128x1) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[m16; 8]>> for u32x4[src]

fn from_bits(x: m16x8) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[m32; 4]>> for u32x4[src]

fn from_bits(x: m32x4) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[m64; 2]>> for u32x4[src]

fn from_bits(x: m64x2) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[m8; 16]>> for u32x4[src]

fn from_bits(x: m8x16) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[u128; 1]>> for u32x4[src]

fn from_bits(x: u128x1) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[u16; 8]>> for u32x4[src]

fn from_bits(x: u16x8) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[u64; 2]>> for u32x4[src]

fn from_bits(x: u64x2) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<Simd<[u8; 16]>> for u32x4[src]

fn from_bits(x: u8x16) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<__m128> for u32x4[src]

fn from_bits(x: __m128) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<__m128d> for u32x4[src]

fn from_bits(x: __m128d) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromBits<__m128i> for u32x4[src]

fn from_bits(x: __m128i) -> Self[src]

Safe lossless bitwise transmute from T to Self.

impl FromCast<Simd<[f32; 4]>> for u32x4[src]

fn from_cast(x: f32x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[f64; 4]>> for u32x4[src]

fn from_cast(x: f64x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[i128; 4]>> for u32x4[src]

fn from_cast(x: i128x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[i16; 4]>> for u32x4[src]

fn from_cast(x: i16x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[i32; 4]>> for u32x4[src]

fn from_cast(x: i32x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[i64; 4]>> for u32x4[src]

fn from_cast(x: i64x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[i8; 4]>> for u32x4[src]

fn from_cast(x: i8x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[isize; 4]>> for u32x4[src]

fn from_cast(x: isizex4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[m128; 4]>> for u32x4[src]

fn from_cast(x: m128x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[m16; 4]>> for u32x4[src]

fn from_cast(x: m16x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[m32; 4]>> for u32x4[src]

fn from_cast(x: m32x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[m64; 4]>> for u32x4[src]

fn from_cast(x: m64x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[m8; 4]>> for u32x4[src]

fn from_cast(x: m8x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[msize; 4]>> for u32x4[src]

fn from_cast(x: msizex4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[u128; 4]>> for u32x4[src]

fn from_cast(x: u128x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[u16; 4]>> for u32x4[src]

fn from_cast(x: u16x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[u64; 4]>> for u32x4[src]

fn from_cast(x: u64x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[u8; 4]>> for u32x4[src]

fn from_cast(x: u8x4) -> Self[src]

Numeric cast from T to Self.

impl FromCast<Simd<[usize; 4]>> for u32x4[src]

fn from_cast(x: usizex4) -> Self[src]

Numeric cast from T to Self.

impl Hash for u32x4[src]

fn hash<H: Hasher>(&self, state: &mut H)[src]

Feeds this value into the given Hasher. Read more

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

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

impl LowerHex for u32x4[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter.

impl Mul<Simd<[u32; 4]>> for u32x4[src]

type Output = Self

The resulting type after applying the * operator.

fn mul(self, other: Self) -> Self[src]

Performs the * operation. Read more

impl Mul<u32> for u32x4[src]

type Output = Self

The resulting type after applying the * operator.

fn mul(self, other: u32) -> Self[src]

Performs the * operation. Read more

impl MulAssign<Simd<[u32; 4]>> for u32x4[src]

fn mul_assign(&mut self, other: Self)[src]

Performs the *= operation. Read more

impl MulAssign<u32> for u32x4[src]

fn mul_assign(&mut self, other: u32)[src]

Performs the *= operation. Read more

impl Not for u32x4[src]

type Output = Self

The resulting type after applying the ! operator.

fn not(self) -> Self[src]

Performs the unary ! operation. Read more

impl Octal for u32x4[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter.

impl PartialEq<Simd<[u32; 4]>> for u32x4[src]

fn eq(&self, other: &Self) -> bool[src]

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

fn ne(&self, other: &Self) -> bool[src]

This method tests for !=.

impl<'a> Product<&'a Simd<[u32; 4]>> for u32x4[src]

fn product<I: Iterator<Item = &'a u32x4>>(iter: I) -> u32x4[src]

Method which takes an iterator and generates Self from the elements by multiplying the items. Read more

impl Product<Simd<[u32; 4]>> for u32x4[src]

fn product<I: Iterator<Item = u32x4>>(iter: I) -> u32x4[src]

Method which takes an iterator and generates Self from the elements by multiplying the items. Read more

impl Rem<Simd<[u32; 4]>> for u32x4[src]

type Output = Self

The resulting type after applying the % operator.

fn rem(self, other: Self) -> Self[src]

Performs the % operation. Read more

impl Rem<u32> for u32x4[src]

type Output = Self

The resulting type after applying the % operator.

fn rem(self, other: u32) -> Self[src]

Performs the % operation. Read more

impl RemAssign<Simd<[u32; 4]>> for u32x4[src]

fn rem_assign(&mut self, other: Self)[src]

Performs the %= operation. Read more

impl RemAssign<u32> for u32x4[src]

fn rem_assign(&mut self, other: u32)[src]

Performs the %= operation. Read more

impl Shl<Simd<[u32; 4]>> for u32x4[src]

type Output = Self

The resulting type after applying the << operator.

fn shl(self, other: Self) -> Self[src]

Performs the << operation. Read more

impl Shl<u32> for u32x4[src]

type Output = Self

The resulting type after applying the << operator.

fn shl(self, other: u32) -> Self[src]

Performs the << operation. Read more

impl ShlAssign<Simd<[u32; 4]>> for u32x4[src]

fn shl_assign(&mut self, other: Self)[src]

Performs the <<= operation. Read more

impl ShlAssign<u32> for u32x4[src]

fn shl_assign(&mut self, other: u32)[src]

Performs the <<= operation. Read more

impl Shr<Simd<[u32; 4]>> for u32x4[src]

type Output = Self

The resulting type after applying the >> operator.

fn shr(self, other: Self) -> Self[src]

Performs the >> operation. Read more

impl Shr<u32> for u32x4[src]

type Output = Self

The resulting type after applying the >> operator.

fn shr(self, other: u32) -> Self[src]

Performs the >> operation. Read more

impl ShrAssign<Simd<[u32; 4]>> for u32x4[src]

fn shr_assign(&mut self, other: Self)[src]

Performs the >>= operation. Read more

impl ShrAssign<u32> for u32x4[src]

fn shr_assign(&mut self, other: u32)[src]

Performs the >>= operation. Read more

impl Simd for u32x4[src]

type Element = u32

Element type of the SIMD vector

const LANES: usize[src]

The number of elements in the SIMD vector.

type LanesType = [u32; 4]

The type: [u32; Self::N].

impl Sub<Simd<[u32; 4]>> for u32x4[src]

type Output = Self

The resulting type after applying the - operator.

fn sub(self, other: Self) -> Self[src]

Performs the - operation. Read more

impl Sub<u32> for u32x4[src]

type Output = Self

The resulting type after applying the - operator.

fn sub(self, other: u32) -> Self[src]

Performs the - operation. Read more

impl SubAssign<Simd<[u32; 4]>> for u32x4[src]

fn sub_assign(&mut self, other: Self)[src]

Performs the -= operation. Read more

impl SubAssign<u32> for u32x4[src]

fn sub_assign(&mut self, other: u32)[src]

Performs the -= operation. Read more

impl<'a> Sum<&'a Simd<[u32; 4]>> for u32x4[src]

fn sum<I: Iterator<Item = &'a u32x4>>(iter: I) -> u32x4[src]

Method which takes an iterator and generates Self from the elements by “summing up” the items. Read more

impl Sum<Simd<[u32; 4]>> for u32x4[src]

fn sum<I: Iterator<Item = u32x4>>(iter: I) -> u32x4[src]

Method which takes an iterator and generates Self from the elements by “summing up” the items. Read more

impl UpperHex for u32x4[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter.

impl Eq for u32x4[src]