]> git.proxmox.com Git - rustc.git/blame - vendor/packed_simd_2/src/api/into_bits/v128.rs
New upstream version 1.74.1+dfsg1
[rustc.git] / vendor / packed_simd_2 / src / api / into_bits / v128.rs
CommitLineData
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
5use crate::*;
6
9c376795
FG
7impl_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);
25impl_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
43impl_from_bits!(m8x16[test_v128]: m16x8, m32x4, m64x2, m128x1);
44
9c376795
FG
45impl_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);
63impl_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
81impl_from_bits!(m16x8[test_v128]: m32x4, m64x2, m128x1);
82
9c376795
FG
83impl_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);
101impl_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);
119impl_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
137impl_from_bits!(m32x4[test_v128]: m64x2, m128x1);
138
9c376795
FG
139impl_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);
157impl_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);
175impl_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
193impl_from_bits!(m64x2[test_v128]: m128x1);
194
9c376795
FG
195impl_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);
213impl_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