pub struct i16x16 { /* private fields */ }Expand description
A SIMD vector with 16 elements of type i16.
See the crate level documentation for more information about SIMD vectors.
Implementations§
Source§impl i16x16
The following functionality exists for all SIMD vectors.
impl i16x16
The following functionality exists for all SIMD vectors.
Sourcepub const fn splat(elem: i16) -> Self
pub const fn splat(elem: i16) -> Self
Constructs a new SIMD vector with all elements set to the given value.
Sourcepub const fn as_array(&self) -> &[i16; 16]
pub const fn as_array(&self) -> &[i16; 16]
Returns an array reference containing the entire SIMD vector.
Sourcepub const fn as_mut_array(&mut self) -> &mut [i16; 16]
pub const fn as_mut_array(&mut self) -> &mut [i16; 16]
Returns a mutable array reference containing the entire SIMD vector.
Sourcepub const fn from_ne_bytes(bytes: [u8; 32]) -> Self
pub const fn from_ne_bytes(bytes: [u8; 32]) -> Self
Creates a SIMD vector from a native-endian byte array.
The bytes are interpreted as the raw memory representation of the
vector. This is equivalent to the from_ne_bytes functions on the
primitive scalar types, but operates on the entire vector at once.
This is the inverse of to_ne_bytes.
Sourcepub const fn to_ne_bytes(self) -> [u8; 32]
pub const fn to_ne_bytes(self) -> [u8; 32]
Returns the raw memory representation of self as a native-endian
byte array.
This is the inverse of from_ne_bytes.
Sourcepub fn simd_eq<Rhs>(self, other: Rhs) -> <Self as CmpEq<Rhs>>::Outputwhere
Self: CmpEq<Rhs>,
pub fn simd_eq<Rhs>(self, other: Rhs) -> <Self as CmpEq<Rhs>>::Outputwhere
Self: CmpEq<Rhs>,
Returns a mask that checks if each element of self is equal to the
corresponding element of other.
Sourcepub fn simd_ne<Rhs>(self, other: Rhs) -> <Self as CmpNe<Rhs>>::Outputwhere
Self: CmpNe<Rhs>,
pub fn simd_ne<Rhs>(self, other: Rhs) -> <Self as CmpNe<Rhs>>::Outputwhere
Self: CmpNe<Rhs>,
Returns a mask that checks if each element of self is not equal to
the corresponding element of other.
Sourcepub fn simd_lt<Rhs>(self, other: Rhs) -> <Self as CmpLt<Rhs>>::Outputwhere
Self: CmpLt<Rhs>,
pub fn simd_lt<Rhs>(self, other: Rhs) -> <Self as CmpLt<Rhs>>::Outputwhere
Self: CmpLt<Rhs>,
Returns a mask that checks if each element of self is less than
the corresponding element of other.
Sourcepub fn simd_gt<Rhs>(self, other: Rhs) -> <Self as CmpGt<Rhs>>::Outputwhere
Self: CmpGt<Rhs>,
pub fn simd_gt<Rhs>(self, other: Rhs) -> <Self as CmpGt<Rhs>>::Outputwhere
Self: CmpGt<Rhs>,
Returns a mask that checks if each element of self is greater than
the corresponding element of other.
Sourcepub fn simd_le<Rhs>(self, other: Rhs) -> <Self as CmpLe<Rhs>>::Outputwhere
Self: CmpLe<Rhs>,
pub fn simd_le<Rhs>(self, other: Rhs) -> <Self as CmpLe<Rhs>>::Outputwhere
Self: CmpLe<Rhs>,
Returns a mask that checks if each element of self is less than or
equal to the corresponding element of other.
Sourcepub fn simd_ge<Rhs>(self, other: Rhs) -> <Self as CmpGe<Rhs>>::Outputwhere
Self: CmpGe<Rhs>,
pub fn simd_ge<Rhs>(self, other: Rhs) -> <Self as CmpGe<Rhs>>::Outputwhere
Self: CmpGe<Rhs>,
Returns a mask that checks if each element of self is greater than
or equal to the corresponding element of other.
Sourcepub fn reduce_add(self) -> i16
pub fn reduce_add(self) -> i16
Reducing addition. Returns the sum of the vector’s elements.
Equivalent to self[0] + self[1] + ....
Sourcepub fn reduce_mul(self) -> i16
pub fn reduce_mul(self) -> i16
Reducing multiplication. Returns the product of the vector’s elements.
Equivalent to self[0] * self[1] * ....
Sourcepub fn select<Output>(self, if_true: Output, if_false: Output) -> Outputwhere
Self: Select<Output>,
pub fn select<Output>(self, if_true: Output, if_false: Output) -> Outputwhere
Self: Select<Output>,
Lanewise SIMD selection.
For each lane:
- If all bits of
selfare one, return the corresponding lane ofif_true - If all bits of
selfare zero, return the corresponding lane ofif_false
This function assumes self is a mask, meaning each element is
either all zeros or all ones. For bitwise selection use bitselect.
In addition to selecting SIMD vectors, this method can be used to
select composite types (e.g., a downstream Vec3<f32x4> structure)
if you implement Select<Composite> for Simd.
Sourcepub fn to_bitmask(self) -> u32
pub fn to_bitmask(self) -> u32
Converts to a bitmask, where each bit is 1 if the element of self
is true or 0 if the element of self is false.
Each bit of the output corresponds to an element of self. The least
significant bit corresponds to the lowest element. Remaining bits are
0.
This function assumes self is a mask, meaning each element is
either all zeros or all ones. If the input is not a mask, the result
is unspecified.
Sourcepub fn any(self) -> bool
pub fn any(self) -> bool
Returns true if any element of self is true.
This function assumes self is a mask, meaning each element is
either all zeros or all ones. If the input is not a mask, the result
is unspecified.
Sourcepub fn all(self) -> bool
pub fn all(self) -> bool
Returns true if all elements of self are true.
This function assumes self is a mask, meaning each element is
either all zeros or all ones. If the input is not a mask, the result
is unspecified.
Sourcepub fn none(self) -> bool
pub fn none(self) -> bool
Returns true if none of the elements of self are true.
This function assumes self is a mask, meaning each element is
either all zeros or all ones. If the input is not a mask, the result
is unspecified.
Sourcepub fn shuffle(self, indices: u16x16) -> Self
pub fn shuffle(self, indices: u16x16) -> Self
Returns a SIMD vector whose elements are selected from self using
the corresponding runtime indices.
If an index is out of bounds, the corresponding result element is unspecified.
Equivalent to
[self[indices[0]], self[indices[1]], ..., self[[indices[N - 1]]]].
§Type-specific guarantees
For u8x16 and i8x16, it is guaranteed that for out of bounds
indices, if the high bit of an index is set, zero is returned.
Otherwise, either zero is returned or the index wraps around,
non-deterministically.
For all other 8-bit types, it is guaranteed that for out of bounds indices, either zero is returned or the index wraps around, non-deterministically (unlike other types, which can return arbitrary values).
Sourcepub fn shuffle_zeroing(self, indices: u16x16) -> Self
pub fn shuffle_zeroing(self, indices: u16x16) -> Self
Returns a SIMD vector whose elements are selected from self using
the corresponding runtime indices.
If an index is out of bounds, the corresponding result element is the number zero.
Equivalent to
[self[indices[0]], self[indices[1]], ..., self[[indices[N - 1]]]]
with a zero fallback.
Sourcepub fn shuffle_wrapping(self, indices: u16x16) -> Self
pub fn shuffle_wrapping(self, indices: u16x16) -> Self
Returns a SIMD vector whose elements are selected from self using
the corresponding runtime indices.
Indices are wrapped by the number of elements in self.
Equivalent to
[self[indices[0] % N], self[indices[1] % N], ..., self[[indices[N - 1] % N]]].
Sourcepub fn transpose(data: [Self; 16]) -> [Self; 16]
pub fn transpose(data: [Self; 16]) -> [Self; 16]
Transposes an array of SIMD vectors interpreted as a square matrix.
Sourcepub fn blend(self, if_true: Self, if_false: Self) -> Self
👎Deprecated since 1.6.0: split into select and bitselect functions
pub fn blend(self, if_true: Self, if_false: Self) -> Self
split into select and bitselect functions
Elementwise selection.
For each element of self:
- If all bits are one, return the corresponding element of
if_true - If all bits are zero, return the corresponding element of
if_false
Originally this function did not specify whether it supported per-bit
selection, or if it assumed self is a mask, meaning each element
is either all zeros or all ones (for better performance). Because of
this, blend has been split into two new functions: select and
bitselect.
Source§impl i16x16
The following functionality exists for all SIMD vectors of signed
integers.
impl i16x16
The following functionality exists for all SIMD vectors of signed integers.
Sourcepub fn max(self, rhs: Self) -> Self
pub fn max(self, rhs: Self) -> Self
Returns the maximum between each element of self and the
corresponding element of other.
Sourcepub fn min(self, rhs: Self) -> Self
pub fn min(self, rhs: Self) -> Self
Returns the minimum between each element of self and the
corresponding element of other.
Sourcepub fn clamp(self, min: Self, max: Self) -> Self
pub fn clamp(self, min: Self, max: Self) -> Self
Clamps each element of self between the corresponding elements of
min and max.
If min > max, the result is unspecified. Consider manually checking
for that case.
Sourcepub fn reduce_max(self) -> i16
pub fn reduce_max(self) -> i16
Reducing maximum. Returns the maximum of the vector’s elements.
Equivalent to self[0].max(self[1].max(...)).
Sourcepub fn reduce_min(self) -> i16
pub fn reduce_min(self) -> i16
Reducing minimum. Returns the minimum of the vector’s elements.
Equivalent to self[0].min(self[1].min(...)).
Sourcepub const fn cast_unsigned(self) -> u16x16
pub const fn cast_unsigned(self) -> u16x16
Returns the bit patterns of self reinterpreted as unsigned integers
of the same size.
Sourcepub fn unbounded_shl(self, rhs: u16x16) -> Self
pub fn unbounded_shl(self, rhs: u16x16) -> Self
Shifts left each element of self by the corresponding element of
rhs, without bounding rhs.
If rhs is larger than or equal to the number of bits in i16,
the entire value is shifted out, and 0 is returned.
This is different from the standard operator, which behaves like
wrapping_shl. For most targets, unbounded_shl is faster than the
standard operator.
If you intend to shift all elements by the same value, consider using
unbounded_shl_scalar which is faster.
Sourcepub fn unbounded_shl_scalar(self, rhs: u32) -> Self
pub fn unbounded_shl_scalar(self, rhs: u32) -> Self
Shifts left each element of self by the uniform scalar rhs,
without bounding rhs.
If rhs is larger than or equal to the number of bits in i16,
the entire value is shifted out, and 0 is returned.
This is different from the standard operator, which behaves like
wrapping_shl. For most targets, unbounded_shl_scalar is faster
than the standard operator.
This function is faster than self.unbounded_shl(splat(rhs)) because
it has special hardware support.
Sourcepub fn unbounded_shr(self, rhs: u16x16) -> Self
pub fn unbounded_shr(self, rhs: u16x16) -> Self
Shifts right each element of self by the corresponding element of
rhs, without bounding rhs.
If rhs is larger than or equal to the number of bits in i16,
the entire value is shifted out, which yields 0 for a positive
number, and -1 for a negative number.
This is different from the standard operator, which behaves like
wrapping_shr. For most targets, unbounded_shr is faster than the
standard operator.
If you intend to shift all elements by the same value, consider using
unbounded_shr_scalar which is faster.
Sourcepub fn unbounded_shr_scalar(self, rhs: u32) -> Self
pub fn unbounded_shr_scalar(self, rhs: u32) -> Self
Shifts right each element of self by the uniform scalar rhs,
without bounding rhs.
If rhs is larger than or equal to the number of bits in i16,
the entire value is shifted out, which yields 0 for a positive
number, and -1 for a negative number.
This is different from the standard operator, which behaves like
wrapping_shr. For most targets, unbounded_shr_scalar is faster
than the standard operator.
This function is faster than self.unbounded_shr(splat(rhs)) because
it has special hardware support.
Sourcepub fn saturating_add(self, rhs: Self) -> Self
pub fn saturating_add(self, rhs: Self) -> Self
Saturating integer addition. Computes self + rhs, saturating at the
numeric bounds instead of overflowing.
Sourcepub fn saturating_sub(self, rhs: Self) -> Self
pub fn saturating_sub(self, rhs: Self) -> Self
Saturating integer subtraction. Computes self - rhs, saturating at
the numeric bounds instead of overflowing.
Sourcepub fn saturating_mul(self, rhs: Self) -> Self
pub fn saturating_mul(self, rhs: Self) -> Self
Saturating integer multiplication. Computes self * rhs, saturating
at the numeric bounds instead of overflowing.
Sourcepub fn saturating_div(self, rhs: Self) -> Self
pub fn saturating_div(self, rhs: Self) -> Self
Saturating integer division. Computes self / rhs, saturating at the
numeric bounds instead of overflowing.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if any element of rhs is zero.
Sourcepub fn unsigned_abs(self) -> u16x16
pub fn unsigned_abs(self) -> u16x16
Computes the absolute value of each input element, returned as an unsigned integer in order to avoid wrapping.
Sourcepub fn overflowing_add(self, rhs: Self) -> (Self, Self)
pub fn overflowing_add(self, rhs: Self) -> (Self, Self)
Returns self + rhs and whether an overflow occured.
Returns a tuple with:
- The addition (returns the wrapped value if an overflow occured)
- A mask indicating whether an overflow occured
Sourcepub fn overflowing_sub(self, rhs: Self) -> (Self, Self)
pub fn overflowing_sub(self, rhs: Self) -> (Self, Self)
Returns self - rhs and whether an overflow occured.
Returns a tuple with:
- The subtraction (returns the wrapped value if an overflow occured)
- A mask indicating whether an overflow occured
Sourcepub fn overflowing_mul(self, rhs: Self) -> (Self, Self)
pub fn overflowing_mul(self, rhs: Self) -> (Self, Self)
Returns self * rhs and whether an overflow occured.
Returns a tuple with:
- The multiplication (returns the wrapped value if an overflow occured)
- A mask indicating whether an overflow occured
Sourcepub fn overflowing_div(self, rhs: Self) -> (Self, Self)
pub fn overflowing_div(self, rhs: Self) -> (Self, Self)
Returns self / rhs and whether an overflow occured.
Returns a tuple with:
- The division (returns
selfif an overflow occured) - A mask indicating whether an overflow occured
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
Sourcepub fn overflowing_rem(self, rhs: Self) -> (Self, Self)
pub fn overflowing_rem(self, rhs: Self) -> (Self, Self)
Returns self % rhs and whether an overflow occured.
Returns a tuple with:
- The remainder (returns zero if an overflow occured)
- A mask indicating whether an overflow occured
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
Sourcepub fn widening_mul(self, rhs: Self) -> i32x16
pub fn widening_mul(self, rhs: Self) -> i32x16
Widening multiplication. Computes self * rhs, widening to a SIMD
vector of a larger integer type.
The returned value is always exact and can never overflow.
This function is different from mul_keep_low_high, which returns
two seperate SIMD vectors for low and high parts, instead of a
single SIMD vector of a larger integer type. Also note that while
mul_keep_low_high exists for all types, widening_mul does not
exist for types with no wider variant (e.g., for i32x16 because
there is no i64x16).
Sourcepub fn mul_keep_low_high(self, rhs: Self) -> (u16x16, i16x16)
pub fn mul_keep_low_high(self, rhs: Self) -> (u16x16, i16x16)
Computes self * rhs, producing intermediate 32-bit integers, then returns their low 16-bit parts and high 16-bit parts in two seperate SIMD vectors.
This function is different from widening_mul, which returns a single
SIMD vector of a larger integer type, instead of two seperate SIMD
vectors for low and high parts. Also note that while
mul_keep_low_high exists for all types, widening_mul does not
exist for types with no wider variant (e.g., for i32x16 because
there is no i64x16).
Sourcepub fn mul_keep_high(self, rhs: Self) -> Self
pub fn mul_keep_high(self, rhs: Self) -> Self
Computes self * rhs, producing intermediate 32-bit integers, then returns their high 16-bit parts.
Sourcepub fn signum(self) -> Self
pub fn signum(self) -> Self
Returns numbers representing the sign of each element.
0if the element is zero1if the element is positive-1if the element is negative
Sourcepub fn is_positive(self) -> Self
pub fn is_positive(self) -> Self
Returns a mask that is true for each positive element, and false if it is zero or negative.
Sourcepub fn is_negative(self) -> Self
pub fn is_negative(self) -> Self
Returns a mask that is true for each negative element, and false if it is zero or positive.
Source§impl i16x16
The following functionality exists only for i16x16, or only for
particular types inconsistently.
impl i16x16
The following functionality exists only for i16x16, or only for
particular types inconsistently.
Sourcepub fn from_i8x16(v: i8x16) -> Self
pub fn from_i8x16(v: i8x16) -> Self
Sourcepub fn dot(self, rhs: Self) -> i32x8
pub fn dot(self, rhs: Self) -> i32x8
Partially computes the dot product.
First this multiplies the input 16-bit integers, producing intermediate 32-bit integers. Then this horizontally adds adjacent pairs, resulting in eight 32-bit integers.
Sourcepub fn mul_scale_round(self, rhs: Self) -> Self
pub fn mul_scale_round(self, rhs: Self) -> Self
Multiply and scale equivalent to ((self * rhs) + 0x4000) >> 15 on each
lane, effectively multiplying by a 16 bit fixed point number between -1
and 1. This corresponds to the following instructions:
vqrdmulhq_n_s16instruction on neoni16x8_q15mulr_saton simd128_mm256_mulhrs_epi16on avx2- emulated via
mul_i16_*on sse2
Sourcepub fn mul_scale_round_n(self, rhs: i16) -> Self
pub fn mul_scale_round_n(self, rhs: i16) -> Self
Multiply and scale equivalent to ((self * rhs) + 0x4000) >> 15 on each
lane, effectively multiplying by a 16 bit fixed point number between -1
and 1. This corresponds to the following instructions:
vqrdmulhq_n_s16instruction on neoni16x8_q15mulr_saton simd128_mm256_mulhrs_epi16on avx2- emulated via
mul_i16_*on sse2
Trait Implementations§
Source§impl AddAssign for i16x16
impl AddAssign for i16x16
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+= operation. Read moreSource§impl AddAssign<&i16> for i16x16
impl AddAssign<&i16> for i16x16
Source§fn add_assign(&mut self, rhs: &i16)
fn add_assign(&mut self, rhs: &i16)
+= operation. Read moreSource§impl AddAssign<&i16x16> for i16x16
impl AddAssign<&i16x16> for i16x16
Source§fn add_assign(&mut self, rhs: &Self)
fn add_assign(&mut self, rhs: &Self)
+= operation. Read moreSource§impl AddAssign<i16> for i16x16
impl AddAssign<i16> for i16x16
Source§fn add_assign(&mut self, rhs: i16)
fn add_assign(&mut self, rhs: i16)
+= operation. Read moreSource§impl AlignTo for i16x16
impl AlignTo for i16x16
Source§fn simd_align_to(
slice: &[Self::Elem],
) -> (&[Self::Elem], &[Self], &[Self::Elem])
fn simd_align_to( slice: &[Self::Elem], ) -> (&[Self::Elem], &[Self], &[Self::Elem])
align_to.Source§fn simd_align_to_mut(
slice: &mut [Self::Elem],
) -> (&mut [Self::Elem], &mut [Self], &mut [Self::Elem])
fn simd_align_to_mut( slice: &mut [Self::Elem], ) -> (&mut [Self::Elem], &mut [Self], &mut [Self::Elem])
align_to_mut.Source§impl BitAndAssign for i16x16
impl BitAndAssign for i16x16
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&= operation. Read moreSource§impl BitAndAssign<&i16> for i16x16
impl BitAndAssign<&i16> for i16x16
Source§fn bitand_assign(&mut self, rhs: &i16)
fn bitand_assign(&mut self, rhs: &i16)
&= operation. Read moreSource§impl BitAndAssign<&i16x16> for i16x16
impl BitAndAssign<&i16x16> for i16x16
Source§fn bitand_assign(&mut self, rhs: &Self)
fn bitand_assign(&mut self, rhs: &Self)
&= operation. Read moreSource§impl BitAndAssign<i16> for i16x16
impl BitAndAssign<i16> for i16x16
Source§fn bitand_assign(&mut self, rhs: i16)
fn bitand_assign(&mut self, rhs: i16)
&= operation. Read moreSource§impl BitOrAssign for i16x16
impl BitOrAssign for i16x16
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|= operation. Read moreSource§impl BitOrAssign<&i16> for i16x16
impl BitOrAssign<&i16> for i16x16
Source§fn bitor_assign(&mut self, rhs: &i16)
fn bitor_assign(&mut self, rhs: &i16)
|= operation. Read moreSource§impl BitOrAssign<&i16x16> for i16x16
impl BitOrAssign<&i16x16> for i16x16
Source§fn bitor_assign(&mut self, rhs: &Self)
fn bitor_assign(&mut self, rhs: &Self)
|= operation. Read moreSource§impl BitOrAssign<i16> for i16x16
impl BitOrAssign<i16> for i16x16
Source§fn bitor_assign(&mut self, rhs: i16)
fn bitor_assign(&mut self, rhs: i16)
|= operation. Read moreSource§impl BitXorAssign for i16x16
impl BitXorAssign for i16x16
Source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^= operation. Read moreSource§impl BitXorAssign<&i16> for i16x16
impl BitXorAssign<&i16> for i16x16
Source§fn bitxor_assign(&mut self, rhs: &i16)
fn bitxor_assign(&mut self, rhs: &i16)
^= operation. Read moreSource§impl BitXorAssign<&i16x16> for i16x16
impl BitXorAssign<&i16x16> for i16x16
Source§fn bitxor_assign(&mut self, rhs: &Self)
fn bitxor_assign(&mut self, rhs: &Self)
^= operation. Read moreSource§impl BitXorAssign<i16> for i16x16
impl BitXorAssign<i16> for i16x16
Source§fn bitxor_assign(&mut self, rhs: i16)
fn bitxor_assign(&mut self, rhs: i16)
^= operation. Read moreSource§impl CmpEq for i16x16
impl CmpEq for i16x16
Source§impl CmpEq<i16> for i16x16
impl CmpEq<i16> for i16x16
Source§impl CmpGe for i16x16
impl CmpGe for i16x16
Source§impl CmpGe<i16> for i16x16
impl CmpGe<i16> for i16x16
Source§impl CmpGt for i16x16
impl CmpGt for i16x16
Source§impl CmpGt<i16> for i16x16
impl CmpGt<i16> for i16x16
Source§impl CmpLe for i16x16
impl CmpLe for i16x16
Source§impl CmpLe<i16> for i16x16
impl CmpLe<i16> for i16x16
Source§impl CmpLt for i16x16
impl CmpLt for i16x16
Source§impl CmpLt<i16> for i16x16
impl CmpLt<i16> for i16x16
Source§impl CmpNe for i16x16
impl CmpNe for i16x16
Source§impl CmpNe<i16> for i16x16
impl CmpNe<i16> for i16x16
impl Copy for i16x16
Source§impl Div for i16x16
impl Div for i16x16
Source§impl Div<&i16> for i16x16
impl Div<&i16> for i16x16
Source§impl Div<&i16> for &i16x16
impl Div<&i16> for &i16x16
Source§impl Div<&i16x16> for i16x16
impl Div<&i16x16> for i16x16
Source§impl Div<&i16x16> for i16
impl Div<&i16x16> for i16
Source§impl Div<&i16x16> for &i16x16
impl Div<&i16x16> for &i16x16
Source§impl Div<&i16x16> for &i16
impl Div<&i16x16> for &i16
Source§impl Div<i16> for i16x16
impl Div<i16> for i16x16
Source§impl Div<i16> for &i16x16
impl Div<i16> for &i16x16
Source§impl Div<i16x16> for i16
impl Div<i16x16> for i16
Source§impl Div<i16x16> for &i16x16
impl Div<i16x16> for &i16x16
Source§impl Div<i16x16> for &i16
impl Div<i16x16> for &i16
Source§impl DivAssign for i16x16
impl DivAssign for i16x16
Source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
Divides each element of left by the corresponding element right.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if any element of right is zero.
Source§impl DivAssign<&i16> for i16x16
impl DivAssign<&i16> for i16x16
Source§fn div_assign(&mut self, rhs: &i16)
fn div_assign(&mut self, rhs: &i16)
Divides each element of left by the scalar right.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if right is zero.
Source§impl DivAssign<&i16x16> for i16x16
impl DivAssign<&i16x16> for i16x16
Source§fn div_assign(&mut self, rhs: &Self)
fn div_assign(&mut self, rhs: &Self)
Divides each element of left by the corresponding element right.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if any element of right is zero.
Source§impl DivAssign<i16> for i16x16
impl DivAssign<i16> for i16x16
Source§fn div_assign(&mut self, rhs: i16)
fn div_assign(&mut self, rhs: i16)
Divides each element of left by the scalar right.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if right is zero.
impl Eq for i16x16
Source§impl MulAssign for i16x16
impl MulAssign for i16x16
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
*= operation. Read moreSource§impl MulAssign<&i16> for i16x16
impl MulAssign<&i16> for i16x16
Source§fn mul_assign(&mut self, rhs: &i16)
fn mul_assign(&mut self, rhs: &i16)
*= operation. Read moreSource§impl MulAssign<&i16x16> for i16x16
impl MulAssign<&i16x16> for i16x16
Source§fn mul_assign(&mut self, rhs: &Self)
fn mul_assign(&mut self, rhs: &Self)
*= operation. Read moreSource§impl MulAssign<i16> for i16x16
impl MulAssign<i16> for i16x16
Source§fn mul_assign(&mut self, rhs: i16)
fn mul_assign(&mut self, rhs: i16)
*= operation. Read moreimpl Pod for i16x16
Source§impl Rem for i16x16
impl Rem for i16x16
Source§impl Rem<&i16> for i16x16
impl Rem<&i16> for i16x16
Source§impl Rem<&i16> for &i16x16
impl Rem<&i16> for &i16x16
Source§impl Rem<&i16x16> for i16x16
impl Rem<&i16x16> for i16x16
Source§impl Rem<&i16x16> for i16
impl Rem<&i16x16> for i16
Source§impl Rem<&i16x16> for &i16x16
impl Rem<&i16x16> for &i16x16
Source§fn rem(self, rhs: &i16x16) -> Self::Output
fn rem(self, rhs: &i16x16) -> Self::Output
Returns the remainder of each element of left divided by the
corresponding element right.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if any element of right is zero.
Source§impl Rem<&i16x16> for &i16
impl Rem<&i16x16> for &i16
Source§impl Rem<i16> for i16x16
impl Rem<i16> for i16x16
Source§impl Rem<i16> for &i16x16
impl Rem<i16> for &i16x16
Source§impl Rem<i16x16> for i16
impl Rem<i16x16> for i16
Source§impl Rem<i16x16> for &i16x16
impl Rem<i16x16> for &i16x16
Source§fn rem(self, rhs: i16x16) -> Self::Output
fn rem(self, rhs: i16x16) -> Self::Output
Returns the remainder of each element of left divided by the
corresponding element right.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if any element of right is zero.
Source§impl Rem<i16x16> for &i16
impl Rem<i16x16> for &i16
Source§impl RemAssign for i16x16
impl RemAssign for i16x16
Source§fn rem_assign(&mut self, rhs: Self)
fn rem_assign(&mut self, rhs: Self)
Returns the remainder of each element of left divided by the
corresponding element right.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if any element of right is zero.
Source§impl RemAssign<&i16> for i16x16
impl RemAssign<&i16> for i16x16
Source§fn rem_assign(&mut self, rhs: &i16)
fn rem_assign(&mut self, rhs: &i16)
Returns the remainder of each element of left divided by the
scalar right.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if right is zero.
Source§impl RemAssign<&i16x16> for i16x16
impl RemAssign<&i16x16> for i16x16
Source§fn rem_assign(&mut self, rhs: &Self)
fn rem_assign(&mut self, rhs: &Self)
Returns the remainder of each element of left divided by the
corresponding element right.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if any element of right is zero.
Source§impl RemAssign<i16> for i16x16
impl RemAssign<i16> for i16x16
Source§fn rem_assign(&mut self, rhs: i16)
fn rem_assign(&mut self, rhs: i16)
Returns the remainder of each element of left divided by the
scalar right.
Note that because division has no hardware support, this operation is very slow and should be avoided if possible.
§Panics
Panics if right is zero.
Source§impl Shl for i16x16
impl Shl for i16x16
Source§fn shl(self, rhs: i16x16) -> Self::Output
fn shl(self, rhs: i16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&i8> for i16x16
impl Shl<&i8> for i16x16
Source§fn shl(self, rhs: &i8) -> Self::Output
fn shl(self, rhs: &i8) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&i8> for &i16x16
impl Shl<&i8> for &i16x16
Source§fn shl(self, rhs: &i8) -> Self::Output
fn shl(self, rhs: &i8) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&i16> for i16x16
impl Shl<&i16> for i16x16
Source§fn shl(self, rhs: &i16) -> Self::Output
fn shl(self, rhs: &i16) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&i16> for &i16x16
impl Shl<&i16> for &i16x16
Source§fn shl(self, rhs: &i16) -> Self::Output
fn shl(self, rhs: &i16) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&i16x16> for i16x16
impl Shl<&i16x16> for i16x16
Source§fn shl(self, rhs: &i16x16) -> Self::Output
fn shl(self, rhs: &i16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&i16x16> for i16
impl Shl<&i16x16> for i16
Source§fn shl(self, rhs: &i16x16) -> Self::Output
fn shl(self, rhs: &i16x16) -> Self::Output
Shifts left the scalar self by each element of rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&i16x16> for &i16x16
impl Shl<&i16x16> for &i16x16
Source§fn shl(self, rhs: &i16x16) -> Self::Output
fn shl(self, rhs: &i16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&i16x16> for &i16
impl Shl<&i16x16> for &i16
Source§fn shl(self, rhs: &i16x16) -> Self::Output
fn shl(self, rhs: &i16x16) -> Self::Output
Shifts left the scalar self by each element of rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&i16x16> for u16x16
impl Shl<&i16x16> for u16x16
Source§fn shl(self, rhs: &i16x16) -> Self::Output
fn shl(self, rhs: &i16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&i16x16> for u16
impl Shl<&i16x16> for u16
Source§fn shl(self, rhs: &i16x16) -> Self::Output
fn shl(self, rhs: &i16x16) -> Self::Output
Shifts left the scalar self by each element of rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&i16x16> for &u16x16
impl Shl<&i16x16> for &u16x16
Source§fn shl(self, rhs: &i16x16) -> Self::Output
fn shl(self, rhs: &i16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&i16x16> for &u16
impl Shl<&i16x16> for &u16
Source§fn shl(self, rhs: &i16x16) -> Self::Output
fn shl(self, rhs: &i16x16) -> Self::Output
Shifts left the scalar self by each element of rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&i32> for i16x16
impl Shl<&i32> for i16x16
Source§fn shl(self, rhs: &i32) -> Self::Output
fn shl(self, rhs: &i32) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&i32> for &i16x16
impl Shl<&i32> for &i16x16
Source§fn shl(self, rhs: &i32) -> Self::Output
fn shl(self, rhs: &i32) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&i64> for i16x16
impl Shl<&i64> for i16x16
Source§fn shl(self, rhs: &i64) -> Self::Output
fn shl(self, rhs: &i64) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&i64> for &i16x16
impl Shl<&i64> for &i16x16
Source§fn shl(self, rhs: &i64) -> Self::Output
fn shl(self, rhs: &i64) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&i128> for i16x16
impl Shl<&i128> for i16x16
Source§fn shl(self, rhs: &i128) -> Self::Output
fn shl(self, rhs: &i128) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&i128> for &i16x16
impl Shl<&i128> for &i16x16
Source§fn shl(self, rhs: &i128) -> Self::Output
fn shl(self, rhs: &i128) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&isize> for i16x16
impl Shl<&isize> for i16x16
Source§fn shl(self, rhs: &isize) -> Self::Output
fn shl(self, rhs: &isize) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&isize> for &i16x16
impl Shl<&isize> for &i16x16
Source§fn shl(self, rhs: &isize) -> Self::Output
fn shl(self, rhs: &isize) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&u8> for i16x16
impl Shl<&u8> for i16x16
Source§fn shl(self, rhs: &u8) -> Self::Output
fn shl(self, rhs: &u8) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&u8> for &i16x16
impl Shl<&u8> for &i16x16
Source§fn shl(self, rhs: &u8) -> Self::Output
fn shl(self, rhs: &u8) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&u16> for i16x16
impl Shl<&u16> for i16x16
Source§fn shl(self, rhs: &u16) -> Self::Output
fn shl(self, rhs: &u16) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&u16> for &i16x16
impl Shl<&u16> for &i16x16
Source§fn shl(self, rhs: &u16) -> Self::Output
fn shl(self, rhs: &u16) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&u16x16> for i16x16
impl Shl<&u16x16> for i16x16
Source§fn shl(self, rhs: &u16x16) -> Self::Output
fn shl(self, rhs: &u16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&u16x16> for &i16x16
impl Shl<&u16x16> for &i16x16
Source§fn shl(self, rhs: &u16x16) -> Self::Output
fn shl(self, rhs: &u16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<&u32> for i16x16
impl Shl<&u32> for i16x16
Source§fn shl(self, rhs: &u32) -> Self::Output
fn shl(self, rhs: &u32) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&u32> for &i16x16
impl Shl<&u32> for &i16x16
Source§fn shl(self, rhs: &u32) -> Self::Output
fn shl(self, rhs: &u32) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&u64> for i16x16
impl Shl<&u64> for i16x16
Source§fn shl(self, rhs: &u64) -> Self::Output
fn shl(self, rhs: &u64) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&u64> for &i16x16
impl Shl<&u64> for &i16x16
Source§fn shl(self, rhs: &u64) -> Self::Output
fn shl(self, rhs: &u64) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&u128> for i16x16
impl Shl<&u128> for i16x16
Source§fn shl(self, rhs: &u128) -> Self::Output
fn shl(self, rhs: &u128) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&u128> for &i16x16
impl Shl<&u128> for &i16x16
Source§fn shl(self, rhs: &u128) -> Self::Output
fn shl(self, rhs: &u128) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&usize> for i16x16
impl Shl<&usize> for i16x16
Source§fn shl(self, rhs: &usize) -> Self::Output
fn shl(self, rhs: &usize) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<&usize> for &i16x16
impl Shl<&usize> for &i16x16
Source§fn shl(self, rhs: &usize) -> Self::Output
fn shl(self, rhs: &usize) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<i8> for i16x16
impl Shl<i8> for i16x16
Source§fn shl(self, rhs: i8) -> Self::Output
fn shl(self, rhs: i8) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<i8> for &i16x16
impl Shl<i8> for &i16x16
Source§fn shl(self, rhs: i8) -> Self::Output
fn shl(self, rhs: i8) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<i16> for i16x16
impl Shl<i16> for i16x16
Source§fn shl(self, rhs: i16) -> Self::Output
fn shl(self, rhs: i16) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<i16> for &i16x16
impl Shl<i16> for &i16x16
Source§fn shl(self, rhs: i16) -> Self::Output
fn shl(self, rhs: i16) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<i16x16> for i16
impl Shl<i16x16> for i16
Source§fn shl(self, rhs: i16x16) -> Self::Output
fn shl(self, rhs: i16x16) -> Self::Output
Shifts left the scalar self by each element of rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<i16x16> for &i16x16
impl Shl<i16x16> for &i16x16
Source§fn shl(self, rhs: i16x16) -> Self::Output
fn shl(self, rhs: i16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<i16x16> for &i16
impl Shl<i16x16> for &i16
Source§fn shl(self, rhs: i16x16) -> Self::Output
fn shl(self, rhs: i16x16) -> Self::Output
Shifts left the scalar self by each element of rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<i16x16> for u16x16
impl Shl<i16x16> for u16x16
Source§fn shl(self, rhs: i16x16) -> Self::Output
fn shl(self, rhs: i16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<i16x16> for u16
impl Shl<i16x16> for u16
Source§fn shl(self, rhs: i16x16) -> Self::Output
fn shl(self, rhs: i16x16) -> Self::Output
Shifts left the scalar self by each element of rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<i16x16> for &u16x16
impl Shl<i16x16> for &u16x16
Source§fn shl(self, rhs: i16x16) -> Self::Output
fn shl(self, rhs: i16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<i16x16> for &u16
impl Shl<i16x16> for &u16
Source§fn shl(self, rhs: i16x16) -> Self::Output
fn shl(self, rhs: i16x16) -> Self::Output
Shifts left the scalar self by each element of rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<i32> for i16x16
impl Shl<i32> for i16x16
Source§fn shl(self, rhs: i32) -> Self::Output
fn shl(self, rhs: i32) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<i32> for &i16x16
impl Shl<i32> for &i16x16
Source§fn shl(self, rhs: i32) -> Self::Output
fn shl(self, rhs: i32) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<i64> for i16x16
impl Shl<i64> for i16x16
Source§fn shl(self, rhs: i64) -> Self::Output
fn shl(self, rhs: i64) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<i64> for &i16x16
impl Shl<i64> for &i16x16
Source§fn shl(self, rhs: i64) -> Self::Output
fn shl(self, rhs: i64) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<i128> for i16x16
impl Shl<i128> for i16x16
Source§fn shl(self, rhs: i128) -> Self::Output
fn shl(self, rhs: i128) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<i128> for &i16x16
impl Shl<i128> for &i16x16
Source§fn shl(self, rhs: i128) -> Self::Output
fn shl(self, rhs: i128) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<isize> for i16x16
impl Shl<isize> for i16x16
Source§fn shl(self, rhs: isize) -> Self::Output
fn shl(self, rhs: isize) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<isize> for &i16x16
impl Shl<isize> for &i16x16
Source§fn shl(self, rhs: isize) -> Self::Output
fn shl(self, rhs: isize) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<u8> for i16x16
impl Shl<u8> for i16x16
Source§fn shl(self, rhs: u8) -> Self::Output
fn shl(self, rhs: u8) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<u8> for &i16x16
impl Shl<u8> for &i16x16
Source§fn shl(self, rhs: u8) -> Self::Output
fn shl(self, rhs: u8) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<u16> for i16x16
impl Shl<u16> for i16x16
Source§fn shl(self, rhs: u16) -> Self::Output
fn shl(self, rhs: u16) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<u16> for &i16x16
impl Shl<u16> for &i16x16
Source§fn shl(self, rhs: u16) -> Self::Output
fn shl(self, rhs: u16) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<u16x16> for i16x16
impl Shl<u16x16> for i16x16
Source§fn shl(self, rhs: u16x16) -> Self
fn shl(self, rhs: u16x16) -> Self
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<u16x16> for &i16x16
impl Shl<u16x16> for &i16x16
Source§fn shl(self, rhs: u16x16) -> Self::Output
fn shl(self, rhs: u16x16) -> Self::Output
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl Shl<u32> for i16x16
impl Shl<u32> for i16x16
Source§fn shl(self, rhs: u32) -> Self
fn shl(self, rhs: u32) -> Self
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<u32> for &i16x16
impl Shl<u32> for &i16x16
Source§fn shl(self, rhs: u32) -> Self::Output
fn shl(self, rhs: u32) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<u64> for i16x16
impl Shl<u64> for i16x16
Source§fn shl(self, rhs: u64) -> Self::Output
fn shl(self, rhs: u64) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<u64> for &i16x16
impl Shl<u64> for &i16x16
Source§fn shl(self, rhs: u64) -> Self::Output
fn shl(self, rhs: u64) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<u128> for i16x16
impl Shl<u128> for i16x16
Source§fn shl(self, rhs: u128) -> Self::Output
fn shl(self, rhs: u128) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<u128> for &i16x16
impl Shl<u128> for &i16x16
Source§fn shl(self, rhs: u128) -> Self::Output
fn shl(self, rhs: u128) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<usize> for i16x16
impl Shl<usize> for i16x16
Source§fn shl(self, rhs: usize) -> Self::Output
fn shl(self, rhs: usize) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shl<usize> for &i16x16
impl Shl<usize> for &i16x16
Source§fn shl(self, rhs: usize) -> Self::Output
fn shl(self, rhs: usize) -> Self::Output
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign for i16x16
impl ShlAssign for i16x16
Source§fn shl_assign(&mut self, rhs: i16x16)
fn shl_assign(&mut self, rhs: i16x16)
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl ShlAssign<&i8> for i16x16
impl ShlAssign<&i8> for i16x16
Source§fn shl_assign(&mut self, rhs: &i8)
fn shl_assign(&mut self, rhs: &i8)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&i16> for i16x16
impl ShlAssign<&i16> for i16x16
Source§fn shl_assign(&mut self, rhs: &i16)
fn shl_assign(&mut self, rhs: &i16)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&i16x16> for i16x16
impl ShlAssign<&i16x16> for i16x16
Source§fn shl_assign(&mut self, rhs: &i16x16)
fn shl_assign(&mut self, rhs: &i16x16)
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl ShlAssign<&i16x16> for u16x16
impl ShlAssign<&i16x16> for u16x16
Source§fn shl_assign(&mut self, rhs: &i16x16)
fn shl_assign(&mut self, rhs: &i16x16)
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl ShlAssign<&i32> for i16x16
impl ShlAssign<&i32> for i16x16
Source§fn shl_assign(&mut self, rhs: &i32)
fn shl_assign(&mut self, rhs: &i32)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&i64> for i16x16
impl ShlAssign<&i64> for i16x16
Source§fn shl_assign(&mut self, rhs: &i64)
fn shl_assign(&mut self, rhs: &i64)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&i128> for i16x16
impl ShlAssign<&i128> for i16x16
Source§fn shl_assign(&mut self, rhs: &i128)
fn shl_assign(&mut self, rhs: &i128)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&isize> for i16x16
impl ShlAssign<&isize> for i16x16
Source§fn shl_assign(&mut self, rhs: &isize)
fn shl_assign(&mut self, rhs: &isize)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&u8> for i16x16
impl ShlAssign<&u8> for i16x16
Source§fn shl_assign(&mut self, rhs: &u8)
fn shl_assign(&mut self, rhs: &u8)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&u16> for i16x16
impl ShlAssign<&u16> for i16x16
Source§fn shl_assign(&mut self, rhs: &u16)
fn shl_assign(&mut self, rhs: &u16)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&u16x16> for i16x16
impl ShlAssign<&u16x16> for i16x16
Source§fn shl_assign(&mut self, rhs: &u16x16)
fn shl_assign(&mut self, rhs: &u16x16)
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl ShlAssign<&u32> for i16x16
impl ShlAssign<&u32> for i16x16
Source§fn shl_assign(&mut self, rhs: &u32)
fn shl_assign(&mut self, rhs: &u32)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&u64> for i16x16
impl ShlAssign<&u64> for i16x16
Source§fn shl_assign(&mut self, rhs: &u64)
fn shl_assign(&mut self, rhs: &u64)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&u128> for i16x16
impl ShlAssign<&u128> for i16x16
Source§fn shl_assign(&mut self, rhs: &u128)
fn shl_assign(&mut self, rhs: &u128)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<&usize> for i16x16
impl ShlAssign<&usize> for i16x16
Source§fn shl_assign(&mut self, rhs: &usize)
fn shl_assign(&mut self, rhs: &usize)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<i8> for i16x16
impl ShlAssign<i8> for i16x16
Source§fn shl_assign(&mut self, rhs: i8)
fn shl_assign(&mut self, rhs: i8)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<i16> for i16x16
impl ShlAssign<i16> for i16x16
Source§fn shl_assign(&mut self, rhs: i16)
fn shl_assign(&mut self, rhs: i16)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<i16x16> for u16x16
impl ShlAssign<i16x16> for u16x16
Source§fn shl_assign(&mut self, rhs: i16x16)
fn shl_assign(&mut self, rhs: i16x16)
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl ShlAssign<i32> for i16x16
impl ShlAssign<i32> for i16x16
Source§fn shl_assign(&mut self, rhs: i32)
fn shl_assign(&mut self, rhs: i32)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<i64> for i16x16
impl ShlAssign<i64> for i16x16
Source§fn shl_assign(&mut self, rhs: i64)
fn shl_assign(&mut self, rhs: i64)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<i128> for i16x16
impl ShlAssign<i128> for i16x16
Source§fn shl_assign(&mut self, rhs: i128)
fn shl_assign(&mut self, rhs: i128)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<isize> for i16x16
impl ShlAssign<isize> for i16x16
Source§fn shl_assign(&mut self, rhs: isize)
fn shl_assign(&mut self, rhs: isize)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<u8> for i16x16
impl ShlAssign<u8> for i16x16
Source§fn shl_assign(&mut self, rhs: u8)
fn shl_assign(&mut self, rhs: u8)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<u16> for i16x16
impl ShlAssign<u16> for i16x16
Source§fn shl_assign(&mut self, rhs: u16)
fn shl_assign(&mut self, rhs: u16)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<u16x16> for i16x16
impl ShlAssign<u16x16> for i16x16
Source§fn shl_assign(&mut self, rhs: u16x16)
fn shl_assign(&mut self, rhs: u16x16)
Shifts left each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl, so consider using that instead.
Source§impl ShlAssign<u32> for i16x16
impl ShlAssign<u32> for i16x16
Source§fn shl_assign(&mut self, rhs: u32)
fn shl_assign(&mut self, rhs: u32)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<u64> for i16x16
impl ShlAssign<u64> for i16x16
Source§fn shl_assign(&mut self, rhs: u64)
fn shl_assign(&mut self, rhs: u64)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<u128> for i16x16
impl ShlAssign<u128> for i16x16
Source§fn shl_assign(&mut self, rhs: u128)
fn shl_assign(&mut self, rhs: u128)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl ShlAssign<usize> for i16x16
impl ShlAssign<usize> for i16x16
Source§fn shl_assign(&mut self, rhs: usize)
fn shl_assign(&mut self, rhs: usize)
Shifts left each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shl.
Note that for most targets, this operator is slower than
unbounded_shl_scalar, so consider using that instead.
Source§impl Shr for i16x16
impl Shr for i16x16
Source§fn shr(self, rhs: i16x16) -> Self::Output
fn shr(self, rhs: i16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&i8> for i16x16
impl Shr<&i8> for i16x16
Source§fn shr(self, rhs: &i8) -> Self::Output
fn shr(self, rhs: &i8) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&i8> for &i16x16
impl Shr<&i8> for &i16x16
Source§fn shr(self, rhs: &i8) -> Self::Output
fn shr(self, rhs: &i8) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&i16> for i16x16
impl Shr<&i16> for i16x16
Source§fn shr(self, rhs: &i16) -> Self::Output
fn shr(self, rhs: &i16) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&i16> for &i16x16
impl Shr<&i16> for &i16x16
Source§fn shr(self, rhs: &i16) -> Self::Output
fn shr(self, rhs: &i16) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&i16x16> for i16x16
impl Shr<&i16x16> for i16x16
Source§fn shr(self, rhs: &i16x16) -> Self::Output
fn shr(self, rhs: &i16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&i16x16> for i16
impl Shr<&i16x16> for i16
Source§fn shr(self, rhs: &i16x16) -> Self::Output
fn shr(self, rhs: &i16x16) -> Self::Output
Shifts right the scalar self by each element of rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&i16x16> for &i16x16
impl Shr<&i16x16> for &i16x16
Source§fn shr(self, rhs: &i16x16) -> Self::Output
fn shr(self, rhs: &i16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&i16x16> for &i16
impl Shr<&i16x16> for &i16
Source§fn shr(self, rhs: &i16x16) -> Self::Output
fn shr(self, rhs: &i16x16) -> Self::Output
Shifts right the scalar self by each element of rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&i16x16> for u16x16
impl Shr<&i16x16> for u16x16
Source§fn shr(self, rhs: &i16x16) -> Self::Output
fn shr(self, rhs: &i16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&i16x16> for u16
impl Shr<&i16x16> for u16
Source§fn shr(self, rhs: &i16x16) -> Self::Output
fn shr(self, rhs: &i16x16) -> Self::Output
Shifts right the scalar self by each element of rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&i16x16> for &u16x16
impl Shr<&i16x16> for &u16x16
Source§fn shr(self, rhs: &i16x16) -> Self::Output
fn shr(self, rhs: &i16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&i16x16> for &u16
impl Shr<&i16x16> for &u16
Source§fn shr(self, rhs: &i16x16) -> Self::Output
fn shr(self, rhs: &i16x16) -> Self::Output
Shifts right the scalar self by each element of rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&i32> for i16x16
impl Shr<&i32> for i16x16
Source§fn shr(self, rhs: &i32) -> Self::Output
fn shr(self, rhs: &i32) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&i32> for &i16x16
impl Shr<&i32> for &i16x16
Source§fn shr(self, rhs: &i32) -> Self::Output
fn shr(self, rhs: &i32) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&i64> for i16x16
impl Shr<&i64> for i16x16
Source§fn shr(self, rhs: &i64) -> Self::Output
fn shr(self, rhs: &i64) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&i64> for &i16x16
impl Shr<&i64> for &i16x16
Source§fn shr(self, rhs: &i64) -> Self::Output
fn shr(self, rhs: &i64) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&i128> for i16x16
impl Shr<&i128> for i16x16
Source§fn shr(self, rhs: &i128) -> Self::Output
fn shr(self, rhs: &i128) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&i128> for &i16x16
impl Shr<&i128> for &i16x16
Source§fn shr(self, rhs: &i128) -> Self::Output
fn shr(self, rhs: &i128) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&isize> for i16x16
impl Shr<&isize> for i16x16
Source§fn shr(self, rhs: &isize) -> Self::Output
fn shr(self, rhs: &isize) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&isize> for &i16x16
impl Shr<&isize> for &i16x16
Source§fn shr(self, rhs: &isize) -> Self::Output
fn shr(self, rhs: &isize) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&u8> for i16x16
impl Shr<&u8> for i16x16
Source§fn shr(self, rhs: &u8) -> Self::Output
fn shr(self, rhs: &u8) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&u8> for &i16x16
impl Shr<&u8> for &i16x16
Source§fn shr(self, rhs: &u8) -> Self::Output
fn shr(self, rhs: &u8) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&u16> for i16x16
impl Shr<&u16> for i16x16
Source§fn shr(self, rhs: &u16) -> Self::Output
fn shr(self, rhs: &u16) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&u16> for &i16x16
impl Shr<&u16> for &i16x16
Source§fn shr(self, rhs: &u16) -> Self::Output
fn shr(self, rhs: &u16) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&u16x16> for i16x16
impl Shr<&u16x16> for i16x16
Source§fn shr(self, rhs: &u16x16) -> Self::Output
fn shr(self, rhs: &u16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&u16x16> for &i16x16
impl Shr<&u16x16> for &i16x16
Source§fn shr(self, rhs: &u16x16) -> Self::Output
fn shr(self, rhs: &u16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<&u32> for i16x16
impl Shr<&u32> for i16x16
Source§fn shr(self, rhs: &u32) -> Self::Output
fn shr(self, rhs: &u32) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&u32> for &i16x16
impl Shr<&u32> for &i16x16
Source§fn shr(self, rhs: &u32) -> Self::Output
fn shr(self, rhs: &u32) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&u64> for i16x16
impl Shr<&u64> for i16x16
Source§fn shr(self, rhs: &u64) -> Self::Output
fn shr(self, rhs: &u64) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&u64> for &i16x16
impl Shr<&u64> for &i16x16
Source§fn shr(self, rhs: &u64) -> Self::Output
fn shr(self, rhs: &u64) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&u128> for i16x16
impl Shr<&u128> for i16x16
Source§fn shr(self, rhs: &u128) -> Self::Output
fn shr(self, rhs: &u128) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&u128> for &i16x16
impl Shr<&u128> for &i16x16
Source§fn shr(self, rhs: &u128) -> Self::Output
fn shr(self, rhs: &u128) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&usize> for i16x16
impl Shr<&usize> for i16x16
Source§fn shr(self, rhs: &usize) -> Self::Output
fn shr(self, rhs: &usize) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<&usize> for &i16x16
impl Shr<&usize> for &i16x16
Source§fn shr(self, rhs: &usize) -> Self::Output
fn shr(self, rhs: &usize) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<i8> for i16x16
impl Shr<i8> for i16x16
Source§fn shr(self, rhs: i8) -> Self::Output
fn shr(self, rhs: i8) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<i8> for &i16x16
impl Shr<i8> for &i16x16
Source§fn shr(self, rhs: i8) -> Self::Output
fn shr(self, rhs: i8) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<i16> for i16x16
impl Shr<i16> for i16x16
Source§fn shr(self, rhs: i16) -> Self::Output
fn shr(self, rhs: i16) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<i16> for &i16x16
impl Shr<i16> for &i16x16
Source§fn shr(self, rhs: i16) -> Self::Output
fn shr(self, rhs: i16) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<i16x16> for i16
impl Shr<i16x16> for i16
Source§fn shr(self, rhs: i16x16) -> Self::Output
fn shr(self, rhs: i16x16) -> Self::Output
Shifts right the scalar self by each element of rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<i16x16> for &i16x16
impl Shr<i16x16> for &i16x16
Source§fn shr(self, rhs: i16x16) -> Self::Output
fn shr(self, rhs: i16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<i16x16> for &i16
impl Shr<i16x16> for &i16
Source§fn shr(self, rhs: i16x16) -> Self::Output
fn shr(self, rhs: i16x16) -> Self::Output
Shifts right the scalar self by each element of rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<i16x16> for u16x16
impl Shr<i16x16> for u16x16
Source§fn shr(self, rhs: i16x16) -> Self::Output
fn shr(self, rhs: i16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<i16x16> for u16
impl Shr<i16x16> for u16
Source§fn shr(self, rhs: i16x16) -> Self::Output
fn shr(self, rhs: i16x16) -> Self::Output
Shifts right the scalar self by each element of rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<i16x16> for &u16x16
impl Shr<i16x16> for &u16x16
Source§fn shr(self, rhs: i16x16) -> Self::Output
fn shr(self, rhs: i16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<i16x16> for &u16
impl Shr<i16x16> for &u16
Source§fn shr(self, rhs: i16x16) -> Self::Output
fn shr(self, rhs: i16x16) -> Self::Output
Shifts right the scalar self by each element of rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<i32> for i16x16
impl Shr<i32> for i16x16
Source§fn shr(self, rhs: i32) -> Self::Output
fn shr(self, rhs: i32) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<i32> for &i16x16
impl Shr<i32> for &i16x16
Source§fn shr(self, rhs: i32) -> Self::Output
fn shr(self, rhs: i32) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<i64> for i16x16
impl Shr<i64> for i16x16
Source§fn shr(self, rhs: i64) -> Self::Output
fn shr(self, rhs: i64) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<i64> for &i16x16
impl Shr<i64> for &i16x16
Source§fn shr(self, rhs: i64) -> Self::Output
fn shr(self, rhs: i64) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<i128> for i16x16
impl Shr<i128> for i16x16
Source§fn shr(self, rhs: i128) -> Self::Output
fn shr(self, rhs: i128) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<i128> for &i16x16
impl Shr<i128> for &i16x16
Source§fn shr(self, rhs: i128) -> Self::Output
fn shr(self, rhs: i128) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<isize> for i16x16
impl Shr<isize> for i16x16
Source§fn shr(self, rhs: isize) -> Self::Output
fn shr(self, rhs: isize) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<isize> for &i16x16
impl Shr<isize> for &i16x16
Source§fn shr(self, rhs: isize) -> Self::Output
fn shr(self, rhs: isize) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<u8> for i16x16
impl Shr<u8> for i16x16
Source§fn shr(self, rhs: u8) -> Self::Output
fn shr(self, rhs: u8) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<u8> for &i16x16
impl Shr<u8> for &i16x16
Source§fn shr(self, rhs: u8) -> Self::Output
fn shr(self, rhs: u8) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<u16> for i16x16
impl Shr<u16> for i16x16
Source§fn shr(self, rhs: u16) -> Self::Output
fn shr(self, rhs: u16) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<u16> for &i16x16
impl Shr<u16> for &i16x16
Source§fn shr(self, rhs: u16) -> Self::Output
fn shr(self, rhs: u16) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<u16x16> for i16x16
impl Shr<u16x16> for i16x16
Source§fn shr(self, rhs: u16x16) -> Self::Output
fn shr(self, rhs: u16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<u16x16> for &i16x16
impl Shr<u16x16> for &i16x16
Source§fn shr(self, rhs: u16x16) -> Self::Output
fn shr(self, rhs: u16x16) -> Self::Output
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl Shr<u32> for i16x16
impl Shr<u32> for i16x16
Source§fn shr(self, rhs: u32) -> Self::Output
fn shr(self, rhs: u32) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<u32> for &i16x16
impl Shr<u32> for &i16x16
Source§fn shr(self, rhs: u32) -> Self::Output
fn shr(self, rhs: u32) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<u64> for i16x16
impl Shr<u64> for i16x16
Source§fn shr(self, rhs: u64) -> Self::Output
fn shr(self, rhs: u64) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<u64> for &i16x16
impl Shr<u64> for &i16x16
Source§fn shr(self, rhs: u64) -> Self::Output
fn shr(self, rhs: u64) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<u128> for i16x16
impl Shr<u128> for i16x16
Source§fn shr(self, rhs: u128) -> Self::Output
fn shr(self, rhs: u128) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<u128> for &i16x16
impl Shr<u128> for &i16x16
Source§fn shr(self, rhs: u128) -> Self::Output
fn shr(self, rhs: u128) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<usize> for i16x16
impl Shr<usize> for i16x16
Source§fn shr(self, rhs: usize) -> Self::Output
fn shr(self, rhs: usize) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl Shr<usize> for &i16x16
impl Shr<usize> for &i16x16
Source§fn shr(self, rhs: usize) -> Self::Output
fn shr(self, rhs: usize) -> Self::Output
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign for i16x16
impl ShrAssign for i16x16
Source§fn shr_assign(&mut self, rhs: i16x16)
fn shr_assign(&mut self, rhs: i16x16)
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl ShrAssign<&i8> for i16x16
impl ShrAssign<&i8> for i16x16
Source§fn shr_assign(&mut self, rhs: &i8)
fn shr_assign(&mut self, rhs: &i8)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&i16> for i16x16
impl ShrAssign<&i16> for i16x16
Source§fn shr_assign(&mut self, rhs: &i16)
fn shr_assign(&mut self, rhs: &i16)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&i16x16> for i16x16
impl ShrAssign<&i16x16> for i16x16
Source§fn shr_assign(&mut self, rhs: &i16x16)
fn shr_assign(&mut self, rhs: &i16x16)
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl ShrAssign<&i16x16> for u16x16
impl ShrAssign<&i16x16> for u16x16
Source§fn shr_assign(&mut self, rhs: &i16x16)
fn shr_assign(&mut self, rhs: &i16x16)
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl ShrAssign<&i32> for i16x16
impl ShrAssign<&i32> for i16x16
Source§fn shr_assign(&mut self, rhs: &i32)
fn shr_assign(&mut self, rhs: &i32)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&i64> for i16x16
impl ShrAssign<&i64> for i16x16
Source§fn shr_assign(&mut self, rhs: &i64)
fn shr_assign(&mut self, rhs: &i64)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&i128> for i16x16
impl ShrAssign<&i128> for i16x16
Source§fn shr_assign(&mut self, rhs: &i128)
fn shr_assign(&mut self, rhs: &i128)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&isize> for i16x16
impl ShrAssign<&isize> for i16x16
Source§fn shr_assign(&mut self, rhs: &isize)
fn shr_assign(&mut self, rhs: &isize)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&u8> for i16x16
impl ShrAssign<&u8> for i16x16
Source§fn shr_assign(&mut self, rhs: &u8)
fn shr_assign(&mut self, rhs: &u8)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&u16> for i16x16
impl ShrAssign<&u16> for i16x16
Source§fn shr_assign(&mut self, rhs: &u16)
fn shr_assign(&mut self, rhs: &u16)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&u16x16> for i16x16
impl ShrAssign<&u16x16> for i16x16
Source§fn shr_assign(&mut self, rhs: &u16x16)
fn shr_assign(&mut self, rhs: &u16x16)
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl ShrAssign<&u32> for i16x16
impl ShrAssign<&u32> for i16x16
Source§fn shr_assign(&mut self, rhs: &u32)
fn shr_assign(&mut self, rhs: &u32)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&u64> for i16x16
impl ShrAssign<&u64> for i16x16
Source§fn shr_assign(&mut self, rhs: &u64)
fn shr_assign(&mut self, rhs: &u64)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&u128> for i16x16
impl ShrAssign<&u128> for i16x16
Source§fn shr_assign(&mut self, rhs: &u128)
fn shr_assign(&mut self, rhs: &u128)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<&usize> for i16x16
impl ShrAssign<&usize> for i16x16
Source§fn shr_assign(&mut self, rhs: &usize)
fn shr_assign(&mut self, rhs: &usize)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<i8> for i16x16
impl ShrAssign<i8> for i16x16
Source§fn shr_assign(&mut self, rhs: i8)
fn shr_assign(&mut self, rhs: i8)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<i16> for i16x16
impl ShrAssign<i16> for i16x16
Source§fn shr_assign(&mut self, rhs: i16)
fn shr_assign(&mut self, rhs: i16)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<i16x16> for u16x16
impl ShrAssign<i16x16> for u16x16
Source§fn shr_assign(&mut self, rhs: i16x16)
fn shr_assign(&mut self, rhs: i16x16)
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl ShrAssign<i32> for i16x16
impl ShrAssign<i32> for i16x16
Source§fn shr_assign(&mut self, rhs: i32)
fn shr_assign(&mut self, rhs: i32)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<i64> for i16x16
impl ShrAssign<i64> for i16x16
Source§fn shr_assign(&mut self, rhs: i64)
fn shr_assign(&mut self, rhs: i64)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<i128> for i16x16
impl ShrAssign<i128> for i16x16
Source§fn shr_assign(&mut self, rhs: i128)
fn shr_assign(&mut self, rhs: i128)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<isize> for i16x16
impl ShrAssign<isize> for i16x16
Source§fn shr_assign(&mut self, rhs: isize)
fn shr_assign(&mut self, rhs: isize)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<u8> for i16x16
impl ShrAssign<u8> for i16x16
Source§fn shr_assign(&mut self, rhs: u8)
fn shr_assign(&mut self, rhs: u8)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<u16> for i16x16
impl ShrAssign<u16> for i16x16
Source§fn shr_assign(&mut self, rhs: u16)
fn shr_assign(&mut self, rhs: u16)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<u16x16> for i16x16
impl ShrAssign<u16x16> for i16x16
Source§fn shr_assign(&mut self, rhs: u16x16)
fn shr_assign(&mut self, rhs: u16x16)
Shifts right each element of self by the corresponding element of
rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr, so consider using that instead.
Source§impl ShrAssign<u32> for i16x16
impl ShrAssign<u32> for i16x16
Source§fn shr_assign(&mut self, rhs: u32)
fn shr_assign(&mut self, rhs: u32)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<u64> for i16x16
impl ShrAssign<u64> for i16x16
Source§fn shr_assign(&mut self, rhs: u64)
fn shr_assign(&mut self, rhs: u64)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<u128> for i16x16
impl ShrAssign<u128> for i16x16
Source§fn shr_assign(&mut self, rhs: u128)
fn shr_assign(&mut self, rhs: u128)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
Source§impl ShrAssign<usize> for i16x16
impl ShrAssign<usize> for i16x16
Source§fn shr_assign(&mut self, rhs: usize)
fn shr_assign(&mut self, rhs: usize)
Shifts right each element of self by the uniform scalar rhs.
This operator behaves like wrapping_shr.
Note that for most targets, this operator is slower than
unbounded_shr_scalar, so consider using that instead.
impl StructuralPartialEq for i16x16
Source§impl SubAssign for i16x16
impl SubAssign for i16x16
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-= operation. Read moreSource§impl SubAssign<&i16> for i16x16
impl SubAssign<&i16> for i16x16
Source§fn sub_assign(&mut self, rhs: &i16)
fn sub_assign(&mut self, rhs: &i16)
-= operation. Read moreSource§impl SubAssign<&i16x16> for i16x16
impl SubAssign<&i16x16> for i16x16
Source§fn sub_assign(&mut self, rhs: &Self)
fn sub_assign(&mut self, rhs: &Self)
-= operation. Read moreSource§impl SubAssign<i16> for i16x16
impl SubAssign<i16> for i16x16
Source§fn sub_assign(&mut self, rhs: i16)
fn sub_assign(&mut self, rhs: i16)
-= operation. Read moreAuto Trait Implementations§
impl Freeze for i16x16
impl RefUnwindSafe for i16x16
impl Send for i16x16
impl Sync for i16x16
impl Unpin for i16x16
impl UnsafeUnpin for i16x16
impl UnwindSafe for i16x16
Blanket Implementations§
impl<T> AnyBitPattern for Twhere
T: Pod,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
Source§type Bits = T
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
fn is_valid_bit_pattern(_bits: &T) -> bool
bits
as &Self.