Struct ppv_lite86::soft::x2
source · pub struct x2<W, G>(pub [W; 2], PhantomData<G>);
Tuple Fields§
§0: [W; 2]
§1: PhantomData<G>
Implementations§
Trait Implementations§
source§impl<W: AddAssign + Copy, G> AddAssign<x2<W, G>> for x2<W, G>
impl<W: AddAssign + Copy, G> AddAssign<x2<W, G>> for x2<W, G>
source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+=
operation. Read moresource§impl<W: BitAndAssign + Copy, G> BitAndAssign<x2<W, G>> for x2<W, G>
impl<W: BitAndAssign + Copy, G> BitAndAssign<x2<W, G>> for x2<W, G>
source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
Performs the
&=
operation. Read moresource§impl<W: BitOrAssign + Copy, G> BitOrAssign<x2<W, G>> for x2<W, G>
impl<W: BitOrAssign + Copy, G> BitOrAssign<x2<W, G>> for x2<W, G>
source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
Performs the
|=
operation. Read moresource§impl<W: BitXorAssign + Copy, G> BitXorAssign<x2<W, G>> for x2<W, G>
impl<W: BitXorAssign + Copy, G> BitXorAssign<x2<W, G>> for x2<W, G>
source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
Performs the
^=
operation. Read moresource§impl<S3, S4, NI> Debug for x2<u64x2_sse2<S3, S4, NI>, G1>where
u64x2_sse2<S3, S4, NI>: Copy + MultiLane<[u64; 2]>,
impl<S3, S4, NI> Debug for x2<u64x2_sse2<S3, S4, NI>, G1>where u64x2_sse2<S3, S4, NI>: Copy + MultiLane<[u64; 2]>,
source§impl<W, G> From<x2<W, G>> for vec256_storagewhere
W: Copy,
vec128_storage: From<W>,
impl<W, G> From<x2<W, G>> for vec256_storagewhere W: Copy, vec128_storage: From<W>,
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>
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
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>
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
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,
impl<NI> From<x2<u128x1_sse2<YesS3, YesS4, NI>, G0>> for u32x4x2_avx2<NI>where NI: Copy,
source§impl<NI: Copy> From<x2<u32x4x2_avx2<NI>, G0>> for vec512_storage
impl<NI: Copy> From<x2<u32x4x2_avx2<NI>, G0>> for vec512_storage
source§impl<W: Copy + LaneWords4, G: Copy> LaneWords4 for x2<W, G>
impl<W: Copy + LaneWords4, G: Copy> LaneWords4 for x2<W, G>
fn shuffle_lane_words2301(self) -> Self
fn shuffle_lane_words1230(self) -> Self
fn shuffle_lane_words3012(self) -> Self
source§impl<NI: Copy> MultiLane<[u32x4_sse2<YesS3, YesS4, NI>; 4]> for x2<u32x4x2_avx2<NI>, G0>
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]
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
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,
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§impl<W, G> RotateEachWord32 for x2<W, G>where
W: Copy + RotateEachWord32,
impl<W, G> RotateEachWord32 for x2<W, G>where W: Copy + RotateEachWord32,
fn rotate_each_word_right7(self) -> Self
fn rotate_each_word_right8(self) -> Self
fn rotate_each_word_right11(self) -> Self
fn rotate_each_word_right12(self) -> Self
fn rotate_each_word_right16(self) -> Self
fn rotate_each_word_right20(self) -> Self
fn rotate_each_word_right24(self) -> Self
fn rotate_each_word_right25(self) -> Self
source§impl<W, G> RotateEachWord64 for x2<W, G>where
W: Copy + RotateEachWord64,
impl<W, G> RotateEachWord64 for x2<W, G>where W: Copy + RotateEachWord64,
fn rotate_each_word_right32(self) -> Self
source§impl<W: Copy + Store<vec128_storage>, G> Store<vec256_storage> for x2<W, G>
impl<W: Copy + Store<vec128_storage>, G> Store<vec256_storage> for x2<W, G>
source§unsafe fn unpack(p: vec256_storage) -> Self
unsafe fn unpack(p: vec256_storage) -> Self
Safety Read more
source§impl<NI: Copy> Store<vec512_storage> for x2<u32x4x2_avx2<NI>, G0>
impl<NI: Copy> Store<vec512_storage> for x2<u32x4x2_avx2<NI>, G0>
source§unsafe fn unpack(p: vec512_storage) -> Self
unsafe fn unpack(p: vec512_storage) -> Self
Safety Read more
source§impl<W: StoreBytes + BSwap + Copy, G> StoreBytes for x2<W, G>
impl<W: StoreBytes + BSwap + Copy, G> StoreBytes for x2<W, G>
source§impl<W, G> UnsafeFrom<[W; 2]> for x2<W, G>
impl<W, G> UnsafeFrom<[W; 2]> for x2<W, G>
unsafe fn unsafe_from(xs: [W; 2]) -> Self
source§impl<NI: Copy> Vec4<u32x4_sse2<YesS3, YesS4, NI>> for x2<u32x4x2_avx2<NI>, G0>
impl<NI: Copy> Vec4<u32x4_sse2<YesS3, YesS4, NI>> for x2<u32x4x2_avx2<NI>, G0>
source§impl<S3, S4, NI> Vec4<u64> for x2<u64x2_sse2<S3, S4, NI>, G1>where
u64x2_sse2<S3, S4, NI>: Copy + Vec2<u64>,
impl<S3, S4, NI> Vec4<u64> for x2<u64x2_sse2<S3, S4, NI>, G1>where u64x2_sse2<S3, S4, NI>: Copy + Vec2<u64>,
source§impl<NI: Copy> Vec4Ext<u32x4_sse2<YesS3, YesS4, NI>> for x2<u32x4x2_avx2<NI>, G0>
impl<NI: Copy> Vec4Ext<u32x4_sse2<YesS3, YesS4, NI>> for x2<u32x4x2_avx2<NI>, G0>
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>
impl<NI: Copy> Vector<[u32; 16]> for x2<u32x4x2_avx2<NI>, G0>
fn to_scalars(self) -> [u32; 16]
source§impl<S4, NI> Words4 for x2<u64x2_sse2<NoS3, S4, NI>, G1>
impl<S4, NI> Words4 for x2<u64x2_sse2<NoS3, S4, NI>, G1>
fn shuffle2301(self) -> Self
fn shuffle3012(self) -> Self
fn shuffle1230(self) -> Self
source§impl<S4, NI> Words4 for x2<u64x2_sse2<YesS3, S4, NI>, G1>
impl<S4, NI> Words4 for x2<u64x2_sse2<YesS3, S4, NI>, G1>
fn shuffle2301(self) -> Self
fn shuffle3012(self) -> Self
fn shuffle1230(self) -> Self
impl<W, G> ArithOps for x2<W, G>where W: ArithOps, G: Copy,
impl<W, G> BitOps0 for x2<W, G>where W: BitOps0, G: Copy,
impl<W, G> BitOps128 for x2<W, G>where W: BitOps128 + BitOps0, G: Copy,
impl<W, G> BitOps32 for x2<W, G>where W: BitOps32 + BitOps0, G: Copy,
impl<W, G> BitOps64 for x2<W, G>where W: BitOps64 + BitOps0, G: Copy,
impl<W: Copy, G: Copy> Copy for x2<W, G>
impl<W, G> RotateEachWord128 for x2<W, G>where W: RotateEachWord128,
impl<NI: Copy> u128x2<Avx2Machine<NI>> for x2<u128x1_sse2<YesS3, YesS4, NI>, G0>where u128x1_sse2<YesS3, YesS4, NI>: Swap64 + BSwap, Avx2Machine<NI>: Machine, x2<u128x1_sse2<YesS3, YesS4, NI>, G0>: MultiLane<[<Avx2Machine<NI> as Machine>::u128x1; 2]> + Vec2<<Avx2Machine<NI> as Machine>::u128x1> + Into<<Avx2Machine<NI> as Machine>::u32x4x2> + Into<<Avx2Machine<NI> as Machine>::u64x2x2> + Into<<Avx2Machine<NI> as Machine>::u64x4>,
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>,
impl<NI: Copy> u32x4x2<Avx2Machine<NI>> for x2<u32x4_sse2<YesS3, YesS4, NI>, G0>where u32x4_sse2<YesS3, YesS4, NI>: RotateEachWord32 + BSwap, Avx2Machine<NI>: Machine, x2<u32x4_sse2<YesS3, YesS4, NI>, G0>: MultiLane<[<Avx2Machine<NI> as Machine>::u32x4; 2]> + Vec2<<Avx2Machine<NI> as Machine>::u32x4>,
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>,
impl<NI: Copy> u32x4x4<Avx2Machine<NI>> for x2<u32x4x2_avx2<NI>, G0>
impl<NI: Copy> u64x2x2<Avx2Machine<NI>> for x2<u64x2_sse2<YesS3, YesS4, NI>, G0>where u64x2_sse2<YesS3, YesS4, NI>: RotateEachWord64 + RotateEachWord32 + BSwap, Avx2Machine<NI>: Machine, x2<u64x2_sse2<YesS3, YesS4, NI>, G0>: MultiLane<[<Avx2Machine<NI> as Machine>::u64x2; 2]> + Vec2<<Avx2Machine<NI> as Machine>::u64x2>,
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>,
impl<NI: Copy> u64x4<Avx2Machine<NI>> for x2<u64x2_sse2<YesS3, YesS4, NI>, G1>where u64x2_sse2<YesS3, YesS4, NI>: RotateEachWord64 + RotateEachWord32 + BSwap, Avx2Machine<NI>: Machine, x2<u64x2_sse2<YesS3, YesS4, NI>, G1>: MultiLane<[u64; 4]> + Vec4<u64> + Words4,
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> RefUnwindSafe for x2<W, G>where G: RefUnwindSafe, W: RefUnwindSafe,
impl<W, G> Send for x2<W, G>where G: Send, W: Send,
impl<W, G> Sync for x2<W, G>where G: Sync, W: Sync,
impl<W, G> Unpin for x2<W, G>where G: Unpin, W: Unpin,
impl<W, G> UnwindSafe for x2<W, G>where G: UnwindSafe, W: UnwindSafe,
Blanket Implementations§
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
Mutably borrows from an owned value. Read more