simdeez/engines/scalar/
mod.rs1use 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}