core_simd/cast.rs
1use crate::simd::SimdElement;
2
3/// Supporting trait for `Simd::cast`. Typically doesn't need to be used directly.
4///
5/// # Safety
6/// Implementing this trait asserts that the type is a valid vector element for the `simd_cast` or
7/// `simd_as` intrinsics.
8pub impl(self) unsafe trait SimdCast: SimdElement {}
9
10// Safety: primitive number types can be cast to other primitive number types
11unsafe impl SimdCast for i8 {}
12// Safety: primitive number types can be cast to other primitive number types
13unsafe impl SimdCast for i16 {}
14// Safety: primitive number types can be cast to other primitive number types
15unsafe impl SimdCast for i32 {}
16// Safety: primitive number types can be cast to other primitive number types
17unsafe impl SimdCast for i64 {}
18// Safety: primitive number types can be cast to other primitive number types
19unsafe impl SimdCast for isize {}
20// Safety: primitive number types can be cast to other primitive number types
21unsafe impl SimdCast for u8 {}
22// Safety: primitive number types can be cast to other primitive number types
23unsafe impl SimdCast for u16 {}
24// Safety: primitive number types can be cast to other primitive number types
25unsafe impl SimdCast for u32 {}
26// Safety: primitive number types can be cast to other primitive number types
27unsafe impl SimdCast for u64 {}
28// Safety: primitive number types can be cast to other primitive number types
29unsafe impl SimdCast for usize {}
30// Safety: primitive number types can be cast to other primitive number types
31unsafe impl SimdCast for f16 {}
32// Safety: primitive number types can be cast to other primitive number types
33unsafe impl SimdCast for f32 {}
34// Safety: primitive number types can be cast to other primitive number types
35unsafe impl SimdCast for f64 {}