Struct faster::vecs::i8x32
[−]
#[repr(simd)]pub struct i8x32(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _);
Methods
impl i8x32
pub const fn new(
x0: i8,
x1: i8,
x2: i8,
x3: i8,
x4: i8,
x5: i8,
x6: i8,
x7: i8,
x8: i8,
x9: i8,
x10: i8,
x11: i8,
x12: i8,
x13: i8,
x14: i8,
x15: i8,
x16: i8,
x17: i8,
x18: i8,
x19: i8,
x20: i8,
x21: i8,
x22: i8,
x23: i8,
x24: i8,
x25: i8,
x26: i8,
x27: i8,
x28: i8,
x29: i8,
x30: i8,
x31: i8
) -> i8x32
x0: i8,
x1: i8,
x2: i8,
x3: i8,
x4: i8,
x5: i8,
x6: i8,
x7: i8,
x8: i8,
x9: i8,
x10: i8,
x11: i8,
x12: i8,
x13: i8,
x14: i8,
x15: i8,
x16: i8,
x17: i8,
x18: i8,
x19: i8,
x20: i8,
x21: i8,
x22: i8,
x23: i8,
x24: i8,
x25: i8,
x26: i8,
x27: i8,
x28: i8,
x29: i8,
x30: i8,
x31: i8
) -> i8x32
pub fn len() -> i32
pub fn splat(value: i8) -> i8x32
pub fn extract(self, idx: u32) -> i8
pub unsafe fn extract_unchecked(self, idx: u32) -> i8
pub fn replace(self, idx: u32, val: i8) -> i8x32
pub unsafe fn replace_unchecked(self, idx: u32, val: i8) -> i8x32
pub fn store(self, slice: &mut [i8], offset: usize)
pub unsafe fn store_unchecked(self, slice: &mut [i8], offset: usize)
pub fn load(slice: &[i8], offset: usize) -> i8x32
pub unsafe fn load_unchecked(slice: &[i8], offset: usize) -> i8x32
pub fn eq(self, other: i8x32) -> i8x32
pub fn ne(self, other: i8x32) -> i8x32
pub fn lt(self, other: i8x32) -> i8x32
pub fn le(self, other: i8x32) -> i8x32
pub fn gt(self, other: i8x32) -> i8x32
pub fn ge(self, other: i8x32) -> i8x32
impl i8x32
Trait Implementations
impl Shr<u16> for i8x32
type Output = i8x32
The resulting type after applying the >>
operator.
fn shr(self, other: u16) -> i8x32
Performs the >>
operation.
impl Shr<i8> for i8x32
type Output = i8x32
The resulting type after applying the >>
operator.
fn shr(self, other: i8) -> i8x32
Performs the >>
operation.
impl Shr<usize> for i8x32
type Output = i8x32
The resulting type after applying the >>
operator.
fn shr(self, other: usize) -> i8x32
Performs the >>
operation.
impl Shr<i32> for i8x32
type Output = i8x32
The resulting type after applying the >>
operator.
fn shr(self, other: i32) -> i8x32
Performs the >>
operation.
impl Shr<u32> for i8x32
type Output = i8x32
The resulting type after applying the >>
operator.
fn shr(self, other: u32) -> i8x32
Performs the >>
operation.
impl Shr<i64> for i8x32
type Output = i8x32
The resulting type after applying the >>
operator.
fn shr(self, other: i64) -> i8x32
Performs the >>
operation.
impl Shr<isize> for i8x32
type Output = i8x32
The resulting type after applying the >>
operator.
fn shr(self, other: isize) -> i8x32
Performs the >>
operation.
impl Shr<i16> for i8x32
type Output = i8x32
The resulting type after applying the >>
operator.
fn shr(self, other: i16) -> i8x32
Performs the >>
operation.
impl Shr<u64> for i8x32
type Output = i8x32
The resulting type after applying the >>
operator.
fn shr(self, other: u64) -> i8x32
Performs the >>
operation.
impl Shr<u8> for i8x32
type Output = i8x32
The resulting type after applying the >>
operator.
fn shr(self, other: u8) -> i8x32
Performs the >>
operation.
impl BitOr<i8x32> for i8x32
type Output = i8x32
The resulting type after applying the |
operator.
fn bitor(self, other: i8x32) -> i8x32
Performs the |
operation.
impl Copy for i8x32
impl LowerHex for i8x32
impl BitAnd<i8x32> for i8x32
type Output = i8x32
The resulting type after applying the &
operator.
fn bitand(self, other: i8x32) -> i8x32
Performs the &
operation.
impl BitOrAssign<i8x32> for i8x32
fn bitor_assign(&mut self, other: i8x32)
Performs the |=
operation.
impl Shl<i8> for i8x32
type Output = i8x32
The resulting type after applying the <<
operator.
fn shl(self, other: i8) -> i8x32
Performs the <<
operation.
impl Shl<u8> for i8x32
type Output = i8x32
The resulting type after applying the <<
operator.
fn shl(self, other: u8) -> i8x32
Performs the <<
operation.
impl Shl<i64> for i8x32
type Output = i8x32
The resulting type after applying the <<
operator.
fn shl(self, other: i64) -> i8x32
Performs the <<
operation.
impl Shl<i32> for i8x32
type Output = i8x32
The resulting type after applying the <<
operator.
fn shl(self, other: i32) -> i8x32
Performs the <<
operation.
impl Shl<u16> for i8x32
type Output = i8x32
The resulting type after applying the <<
operator.
fn shl(self, other: u16) -> i8x32
Performs the <<
operation.
impl Shl<isize> for i8x32
type Output = i8x32
The resulting type after applying the <<
operator.
fn shl(self, other: isize) -> i8x32
Performs the <<
operation.
impl Shl<u32> for i8x32
type Output = i8x32
The resulting type after applying the <<
operator.
fn shl(self, other: u32) -> i8x32
Performs the <<
operation.
impl Shl<u64> for i8x32
type Output = i8x32
The resulting type after applying the <<
operator.
fn shl(self, other: u64) -> i8x32
Performs the <<
operation.
impl Shl<i16> for i8x32
type Output = i8x32
The resulting type after applying the <<
operator.
fn shl(self, other: i16) -> i8x32
Performs the <<
operation.
impl Shl<usize> for i8x32
type Output = i8x32
The resulting type after applying the <<
operator.
fn shl(self, other: usize) -> i8x32
Performs the <<
operation.
impl AddAssign<i8x32> for i8x32
fn add_assign(&mut self, other: i8x32)
Performs the +=
operation.
impl Neg for i8x32
type Output = i8x32
The resulting type after applying the -
operator.
fn neg(self) -> i8x32
Performs the unary -
operation.
impl BitXor<i8x32> for i8x32
type Output = i8x32
The resulting type after applying the ^
operator.
fn bitxor(self, other: i8x32) -> i8x32
Performs the ^
operation.
impl ShlAssign<u8> for i8x32
fn shl_assign(&mut self, other: u8)
Performs the <<=
operation.
impl ShlAssign<u64> for i8x32
fn shl_assign(&mut self, other: u64)
Performs the <<=
operation.
impl ShlAssign<usize> for i8x32
fn shl_assign(&mut self, other: usize)
Performs the <<=
operation.
impl ShlAssign<i32> for i8x32
fn shl_assign(&mut self, other: i32)
Performs the <<=
operation.
impl ShlAssign<u32> for i8x32
fn shl_assign(&mut self, other: u32)
Performs the <<=
operation.
impl ShlAssign<i8> for i8x32
fn shl_assign(&mut self, other: i8)
Performs the <<=
operation.
impl ShlAssign<isize> for i8x32
fn shl_assign(&mut self, other: isize)
Performs the <<=
operation.
impl ShlAssign<u16> for i8x32
fn shl_assign(&mut self, other: u16)
Performs the <<=
operation.
impl ShlAssign<i64> for i8x32
fn shl_assign(&mut self, other: i64)
Performs the <<=
operation.
impl ShlAssign<i16> for i8x32
fn shl_assign(&mut self, other: i16)
Performs the <<=
operation.
impl Rem<i8x32> for i8x32
type Output = i8x32
The resulting type after applying the %
operator.
fn rem(self, other: i8x32) -> i8x32
Performs the %
operation.
impl Sub<i8x32> for i8x32
type Output = i8x32
The resulting type after applying the -
operator.
fn sub(self, other: i8x32) -> i8x32
Performs the -
operation.
impl Clone for i8x32
fn clone(&self) -> i8x32
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Add<i8x32> for i8x32
type Output = i8x32
The resulting type after applying the +
operator.
fn add(self, other: i8x32) -> i8x32
Performs the +
operation.
impl BitXorAssign<i8x32> for i8x32
fn bitxor_assign(&mut self, other: i8x32)
Performs the ^=
operation.
impl Div<i8x32> for i8x32
type Output = i8x32
The resulting type after applying the /
operator.
fn div(self, other: i8x32) -> i8x32
Performs the /
operation.
impl Not for i8x32
type Output = i8x32
The resulting type after applying the !
operator.
fn not(self) -> i8x32
Performs the unary !
operation.
impl From<u8x32> for i8x32
impl From<u32x8> for i8x32
impl From<i8x32> for i64x4
impl From<i8x32> for u8x32
impl From<u64x4> for i8x32
impl From<i8x32> for i16x16
impl From<i8x32> for i32x8
impl From<i16x16> for i8x32
impl From<i8x32> for __m256i
impl From<i8x32> for u32x8
impl From<i32x8> for i8x32
impl From<__m256i> for i8x32
impl From<i8x32> for u16x16
impl From<i8x32> for u64x4
impl From<i64x4> for i8x32
impl From<u16x16> for i8x32
impl ShrAssign<i16> for i8x32
fn shr_assign(&mut self, other: i16)
Performs the >>=
operation.
impl ShrAssign<u16> for i8x32
fn shr_assign(&mut self, other: u16)
Performs the >>=
operation.
impl ShrAssign<u64> for i8x32
fn shr_assign(&mut self, other: u64)
Performs the >>=
operation.
impl ShrAssign<u32> for i8x32
fn shr_assign(&mut self, other: u32)
Performs the >>=
operation.
impl ShrAssign<isize> for i8x32
fn shr_assign(&mut self, other: isize)
Performs the >>=
operation.
impl ShrAssign<u8> for i8x32
fn shr_assign(&mut self, other: u8)
Performs the >>=
operation.
impl ShrAssign<usize> for i8x32
fn shr_assign(&mut self, other: usize)
Performs the >>=
operation.
impl ShrAssign<i32> for i8x32
fn shr_assign(&mut self, other: i32)
Performs the >>=
operation.
impl ShrAssign<i64> for i8x32
fn shr_assign(&mut self, other: i64)
Performs the >>=
operation.
impl ShrAssign<i8> for i8x32
fn shr_assign(&mut self, other: i8)
Performs the >>=
operation.
impl BitAndAssign<i8x32> for i8x32
fn bitand_assign(&mut self, other: i8x32)
Performs the &=
operation.
impl DivAssign<i8x32> for i8x32
fn div_assign(&mut self, other: i8x32)
Performs the /=
operation.
impl RemAssign<i8x32> for i8x32
fn rem_assign(&mut self, other: i8x32)
Performs the %=
operation.
impl Mul<i8x32> for i8x32
type Output = i8x32
The resulting type after applying the *
operator.
fn mul(self, other: i8x32) -> i8x32
Performs the *
operation.
impl Debug for i8x32
fn fmt(&self, __arg_0: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl SubAssign<i8x32> for i8x32
fn sub_assign(&mut self, other: i8x32)
Performs the -=
operation.
impl PartialEq<i8x32> for i8x32
fn eq(&self, __arg_0: &i8x32) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &i8x32) -> bool
This method tests for !=
.
impl MulAssign<i8x32> for i8x32
fn mul_assign(&mut self, other: i8x32)
Performs the *=
operation.
impl Packed for i8x32
[src]
type Scalar = i8
The type which fits into this SIMD vector
const WIDTH: usize
WIDTH: usize = 32
The number of elements in this vector
fn load(data: &[i8], offset: usize) -> i8x32
[src]
Create a new vector with Self::WIDTH
elements from data
, beginning at offset
. Read more
unsafe fn load_unchecked(data: &[i8], offset: usize) -> i8x32
[src]
Create a new vector with Self::WIDTH
elements from data
, beginning at offset
, without asserting length of data. Read more
fn store(self, data: &mut [i8], offset: usize)
[src]
Write Self::WIDTH
elements from this vector to data
, beginning at offset
. Read more
fn coalesce(self) -> Self::Scalar
[src]
Assert all elements of the vector are equal, then return the element. Opposiite operation of Self::splat
. Read more
fn extract(&self, idx: usize) -> Self::Scalar
[src]
Return the idx
th element of this vector.
fn replace(&mut self, idx: usize, data: Self::Scalar) -> Self
[src]
Replace the idx
th element of this vector with data
.
fn splat(data: i8) -> Self
[src]
Return a vector with all elements initialized to data
. Opposite operation for Self::coalesce
. Read more
fn default() -> Self
[src]
Return a vector with all elements initialized to the default value for the underlying element type. Read more
fn product(&self) -> Self::Scalar
[src]
Return a scalar equivalent to the product of all elements of this vector. Read more
fn sum(&self) -> Self::Scalar
[src]
Return a scalar equivalent to the sum of all elements of this vector.
fn scalar_reduce<T, F>(&self, acc: T, func: F) -> T where
F: FnMut(T, Self::Scalar) -> T,
[src]
F: FnMut(T, Self::Scalar) -> T,
Return the result of a scalar reduction over this vector
fn width(&self) -> usize
[src]
Return the number of elements in this vector
impl PackedPattern for i8x32
[src]
fn halfs(hi: Self::Scalar, lo: Self::Scalar) -> Self
[src]
Return a vector whose first Self::WIDTH / 2
elements are hi
, and whose last Self::WIDTH / 2
elements are lo
. Read more
fn interleave(hi: Self::Scalar, lo: Self::Scalar) -> Self
[src]
Return a vector containing hi
at every even index, and lo at every odd index. Read more
fn partition_mask(off: usize) -> Self
[src]
Return a vector whose first off
elements are memset to 0x00, and whose last Self::WIDTH - off
elements are memset to 0xFF. Read more
fn partition(hi: Self::Scalar, lo: Self::Scalar, off: usize) -> Self
[src]
Return a vector whose first off
elements are hi
, and whose last Self::WIDTH - off
elements are lo
. Read more
impl PackedAbs for i8x32
[src]
type Out = u8x32
fn abs(&self) -> Self::Out
[src]
Return a vector the absolute value of the elements of self
. Read more
impl PackedTransmute for i8x32
[src]
type i8s = i8x32
type u8s = u8x32
type i16s = i16x16
type u16s = u16x16
type i32s = i32x8
type u32s = u32x8
type f32s = f32x8
type i64s = i64x4
type u64s = u64x4
type f64s = f64x4
fn be_i8s(&self) -> Self::i8s
[src]
fn be_u8s(&self) -> Self::u8s
[src]
fn be_i16s(&self) -> Self::i16s
[src]
fn be_u16s(&self) -> Self::u16s
[src]
fn be_i32s(&self) -> Self::i32s
[src]
fn be_u32s(&self) -> Self::u32s
[src]
unsafe fn be_f32s_unchecked(&self) -> Self::f32s
[src]
fn be_i64s(&self) -> Self::i64s
[src]
fn be_u64s(&self) -> Self::u64s
[src]
unsafe fn be_f64s_unchecked(&self) -> Self::f64s
[src]
impl Asu8s for i8x32
[src]
type Cast = u8x32
fn as_u8s(self) -> Self::Cast
[src]
Return a vector containing all elements of self
cast to u8s.
impl Upcast<i16x16> for i8x32
[src]
fn upcast(self) -> (i16x16, i16x16)
[src]
Return two vectors containing elements of the same value, but different type. The first vector contains the first half of self
, and the second vector contains the second half. Both returned vectors are equal in size to self
. Read more
impl Downcast<i8x32> for i16x16
[src]
fn saturating_downcast(self, other: Self) -> i8x32
[src]
Return a vector containing elements of the same value as self
and other
, but different type. The first half of the returned vector contains the downcast values of self
, whereas the second half of the returned vector contains the downcast values of other
. The returned vector is equal in size to self
and other
. If an element exceeds the maximum or minimum value of the downcast type, it is saturated. Read more
impl PackedHadd for i8x32
[src]
fn hadd(&self, other: Self) -> Self
[src]
Return a vector containing the interleaved sums of elements in self
and other
. The returned vector will begin with the sum of the first two elements in self
, and end with the sum of the last two elements in other
Read more
impl PackedHsub for i8x32
[src]
fn hsub(&self, other: Self) -> Self
[src]
Return a vector containing the interleaved differences of elements in self
and other
. The returned vector will begin with the difference of the first two elements in self
, and end with the difference of the last two elements in other
Read more
impl PackedCmp for i8x32
[src]
fn min(&self, other: Self) -> Self
[src]
Return a vector where each element at an index i is the minimum of the elements at index i in self
and other
. Read more
fn max(&self, other: Self) -> Self
[src]
Return a vector where each element at an index i is the maximum of the elements at index i in self
and other
. Read more
impl PackedEq for i8x32
[src]
fn eq(&self, other: &Self) -> Self
[src]
Return a vector where each element at an index i is filled with 1s if the elements of self
and other
at index i are equal, and filled with zeroes otherwise. Read more
impl PackedSaturatingAdd for i8x32
[src]
fn saturating_add(&self, other: Self) -> Self
[src]
impl PackedSaturatingHadd for i8x32
[src]
fn saturating_hadd(&self, other: Self) -> Self
[src]
Return a vector containing the interleaved sums of elements in self
and other
, using saturating addition. The returned vector will begin with the sum of the first two elements in self
, and end with the sum of the last two elements in other
Read more
impl PackedSaturatingSub for i8x32
[src]
fn saturating_sub(&self, other: Self) -> Self
[src]
impl PackedSaturatingHsub for i8x32
[src]
fn saturating_hsub(&self, other: Self) -> Self
[src]
Return a vector containing the interleaved differences of elements in self
and other
, using saturating subtraction. The returned vector will begin with the difference of the first two elements in self
, and end with the difference of the last two elements in other
Read more
impl PackedMerge for i8x32
[src]
fn merge_halves(&self, other: Self) -> Self
[src]
Return a vector with the first half populated by the first half of self
, and the second half populated by the second half of other
. Read more
fn merge_interleaved(&self, other: Self) -> Self
[src]
Return a vector containing the even elements of self
interleaved with the odd elements of other, starting with the first element of self
. Read more
fn merge_partitioned(&self, other: Self, offset: usize) -> Self
[src]
Return a vector containing the first offset
elements of self
, then the last (Self::WIDTH - offset)
elements of other
. Read more
impl PackedSwizzle for i8x32
[src]
fn flip(&self) -> Self
[src]
Return a vector containing elements of self, but with even and odd elements swapped in-place. For (n = 0, 2, ... Self::WIDTH), elements at indices n and n + 1 are swapped. Read more