]>
Commit | Line | Data |
---|---|---|
f20569fa | 1 | //! `FromBits` and `IntoBits` implementations for portable 128-bit wide vectors |
cdc7bbd5 | 2 | #[rustfmt::skip] |
f20569fa XL |
3 | |
4 | #[allow(unused)] // wasm_bindgen_test | |
5 | use crate::*; | |
6 | ||
9c376795 FG |
7 | impl_from_bits!( |
8 | i8x16[test_v128]: u8x16, | |
9 | m8x16, | |
10 | i16x8, | |
11 | u16x8, | |
12 | m16x8, | |
13 | i32x4, | |
14 | u32x4, | |
15 | f32x4, | |
16 | m32x4, | |
17 | i64x2, | |
18 | u64x2, | |
19 | f64x2, | |
20 | m64x2, | |
21 | i128x1, | |
22 | u128x1, | |
23 | m128x1 | |
24 | ); | |
25 | impl_from_bits!( | |
26 | u8x16[test_v128]: i8x16, | |
27 | m8x16, | |
28 | i16x8, | |
29 | u16x8, | |
30 | m16x8, | |
31 | i32x4, | |
32 | u32x4, | |
33 | f32x4, | |
34 | m32x4, | |
35 | i64x2, | |
36 | u64x2, | |
37 | f64x2, | |
38 | m64x2, | |
39 | i128x1, | |
40 | u128x1, | |
41 | m128x1 | |
42 | ); | |
f20569fa XL |
43 | impl_from_bits!(m8x16[test_v128]: m16x8, m32x4, m64x2, m128x1); |
44 | ||
9c376795 FG |
45 | impl_from_bits!( |
46 | i16x8[test_v128]: i8x16, | |
47 | u8x16, | |
48 | m8x16, | |
49 | u16x8, | |
50 | m16x8, | |
51 | i32x4, | |
52 | u32x4, | |
53 | f32x4, | |
54 | m32x4, | |
55 | i64x2, | |
56 | u64x2, | |
57 | f64x2, | |
58 | m64x2, | |
59 | i128x1, | |
60 | u128x1, | |
61 | m128x1 | |
62 | ); | |
63 | impl_from_bits!( | |
64 | u16x8[test_v128]: i8x16, | |
65 | u8x16, | |
66 | m8x16, | |
67 | i16x8, | |
68 | m16x8, | |
69 | i32x4, | |
70 | u32x4, | |
71 | f32x4, | |
72 | m32x4, | |
73 | i64x2, | |
74 | u64x2, | |
75 | f64x2, | |
76 | m64x2, | |
77 | i128x1, | |
78 | u128x1, | |
79 | m128x1 | |
80 | ); | |
f20569fa XL |
81 | impl_from_bits!(m16x8[test_v128]: m32x4, m64x2, m128x1); |
82 | ||
9c376795 FG |
83 | impl_from_bits!( |
84 | i32x4[test_v128]: i8x16, | |
85 | u8x16, | |
86 | m8x16, | |
87 | i16x8, | |
88 | u16x8, | |
89 | m16x8, | |
90 | u32x4, | |
91 | f32x4, | |
92 | m32x4, | |
93 | i64x2, | |
94 | u64x2, | |
95 | f64x2, | |
96 | m64x2, | |
97 | i128x1, | |
98 | u128x1, | |
99 | m128x1 | |
100 | ); | |
101 | impl_from_bits!( | |
102 | u32x4[test_v128]: i8x16, | |
103 | u8x16, | |
104 | m8x16, | |
105 | i16x8, | |
106 | u16x8, | |
107 | m16x8, | |
108 | i32x4, | |
109 | f32x4, | |
110 | m32x4, | |
111 | i64x2, | |
112 | u64x2, | |
113 | f64x2, | |
114 | m64x2, | |
115 | i128x1, | |
116 | u128x1, | |
117 | m128x1 | |
118 | ); | |
119 | impl_from_bits!( | |
120 | f32x4[test_v128]: i8x16, | |
121 | u8x16, | |
122 | m8x16, | |
123 | i16x8, | |
124 | u16x8, | |
125 | m16x8, | |
126 | i32x4, | |
127 | u32x4, | |
128 | m32x4, | |
129 | i64x2, | |
130 | u64x2, | |
131 | f64x2, | |
132 | m64x2, | |
133 | i128x1, | |
134 | u128x1, | |
135 | m128x1 | |
136 | ); | |
f20569fa XL |
137 | impl_from_bits!(m32x4[test_v128]: m64x2, m128x1); |
138 | ||
9c376795 FG |
139 | impl_from_bits!( |
140 | i64x2[test_v128]: i8x16, | |
141 | u8x16, | |
142 | m8x16, | |
143 | i16x8, | |
144 | u16x8, | |
145 | m16x8, | |
146 | i32x4, | |
147 | u32x4, | |
148 | f32x4, | |
149 | m32x4, | |
150 | u64x2, | |
151 | f64x2, | |
152 | m64x2, | |
153 | i128x1, | |
154 | u128x1, | |
155 | m128x1 | |
156 | ); | |
157 | impl_from_bits!( | |
158 | u64x2[test_v128]: i8x16, | |
159 | u8x16, | |
160 | m8x16, | |
161 | i16x8, | |
162 | u16x8, | |
163 | m16x8, | |
164 | i32x4, | |
165 | u32x4, | |
166 | f32x4, | |
167 | m32x4, | |
168 | i64x2, | |
169 | f64x2, | |
170 | m64x2, | |
171 | i128x1, | |
172 | u128x1, | |
173 | m128x1 | |
174 | ); | |
175 | impl_from_bits!( | |
176 | f64x2[test_v128]: i8x16, | |
177 | u8x16, | |
178 | m8x16, | |
179 | i16x8, | |
180 | u16x8, | |
181 | m16x8, | |
182 | i32x4, | |
183 | u32x4, | |
184 | f32x4, | |
185 | m32x4, | |
186 | i64x2, | |
187 | u64x2, | |
188 | m64x2, | |
189 | i128x1, | |
190 | u128x1, | |
191 | m128x1 | |
192 | ); | |
f20569fa XL |
193 | impl_from_bits!(m64x2[test_v128]: m128x1); |
194 | ||
9c376795 FG |
195 | impl_from_bits!( |
196 | i128x1[test_v128]: i8x16, | |
197 | u8x16, | |
198 | m8x16, | |
199 | i16x8, | |
200 | u16x8, | |
201 | m16x8, | |
202 | i32x4, | |
203 | u32x4, | |
204 | f32x4, | |
205 | m32x4, | |
206 | i64x2, | |
207 | u64x2, | |
208 | f64x2, | |
209 | m64x2, | |
210 | u128x1, | |
211 | m128x1 | |
212 | ); | |
213 | impl_from_bits!( | |
214 | u128x1[test_v128]: i8x16, | |
215 | u8x16, | |
216 | m8x16, | |
217 | i16x8, | |
218 | u16x8, | |
219 | m16x8, | |
220 | i32x4, | |
221 | u32x4, | |
222 | f32x4, | |
223 | m32x4, | |
224 | i64x2, | |
225 | u64x2, | |
226 | f64x2, | |
227 | m64x2, | |
228 | i128x1, | |
229 | m128x1 | |
230 | ); | |
231 | // note: m128x1 cannot be constructed from all the other masks bit patterns in | |
232 | // here |