Struct ppv_lite86::soft::x2

source ·
#[repr(transparent)]
pub struct x2<W, G>(pub [W; 2], PhantomData<G>);

Tuple Fields§

§0: [W; 2]§1: PhantomData<G>

Implementations§

source§

impl<W, G> x2<W, G>

source

pub fn new(xs: [W; 2]) -> Self

Trait Implementations§

source§

impl<W: Add + Copy, G> Add for x2<W, G>

§

type Output = x2<<W as Add>::Output, G>

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl<W: AddAssign + Copy, G> AddAssign for x2<W, G>

source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
source§

impl<W: AndNot + Copy, G> AndNot for x2<W, G>

§

type Output = x2<<W as AndNot>::Output, G>

source§

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

source§

impl<W, G> AsBytes for x2<W, G>

source§

fn as_bytes(&self) -> &[u8]

Gets the bytes of this value. Read more
source§

fn write_to(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to bytes. Read more
source§

fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to the prefix of bytes. Read more
source§

fn write_to_suffix(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to the suffix of bytes. Read more
source§

impl<W: BSwap + Copy, G> BSwap for x2<W, G>

source§

fn bswap(self) -> Self

source§

impl<W: BitAnd + Copy, G> BitAnd for x2<W, G>

§

type Output = x2<<W as BitAnd>::Output, G>

The resulting type after applying the & operator.
source§

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

Performs the & operation. Read more
source§

impl<W: BitAndAssign + Copy, G> BitAndAssign for x2<W, G>

source§

fn bitand_assign(&mut self, rhs: Self)

Performs the &= operation. Read more
source§

impl<W: BitOr + Copy, G> BitOr for x2<W, G>

§

type Output = x2<<W as BitOr>::Output, G>

The resulting type after applying the | operator.
source§

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

Performs the | operation. Read more
source§

impl<W: BitOrAssign + Copy, G> BitOrAssign for x2<W, G>

source§

fn bitor_assign(&mut self, rhs: Self)

Performs the |= operation. Read more
source§

impl<W: BitXor + Copy, G> BitXor for x2<W, G>

§

type Output = x2<<W as BitXor>::Output, G>

The resulting type after applying the ^ operator.
source§

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

Performs the ^ operation. Read more
source§

impl<W: BitXorAssign + Copy, G> BitXorAssign for x2<W, G>

source§

fn bitxor_assign(&mut self, rhs: Self)

Performs the ^= operation. Read more
source§

impl<W: Clone, G: Clone> Clone for x2<W, G>

source§

fn clone(&self) -> x2<W, G>

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

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

Performs copy-assignment from source. Read more
source§

impl<S3, S4, NI> Debug for x2<u64x2_sse2<S3, S4, NI>, G1>
where u64x2_sse2<S3, S4, NI>: Copy + MultiLane<[u64; 2]>,

source§

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

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

impl<W: Default, G: Default> Default for x2<W, G>

source§

fn default() -> x2<W, G>

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

impl<W, G> From<x2<W, G>> for vec256_storage
where W: Copy, vec128_storage: From<W>,

source§

fn from(x: x2<W, G>) -> Self

Converts to this type from the input type.
source§

impl<S3: Copy, S4: Copy, NI: Copy, Gf, Gt> From<x2<u128x1_sse2<S3, S4, NI>, Gf>> for x2<u32x4_sse2<S3, S4, NI>, Gt>

source§

fn from(x: x2<u128x1_sse2<S3, S4, NI>, Gf>) -> Self

Converts to this type from the input type.
source§

impl<S3: Copy, S4: Copy, NI: Copy, Gf, Gt> From<x2<u128x1_sse2<S3, S4, NI>, Gf>> for x2<u64x2_sse2<S3, S4, NI>, Gt>

source§

fn from(x: x2<u128x1_sse2<S3, S4, NI>, Gf>) -> Self

Converts to this type from the input type.
source§

impl<NI> From<x2<u128x1_sse2<YesS3, YesS4, NI>, G0>> for u32x4x2_avx2<NI>
where NI: Copy,

source§

fn from(x: x2<u128x1_sse2<YesS3, YesS4, NI>, G0>) -> Self

Converts to this type from the input type.
source§

impl<NI: Copy> From<x2<u32x4x2_avx2<NI>, G0>> for vec512_storage

source§

fn from(x: x2<u32x4x2_avx2<NI>, G0>) -> Self

Converts to this type from the input type.
source§

impl<NI: Copy> From<x4<u128x1_sse2<YesS3, YesS4, NI>>> for x2<u32x4x2_avx2<NI>, G0>

source§

fn from(x: x4<u128x1_sse2<YesS3, YesS4, NI>>) -> Self

Converts to this type from the input type.
source§

impl<W, G> FromBytes for x2<W, G>

source§

fn ref_from(bytes: &[u8]) -> Option<&Self>
where Self: Sized,

Interprets the given bytes as a &Self without copying. Read more
source§

fn ref_from_prefix(bytes: &[u8]) -> Option<&Self>
where Self: Sized,

Interprets the prefix of the given bytes as a &Self without copying. Read more
source§

fn ref_from_suffix(bytes: &[u8]) -> Option<&Self>
where Self: Sized,

Interprets the suffix of the given bytes as a &Self without copying. Read more
source§

fn slice_from(bytes: &[u8]) -> Option<&[Self]>
where Self: Sized,

Interprets the given bytes as a &[Self] without copying. Read more
source§

fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>
where Self: Sized,

Interprets the prefix of the given bytes as a &[Self] with length equal to count without copying. Read more
source§

fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>
where Self: Sized,

Interprets the suffix of the given bytes as a &[Self] with length equal to count without copying. Read more
source§

fn read_from(bytes: &[u8]) -> Option<Self>
where Self: Sized,

Reads a copy of Self from bytes. Read more
source§

fn read_from_prefix(bytes: &[u8]) -> Option<Self>
where Self: Sized,

Reads a copy of Self from the prefix of bytes. Read more
source§

fn read_from_suffix(bytes: &[u8]) -> Option<Self>
where Self: Sized,

Reads a copy of Self from the suffix of bytes. Read more
source§

impl<W, G> FromZeroes for x2<W, G>

source§

fn zero(&mut self)

Overwrites self with zeroes. Read more
source§

fn new_zeroed() -> Self
where Self: Sized,

Creates an instance of Self from zeroed bytes. Read more
source§

impl<W: Copy + LaneWords4, G: Copy> LaneWords4 for x2<W, G>

source§

impl<W: Copy, G> MultiLane<[W; 2]> for x2<W, G>

source§

fn to_lanes(self) -> [W; 2]

Split a multi-lane vector into single-lane vectors.
source§

fn from_lanes(lanes: [W; 2]) -> Self

Build a multi-lane vector from individual lanes.
source§

impl<NI: Copy> MultiLane<[u32x4_sse2<YesS3, YesS4, NI>; 4]> for x2<u32x4x2_avx2<NI>, G0>

source§

fn to_lanes(self) -> [u32x4_sse2<YesS3, YesS4, NI>; 4]

Split a multi-lane vector into single-lane vectors.
source§

fn from_lanes(x: [u32x4_sse2<YesS3, YesS4, NI>; 4]) -> Self

Build a multi-lane vector from individual lanes.
source§

impl<S3, S4, NI> MultiLane<[u64; 4]> for x2<u64x2_sse2<S3, S4, NI>, G1>
where u64x2_sse2<S3, S4, NI>: MultiLane<[u64; 2]> + Copy,

source§

fn to_lanes(self) -> [u64; 4]

Split a multi-lane vector into single-lane vectors.
source§

fn from_lanes(xs: [u64; 4]) -> Self

Build a multi-lane vector from individual lanes.
source§

impl<W: Not + Copy, G> Not for x2<W, G>

§

type Output = x2<<W as Not>::Output, G>

The resulting type after applying the ! operator.
source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
source§

impl<W: PartialEq, G> PartialEq for x2<W, G>

source§

fn eq(&self, rhs: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<W, G> RotateEachWord32 for x2<W, G>

source§

impl<W, G> RotateEachWord64 for x2<W, G>

source§

impl<W: Copy + Store<vec128_storage>, G> Store<vec256_storage> for x2<W, G>

source§

unsafe fn unpack(p: vec256_storage) -> Self

Safety Read more
source§

impl<NI: Copy> Store<vec512_storage> for x2<u32x4x2_avx2<NI>, G0>

source§

unsafe fn unpack(p: vec512_storage) -> Self

Safety Read more
source§

impl<W: StoreBytes + BSwap + Copy, G> StoreBytes for x2<W, G>

source§

unsafe fn unsafe_read_le(input: &[u8]) -> Self

Safety Read more
source§

unsafe fn unsafe_read_be(input: &[u8]) -> Self

Safety Read more
source§

fn write_le(self, out: &mut [u8])

source§

fn write_be(self, out: &mut [u8])

source§

impl<W, G> Swap64 for x2<W, G>
where W: Swap64 + Copy,

source§

fn swap1(self) -> Self

source§

fn swap2(self) -> Self

source§

fn swap4(self) -> Self

source§

fn swap8(self) -> Self

source§

fn swap16(self) -> Self

source§

fn swap32(self) -> Self

source§

fn swap64(self) -> Self

source§

impl<W, G> UnsafeFrom<[W; 2]> for x2<W, G>

source§

unsafe fn unsafe_from(xs: [W; 2]) -> Self

source§

impl<W: Copy, G> Vec2<W> for x2<W, G>

source§

fn extract(self, i: u32) -> W

source§

fn insert(self, w: W, i: u32) -> Self

source§

impl<NI: Copy> Vec4<u32x4_sse2<YesS3, YesS4, NI>> for x2<u32x4x2_avx2<NI>, G0>

source§

fn extract(self, i: u32) -> u32x4_sse2<YesS3, YesS4, NI>

source§

fn insert(self, w: u32x4_sse2<YesS3, YesS4, NI>, i: u32) -> Self

source§

impl<S3, S4, NI> Vec4<u64> for x2<u64x2_sse2<S3, S4, NI>, G1>
where u64x2_sse2<S3, S4, NI>: Copy + Vec2<u64>,

source§

fn extract(self, i: u32) -> u64

source§

fn insert(self, w: u64, i: u32) -> Self

source§

impl<NI: Copy> Vec4Ext<u32x4_sse2<YesS3, YesS4, NI>> for x2<u32x4x2_avx2<NI>, G0>

source§

fn transpose4(a: Self, b: Self, c: Self, d: Self) -> (Self, Self, Self, Self)

source§

impl<NI: Copy> Vector<[u32; 16]> for x2<u32x4x2_avx2<NI>, G0>

source§

fn to_scalars(self) -> [u32; 16]

source§

impl<S4, NI> Words4 for x2<u64x2_sse2<NoS3, S4, NI>, G1>

source§

fn shuffle2301(self) -> Self

source§

fn shuffle3012(self) -> Self

source§

fn shuffle1230(self) -> Self

source§

impl<S4, NI> Words4 for x2<u64x2_sse2<YesS3, S4, NI>, G1>

source§

fn shuffle2301(self) -> Self

source§

fn shuffle3012(self) -> Self

source§

fn shuffle1230(self) -> Self

source§

impl<W, G> ArithOps for x2<W, G>
where W: ArithOps, G: Copy,

source§

impl<W, G> BitOps0 for x2<W, G>
where W: BitOps0, G: Copy,

source§

impl<W, G> BitOps128 for x2<W, G>
where W: BitOps128 + BitOps0, G: Copy,

source§

impl<W, G> BitOps32 for x2<W, G>
where W: BitOps32 + BitOps0, G: Copy,

source§

impl<W, G> BitOps64 for x2<W, G>
where W: BitOps64 + BitOps0, G: Copy,

source§

impl<W: Copy, G: Copy> Copy for x2<W, G>

source§

impl<W, G> RotateEachWord128 for x2<W, G>

source§

impl<NI: Copy> u128x2<Avx2Machine<NI>> for x2<u128x1_sse2<YesS3, YesS4, NI>, G0>

source§

impl<S3: Copy, S4: Copy, NI: Copy> u128x2<SseMachine<S3, S4, NI>> for x2<u128x1_sse2<S3, S4, NI>, G0>
where u128x1_sse2<S3, S4, NI>: Swap64 + BSwap, SseMachine<S3, S4, NI>: Machine, x2<u128x1_sse2<S3, S4, NI>, G0>: MultiLane<[<SseMachine<S3, S4, NI> as Machine>::u128x1; 2]> + Vec2<<SseMachine<S3, S4, NI> as Machine>::u128x1> + Into<<SseMachine<S3, S4, NI> as Machine>::u32x4x2> + Into<<SseMachine<S3, S4, NI> as Machine>::u64x2x2> + Into<<SseMachine<S3, S4, NI> as Machine>::u64x4>,

source§

impl<NI: Copy> u32x4x2<Avx2Machine<NI>> for x2<u32x4_sse2<YesS3, YesS4, NI>, G0>

source§

impl<S3: Copy, S4: Copy, NI: Copy> u32x4x2<SseMachine<S3, S4, NI>> for x2<u32x4_sse2<S3, S4, NI>, G0>
where u32x4_sse2<S3, S4, NI>: RotateEachWord32 + BSwap, SseMachine<S3, S4, NI>: Machine, x2<u32x4_sse2<S3, S4, NI>, G0>: MultiLane<[<SseMachine<S3, S4, NI> as Machine>::u32x4; 2]> + Vec2<<SseMachine<S3, S4, NI> as Machine>::u32x4>,

source§

impl<NI: Copy> u32x4x4<Avx2Machine<NI>> for x2<u32x4x2_avx2<NI>, G0>

source§

impl<NI: Copy> u64x2x2<Avx2Machine<NI>> for x2<u64x2_sse2<YesS3, YesS4, NI>, G0>

source§

impl<S3: Copy, S4: Copy, NI: Copy> u64x2x2<SseMachine<S3, S4, NI>> for x2<u64x2_sse2<S3, S4, NI>, G0>
where u64x2_sse2<S3, S4, NI>: RotateEachWord64 + RotateEachWord32 + BSwap, SseMachine<S3, S4, NI>: Machine, x2<u64x2_sse2<S3, S4, NI>, G0>: MultiLane<[<SseMachine<S3, S4, NI> as Machine>::u64x2; 2]> + Vec2<<SseMachine<S3, S4, NI> as Machine>::u64x2>,

source§

impl<NI: Copy> u64x4<Avx2Machine<NI>> for x2<u64x2_sse2<YesS3, YesS4, NI>, G1>

source§

impl<S3: Copy, S4: Copy, NI: Copy> u64x4<SseMachine<S3, S4, NI>> for x2<u64x2_sse2<S3, S4, NI>, G1>
where u64x2_sse2<S3, S4, NI>: RotateEachWord64 + RotateEachWord32 + BSwap, SseMachine<S3, S4, NI>: Machine, x2<u64x2_sse2<S3, S4, NI>, G1>: MultiLane<[u64; 4]> + Vec4<u64> + Words4,

Auto Trait Implementations§

§

impl<W, G> Freeze for x2<W, G>
where W: Freeze,

§

impl<W, G> RefUnwindSafe for x2<W, G>

§

impl<W, G> Send for x2<W, G>
where W: Send, G: Send,

§

impl<W, G> Sync for x2<W, G>
where W: Sync, G: Sync,

§

impl<W, G> Unpin for x2<W, G>
where W: Unpin, G: Unpin,

§

impl<W, G> UnwindSafe for x2<W, G>
where W: UnwindSafe, G: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V