wide

Struct i32x4

Source
#[repr(C, align(16))]
pub struct i32x4 { /* private fields */ }

Implementations§

Source§

impl i32x4

Source

pub const ONE: i32x4 = _

Source

pub const ZERO: i32x4 = _

Source

pub const MAX: i32x4 = _

Source

pub const MIN: i32x4 = _

Source

pub const LANES: u16 = 4u16

The number of lanes in this SIMD vector.

Source

pub const BITS: u16 = 128u16

The size of this SIMD vector in bits.

Source§

impl i32x4

Source

pub const fn new(array: [i32; 4]) -> Self

Source

pub fn blend(self, t: Self, f: Self) -> Self

Source

pub fn mul_widen(self, rhs: Self) -> i64x4

Multiplies corresponding 32 bit lanes and returns the 64 bit result on the corresponding lanes.

Effectively does two multiplies on 128 bit platforms, but is easier to use than wrapping mul_widen_i32_odd_m128i individually.

Source

pub fn abs(self) -> Self

Source

pub fn unsigned_abs(self) -> u32x4

Source

pub fn reduce_add(self) -> i32

horizontal add of all the elements of the vector

Source

pub fn reduce_max(self) -> i32

horizontal max of all the elements of the vector

Source

pub fn reduce_min(self) -> i32

horizontal min of all the elements of the vector

Source

pub fn max(self, rhs: Self) -> Self

Source

pub fn min(self, rhs: Self) -> Self

Source

pub fn round_float(self) -> f32x4

Source

pub fn move_mask(self) -> i32

Source

pub fn any(self) -> bool

Source

pub fn all(self) -> bool

Source

pub fn none(self) -> bool

Source

pub fn to_array(self) -> [i32; 4]

Source

pub fn as_array_ref(&self) -> &[i32; 4]

Source

pub fn as_array_mut(&mut self) -> &mut [i32; 4]

Source§

impl i32x4

Source

pub fn splat(elem: i32) -> i32x4

Trait Implementations§

Source§

impl Add<&i32x4> for i32x4

Source§

type Output = i32x4

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &Self) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<i32> for i32x4

Source§

type Output = i32x4

The resulting type after applying the + operator.
Source§

fn add(self, rhs: i32) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<i32x4> for i32

Source§

type Output = i32x4

The resulting type after applying the + operator.
Source§

fn add(self, rhs: i32x4) -> Self::Output

Performs the + operation. Read more
Source§

impl Add for i32x4

Source§

type Output = i32x4

The resulting type after applying the + operator.
Source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
Source§

impl AddAssign<&i32x4> for i32x4

Source§

fn add_assign(&mut self, rhs: &Self)

Performs the += operation. Read more
Source§

impl AddAssign for i32x4

Source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
Source§

impl Binary for i32x4

Source§

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

Formats the value using the given formatter. Read more
Source§

impl BitAnd<&i32x4> for i32x4

Source§

type Output = i32x4

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &Self) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd for i32x4

Source§

type Output = i32x4

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: Self) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAndAssign<&i32x4> for i32x4

Source§

fn bitand_assign(&mut self, rhs: &Self)

Performs the &= operation. Read more
Source§

impl BitAndAssign for i32x4

Source§

fn bitand_assign(&mut self, rhs: Self)

Performs the &= operation. Read more
Source§

impl BitOr<&i32x4> for i32x4

Source§

type Output = i32x4

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &Self) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr for i32x4

Source§

type Output = i32x4

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: Self) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOrAssign<&i32x4> for i32x4

Source§

fn bitor_assign(&mut self, rhs: &Self)

Performs the |= operation. Read more
Source§

impl BitOrAssign for i32x4

Source§

fn bitor_assign(&mut self, rhs: Self)

Performs the |= operation. Read more
Source§

impl BitXor<&i32x4> for i32x4

Source§

type Output = i32x4

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &Self) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor for i32x4

Source§

type Output = i32x4

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: Self) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXorAssign<&i32x4> for i32x4

Source§

fn bitxor_assign(&mut self, rhs: &Self)

Performs the ^= operation. Read more
Source§

impl BitXorAssign for i32x4

Source§

fn bitxor_assign(&mut self, rhs: Self)

Performs the ^= operation. Read more
Source§

impl Clone for i32x4

Source§

fn clone(&self) -> i32x4

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl CmpEq for i32x4

Source§

type Output = i32x4

Source§

fn cmp_eq(self, rhs: Self) -> Self::Output

Source§

impl CmpGt for i32x4

Source§

type Output = i32x4

Source§

fn cmp_gt(self, rhs: Self) -> Self::Output

Source§

impl CmpLt for i32x4

Source§

type Output = i32x4

Source§

fn cmp_lt(self, rhs: Self) -> Self::Output

Source§

impl Debug for i32x4

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for i32x4

Source§

fn default() -> i32x4

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

impl Display for i32x4

Source§

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

Formats the value using the given formatter. Read more
Source§

impl From<[i32; 4]> for i32x4

Source§

fn from(arr: [i32; 4]) -> Self

Converts to this type from the input type.
Source§

impl From<i32> for i32x4

Source§

fn from(elem: i32) -> Self

Splats the single value given across all lanes.

Source§

impl From<i32x4> for [i32; 4]

Source§

fn from(simd: i32x4) -> Self

Converts to this type from the input type.
Source§

impl From<i32x4> for f64x2

Source§

fn from(v: i32x4) -> Self

Converts the lower two i32 lanes to two f64 lanes (and dropping the higher two i32 lanes)

Source§

impl From<i32x4> for f64x4

Source§

fn from(v: i32x4) -> Self

