simdeez/engines/scalar/
mod.rs

1use core::ops::*;
2
3use crate::ops::*;
4use crate::*;
5
6mod simd;
7pub use self::simd::*;
8
9define_simd_type!(Scalar, i8, 1, i8);
10impl_simd_int_overloads!(I8x1);
11impl_i8_simd_type!(Scalar, I8x1, I16x1);
12
13define_simd_type!(Scalar, i16, 1, i16);
14impl_simd_int_overloads!(I16x1);
15impl_i16_simd_type!(Scalar, I16x1, I32x1);
16
17define_simd_type!(Scalar, i32, 1, i32);
18impl_simd_int_overloads!(I32x1);
19impl_i32_simd_type!(Scalar, I32x1, F32x1, I64x1);
20
21define_simd_type!(Scalar, i64, 1, i64);
22impl_simd_int_overloads!(I64x1);
23impl_i64_simd_type!(Scalar, I64x1, F64x1);
24
25define_simd_type!(Scalar, f32, 1, f32);
26impl_simd_float_overloads!(F32x1);
27impl_f32_simd_type!(Scalar, F32x1, I32x1);
28
29define_simd_type!(Scalar, f64, 1, f64);
30impl_simd_float_overloads!(F64x1);
31impl_f64_simd_type!(Scalar, F64x1, I64x1);
32
33impl From<i8> for I8x1 {
34    fn from(val: i8) -> Self {
35        I8x1(val)
36    }
37}
38
39impl From<i16> for I16x1 {
40    fn from(val: i16) -> Self {
41        I16x1(val)
42    }
43}
44
45impl From<i32> for I32x1 {
46    fn from(val: i32) -> Self {
47        I32x1(val)
48    }
49}
50
51impl From<i64> for I64x1 {
52    fn from(val: i64) -> Self {
53        I64x1(val)
54    }
55}
56
57impl From<f32> for F32x1 {
58    fn from(val: f32) -> Self {
59        F32x1(val)
60    }
61}
62
63impl From<f64> for F64x1 {
64    fn from(val: f64) -> Self {
65        F64x1(val)
66    }
67}
68
69impl From<I8x1> for i8 {
70    fn from(v: I8x1) -> i8 {
71        v.0
72    }
73}
74
75impl From<I16x1> for i16 {
76    fn from(v: I16x1) -> i16 {
77        v.0
78    }
79}
80
81impl From<I32x1> for i32 {
82    fn from(v: I32x1) -> i32 {
83        v.0
84    }
85}
86
87impl From<I64x1> for i64 {
88    fn from(v: I64x1) -> i64 {
89        v.0
90    }
91}
92
93impl From<F32x1> for f32 {
94    fn from(v: F32x1) -> f32 {
95        v.0
96    }
97}
98
99impl From<F64x1> for f64 {
100    fn from(v: F64x1) -> f64 {
101        v.0
102    }
103}