fast image operations
Diffstat (limited to 'src/term/b64.rs')
| -rw-r--r-- | src/term/b64.rs | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/term/b64.rs b/src/term/b64.rs index 2b0ae44..b91cdfd 100644 --- a/src/term/b64.rs +++ b/src/term/b64.rs @@ -4,7 +4,7 @@ use core::intrinsics::simd::simd_cast; use std::arch::x86_64::*; use std::{ intrinsics::transmute_unchecked, - simd::{prelude::*, LaneCount, MaskElement, SimdElement, SupportedLaneCount}, + simd::{MaskElement, SimdElement, prelude::*}, }; #[test] @@ -31,22 +31,16 @@ trait Cast<T, const N: usize> { fn cas<U: SimdT>(self) -> U; } trait SimdT {} -impl<T: SimdElement, const N: usize> SimdT for Simd<T, N> where LaneCount<N>: SupportedLaneCount {} -impl<T: MaskElement, const N: usize> SimdT for Mask<T, N> where LaneCount<N>: SupportedLaneCount {} -impl<T: SimdElement, const N: usize> Cast<T, N> for Simd<T, N> -where - LaneCount<N>: SupportedLaneCount, -{ +impl<T: SimdElement, const N: usize> SimdT for Simd<T, N> {} +impl<T: MaskElement, const N: usize> SimdT for Mask<T, N> {} +impl<T: SimdElement, const N: usize> Cast<T, N> for Simd<T, N> { fn cas<U>(self) -> U { assert!(std::mem::size_of::<U>() == std::mem::size_of::<Self>()); unsafe { transmute_unchecked(self) } } } -impl<T: MaskElement, const N: usize> Cast<T, N> for Mask<T, N> -where - LaneCount<N>: SupportedLaneCount, -{ +impl<T: MaskElement, const N: usize> Cast<T, N> for Mask<T, N> { fn cas<U>(self) -> U { assert!(std::mem::size_of::<U>() == std::mem::size_of::<Self>()); unsafe { transmute_unchecked(self) } |