Converts to this type from the input type.
Source§

impl LowerExp for i32x4

Source§

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

Formats the value using the given formatter. Read more
Source§

impl LowerHex for i32x4

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Mul<&i32x4> for i32x4

Source§

type Output = i32x4

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &Self) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<i32> for i32x4

Source§

type Output = i32x4

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: i32) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<i32x4> for i32

Source§

type Output = i32x4

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: i32x4) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul for i32x4

Source§

type Output = i32x4

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
Source§

impl MulAssign<&i32x4> for i32x4

Source§

fn mul_assign(&mut self, rhs: &Self)

Performs the *= operation. Read more
Source§

impl MulAssign for i32x4

Source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
Source§

impl Neg for &i32x4

Source§

type Output = i32x4

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl Neg for i32x4

Source§

type Output = i32x4

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl Not for &i32x4

Source§

type Output = i32x4

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl Not for i32x4

Source§

type Output = i32x4

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl Octal for i32x4

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for i32x4

Source§

fn eq(&self, other: &i32x4) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<RHS> Product<RHS> for i32x4
where i32x4: MulAssign<RHS>,

Source§

fn product<I: Iterator<Item = RHS>>(iter: I) -> Self

Takes an iterator and generates Self from the elements by multiplying the items.
Source§

impl Shl<i128> for i32x4

Source§

fn shl(self, rhs: i128) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

impl Shl<i16> for i32x4

Source§

fn shl(self, rhs: i16) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

impl Shl<i32> for i32x4

Source§

fn shl(self, rhs: i32) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

impl Shl<i64> for i32x4

Source§

fn shl(self, rhs: i64) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

impl Shl<i8> for i32x4

Source§

fn shl(self, rhs: i8) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

impl Shl<u128> for i32x4

Source§

fn shl(self, rhs: u128) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

impl Shl<u16> for i32x4

Source§

fn shl(self, rhs: u16) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

impl Shl<u32> for i32x4

Source§

fn shl(self, rhs: u32) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

impl Shl<u64> for i32x4

Source§

fn shl(self, rhs: u64) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

impl Shl<u8> for i32x4

Source§

fn shl(self, rhs: u8) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

impl Shl for i32x4

Shifts lanes by the corresponding lane.

Bitwise shift-left; yields self << mask(rhs), where mask removes any high-order bits of rhs that would cause the shift to exceed the bitwidth of the type. (same as wrapping_shl)

Source§

type Output = i32x4

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: i32x4) -> Self::Output

Performs the << operation. Read more
Source§

impl Shr<i128> for i32x4

Source§

fn shr(self, rhs: i128) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

impl Shr<i16> for i32x4

Source§

fn shr(self, rhs: i16) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

impl Shr<i32> for i32x4

Source§

fn shr(self, rhs: i32) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

impl Shr<i64> for i32x4

Source§

fn shr(self, rhs: i64) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

impl Shr<i8> for i32x4

Source§

fn shr(self, rhs: i8) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

impl Shr<u128> for i32x4

Source§

fn shr(self, rhs: u128) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

impl Shr<u16> for i32x4

Source§

fn shr(self, rhs: u16) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

impl Shr<u32> for i32x4

Source§

fn shr(self, rhs: u32) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

impl Shr<u64> for i32x4

Source§

fn shr(self, rhs: u64) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

impl Shr<u8> for i32x4

Source§

fn shr(self, rhs: u8) -> Self::Output

Shifts all lanes by the value given.

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

impl Shr for i32x4

Shifts lanes by the corresponding lane.

Bitwise shift-right; yields self >> mask(rhs), where mask removes any high-order bits of rhs that would cause the shift to exceed the bitwidth of the type. (same as wrapping_shr)

Source§

type Output = i32x4

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: i32x4) -> Self::Output

Performs the >> operation. Read more
Source§

impl Sub<&i32x4> for i32x4

Source§

type Output = i32x4

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &Self) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<i32> for i32x4

Source§

type Output = i32x4

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: i32) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<i32x4> for i32

Source§

type Output = i32x4

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: i32x4) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub for i32x4

Source§

type Output = i32x4

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
Source§

impl SubAssign<&i32x4> for i32x4

Source§

fn sub_assign(&mut self, rhs: &Self)

Performs the -= operation. Read more
Source§

impl SubAssign for i32x4

Source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
Source§

impl<RHS> Sum<RHS> for i32x4
where i32x4: AddAssign<RHS>,

Source§

fn sum<I: Iterator<Item = RHS>>(iter: I) -> Self

Takes an iterator and generates Self from the elements by “summing up” the items.
Source§

impl UpperExp for i32x4

Source§

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

Formats the value using the given formatter. Read more
Source§

impl UpperHex for i32x4

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Zeroable for i32x4

Source§

fn zeroed() -> Self

Source§

impl Copy for i32x4

Source§

impl Eq for i32x4

Source§

impl Pod for i32x4

Source§

impl StructuralPartialEq for i32x4

Auto Trait Implementations§

§

impl Freeze for i32x4

§

impl RefUnwindSafe for i32x4

§

impl Send for i32x4

§

impl Sync for i32x4

§

impl Unpin for i32x4

§

impl UnwindSafe for i32x4

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CheckedBitPattern for T
where T: AnyBitPattern,

Source§

type Bits = T

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern.
Source§

fn is_valid_bit_pattern(_bits: &T) -> bool

If this function returns true, then it must be valid to reinterpret bits as &Self.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T> ToString for T
where T: Display + ?Sized,

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AnyBitPattern for T
where T: Pod,

Source§

impl<T> NoUninit for T
where T: Pod,