Struct i8x32
#[repr(C, align(32))]pub struct i8x32 { /* private fields */ }
dep_wide
only.Implementations§
§impl i8x32
impl i8x32
pub const fn new(array: [i8; 32]) -> i8x32
pub fn blend(self, t: i8x32, f: i8x32) -> i8x32
pub fn abs(self) -> i8x32
pub fn max(self, rhs: i8x32) -> i8x32
pub fn min(self, rhs: i8x32) -> i8x32
pub fn saturating_add(self, rhs: i8x32) -> i8x32
pub fn saturating_sub(self, rhs: i8x32) -> i8x32
pub fn move_mask(self) -> i32 ⓘ
pub fn any(self) -> bool
pub fn all(self) -> bool
pub fn none(self) -> bool
pub fn swizzle_half(self, rhs: i8x32) -> i8x32
pub fn swizzle_half(self, rhs: i8x32) -> i8x32
Returns a new vector with lanes selected from the lanes of the first input
vector a specified in the second input vector rhs
.
The indices i in range [0, 15]
select the i-th element of self
. For
indices outside of the range the resulting lane is 0
.
This note that is the equivalent of two parallel swizzle operations on the two halves of the vector, and the indexes each refer to the corresponding half.
pub fn swizzle_half_relaxed(self, rhs: i8x32) -> i8x32
pub fn swizzle_half_relaxed(self, rhs: i8x32) -> i8x32
Indices in the range [0, 15]
will select the i-th element of self
. If
the high bit of any element of rhs
is set (negative) then the
corresponding output lane is guaranteed to be zero. Otherwise if the
element of rhs
is within the range [32, 127]
then the output lane is
either 0
or self[rhs[i] % 16]
depending on the implementation.
This is the equivalent to two parallel swizzle operations on the two halves of the vector, and the indexes each refer to their corresponding half.
pub fn to_array(self) -> [i8; 32]
pub fn as_array_ref(&self) -> &[i8; 32]
pub fn as_array_mut(&mut self) -> &mut [i8; 32]
Trait Implementations§
§impl AddAssign<&i8x32> for i8x32
impl AddAssign<&i8x32> for i8x32
§fn add_assign(&mut self, rhs: &i8x32)
fn add_assign(&mut self, rhs: &i8x32)
+=
operation. Read more§impl BitAndAssign<&i8x32> for i8x32
impl BitAndAssign<&i8x32> for i8x32
§fn bitand_assign(&mut self, rhs: &i8x32)
fn bitand_assign(&mut self, rhs: &i8x32)
&=
operation. Read more§impl BitAndAssign for i8x32
impl BitAndAssign for i8x32
§fn bitand_assign(&mut self, rhs: i8x32)
fn bitand_assign(&mut self, rhs: i8x32)
&=
operation. Read more§impl BitOrAssign<&i8x32> for i8x32
impl BitOrAssign<&i8x32> for i8x32
§fn bitor_assign(&mut self, rhs: &i8x32)
fn bitor_assign(&mut self, rhs: &i8x32)
|=
operation. Read more§impl BitOrAssign for i8x32
impl BitOrAssign for i8x32
§fn bitor_assign(&mut self, rhs: i8x32)
fn bitor_assign(&mut self, rhs: i8x32)
|=
operation. Read more§impl BitXorAssign<&i8x32> for i8x32
impl BitXorAssign<&i8x32> for i8x32
§fn bitxor_assign(&mut self, rhs: &i8x32)
fn bitxor_assign(&mut self, rhs: &i8x32)
^=
operation. Read more§impl BitXorAssign for i8x32
impl BitXorAssign for i8x32
§fn bitxor_assign(&mut self, rhs: i8x32)
fn bitxor_assign(&mut self, rhs: i8x32)
^=
operation. Read more§impl<'de> Deserialize<'de> for i8x32
impl<'de> Deserialize<'de> for i8x32
§fn deserialize<D>(
deserializer: D,
) -> Result<i8x32, <D as Deserializer<'de>>::Error> ⓘwhere
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<i8x32, <D as Deserializer<'de>>::Error> ⓘwhere
D: Deserializer<'de>,
§impl Serialize for i8x32
impl Serialize for i8x32
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> ⓘwhere
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> ⓘwhere
S: Serializer,
§impl SubAssign<&i8x32> for i8x32
impl SubAssign<&i8x32> for i8x32
§fn sub_assign(&mut self, rhs: &i8x32)
fn sub_assign(&mut self, rhs: &i8x32)
-=
operation. Read moreimpl Copy for i8x32
impl Eq for i8x32
impl Pod for i8x32
impl StructuralPartialEq for i8x32
Auto Trait Implementations§
impl Freeze for i8x32
impl RefUnwindSafe for i8x32
impl Send for i8x32
impl Sync for i8x32
impl Unpin for i8x32
impl UnwindSafe for i8x32
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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> ByteSized for T
impl<T> ByteSized for T
Source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
Source§fn byte_align(&self) -> usize ⓘ
fn byte_align(&self) -> usize ⓘ
Source§fn ptr_size_ratio(&self) -> [usize; 2]
fn ptr_size_ratio(&self) -> [usize; 2]
Source§impl<T, R> Chain<R> for Twhere
T: ?Sized,
impl<T, R> Chain<R> for Twhere
T: ?Sized,
§impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
§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
.§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
bits
as &Self
.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<T> ExtAny for T
impl<T> ExtAny for T
Source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
Source§impl<T> ExtMem for Twhere
T: ?Sized,
impl<T> ExtMem for Twhere
T: ?Sized,
Source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
Source§fn mem_align_of_val(&self) -> usize ⓘ
fn mem_align_of_val(&self) -> usize ⓘ
Source§fn mem_size_of_val(&self) -> usize ⓘ
fn mem_size_of_val(&self) -> usize ⓘ
Source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
true
if dropping values of this type matters. Read moreSource§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where
Self: Sized,
self
without running its destructor. Read moreSource§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
Source§unsafe fn mem_zeroed<T>() -> T
unsafe fn mem_zeroed<T>() -> T
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§fn mem_as_bytes(&self) -> &[u8] ⓘ
fn mem_as_bytes(&self) -> &[u8] ⓘ
unsafe_slice
only.§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Hook for T
impl<T> Hook for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError> ⓘ
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError> ⓘ
§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out
indicating that a T
is niched.