/src/wasm-tools/crates/wasmparser/src/binary_reader/simd.rs
Line | Count | Source (jump to first uncovered line) |
1 | | use super::BinaryReader; |
2 | | use crate::{Result, VisitOperator, VisitSimdOperator}; |
3 | | |
4 | | impl<'a> BinaryReader<'a> { |
5 | 1.33M | pub(super) fn visit_0xfd_operator<T>( |
6 | 1.33M | &mut self, |
7 | 1.33M | pos: usize, |
8 | 1.33M | visitor: &mut T, |
9 | 1.33M | ) -> Result<<T as VisitOperator<'a>>::Output> |
10 | 1.33M | where |
11 | 1.33M | T: VisitSimdOperator<'a>, |
12 | 1.33M | { |
13 | 1.33M | let code = self.read_var_u32()?; |
14 | 1.33M | Ok(match code { |
15 | 3.53k | 0x00 => visitor.visit_v128_load(self.read_memarg(4)?), |
16 | 4.21k | 0x01 => visitor.visit_v128_load8x8_s(self.read_memarg(3)?), |
17 | 2.32k | 0x02 => visitor.visit_v128_load8x8_u(self.read_memarg(3)?), |
18 | 5.09k | 0x03 => visitor.visit_v128_load16x4_s(self.read_memarg(3)?), |
19 | 1.76k | 0x04 => visitor.visit_v128_load16x4_u(self.read_memarg(3)?), |
20 | 2.35k | 0x05 => visitor.visit_v128_load32x2_s(self.read_memarg(3)?), |
21 | 4.65k | 0x06 => visitor.visit_v128_load32x2_u(self.read_memarg(3)?), |
22 | 4.90k | 0x07 => visitor.visit_v128_load8_splat(self.read_memarg(0)?), |
23 | 2.12k | 0x08 => visitor.visit_v128_load16_splat(self.read_memarg(1)?), |
24 | 3.51k | 0x09 => visitor.visit_v128_load32_splat(self.read_memarg(2)?), |
25 | 3.09k | 0x0a => visitor.visit_v128_load64_splat(self.read_memarg(3)?), |
26 | | |
27 | 216 | 0x0b => visitor.visit_v128_store(self.read_memarg(4)?), |
28 | 377k | 0x0c => visitor.visit_v128_const(self.read_v128()?), |
29 | | 0x0d => { |
30 | 14 | let mut lanes: [u8; 16] = [0; 16]; |
31 | 238 | for lane in &mut lanes { |
32 | 224 | *lane = self.read_lane_index(32)? |
33 | | } |
34 | 14 | visitor.visit_i8x16_shuffle(lanes) |
35 | | } |
36 | | |
37 | 67 | 0x0e => visitor.visit_i8x16_swizzle(), |
38 | 8.21k | 0x0f => visitor.visit_i8x16_splat(), |
39 | 6.71k | 0x10 => visitor.visit_i16x8_splat(), |
40 | 8.44k | 0x11 => visitor.visit_i32x4_splat(), |
41 | 2.98k | 0x12 => visitor.visit_i64x2_splat(), |
42 | 1.65k | 0x13 => visitor.visit_f32x4_splat(), |
43 | 2.11k | 0x14 => visitor.visit_f64x2_splat(), |
44 | | |
45 | 6.09k | 0x15 => visitor.visit_i8x16_extract_lane_s(self.read_lane_index(16)?), |
46 | 3.41k | 0x16 => visitor.visit_i8x16_extract_lane_u(self.read_lane_index(16)?), |
47 | 571 | 0x17 => visitor.visit_i8x16_replace_lane(self.read_lane_index(16)?), |
48 | 4.61k | 0x18 => visitor.visit_i16x8_extract_lane_s(self.read_lane_index(8)?), |
49 | 4.14k | 0x19 => visitor.visit_i16x8_extract_lane_u(self.read_lane_index(8)?), |
50 | 186 | 0x1a => visitor.visit_i16x8_replace_lane(self.read_lane_index(8)?), |
51 | 3.41k | 0x1b => visitor.visit_i32x4_extract_lane(self.read_lane_index(4)?), |
52 | | |
53 | 322 | 0x1c => visitor.visit_i32x4_replace_lane(self.read_lane_index(4)?), |
54 | 5.30k | 0x1d => visitor.visit_i64x2_extract_lane(self.read_lane_index(2)?), |
55 | 634 | 0x1e => visitor.visit_i64x2_replace_lane(self.read_lane_index(2)?), |
56 | 1.36k | 0x1f => visitor.visit_f32x4_extract_lane(self.read_lane_index(4)?), |
57 | 76 | 0x20 => visitor.visit_f32x4_replace_lane(self.read_lane_index(4)?), |
58 | 1.36k | 0x21 => visitor.visit_f64x2_extract_lane(self.read_lane_index(2)?), |
59 | 199 | 0x22 => visitor.visit_f64x2_replace_lane(self.read_lane_index(2)?), |
60 | | |
61 | 184 | 0x23 => visitor.visit_i8x16_eq(), |
62 | 22 | 0x24 => visitor.visit_i8x16_ne(), |
63 | 172 | 0x25 => visitor.visit_i8x16_lt_s(), |
64 | 162 | 0x26 => visitor.visit_i8x16_lt_u(), |
65 | 36 | 0x27 => visitor.visit_i8x16_gt_s(), |
66 | 67 | 0x28 => visitor.visit_i8x16_gt_u(), |
67 | 55 | 0x29 => visitor.visit_i8x16_le_s(), |
68 | 121 | 0x2a => visitor.visit_i8x16_le_u(), |
69 | 672 | 0x2b => visitor.visit_i8x16_ge_s(), |
70 | 52 | 0x2c => visitor.visit_i8x16_ge_u(), |
71 | 145 | 0x2d => visitor.visit_i16x8_eq(), |
72 | 115 | 0x2e => visitor.visit_i16x8_ne(), |
73 | 144 | 0x2f => visitor.visit_i16x8_lt_s(), |
74 | 32 | 0x30 => visitor.visit_i16x8_lt_u(), |
75 | 34 | 0x31 => visitor.visit_i16x8_gt_s(), |
76 | 110 | 0x32 => visitor.visit_i16x8_gt_u(), |
77 | 44 | 0x33 => visitor.visit_i16x8_le_s(), |
78 | 123 | 0x34 => visitor.visit_i16x8_le_u(), |
79 | 73 | 0x35 => visitor.visit_i16x8_ge_s(), |
80 | 53 | 0x36 => visitor.visit_i16x8_ge_u(), |
81 | 39 | 0x37 => visitor.visit_i32x4_eq(), |
82 | 33 | 0x38 => visitor.visit_i32x4_ne(), |
83 | 50 | 0x39 => visitor.visit_i32x4_lt_s(), |
84 | 156 | 0x3a => visitor.visit_i32x4_lt_u(), |
85 | 154 | 0x3b => visitor.visit_i32x4_gt_s(), |
86 | 193 | 0x3c => visitor.visit_i32x4_gt_u(), |
87 | 40 | 0x3d => visitor.visit_i32x4_le_s(), |
88 | 86 | 0x3e => visitor.visit_i32x4_le_u(), |
89 | 211 | 0x3f => visitor.visit_i32x4_ge_s(), |
90 | 65 | 0x40 => visitor.visit_i32x4_ge_u(), |
91 | 19.6k | 0x41 => visitor.visit_f32x4_eq(), |
92 | 7 | 0x42 => visitor.visit_f32x4_ne(), |
93 | 89 | 0x43 => visitor.visit_f32x4_lt(), |
94 | 114 | 0x44 => visitor.visit_f32x4_gt(), |
95 | 58 | 0x45 => visitor.visit_f32x4_le(), |
96 | 127 | 0x46 => visitor.visit_f32x4_ge(), |
97 | 19.3k | 0x47 => visitor.visit_f64x2_eq(), |
98 | 34 | 0x48 => visitor.visit_f64x2_ne(), |
99 | 76 | 0x49 => visitor.visit_f64x2_lt(), |
100 | 10 | 0x4a => visitor.visit_f64x2_gt(), |
101 | 79 | 0x4b => visitor.visit_f64x2_le(), |
102 | 4 | 0x4c => visitor.visit_f64x2_ge(), |
103 | 7.87k | 0x4d => visitor.visit_v128_not(), |
104 | 116 | 0x4e => visitor.visit_v128_and(), |
105 | 97 | 0x4f => visitor.visit_v128_andnot(), |
106 | 156 | 0x50 => visitor.visit_v128_or(), |
107 | 275k | 0x51 => visitor.visit_v128_xor(), |
108 | 39.0k | 0x52 => visitor.visit_v128_bitselect(), |
109 | 198 | 0x53 => visitor.visit_v128_any_true(), |
110 | | |
111 | | 0x54 => { |
112 | 116 | let memarg = self.read_memarg(0)?; |
113 | 116 | let lane = self.read_lane_index(16)?; |
114 | 116 | visitor.visit_v128_load8_lane(memarg, lane) |
115 | | } |
116 | | 0x55 => { |
117 | 241 | let memarg = self.read_memarg(1)?; |
118 | 241 | let lane = self.read_lane_index(8)?; |
119 | 241 | visitor.visit_v128_load16_lane(memarg, lane) |
120 | | } |
121 | | 0x56 => { |
122 | 171 | let memarg = self.read_memarg(2)?; |
123 | 171 | let lane = self.read_lane_index(4)?; |
124 | 171 | visitor.visit_v128_load32_lane(memarg, lane) |
125 | | } |
126 | | 0x57 => { |
127 | 135 | let memarg = self.read_memarg(3)?; |
128 | 135 | let lane = self.read_lane_index(2)?; |
129 | 135 | visitor.visit_v128_load64_lane(memarg, lane) |
130 | | } |
131 | | 0x58 => { |
132 | 131 | let memarg = self.read_memarg(0)?; |
133 | 131 | let lane = self.read_lane_index(16)?; |
134 | 131 | visitor.visit_v128_store8_lane(memarg, lane) |
135 | | } |
136 | | 0x59 => { |
137 | 143 | let memarg = self.read_memarg(1)?; |
138 | 143 | let lane = self.read_lane_index(8)?; |
139 | 143 | visitor.visit_v128_store16_lane(memarg, lane) |
140 | | } |
141 | | 0x5a => { |
142 | 172 | let memarg = self.read_memarg(2)?; |
143 | 172 | let lane = self.read_lane_index(4)?; |
144 | 172 | visitor.visit_v128_store32_lane(memarg, lane) |
145 | | } |
146 | | 0x5b => { |
147 | 215 | let memarg = self.read_memarg(3)?; |
148 | 215 | let lane = self.read_lane_index(2)?; |
149 | 215 | visitor.visit_v128_store64_lane(memarg, lane) |
150 | | } |
151 | | |
152 | 2.54k | 0x5c => visitor.visit_v128_load32_zero(self.read_memarg(2)?), |
153 | 2.36k | 0x5d => visitor.visit_v128_load64_zero(self.read_memarg(3)?), |
154 | 5.35k | 0x5e => visitor.visit_f32x4_demote_f64x2_zero(), |
155 | 4.00k | 0x5f => visitor.visit_f64x2_promote_low_f32x4(), |
156 | 12.8k | 0x60 => visitor.visit_i8x16_abs(), |
157 | 17.9k | 0x61 => visitor.visit_i8x16_neg(), |
158 | 8.84k | 0x62 => visitor.visit_i8x16_popcnt(), |
159 | 5.63k | 0x63 => visitor.visit_i8x16_all_true(), |
160 | 5.11k | 0x64 => visitor.visit_i8x16_bitmask(), |
161 | 251 | 0x65 => visitor.visit_i8x16_narrow_i16x8_s(), |
162 | 116 | 0x66 => visitor.visit_i8x16_narrow_i16x8_u(), |
163 | 2.22k | 0x67 => visitor.visit_f32x4_ceil(), |
164 | 2.49k | 0x68 => visitor.visit_f32x4_floor(), |
165 | 7.19k | 0x69 => visitor.visit_f32x4_trunc(), |
166 | 2.15k | 0x6a => visitor.visit_f32x4_nearest(), |
167 | 685 | 0x6b => visitor.visit_i8x16_shl(), |
168 | 506 | 0x6c => visitor.visit_i8x16_shr_s(), |
169 | 155 | 0x6d => visitor.visit_i8x16_shr_u(), |
170 | 294 | 0x6e => visitor.visit_i8x16_add(), |
171 | 29 | 0x6f => visitor.visit_i8x16_add_sat_s(), |
172 | 79 | 0x70 => visitor.visit_i8x16_add_sat_u(), |
173 | 28 | 0x71 => visitor.visit_i8x16_sub(), |
174 | 84 | 0x72 => visitor.visit_i8x16_sub_sat_s(), |
175 | 13 | 0x73 => visitor.visit_i8x16_sub_sat_u(), |
176 | 2.25k | 0x74 => visitor.visit_f64x2_ceil(), |
177 | 4.11k | 0x75 => visitor.visit_f64x2_floor(), |
178 | 291 | 0x76 => visitor.visit_i8x16_min_s(), |
179 | 78 | 0x77 => visitor.visit_i8x16_min_u(), |
180 | 232 | 0x78 => visitor.visit_i8x16_max_s(), |
181 | 57 | 0x79 => visitor.visit_i8x16_max_u(), |
182 | 3.55k | 0x7a => visitor.visit_f64x2_trunc(), |
183 | 111 | 0x7b => visitor.visit_i8x16_avgr_u(), |
184 | 10.5k | 0x7c => visitor.visit_i16x8_extadd_pairwise_i8x16_s(), |
185 | 10.4k | 0x7d => visitor.visit_i16x8_extadd_pairwise_i8x16_u(), |
186 | 13.7k | 0x7e => visitor.visit_i32x4_extadd_pairwise_i16x8_s(), |
187 | 39.1k | 0x7f => visitor.visit_i32x4_extadd_pairwise_i16x8_u(), |
188 | 38.7k | 0x80 => visitor.visit_i16x8_abs(), |
189 | 8.79k | 0x81 => visitor.visit_i16x8_neg(), |
190 | 191 | 0x82 => visitor.visit_i16x8_q15mulr_sat_s(), |
191 | 2.84k | 0x83 => visitor.visit_i16x8_all_true(), |
192 | 3.81k | 0x84 => visitor.visit_i16x8_bitmask(), |
193 | 61 | 0x85 => visitor.visit_i16x8_narrow_i32x4_s(), |
194 | 256 | 0x86 => visitor.visit_i16x8_narrow_i32x4_u(), |
195 | 7.93k | 0x87 => visitor.visit_i16x8_extend_low_i8x16_s(), |
196 | 6.72k | 0x88 => visitor.visit_i16x8_extend_high_i8x16_s(), |
197 | 6.14k | 0x89 => visitor.visit_i16x8_extend_low_i8x16_u(), |
198 | 10.3k | 0x8a => visitor.visit_i16x8_extend_high_i8x16_u(), |
199 | 291 | 0x8b => visitor.visit_i16x8_shl(), |
200 | 251 | 0x8c => visitor.visit_i16x8_shr_s(), |
201 | 192 | 0x8d => visitor.visit_i16x8_shr_u(), |
202 | 116 | 0x8e => visitor.visit_i16x8_add(), |
203 | 17 | 0x8f => visitor.visit_i16x8_add_sat_s(), |
204 | 238 | 0x90 => visitor.visit_i16x8_add_sat_u(), |
205 | 76 | 0x91 => visitor.visit_i16x8_sub(), |
206 | 76 | 0x92 => visitor.visit_i16x8_sub_sat_s(), |
207 | 33 | 0x93 => visitor.visit_i16x8_sub_sat_u(), |
208 | 7.85k | 0x94 => visitor.visit_f64x2_nearest(), |
209 | 106 | 0x95 => visitor.visit_i16x8_mul(), |
210 | 230 | 0x96 => visitor.visit_i16x8_min_s(), |
211 | 181 | 0x97 => visitor.visit_i16x8_min_u(), |
212 | 86 | 0x98 => visitor.visit_i16x8_max_s(), |
213 | 113 | 0x99 => visitor.visit_i16x8_max_u(), |
214 | 93 | 0x9b => visitor.visit_i16x8_avgr_u(), |
215 | 248 | 0x9c => visitor.visit_i16x8_extmul_low_i8x16_s(), |
216 | 146 | 0x9d => visitor.visit_i16x8_extmul_high_i8x16_s(), |
217 | 62 | 0x9e => visitor.visit_i16x8_extmul_low_i8x16_u(), |
218 | 95 | 0x9f => visitor.visit_i16x8_extmul_high_i8x16_u(), |
219 | 13.8k | 0xa0 => visitor.visit_i32x4_abs(), |
220 | 26.9k | 0xa1 => visitor.visit_i32x4_neg(), |
221 | 4.13k | 0xa3 => visitor.visit_i32x4_all_true(), |
222 | 7.78k | 0xa4 => visitor.visit_i32x4_bitmask(), |
223 | 14.9k | 0xa7 => visitor.visit_i32x4_extend_low_i16x8_s(), |
224 | 4.41k | 0xa8 => visitor.visit_i32x4_extend_high_i16x8_s(), |
225 | 5.41k | 0xa9 => visitor.visit_i32x4_extend_low_i16x8_u(), |
226 | 9.74k | 0xaa => visitor.visit_i32x4_extend_high_i16x8_u(), |
227 | 236 | 0xab => visitor.visit_i32x4_shl(), |
228 | 262 | 0xac => visitor.visit_i32x4_shr_s(), |
229 | 117 | 0xad => visitor.visit_i32x4_shr_u(), |
230 | 86 | 0xae => visitor.visit_i32x4_add(), |
231 | 37 | 0xb1 => visitor.visit_i32x4_sub(), |
232 | 124 | 0xb5 => visitor.visit_i32x4_mul(), |
233 | 26 | 0xb6 => visitor.visit_i32x4_min_s(), |
234 | 90 | 0xb7 => visitor.visit_i32x4_min_u(), |
235 | 41 | 0xb8 => visitor.visit_i32x4_max_s(), |
236 | 71 | 0xb9 => visitor.visit_i32x4_max_u(), |
237 | 96 | 0xba => visitor.visit_i32x4_dot_i16x8_s(), |
238 | 181 | 0xbc => visitor.visit_i32x4_extmul_low_i16x8_s(), |
239 | 36 | 0xbd => visitor.visit_i32x4_extmul_high_i16x8_s(), |
240 | 75 | 0xbe => visitor.visit_i32x4_extmul_low_i16x8_u(), |
241 | 186 | 0xbf => visitor.visit_i32x4_extmul_high_i16x8_u(), |
242 | 9.32k | 0xc0 => visitor.visit_i64x2_abs(), |
243 | 19.5k | 0xc1 => visitor.visit_i64x2_neg(), |
244 | 5.17k | 0xc3 => visitor.visit_i64x2_all_true(), |
245 | 7.20k | 0xc4 => visitor.visit_i64x2_bitmask(), |
246 | 10.7k | 0xc7 => visitor.visit_i64x2_extend_low_i32x4_s(), |
247 | 4.64k | 0xc8 => visitor.visit_i64x2_extend_high_i32x4_s(), |
248 | 3.92k | 0xc9 => visitor.visit_i64x2_extend_low_i32x4_u(), |
249 | 3.08k | 0xca => visitor.visit_i64x2_extend_high_i32x4_u(), |
250 | 290 | 0xcb => visitor.visit_i64x2_shl(), |
251 | 175 | 0xcc => visitor.visit_i64x2_shr_s(), |
252 | 256 | 0xcd => visitor.visit_i64x2_shr_u(), |
253 | 105 | 0xce => visitor.visit_i64x2_add(), |
254 | 95 | 0xd1 => visitor.visit_i64x2_sub(), |
255 | 321 | 0xd5 => visitor.visit_i64x2_mul(), |
256 | 43 | 0xd6 => visitor.visit_i64x2_eq(), |
257 | 111 | 0xd7 => visitor.visit_i64x2_ne(), |
258 | 99 | 0xd8 => visitor.visit_i64x2_lt_s(), |
259 | 68 | 0xd9 => visitor.visit_i64x2_gt_s(), |
260 | 148 | 0xda => visitor.visit_i64x2_le_s(), |
261 | 75 | 0xdb => visitor.visit_i64x2_ge_s(), |
262 | 234 | 0xdc => visitor.visit_i64x2_extmul_low_i32x4_s(), |
263 | 61 | 0xdd => visitor.visit_i64x2_extmul_high_i32x4_s(), |
264 | 41 | 0xde => visitor.visit_i64x2_extmul_low_i32x4_u(), |
265 | 217 | 0xdf => visitor.visit_i64x2_extmul_high_i32x4_u(), |
266 | 5.21k | 0xe0 => visitor.visit_f32x4_abs(), |
267 | 3.97k | 0xe1 => visitor.visit_f32x4_neg(), |
268 | 7.01k | 0xe3 => visitor.visit_f32x4_sqrt(), |
269 | 20 | 0xe4 => visitor.visit_f32x4_add(), |
270 | 128 | 0xe5 => visitor.visit_f32x4_sub(), |
271 | 38 | 0xe6 => visitor.visit_f32x4_mul(), |
272 | 106 | 0xe7 => visitor.visit_f32x4_div(), |
273 | 29 | 0xe8 => visitor.visit_f32x4_min(), |
274 | 37 | 0xe9 => visitor.visit_f32x4_max(), |
275 | 55 | 0xea => visitor.visit_f32x4_pmin(), |
276 | 7 | 0xeb => visitor.visit_f32x4_pmax(), |
277 | 8.19k | 0xec => visitor.visit_f64x2_abs(), |
278 | 8.90k | 0xed => visitor.visit_f64x2_neg(), |
279 | 2.67k | 0xef => visitor.visit_f64x2_sqrt(), |
280 | 80 | 0xf0 => visitor.visit_f64x2_add(), |
281 | 10 | 0xf1 => visitor.visit_f64x2_sub(), |
282 | 27 | 0xf2 => visitor.visit_f64x2_mul(), |
283 | 2 | 0xf3 => visitor.visit_f64x2_div(), |
284 | 38 | 0xf4 => visitor.visit_f64x2_min(), |
285 | 32 | 0xf5 => visitor.visit_f64x2_max(), |
286 | 44 | 0xf6 => visitor.visit_f64x2_pmin(), |
287 | 12 | 0xf7 => visitor.visit_f64x2_pmax(), |
288 | 8.21k | 0xf8 => visitor.visit_i32x4_trunc_sat_f32x4_s(), |
289 | 2.60k | 0xf9 => visitor.visit_i32x4_trunc_sat_f32x4_u(), |
290 | 3.89k | 0xfa => visitor.visit_f32x4_convert_i32x4_s(), |
291 | 3.47k | 0xfb => visitor.visit_f32x4_convert_i32x4_u(), |
292 | 6.40k | 0xfc => visitor.visit_i32x4_trunc_sat_f64x2_s_zero(), |
293 | 1.55k | 0xfd => visitor.visit_i32x4_trunc_sat_f64x2_u_zero(), |
294 | 3.70k | 0xfe => visitor.visit_f64x2_convert_low_i32x4_s(), |
295 | 2.10k | 0xff => visitor.visit_f64x2_convert_low_i32x4_u(), |
296 | 7 | 0x100 => visitor.visit_i8x16_relaxed_swizzle(), |
297 | 713 | 0x101 => visitor.visit_i32x4_relaxed_trunc_f32x4_s(), |
298 | 4.24k | 0x102 => visitor.visit_i32x4_relaxed_trunc_f32x4_u(), |
299 | 1.62k | 0x103 => visitor.visit_i32x4_relaxed_trunc_f64x2_s_zero(), |
300 | 349 | 0x104 => visitor.visit_i32x4_relaxed_trunc_f64x2_u_zero(), |
301 | 0 | 0x105 => visitor.visit_f32x4_relaxed_madd(), |
302 | 0 | 0x106 => visitor.visit_f32x4_relaxed_nmadd(), |
303 | 0 | 0x107 => visitor.visit_f64x2_relaxed_madd(), |
304 | 0 | 0x108 => visitor.visit_f64x2_relaxed_nmadd(), |
305 | 22 | 0x109 => visitor.visit_i8x16_relaxed_laneselect(), |
306 | 0 | 0x10a => visitor.visit_i16x8_relaxed_laneselect(), |
307 | 40 | 0x10b => visitor.visit_i32x4_relaxed_laneselect(), |
308 | 4 | 0x10c => visitor.visit_i64x2_relaxed_laneselect(), |
309 | 0 | 0x10d => visitor.visit_f32x4_relaxed_min(), |
310 | 0 | 0x10e => visitor.visit_f32x4_relaxed_max(), |
311 | 8 | 0x10f => visitor.visit_f64x2_relaxed_min(), |
312 | 27 | 0x110 => visitor.visit_f64x2_relaxed_max(), |
313 | 112 | 0x111 => visitor.visit_i16x8_relaxed_q15mulr_s(), |
314 | 82 | 0x112 => visitor.visit_i16x8_relaxed_dot_i8x16_i7x16_s(), |
315 | 0 | 0x113 => visitor.visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(), |
316 | | |
317 | 0 | _ => bail!(pos, "unknown 0xfd subopcode: 0x{code:x}"), |
318 | | }) |
319 | 1.33M | } <wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<&mut dyn wasmparser::readers::core::operators::VisitSimdOperator<Output = core::result::Result<(), anyhow::Error>>> Line | Count | Source | 5 | 288k | pub(super) fn visit_0xfd_operator<T>( | 6 | 288k | &mut self, | 7 | 288k | pos: usize, | 8 | 288k | visitor: &mut T, | 9 | 288k | ) -> Result<<T as VisitOperator<'a>>::Output> | 10 | 288k | where | 11 | 288k | T: VisitSimdOperator<'a>, | 12 | 288k | { | 13 | 288k | let code = self.read_var_u32()?; | 14 | 288k | Ok(match code { | 15 | 670 | 0x00 => visitor.visit_v128_load(self.read_memarg(4)?), | 16 | 1.08k | 0x01 => visitor.visit_v128_load8x8_s(self.read_memarg(3)?), | 17 | 484 | 0x02 => visitor.visit_v128_load8x8_u(self.read_memarg(3)?), | 18 | 1.13k | 0x03 => visitor.visit_v128_load16x4_s(self.read_memarg(3)?), | 19 | 643 | 0x04 => visitor.visit_v128_load16x4_u(self.read_memarg(3)?), | 20 | 716 | 0x05 => visitor.visit_v128_load32x2_s(self.read_memarg(3)?), | 21 | 1.86k | 0x06 => visitor.visit_v128_load32x2_u(self.read_memarg(3)?), | 22 | 733 | 0x07 => visitor.visit_v128_load8_splat(self.read_memarg(0)?), | 23 | 557 | 0x08 => visitor.visit_v128_load16_splat(self.read_memarg(1)?), | 24 | 1.05k | 0x09 => visitor.visit_v128_load32_splat(self.read_memarg(2)?), | 25 | 366 | 0x0a => visitor.visit_v128_load64_splat(self.read_memarg(3)?), | 26 | | | 27 | 28 | 0x0b => visitor.visit_v128_store(self.read_memarg(4)?), | 28 | 84.5k | 0x0c => visitor.visit_v128_const(self.read_v128()?), | 29 | | 0x0d => { | 30 | 2 | let mut lanes: [u8; 16] = [0; 16]; | 31 | 34 | for lane in &mut lanes { | 32 | 32 | *lane = self.read_lane_index(32)? | 33 | | } | 34 | 2 | visitor.visit_i8x16_shuffle(lanes) | 35 | | } | 36 | | | 37 | 6 | 0x0e => visitor.visit_i8x16_swizzle(), | 38 | 1.41k | 0x0f => visitor.visit_i8x16_splat(), | 39 | 883 | 0x10 => visitor.visit_i16x8_splat(), | 40 | 823 | 0x11 => visitor.visit_i32x4_splat(), | 41 | 597 | 0x12 => visitor.visit_i64x2_splat(), | 42 | 558 | 0x13 => visitor.visit_f32x4_splat(), | 43 | 742 | 0x14 => visitor.visit_f64x2_splat(), | 44 | | | 45 | 1.12k | 0x15 => visitor.visit_i8x16_extract_lane_s(self.read_lane_index(16)?), | 46 | 639 | 0x16 => visitor.visit_i8x16_extract_lane_u(self.read_lane_index(16)?), | 47 | 116 | 0x17 => visitor.visit_i8x16_replace_lane(self.read_lane_index(16)?), | 48 | 870 | 0x18 => visitor.visit_i16x8_extract_lane_s(self.read_lane_index(8)?), | 49 | 1.08k | 0x19 => visitor.visit_i16x8_extract_lane_u(self.read_lane_index(8)?), | 50 | 48 | 0x1a => visitor.visit_i16x8_replace_lane(self.read_lane_index(8)?), | 51 | 570 | 0x1b => visitor.visit_i32x4_extract_lane(self.read_lane_index(4)?), | 52 | | | 53 | 84 | 0x1c => visitor.visit_i32x4_replace_lane(self.read_lane_index(4)?), | 54 | 875 | 0x1d => visitor.visit_i64x2_extract_lane(self.read_lane_index(2)?), | 55 | 109 | 0x1e => visitor.visit_i64x2_replace_lane(self.read_lane_index(2)?), | 56 | 377 | 0x1f => visitor.visit_f32x4_extract_lane(self.read_lane_index(4)?), | 57 | 20 | 0x20 => visitor.visit_f32x4_replace_lane(self.read_lane_index(4)?), | 58 | 327 | 0x21 => visitor.visit_f64x2_extract_lane(self.read_lane_index(2)?), | 59 | 80 | 0x22 => visitor.visit_f64x2_replace_lane(self.read_lane_index(2)?), | 60 | | | 61 | 12 | 0x23 => visitor.visit_i8x16_eq(), | 62 | 6 | 0x24 => visitor.visit_i8x16_ne(), | 63 | 6 | 0x25 => visitor.visit_i8x16_lt_s(), | 64 | 68 | 0x26 => visitor.visit_i8x16_lt_u(), | 65 | 10 | 0x27 => visitor.visit_i8x16_gt_s(), | 66 | 8 | 0x28 => visitor.visit_i8x16_gt_u(), | 67 | 18 | 0x29 => visitor.visit_i8x16_le_s(), | 68 | 8 | 0x2a => visitor.visit_i8x16_le_u(), | 69 | 14 | 0x2b => visitor.visit_i8x16_ge_s(), | 70 | 18 | 0x2c => visitor.visit_i8x16_ge_u(), | 71 | 34 | 0x2d => visitor.visit_i16x8_eq(), | 72 | 32 | 0x2e => visitor.visit_i16x8_ne(), | 73 | 38 | 0x2f => visitor.visit_i16x8_lt_s(), | 74 | 14 | 0x30 => visitor.visit_i16x8_lt_u(), | 75 | 6 | 0x31 => visitor.visit_i16x8_gt_s(), | 76 | 40 | 0x32 => visitor.visit_i16x8_gt_u(), | 77 | 18 | 0x33 => visitor.visit_i16x8_le_s(), | 78 | 50 | 0x34 => visitor.visit_i16x8_le_u(), | 79 | 28 | 0x35 => visitor.visit_i16x8_ge_s(), | 80 | 22 | 0x36 => visitor.visit_i16x8_ge_u(), | 81 | 12 | 0x37 => visitor.visit_i32x4_eq(), | 82 | 4 | 0x38 => visitor.visit_i32x4_ne(), | 83 | 24 | 0x39 => visitor.visit_i32x4_lt_s(), | 84 | 52 | 0x3a => visitor.visit_i32x4_lt_u(), | 85 | 8 | 0x3b => visitor.visit_i32x4_gt_s(), | 86 | 54 | 0x3c => visitor.visit_i32x4_gt_u(), | 87 | 10 | 0x3d => visitor.visit_i32x4_le_s(), | 88 | 24 | 0x3e => visitor.visit_i32x4_le_u(), | 89 | 34 | 0x3f => visitor.visit_i32x4_ge_s(), | 90 | 12 | 0x40 => visitor.visit_i32x4_ge_u(), | 91 | 6.51k | 0x41 => visitor.visit_f32x4_eq(), | 92 | 2 | 0x42 => visitor.visit_f32x4_ne(), | 93 | 32 | 0x43 => visitor.visit_f32x4_lt(), | 94 | 2 | 0x44 => visitor.visit_f32x4_gt(), | 95 | 22 | 0x45 => visitor.visit_f32x4_le(), | 96 | 50 | 0x46 => visitor.visit_f32x4_ge(), | 97 | 6.56k | 0x47 => visitor.visit_f64x2_eq(), | 98 | 10 | 0x48 => visitor.visit_f64x2_ne(), | 99 | 26 | 0x49 => visitor.visit_f64x2_lt(), | 100 | 4 | 0x4a => visitor.visit_f64x2_gt(), | 101 | 18 | 0x4b => visitor.visit_f64x2_le(), | 102 | 0 | 0x4c => visitor.visit_f64x2_ge(), | 103 | 2.28k | 0x4d => visitor.visit_v128_not(), | 104 | 40 | 0x4e => visitor.visit_v128_and(), | 105 | 34 | 0x4f => visitor.visit_v128_andnot(), | 106 | 20 | 0x50 => visitor.visit_v128_or(), | 107 | 40.9k | 0x51 => visitor.visit_v128_xor(), | 108 | 13.0k | 0x52 => visitor.visit_v128_bitselect(), | 109 | 26 | 0x53 => visitor.visit_v128_any_true(), | 110 | | | 111 | | 0x54 => { | 112 | 18 | let memarg = self.read_memarg(0)?; | 113 | 18 | let lane = self.read_lane_index(16)?; | 114 | 18 | visitor.visit_v128_load8_lane(memarg, lane) | 115 | | } | 116 | | 0x55 => { | 117 | 84 | let memarg = self.read_memarg(1)?; | 118 | 84 | let lane = self.read_lane_index(8)?; | 119 | 84 | visitor.visit_v128_load16_lane(memarg, lane) | 120 | | } | 121 | | 0x56 => { | 122 | 58 | let memarg = self.read_memarg(2)?; | 123 | 58 | let lane = self.read_lane_index(4)?; | 124 | 58 | visitor.visit_v128_load32_lane(memarg, lane) | 125 | | } | 126 | | 0x57 => { | 127 | 20 | let memarg = self.read_memarg(3)?; | 128 | 20 | let lane = self.read_lane_index(2)?; | 129 | 20 | visitor.visit_v128_load64_lane(memarg, lane) | 130 | | } | 131 | | 0x58 => { | 132 | 40 | let memarg = self.read_memarg(0)?; | 133 | 40 | let lane = self.read_lane_index(16)?; | 134 | 40 | visitor.visit_v128_store8_lane(memarg, lane) | 135 | | } | 136 | | 0x59 => { | 137 | 54 | let memarg = self.read_memarg(1)?; | 138 | 54 | let lane = self.read_lane_index(8)?; | 139 | 54 | visitor.visit_v128_store16_lane(memarg, lane) | 140 | | } | 141 | | 0x5a => { | 142 | 14 | let memarg = self.read_memarg(2)?; | 143 | 14 | let lane = self.read_lane_index(4)?; | 144 | 14 | visitor.visit_v128_store32_lane(memarg, lane) | 145 | | } | 146 | | 0x5b => { | 147 | 50 | let memarg = self.read_memarg(3)?; | 148 | 50 | let lane = self.read_lane_index(2)?; | 149 | 50 | visitor.visit_v128_store64_lane(memarg, lane) | 150 | | } | 151 | | | 152 | 836 | 0x5c => visitor.visit_v128_load32_zero(self.read_memarg(2)?), | 153 | 549 | 0x5d => visitor.visit_v128_load64_zero(self.read_memarg(3)?), | 154 | 2.41k | 0x5e => visitor.visit_f32x4_demote_f64x2_zero(), | 155 | 964 | 0x5f => visitor.visit_f64x2_promote_low_f32x4(), | 156 | 1.62k | 0x60 => visitor.visit_i8x16_abs(), | 157 | 1.83k | 0x61 => visitor.visit_i8x16_neg(), | 158 | 1.91k | 0x62 => visitor.visit_i8x16_popcnt(), | 159 | 516 | 0x63 => visitor.visit_i8x16_all_true(), | 160 | 996 | 0x64 => visitor.visit_i8x16_bitmask(), | 161 | 18 | 0x65 => visitor.visit_i8x16_narrow_i16x8_s(), | 162 | 16 | 0x66 => visitor.visit_i8x16_narrow_i16x8_u(), | 163 | 613 | 0x67 => visitor.visit_f32x4_ceil(), | 164 | 805 | 0x68 => visitor.visit_f32x4_floor(), | 165 | 3.00k | 0x69 => visitor.visit_f32x4_trunc(), | 166 | 721 | 0x6a => visitor.visit_f32x4_nearest(), | 167 | 256 | 0x6b => visitor.visit_i8x16_shl(), | 168 | 84 | 0x6c => visitor.visit_i8x16_shr_s(), | 169 | 24 | 0x6d => visitor.visit_i8x16_shr_u(), | 170 | 44 | 0x6e => visitor.visit_i8x16_add(), | 171 | 2 | 0x6f => visitor.visit_i8x16_add_sat_s(), | 172 | 16 | 0x70 => visitor.visit_i8x16_add_sat_u(), | 173 | 8 | 0x71 => visitor.visit_i8x16_sub(), | 174 | 12 | 0x72 => visitor.visit_i8x16_sub_sat_s(), | 175 | 6 | 0x73 => visitor.visit_i8x16_sub_sat_u(), | 176 | 508 | 0x74 => visitor.visit_f64x2_ceil(), | 177 | 1.26k | 0x75 => visitor.visit_f64x2_floor(), | 178 | 46 | 0x76 => visitor.visit_i8x16_min_s(), | 179 | 36 | 0x77 => visitor.visit_i8x16_min_u(), | 180 | 14 | 0x78 => visitor.visit_i8x16_max_s(), | 181 | 4 | 0x79 => visitor.visit_i8x16_max_u(), | 182 | 972 | 0x7a => visitor.visit_f64x2_trunc(), | 183 | 44 | 0x7b => visitor.visit_i8x16_avgr_u(), | 184 | 2.63k | 0x7c => visitor.visit_i16x8_extadd_pairwise_i8x16_s(), | 185 | 2.05k | 0x7d => visitor.visit_i16x8_extadd_pairwise_i8x16_u(), | 186 | 994 | 0x7e => visitor.visit_i32x4_extadd_pairwise_i16x8_s(), | 187 | 4.46k | 0x7f => visitor.visit_i32x4_extadd_pairwise_i16x8_u(), | 188 | 1.47k | 0x80 => visitor.visit_i16x8_abs(), | 189 | 2.49k | 0x81 => visitor.visit_i16x8_neg(), | 190 | 44 | 0x82 => visitor.visit_i16x8_q15mulr_sat_s(), | 191 | 480 | 0x83 => visitor.visit_i16x8_all_true(), | 192 | 598 | 0x84 => visitor.visit_i16x8_bitmask(), | 193 | 8 | 0x85 => visitor.visit_i16x8_narrow_i32x4_s(), | 194 | 82 | 0x86 => visitor.visit_i16x8_narrow_i32x4_u(), | 195 | 1.92k | 0x87 => visitor.visit_i16x8_extend_low_i8x16_s(), | 196 | 1.55k | 0x88 => visitor.visit_i16x8_extend_high_i8x16_s(), | 197 | 1.50k | 0x89 => visitor.visit_i16x8_extend_low_i8x16_u(), | 198 | 2.05k | 0x8a => visitor.visit_i16x8_extend_high_i8x16_u(), | 199 | 110 | 0x8b => visitor.visit_i16x8_shl(), | 200 | 42 | 0x8c => visitor.visit_i16x8_shr_s(), | 201 | 12 | 0x8d => visitor.visit_i16x8_shr_u(), | 202 | 28 | 0x8e => visitor.visit_i16x8_add(), | 203 | 6 | 0x8f => visitor.visit_i16x8_add_sat_s(), | 204 | 12 | 0x90 => visitor.visit_i16x8_add_sat_u(), | 205 | 32 | 0x91 => visitor.visit_i16x8_sub(), | 206 | 34 | 0x92 => visitor.visit_i16x8_sub_sat_s(), | 207 | 2 | 0x93 => visitor.visit_i16x8_sub_sat_u(), | 208 | 3.45k | 0x94 => visitor.visit_f64x2_nearest(), | 209 | 28 | 0x95 => visitor.visit_i16x8_mul(), | 210 | 58 | 0x96 => visitor.visit_i16x8_min_s(), | 211 | 86 | 0x97 => visitor.visit_i16x8_min_u(), | 212 | 8 | 0x98 => visitor.visit_i16x8_max_s(), | 213 | 46 | 0x99 => visitor.visit_i16x8_max_u(), | 214 | 16 | 0x9b => visitor.visit_i16x8_avgr_u(), | 215 | 82 | 0x9c => visitor.visit_i16x8_extmul_low_i8x16_s(), | 216 | 44 | 0x9d => visitor.visit_i16x8_extmul_high_i8x16_s(), | 217 | 28 | 0x9e => visitor.visit_i16x8_extmul_low_i8x16_u(), | 218 | 36 | 0x9f => visitor.visit_i16x8_extmul_high_i8x16_u(), | 219 | 1.71k | 0xa0 => visitor.visit_i32x4_abs(), | 220 | 10.2k | 0xa1 => visitor.visit_i32x4_neg(), | 221 | 978 | 0xa3 => visitor.visit_i32x4_all_true(), | 222 | 1.77k | 0xa4 => visitor.visit_i32x4_bitmask(), | 223 | 5.88k | 0xa7 => visitor.visit_i32x4_extend_low_i16x8_s(), | 224 | 1.16k | 0xa8 => visitor.visit_i32x4_extend_high_i16x8_s(), | 225 | 1.35k | 0xa9 => visitor.visit_i32x4_extend_low_i16x8_u(), | 226 | 1.36k | 0xaa => visitor.visit_i32x4_extend_high_i16x8_u(), | 227 | 70 | 0xab => visitor.visit_i32x4_shl(), | 228 | 84 | 0xac => visitor.visit_i32x4_shr_s(), | 229 | 6 | 0xad => visitor.visit_i32x4_shr_u(), | 230 | 12 | 0xae => visitor.visit_i32x4_add(), | 231 | 12 | 0xb1 => visitor.visit_i32x4_sub(), | 232 | 54 | 0xb5 => visitor.visit_i32x4_mul(), | 233 | 6 | 0xb6 => visitor.visit_i32x4_min_s(), | 234 | 30 | 0xb7 => visitor.visit_i32x4_min_u(), | 235 | 16 | 0xb8 => visitor.visit_i32x4_max_s(), | 236 | 32 | 0xb9 => visitor.visit_i32x4_max_u(), | 237 | 12 | 0xba => visitor.visit_i32x4_dot_i16x8_s(), | 238 | 36 | 0xbc => visitor.visit_i32x4_extmul_low_i16x8_s(), | 239 | 16 | 0xbd => visitor.visit_i32x4_extmul_high_i16x8_s(), | 240 | 30 | 0xbe => visitor.visit_i32x4_extmul_low_i16x8_u(), | 241 | 18 | 0xbf => visitor.visit_i32x4_extmul_high_i16x8_u(), | 242 | 1.72k | 0xc0 => visitor.visit_i64x2_abs(), | 243 | 6.37k | 0xc1 => visitor.visit_i64x2_neg(), | 244 | 1.24k | 0xc3 => visitor.visit_i64x2_all_true(), | 245 | 1.11k | 0xc4 => visitor.visit_i64x2_bitmask(), | 246 | 2.66k | 0xc7 => visitor.visit_i64x2_extend_low_i32x4_s(), | 247 | 1.47k | 0xc8 => visitor.visit_i64x2_extend_high_i32x4_s(), | 248 | 877 | 0xc9 => visitor.visit_i64x2_extend_low_i32x4_u(), | 249 | 765 | 0xca => visitor.visit_i64x2_extend_high_i32x4_u(), | 250 | 76 | 0xcb => visitor.visit_i64x2_shl(), | 251 | 30 | 0xcc => visitor.visit_i64x2_shr_s(), | 252 | 74 | 0xcd => visitor.visit_i64x2_shr_u(), | 253 | 38 | 0xce => visitor.visit_i64x2_add(), | 254 | 28 | 0xd1 => visitor.visit_i64x2_sub(), | 255 | 2 | 0xd5 => visitor.visit_i64x2_mul(), | 256 | 16 | 0xd6 => visitor.visit_i64x2_eq(), | 257 | 14 | 0xd7 => visitor.visit_i64x2_ne(), | 258 | 38 | 0xd8 => visitor.visit_i64x2_lt_s(), | 259 | 22 | 0xd9 => visitor.visit_i64x2_gt_s(), | 260 | 62 | 0xda => visitor.visit_i64x2_le_s(), | 261 | 30 | 0xdb => visitor.visit_i64x2_ge_s(), | 262 | 32 | 0xdc => visitor.visit_i64x2_extmul_low_i32x4_s(), | 263 | 4 | 0xdd => visitor.visit_i64x2_extmul_high_i32x4_s(), | 264 | 12 | 0xde => visitor.visit_i64x2_extmul_low_i32x4_u(), | 265 | 38 | 0xdf => visitor.visit_i64x2_extmul_high_i32x4_u(), | 266 | 2.21k | 0xe0 => visitor.visit_f32x4_abs(), | 267 | 1.20k | 0xe1 => visitor.visit_f32x4_neg(), | 268 | 1.64k | 0xe3 => visitor.visit_f32x4_sqrt(), | 269 | 10 | 0xe4 => visitor.visit_f32x4_add(), | 270 | 64 | 0xe5 => visitor.visit_f32x4_sub(), | 271 | 18 | 0xe6 => visitor.visit_f32x4_mul(), | 272 | 42 | 0xe7 => visitor.visit_f32x4_div(), | 273 | 14 | 0xe8 => visitor.visit_f32x4_min(), | 274 | 2 | 0xe9 => visitor.visit_f32x4_max(), | 275 | 4 | 0xea => visitor.visit_f32x4_pmin(), | 276 | 2 | 0xeb => visitor.visit_f32x4_pmax(), | 277 | 2.84k | 0xec => visitor.visit_f64x2_abs(), | 278 | 3.47k | 0xed => visitor.visit_f64x2_neg(), | 279 | 779 | 0xef => visitor.visit_f64x2_sqrt(), | 280 | 34 | 0xf0 => visitor.visit_f64x2_add(), | 281 | 4 | 0xf1 => visitor.visit_f64x2_sub(), | 282 | 10 | 0xf2 => visitor.visit_f64x2_mul(), | 283 | 0 | 0xf3 => visitor.visit_f64x2_div(), | 284 | 8 | 0xf4 => visitor.visit_f64x2_min(), | 285 | 10 | 0xf5 => visitor.visit_f64x2_max(), | 286 | 22 | 0xf6 => visitor.visit_f64x2_pmin(), | 287 | 6 | 0xf7 => visitor.visit_f64x2_pmax(), | 288 | 3.41k | 0xf8 => visitor.visit_i32x4_trunc_sat_f32x4_s(), | 289 | 552 | 0xf9 => visitor.visit_i32x4_trunc_sat_f32x4_u(), | 290 | 1.44k | 0xfa => visitor.visit_f32x4_convert_i32x4_s(), | 291 | 1.04k | 0xfb => visitor.visit_f32x4_convert_i32x4_u(), | 292 | 2.84k | 0xfc => visitor.visit_i32x4_trunc_sat_f64x2_s_zero(), | 293 | 549 | 0xfd => visitor.visit_i32x4_trunc_sat_f64x2_u_zero(), | 294 | 1.49k | 0xfe => visitor.visit_f64x2_convert_low_i32x4_s(), | 295 | 366 | 0xff => visitor.visit_f64x2_convert_low_i32x4_u(), | 296 | 2 | 0x100 => visitor.visit_i8x16_relaxed_swizzle(), | 297 | 94 | 0x101 => visitor.visit_i32x4_relaxed_trunc_f32x4_s(), | 298 | 146 | 0x102 => visitor.visit_i32x4_relaxed_trunc_f32x4_u(), | 299 | 134 | 0x103 => visitor.visit_i32x4_relaxed_trunc_f64x2_s_zero(), | 300 | 88 | 0x104 => visitor.visit_i32x4_relaxed_trunc_f64x2_u_zero(), | 301 | 0 | 0x105 => visitor.visit_f32x4_relaxed_madd(), | 302 | 0 | 0x106 => visitor.visit_f32x4_relaxed_nmadd(), | 303 | 0 | 0x107 => visitor.visit_f64x2_relaxed_madd(), | 304 | 0 | 0x108 => visitor.visit_f64x2_relaxed_nmadd(), | 305 | 10 | 0x109 => visitor.visit_i8x16_relaxed_laneselect(), | 306 | 0 | 0x10a => visitor.visit_i16x8_relaxed_laneselect(), | 307 | 20 | 0x10b => visitor.visit_i32x4_relaxed_laneselect(), | 308 | 2 | 0x10c => visitor.visit_i64x2_relaxed_laneselect(), | 309 | 0 | 0x10d => visitor.visit_f32x4_relaxed_min(), | 310 | 0 | 0x10e => visitor.visit_f32x4_relaxed_max(), | 311 | 4 | 0x10f => visitor.visit_f64x2_relaxed_min(), | 312 | 8 | 0x110 => visitor.visit_f64x2_relaxed_max(), | 313 | 50 | 0x111 => visitor.visit_i16x8_relaxed_q15mulr_s(), | 314 | 0 | 0x112 => visitor.visit_i16x8_relaxed_dot_i8x16_i7x16_s(), | 315 | 0 | 0x113 => visitor.visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(), | 316 | | | 317 | 0 | _ => bail!(pos, "unknown 0xfd subopcode: 0x{code:x}"), | 318 | | }) | 319 | 288k | } |
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<&mut dyn wasmparser::readers::core::operators::VisitSimdOperator<Output = ()>> <wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<&mut dyn wasmparser::readers::core::operators::VisitSimdOperator<Output = core::result::Result<(), wasmparser::binary_reader::BinaryReaderError>>> Line | Count | Source | 5 | 640k | pub(super) fn visit_0xfd_operator<T>( | 6 | 640k | &mut self, | 7 | 640k | pos: usize, | 8 | 640k | visitor: &mut T, | 9 | 640k | ) -> Result<<T as VisitOperator<'a>>::Output> | 10 | 640k | where | 11 | 640k | T: VisitSimdOperator<'a>, | 12 | 640k | { | 13 | 640k | let code = self.read_var_u32()?; | 14 | 640k | Ok(match code { | 15 | 2.22k | 0x00 => visitor.visit_v128_load(self.read_memarg(4)?), | 16 | 2.24k | 0x01 => visitor.visit_v128_load8x8_s(self.read_memarg(3)?), | 17 | 1.09k | 0x02 => visitor.visit_v128_load8x8_u(self.read_memarg(3)?), | 18 | 1.53k | 0x03 => visitor.visit_v128_load16x4_s(self.read_memarg(3)?), | 19 | 652 | 0x04 => visitor.visit_v128_load16x4_u(self.read_memarg(3)?), | 20 | 1.05k | 0x05 => visitor.visit_v128_load32x2_s(self.read_memarg(3)?), | 21 | 1.50k | 0x06 => visitor.visit_v128_load32x2_u(self.read_memarg(3)?), | 22 | 3.40k | 0x07 => visitor.visit_v128_load8_splat(self.read_memarg(0)?), | 23 | 809 | 0x08 => visitor.visit_v128_load16_splat(self.read_memarg(1)?), | 24 | 1.39k | 0x09 => visitor.visit_v128_load32_splat(self.read_memarg(2)?), | 25 | 1.89k | 0x0a => visitor.visit_v128_load64_splat(self.read_memarg(3)?), | 26 | | | 27 | 130 | 0x0b => visitor.visit_v128_store(self.read_memarg(4)?), | 28 | 173k | 0x0c => visitor.visit_v128_const(self.read_v128()?), | 29 | | 0x0d => { | 30 | 5 | let mut lanes: [u8; 16] = [0; 16]; | 31 | 85 | for lane in &mut lanes { | 32 | 80 | *lane = self.read_lane_index(32)? | 33 | | } | 34 | 5 | visitor.visit_i8x16_shuffle(lanes) | 35 | | } | 36 | | | 37 | 27 | 0x0e => visitor.visit_i8x16_swizzle(), | 38 | 4.26k | 0x0f => visitor.visit_i8x16_splat(), | 39 | 3.78k | 0x10 => visitor.visit_i16x8_splat(), | 40 | 4.45k | 0x11 => visitor.visit_i32x4_splat(), | 41 | 1.44k | 0x12 => visitor.visit_i64x2_splat(), | 42 | 722 | 0x13 => visitor.visit_f32x4_splat(), | 43 | 849 | 0x14 => visitor.visit_f64x2_splat(), | 44 | | | 45 | 2.70k | 0x15 => visitor.visit_i8x16_extract_lane_s(self.read_lane_index(16)?), | 46 | 1.73k | 0x16 => visitor.visit_i8x16_extract_lane_u(self.read_lane_index(16)?), | 47 | 178 | 0x17 => visitor.visit_i8x16_replace_lane(self.read_lane_index(16)?), | 48 | 2.46k | 0x18 => visitor.visit_i16x8_extract_lane_s(self.read_lane_index(8)?), | 49 | 1.80k | 0x19 => visitor.visit_i16x8_extract_lane_u(self.read_lane_index(8)?), | 50 | 66 | 0x1a => visitor.visit_i16x8_replace_lane(self.read_lane_index(8)?), | 51 | 1.66k | 0x1b => visitor.visit_i32x4_extract_lane(self.read_lane_index(4)?), | 52 | | | 53 | 176 | 0x1c => visitor.visit_i32x4_replace_lane(self.read_lane_index(4)?), | 54 | 3.23k | 0x1d => visitor.visit_i64x2_extract_lane(self.read_lane_index(2)?), | 55 | 391 | 0x1e => visitor.visit_i64x2_replace_lane(self.read_lane_index(2)?), | 56 | 658 | 0x1f => visitor.visit_f32x4_extract_lane(self.read_lane_index(4)?), | 57 | 41 | 0x20 => visitor.visit_f32x4_replace_lane(self.read_lane_index(4)?), | 58 | 637 | 0x21 => visitor.visit_f64x2_extract_lane(self.read_lane_index(2)?), | 59 | 46 | 0x22 => visitor.visit_f64x2_replace_lane(self.read_lane_index(2)?), | 60 | | | 61 | 83 | 0x23 => visitor.visit_i8x16_eq(), | 62 | 10 | 0x24 => visitor.visit_i8x16_ne(), | 63 | 109 | 0x25 => visitor.visit_i8x16_lt_s(), | 64 | 55 | 0x26 => visitor.visit_i8x16_lt_u(), | 65 | 11 | 0x27 => visitor.visit_i8x16_gt_s(), | 66 | 37 | 0x28 => visitor.visit_i8x16_gt_u(), | 67 | 18 | 0x29 => visitor.visit_i8x16_le_s(), | 68 | 28 | 0x2a => visitor.visit_i8x16_le_u(), | 69 | 625 | 0x2b => visitor.visit_i8x16_ge_s(), | 70 | 21 | 0x2c => visitor.visit_i8x16_ge_u(), | 71 | 81 | 0x2d => visitor.visit_i16x8_eq(), | 72 | 55 | 0x2e => visitor.visit_i16x8_ne(), | 73 | 65 | 0x2f => visitor.visit_i16x8_lt_s(), | 74 | 10 | 0x30 => visitor.visit_i16x8_lt_u(), | 75 | 5 | 0x31 => visitor.visit_i16x8_gt_s(), | 76 | 22 | 0x32 => visitor.visit_i16x8_gt_u(), | 77 | 10 | 0x33 => visitor.visit_i16x8_le_s(), | 78 | 33 | 0x34 => visitor.visit_i16x8_le_u(), | 79 | 20 | 0x35 => visitor.visit_i16x8_ge_s(), | 80 | 14 | 0x36 => visitor.visit_i16x8_ge_u(), | 81 | 10 | 0x37 => visitor.visit_i32x4_eq(), | 82 | 16 | 0x38 => visitor.visit_i32x4_ne(), | 83 | 13 | 0x39 => visitor.visit_i32x4_lt_s(), | 84 | 66 | 0x3a => visitor.visit_i32x4_lt_u(), | 85 | 70 | 0x3b => visitor.visit_i32x4_gt_s(), | 86 | 100 | 0x3c => visitor.visit_i32x4_gt_u(), | 87 | 9 | 0x3d => visitor.visit_i32x4_le_s(), | 88 | 46 | 0x3e => visitor.visit_i32x4_le_u(), | 89 | 89 | 0x3f => visitor.visit_i32x4_ge_s(), | 90 | 32 | 0x40 => visitor.visit_i32x4_ge_u(), | 91 | 8.98k | 0x41 => visitor.visit_f32x4_eq(), | 92 | 1 | 0x42 => visitor.visit_f32x4_ne(), | 93 | 38 | 0x43 => visitor.visit_f32x4_lt(), | 94 | 2 | 0x44 => visitor.visit_f32x4_gt(), | 95 | 21 | 0x45 => visitor.visit_f32x4_le(), | 96 | 41 | 0x46 => visitor.visit_f32x4_ge(), | 97 | 7.38k | 0x47 => visitor.visit_f64x2_eq(), | 98 | 16 | 0x48 => visitor.visit_f64x2_ne(), | 99 | 23 | 0x49 => visitor.visit_f64x2_lt(), | 100 | 2 | 0x4a => visitor.visit_f64x2_gt(), | 101 | 49 | 0x4b => visitor.visit_f64x2_le(), | 102 | 3 | 0x4c => visitor.visit_f64x2_ge(), | 103 | 3.10k | 0x4d => visitor.visit_v128_not(), | 104 | 24 | 0x4e => visitor.visit_v128_and(), | 105 | 35 | 0x4f => visitor.visit_v128_andnot(), | 106 | 75 | 0x50 => visitor.visit_v128_or(), | 107 | 135k | 0x51 => visitor.visit_v128_xor(), | 108 | 16.3k | 0x52 => visitor.visit_v128_bitselect(), | 109 | 140 | 0x53 => visitor.visit_v128_any_true(), | 110 | | | 111 | | 0x54 => { | 112 | 55 | let memarg = self.read_memarg(0)?; | 113 | 55 | let lane = self.read_lane_index(16)?; | 114 | 55 | visitor.visit_v128_load8_lane(memarg, lane) | 115 | | } | 116 | | 0x55 => { | 117 | 94 | let memarg = self.read_memarg(1)?; | 118 | 94 | let lane = self.read_lane_index(8)?; | 119 | 94 | visitor.visit_v128_load16_lane(memarg, lane) | 120 | | } | 121 | | 0x56 => { | 122 | 57 | let memarg = self.read_memarg(2)?; | 123 | 57 | let lane = self.read_lane_index(4)?; | 124 | 57 | visitor.visit_v128_load32_lane(memarg, lane) | 125 | | } | 126 | | 0x57 => { | 127 | 69 | let memarg = self.read_memarg(3)?; | 128 | 69 | let lane = self.read_lane_index(2)?; | 129 | 69 | visitor.visit_v128_load64_lane(memarg, lane) | 130 | | } | 131 | | 0x58 => { | 132 | 44 | let memarg = self.read_memarg(0)?; | 133 | 44 | let lane = self.read_lane_index(16)?; | 134 | 44 | visitor.visit_v128_store8_lane(memarg, lane) | 135 | | } | 136 | | 0x59 => { | 137 | 50 | let memarg = self.read_memarg(1)?; | 138 | 50 | let lane = self.read_lane_index(8)?; | 139 | 50 | visitor.visit_v128_store16_lane(memarg, lane) | 140 | | } | 141 | | 0x5a => { | 142 | 32 | let memarg = self.read_memarg(2)?; | 143 | 32 | let lane = self.read_lane_index(4)?; | 144 | 32 | visitor.visit_v128_store32_lane(memarg, lane) | 145 | | } | 146 | | 0x5b => { | 147 | 49 | let memarg = self.read_memarg(3)?; | 148 | 49 | let lane = self.read_lane_index(2)?; | 149 | 49 | visitor.visit_v128_store64_lane(memarg, lane) | 150 | | } | 151 | | | 152 | 979 | 0x5c => visitor.visit_v128_load32_zero(self.read_memarg(2)?), | 153 | 1.32k | 0x5d => visitor.visit_v128_load64_zero(self.read_memarg(3)?), | 154 | 1.54k | 0x5e => visitor.visit_f32x4_demote_f64x2_zero(), | 155 | 2.00k | 0x5f => visitor.visit_f64x2_promote_low_f32x4(), | 156 | 5.07k | 0x60 => visitor.visit_i8x16_abs(), | 157 | 12.0k | 0x61 => visitor.visit_i8x16_neg(), | 158 | 4.15k | 0x62 => visitor.visit_i8x16_popcnt(), | 159 | 4.02k | 0x63 => visitor.visit_i8x16_all_true(), | 160 | 2.78k | 0x64 => visitor.visit_i8x16_bitmask(), | 161 | 195 | 0x65 => visitor.visit_i8x16_narrow_i16x8_s(), | 162 | 55 | 0x66 => visitor.visit_i8x16_narrow_i16x8_u(), | 163 | 1.08k | 0x67 => visitor.visit_f32x4_ceil(), | 164 | 1.12k | 0x68 => visitor.visit_f32x4_floor(), | 165 | 2.03k | 0x69 => visitor.visit_f32x4_trunc(), | 166 | 862 | 0x6a => visitor.visit_f32x4_nearest(), | 167 | 283 | 0x6b => visitor.visit_i8x16_shl(), | 168 | 310 | 0x6c => visitor.visit_i8x16_shr_s(), | 169 | 66 | 0x6d => visitor.visit_i8x16_shr_u(), | 170 | 113 | 0x6e => visitor.visit_i8x16_add(), | 171 | 17 | 0x6f => visitor.visit_i8x16_add_sat_s(), | 172 | 50 | 0x70 => visitor.visit_i8x16_add_sat_u(), | 173 | 9 | 0x71 => visitor.visit_i8x16_sub(), | 174 | 25 | 0x72 => visitor.visit_i8x16_sub_sat_s(), | 175 | 4 | 0x73 => visitor.visit_i8x16_sub_sat_u(), | 176 | 1.19k | 0x74 => visitor.visit_f64x2_ceil(), | 177 | 1.07k | 0x75 => visitor.visit_f64x2_floor(), | 178 | 166 | 0x76 => visitor.visit_i8x16_min_s(), | 179 | 20 | 0x77 => visitor.visit_i8x16_min_u(), | 180 | 195 | 0x78 => visitor.visit_i8x16_max_s(), | 181 | 28 | 0x79 => visitor.visit_i8x16_max_u(), | 182 | 1.74k | 0x7a => visitor.visit_f64x2_trunc(), | 183 | 25 | 0x7b => visitor.visit_i8x16_avgr_u(), | 184 | 5.79k | 0x7c => visitor.visit_i16x8_extadd_pairwise_i8x16_s(), | 185 | 5.23k | 0x7d => visitor.visit_i16x8_extadd_pairwise_i8x16_u(), | 186 | 2.63k | 0x7e => visitor.visit_i32x4_extadd_pairwise_i16x8_s(), | 187 | 18.5k | 0x7f => visitor.visit_i32x4_extadd_pairwise_i16x8_u(), | 188 | 34.3k | 0x80 => visitor.visit_i16x8_abs(), | 189 | 3.07k | 0x81 => visitor.visit_i16x8_neg(), | 190 | 94 | 0x82 => visitor.visit_i16x8_q15mulr_sat_s(), | 191 | 1.59k | 0x83 => visitor.visit_i16x8_all_true(), | 192 | 2.22k | 0x84 => visitor.visit_i16x8_bitmask(), | 193 | 32 | 0x85 => visitor.visit_i16x8_narrow_i32x4_s(), | 194 | 116 | 0x86 => visitor.visit_i16x8_narrow_i32x4_u(), | 195 | 3.96k | 0x87 => visitor.visit_i16x8_extend_low_i8x16_s(), | 196 | 2.92k | 0x88 => visitor.visit_i16x8_extend_high_i8x16_s(), | 197 | 3.04k | 0x89 => visitor.visit_i16x8_extend_low_i8x16_u(), | 198 | 5.96k | 0x8a => visitor.visit_i16x8_extend_high_i8x16_u(), | 199 | 79 | 0x8b => visitor.visit_i16x8_shl(), | 200 | 108 | 0x8c => visitor.visit_i16x8_shr_s(), | 201 | 71 | 0x8d => visitor.visit_i16x8_shr_u(), | 202 | 27 | 0x8e => visitor.visit_i16x8_add(), | 203 | 3 | 0x8f => visitor.visit_i16x8_add_sat_s(), | 204 | 115 | 0x90 => visitor.visit_i16x8_add_sat_u(), | 205 | 20 | 0x91 => visitor.visit_i16x8_sub(), | 206 | 20 | 0x92 => visitor.visit_i16x8_sub_sat_s(), | 207 | 2 | 0x93 => visitor.visit_i16x8_sub_sat_u(), | 208 | 2.43k | 0x94 => visitor.visit_f64x2_nearest(), | 209 | 49 | 0x95 => visitor.visit_i16x8_mul(), | 210 | 82 | 0x96 => visitor.visit_i16x8_min_s(), | 211 | 44 | 0x97 => visitor.visit_i16x8_min_u(), | 212 | 50 | 0x98 => visitor.visit_i16x8_max_s(), | 213 | 38 | 0x99 => visitor.visit_i16x8_max_u(), | 214 | 33 | 0x9b => visitor.visit_i16x8_avgr_u(), | 215 | 108 | 0x9c => visitor.visit_i16x8_extmul_low_i8x16_s(), | 216 | 50 | 0x9d => visitor.visit_i16x8_extmul_high_i8x16_s(), | 217 | 19 | 0x9e => visitor.visit_i16x8_extmul_low_i8x16_u(), | 218 | 38 | 0x9f => visitor.visit_i16x8_extmul_high_i8x16_u(), | 219 | 9.90k | 0xa0 => visitor.visit_i32x4_abs(), | 220 | 9.80k | 0xa1 => visitor.visit_i32x4_neg(), | 221 | 2.21k | 0xa3 => visitor.visit_i32x4_all_true(), | 222 | 4.49k | 0xa4 => visitor.visit_i32x4_bitmask(), | 223 | 5.08k | 0xa7 => visitor.visit_i32x4_extend_low_i16x8_s(), | 224 | 2.34k | 0xa8 => visitor.visit_i32x4_extend_high_i16x8_s(), | 225 | 2.69k | 0xa9 => visitor.visit_i32x4_extend_low_i16x8_u(), | 226 | 6.12k | 0xaa => visitor.visit_i32x4_extend_high_i16x8_u(), | 227 | 97 | 0xab => visitor.visit_i32x4_shl(), | 228 | 103 | 0xac => visitor.visit_i32x4_shr_s(), | 229 | 81 | 0xad => visitor.visit_i32x4_shr_u(), | 230 | 62 | 0xae => visitor.visit_i32x4_add(), | 231 | 17 | 0xb1 => visitor.visit_i32x4_sub(), | 232 | 39 | 0xb5 => visitor.visit_i32x4_mul(), | 233 | 8 | 0xb6 => visitor.visit_i32x4_min_s(), | 234 | 32 | 0xb7 => visitor.visit_i32x4_min_u(), | 235 | 13 | 0xb8 => visitor.visit_i32x4_max_s(), | 236 | 21 | 0xb9 => visitor.visit_i32x4_max_u(), | 237 | 77 | 0xba => visitor.visit_i32x4_dot_i16x8_s(), | 238 | 119 | 0xbc => visitor.visit_i32x4_extmul_low_i16x8_s(), | 239 | 11 | 0xbd => visitor.visit_i32x4_extmul_high_i16x8_s(), | 240 | 29 | 0xbe => visitor.visit_i32x4_extmul_low_i16x8_u(), | 241 | 100 | 0xbf => visitor.visit_i32x4_extmul_high_i16x8_u(), | 242 | 6.00k | 0xc0 => visitor.visit_i64x2_abs(), | 243 | 8.43k | 0xc1 => visitor.visit_i64x2_neg(), | 244 | 2.33k | 0xc3 => visitor.visit_i64x2_all_true(), | 245 | 1.64k | 0xc4 => visitor.visit_i64x2_bitmask(), | 246 | 4.94k | 0xc7 => visitor.visit_i64x2_extend_low_i32x4_s(), | 247 | 1.96k | 0xc8 => visitor.visit_i64x2_extend_high_i32x4_s(), | 248 | 1.77k | 0xc9 => visitor.visit_i64x2_extend_low_i32x4_u(), | 249 | 1.18k | 0xca => visitor.visit_i64x2_extend_high_i32x4_u(), | 250 | 117 | 0xcb => visitor.visit_i64x2_shl(), | 251 | 78 | 0xcc => visitor.visit_i64x2_shr_s(), | 252 | 90 | 0xcd => visitor.visit_i64x2_shr_u(), | 253 | 24 | 0xce => visitor.visit_i64x2_add(), | 254 | 34 | 0xd1 => visitor.visit_i64x2_sub(), | 255 | 288 | 0xd5 => visitor.visit_i64x2_mul(), | 256 | 19 | 0xd6 => visitor.visit_i64x2_eq(), | 257 | 82 | 0xd7 => visitor.visit_i64x2_ne(), | 258 | 33 | 0xd8 => visitor.visit_i64x2_lt_s(), | 259 | 27 | 0xd9 => visitor.visit_i64x2_gt_s(), | 260 | 47 | 0xda => visitor.visit_i64x2_le_s(), | 261 | 27 | 0xdb => visitor.visit_i64x2_ge_s(), | 262 | 159 | 0xdc => visitor.visit_i64x2_extmul_low_i32x4_s(), | 263 | 55 | 0xdd => visitor.visit_i64x2_extmul_high_i32x4_s(), | 264 | 17 | 0xde => visitor.visit_i64x2_extmul_low_i32x4_u(), | 265 | 29 | 0xdf => visitor.visit_i64x2_extmul_high_i32x4_u(), | 266 | 1.36k | 0xe0 => visitor.visit_f32x4_abs(), | 267 | 1.61k | 0xe1 => visitor.visit_f32x4_neg(), | 268 | 4.28k | 0xe3 => visitor.visit_f32x4_sqrt(), | 269 | 5 | 0xe4 => visitor.visit_f32x4_add(), | 270 | 32 | 0xe5 => visitor.visit_f32x4_sub(), | 271 | 10 | 0xe6 => visitor.visit_f32x4_mul(), | 272 | 41 | 0xe7 => visitor.visit_f32x4_div(), | 273 | 7 | 0xe8 => visitor.visit_f32x4_min(), | 274 | 31 | 0xe9 => visitor.visit_f32x4_max(), | 275 | 42 | 0xea => visitor.visit_f32x4_pmin(), | 276 | 3 | 0xeb => visitor.visit_f32x4_pmax(), | 277 | 3.35k | 0xec => visitor.visit_f64x2_abs(), | 278 | 2.85k | 0xed => visitor.visit_f64x2_neg(), | 279 | 1.20k | 0xef => visitor.visit_f64x2_sqrt(), | 280 | 27 | 0xf0 => visitor.visit_f64x2_add(), | 281 | 2 | 0xf1 => visitor.visit_f64x2_sub(), | 282 | 7 | 0xf2 => visitor.visit_f64x2_mul(), | 283 | 2 | 0xf3 => visitor.visit_f64x2_div(), | 284 | 24 | 0xf4 => visitor.visit_f64x2_min(), | 285 | 15 | 0xf5 => visitor.visit_f64x2_max(), | 286 | 11 | 0xf6 => visitor.visit_f64x2_pmin(), | 287 | 3 | 0xf7 => visitor.visit_f64x2_pmax(), | 288 | 2.74k | 0xf8 => visitor.visit_i32x4_trunc_sat_f32x4_s(), | 289 | 1.37k | 0xf9 => visitor.visit_i32x4_trunc_sat_f32x4_u(), | 290 | 1.40k | 0xfa => visitor.visit_f32x4_convert_i32x4_s(), | 291 | 1.34k | 0xfb => visitor.visit_f32x4_convert_i32x4_u(), | 292 | 2.01k | 0xfc => visitor.visit_i32x4_trunc_sat_f64x2_s_zero(), | 293 | 610 | 0xfd => visitor.visit_i32x4_trunc_sat_f64x2_u_zero(), | 294 | 1.13k | 0xfe => visitor.visit_f64x2_convert_low_i32x4_s(), | 295 | 1.28k | 0xff => visitor.visit_f64x2_convert_low_i32x4_u(), | 296 | 2 | 0x100 => visitor.visit_i8x16_relaxed_swizzle(), | 297 | 513 | 0x101 => visitor.visit_i32x4_relaxed_trunc_f32x4_s(), | 298 | 3.83k | 0x102 => visitor.visit_i32x4_relaxed_trunc_f32x4_u(), | 299 | 1.28k | 0x103 => visitor.visit_i32x4_relaxed_trunc_f64x2_s_zero(), | 300 | 180 | 0x104 => visitor.visit_i32x4_relaxed_trunc_f64x2_u_zero(), | 301 | 0 | 0x105 => visitor.visit_f32x4_relaxed_madd(), | 302 | 0 | 0x106 => visitor.visit_f32x4_relaxed_nmadd(), | 303 | 0 | 0x107 => visitor.visit_f64x2_relaxed_madd(), | 304 | 0 | 0x108 => visitor.visit_f64x2_relaxed_nmadd(), | 305 | 5 | 0x109 => visitor.visit_i8x16_relaxed_laneselect(), | 306 | 0 | 0x10a => visitor.visit_i16x8_relaxed_laneselect(), | 307 | 10 | 0x10b => visitor.visit_i32x4_relaxed_laneselect(), | 308 | 1 | 0x10c => visitor.visit_i64x2_relaxed_laneselect(), | 309 | 0 | 0x10d => visitor.visit_f32x4_relaxed_min(), | 310 | 0 | 0x10e => visitor.visit_f32x4_relaxed_max(), | 311 | 2 | 0x10f => visitor.visit_f64x2_relaxed_min(), | 312 | 14 | 0x110 => visitor.visit_f64x2_relaxed_max(), | 313 | 35 | 0x111 => visitor.visit_i16x8_relaxed_q15mulr_s(), | 314 | 80 | 0x112 => visitor.visit_i16x8_relaxed_dot_i8x16_i7x16_s(), | 315 | 0 | 0x113 => visitor.visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(), | 316 | | | 317 | 0 | _ => bail!(pos, "unknown 0xfd subopcode: 0x{code:x}"), | 318 | | }) | 319 | 640k | } |
<wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<&mut dyn wasmparser::readers::core::operators::VisitSimdOperator<Output = wasmparser::readers::core::operators::Operator>> Line | Count | Source | 5 | 408k | pub(super) fn visit_0xfd_operator<T>( | 6 | 408k | &mut self, | 7 | 408k | pos: usize, | 8 | 408k | visitor: &mut T, | 9 | 408k | ) -> Result<<T as VisitOperator<'a>>::Output> | 10 | 408k | where | 11 | 408k | T: VisitSimdOperator<'a>, | 12 | 408k | { | 13 | 408k | let code = self.read_var_u32()?; | 14 | 408k | Ok(match code { | 15 | 637 | 0x00 => visitor.visit_v128_load(self.read_memarg(4)?), | 16 | 877 | 0x01 => visitor.visit_v128_load8x8_s(self.read_memarg(3)?), | 17 | 749 | 0x02 => visitor.visit_v128_load8x8_u(self.read_memarg(3)?), | 18 | 2.42k | 0x03 => visitor.visit_v128_load16x4_s(self.read_memarg(3)?), | 19 | 468 | 0x04 => visitor.visit_v128_load16x4_u(self.read_memarg(3)?), | 20 | 578 | 0x05 => visitor.visit_v128_load32x2_s(self.read_memarg(3)?), | 21 | 1.29k | 0x06 => visitor.visit_v128_load32x2_u(self.read_memarg(3)?), | 22 | 767 | 0x07 => visitor.visit_v128_load8_splat(self.read_memarg(0)?), | 23 | 757 | 0x08 => visitor.visit_v128_load16_splat(self.read_memarg(1)?), | 24 | 1.06k | 0x09 => visitor.visit_v128_load32_splat(self.read_memarg(2)?), | 25 | 832 | 0x0a => visitor.visit_v128_load64_splat(self.read_memarg(3)?), | 26 | | | 27 | 58 | 0x0b => visitor.visit_v128_store(self.read_memarg(4)?), | 28 | 119k | 0x0c => visitor.visit_v128_const(self.read_v128()?), | 29 | | 0x0d => { | 30 | 7 | let mut lanes: [u8; 16] = [0; 16]; | 31 | 119 | for lane in &mut lanes { | 32 | 112 | *lane = self.read_lane_index(32)? | 33 | | } | 34 | 7 | visitor.visit_i8x16_shuffle(lanes) | 35 | | } | 36 | | | 37 | 34 | 0x0e => visitor.visit_i8x16_swizzle(), | 38 | 2.53k | 0x0f => visitor.visit_i8x16_splat(), | 39 | 2.05k | 0x10 => visitor.visit_i16x8_splat(), | 40 | 3.17k | 0x11 => visitor.visit_i32x4_splat(), | 41 | 947 | 0x12 => visitor.visit_i64x2_splat(), | 42 | 373 | 0x13 => visitor.visit_f32x4_splat(), | 43 | 520 | 0x14 => visitor.visit_f64x2_splat(), | 44 | | | 45 | 2.26k | 0x15 => visitor.visit_i8x16_extract_lane_s(self.read_lane_index(16)?), | 46 | 1.04k | 0x16 => visitor.visit_i8x16_extract_lane_u(self.read_lane_index(16)?), | 47 | 277 | 0x17 => visitor.visit_i8x16_replace_lane(self.read_lane_index(16)?), | 48 | 1.27k | 0x18 => visitor.visit_i16x8_extract_lane_s(self.read_lane_index(8)?), | 49 | 1.25k | 0x19 => visitor.visit_i16x8_extract_lane_u(self.read_lane_index(8)?), | 50 | 72 | 0x1a => visitor.visit_i16x8_replace_lane(self.read_lane_index(8)?), | 51 | 1.18k | 0x1b => visitor.visit_i32x4_extract_lane(self.read_lane_index(4)?), | 52 | | | 53 | 62 | 0x1c => visitor.visit_i32x4_replace_lane(self.read_lane_index(4)?), | 54 | 1.19k | 0x1d => visitor.visit_i64x2_extract_lane(self.read_lane_index(2)?), | 55 | 134 | 0x1e => visitor.visit_i64x2_replace_lane(self.read_lane_index(2)?), | 56 | 329 | 0x1f => visitor.visit_f32x4_extract_lane(self.read_lane_index(4)?), | 57 | 15 | 0x20 => visitor.visit_f32x4_replace_lane(self.read_lane_index(4)?), | 58 | 399 | 0x21 => visitor.visit_f64x2_extract_lane(self.read_lane_index(2)?), | 59 | 73 | 0x22 => visitor.visit_f64x2_replace_lane(self.read_lane_index(2)?), | 60 | | | 61 | 89 | 0x23 => visitor.visit_i8x16_eq(), | 62 | 6 | 0x24 => visitor.visit_i8x16_ne(), | 63 | 57 | 0x25 => visitor.visit_i8x16_lt_s(), | 64 | 39 | 0x26 => visitor.visit_i8x16_lt_u(), | 65 | 15 | 0x27 => visitor.visit_i8x16_gt_s(), | 66 | 22 | 0x28 => visitor.visit_i8x16_gt_u(), | 67 | 19 | 0x29 => visitor.visit_i8x16_le_s(), | 68 | 85 | 0x2a => visitor.visit_i8x16_le_u(), | 69 | 33 | 0x2b => visitor.visit_i8x16_ge_s(), | 70 | 13 | 0x2c => visitor.visit_i8x16_ge_u(), | 71 | 30 | 0x2d => visitor.visit_i16x8_eq(), | 72 | 28 | 0x2e => visitor.visit_i16x8_ne(), | 73 | 41 | 0x2f => visitor.visit_i16x8_lt_s(), | 74 | 8 | 0x30 => visitor.visit_i16x8_lt_u(), | 75 | 23 | 0x31 => visitor.visit_i16x8_gt_s(), | 76 | 48 | 0x32 => visitor.visit_i16x8_gt_u(), | 77 | 16 | 0x33 => visitor.visit_i16x8_le_s(), | 78 | 40 | 0x34 => visitor.visit_i16x8_le_u(), | 79 | 25 | 0x35 => visitor.visit_i16x8_ge_s(), | 80 | 17 | 0x36 => visitor.visit_i16x8_ge_u(), | 81 | 17 | 0x37 => visitor.visit_i32x4_eq(), | 82 | 13 | 0x38 => visitor.visit_i32x4_ne(), | 83 | 13 | 0x39 => visitor.visit_i32x4_lt_s(), | 84 | 38 | 0x3a => visitor.visit_i32x4_lt_u(), | 85 | 76 | 0x3b => visitor.visit_i32x4_gt_s(), | 86 | 39 | 0x3c => visitor.visit_i32x4_gt_u(), | 87 | 21 | 0x3d => visitor.visit_i32x4_le_s(), | 88 | 16 | 0x3e => visitor.visit_i32x4_le_u(), | 89 | 88 | 0x3f => visitor.visit_i32x4_ge_s(), | 90 | 21 | 0x40 => visitor.visit_i32x4_ge_u(), | 91 | 4.17k | 0x41 => visitor.visit_f32x4_eq(), | 92 | 4 | 0x42 => visitor.visit_f32x4_ne(), | 93 | 19 | 0x43 => visitor.visit_f32x4_lt(), | 94 | 110 | 0x44 => visitor.visit_f32x4_gt(), | 95 | 15 | 0x45 => visitor.visit_f32x4_le(), | 96 | 36 | 0x46 => visitor.visit_f32x4_ge(), | 97 | 5.43k | 0x47 => visitor.visit_f64x2_eq(), | 98 | 8 | 0x48 => visitor.visit_f64x2_ne(), | 99 | 27 | 0x49 => visitor.visit_f64x2_lt(), | 100 | 4 | 0x4a => visitor.visit_f64x2_gt(), | 101 | 12 | 0x4b => visitor.visit_f64x2_le(), | 102 | 1 | 0x4c => visitor.visit_f64x2_ge(), | 103 | 2.49k | 0x4d => visitor.visit_v128_not(), | 104 | 52 | 0x4e => visitor.visit_v128_and(), | 105 | 28 | 0x4f => visitor.visit_v128_andnot(), | 106 | 61 | 0x50 => visitor.visit_v128_or(), | 107 | 98.8k | 0x51 => visitor.visit_v128_xor(), | 108 | 9.60k | 0x52 => visitor.visit_v128_bitselect(), | 109 | 32 | 0x53 => visitor.visit_v128_any_true(), | 110 | | | 111 | | 0x54 => { | 112 | 43 | let memarg = self.read_memarg(0)?; | 113 | 43 | let lane = self.read_lane_index(16)?; | 114 | 43 | visitor.visit_v128_load8_lane(memarg, lane) | 115 | | } | 116 | | 0x55 => { | 117 | 63 | let memarg = self.read_memarg(1)?; | 118 | 63 | let lane = self.read_lane_index(8)?; | 119 | 63 | visitor.visit_v128_load16_lane(memarg, lane) | 120 | | } | 121 | | 0x56 => { | 122 | 56 | let memarg = self.read_memarg(2)?; | 123 | 56 | let lane = self.read_lane_index(4)?; | 124 | 56 | visitor.visit_v128_load32_lane(memarg, lane) | 125 | | } | 126 | | 0x57 => { | 127 | 46 | let memarg = self.read_memarg(3)?; | 128 | 46 | let lane = self.read_lane_index(2)?; | 129 | 46 | visitor.visit_v128_load64_lane(memarg, lane) | 130 | | } | 131 | | 0x58 => { | 132 | 47 | let memarg = self.read_memarg(0)?; | 133 | 47 | let lane = self.read_lane_index(16)?; | 134 | 47 | visitor.visit_v128_store8_lane(memarg, lane) | 135 | | } | 136 | | 0x59 => { | 137 | 39 | let memarg = self.read_memarg(1)?; | 138 | 39 | let lane = self.read_lane_index(8)?; | 139 | 39 | visitor.visit_v128_store16_lane(memarg, lane) | 140 | | } | 141 | | 0x5a => { | 142 | 126 | let memarg = self.read_memarg(2)?; | 143 | 126 | let lane = self.read_lane_index(4)?; | 144 | 126 | visitor.visit_v128_store32_lane(memarg, lane) | 145 | | } | 146 | | 0x5b => { | 147 | 116 | let memarg = self.read_memarg(3)?; | 148 | 116 | let lane = self.read_lane_index(2)?; | 149 | 116 | visitor.visit_v128_store64_lane(memarg, lane) | 150 | | } | 151 | | | 152 | 728 | 0x5c => visitor.visit_v128_load32_zero(self.read_memarg(2)?), | 153 | 491 | 0x5d => visitor.visit_v128_load64_zero(self.read_memarg(3)?), | 154 | 1.39k | 0x5e => visitor.visit_f32x4_demote_f64x2_zero(), | 155 | 1.04k | 0x5f => visitor.visit_f64x2_promote_low_f32x4(), | 156 | 6.11k | 0x60 => visitor.visit_i8x16_abs(), | 157 | 4.07k | 0x61 => visitor.visit_i8x16_neg(), | 158 | 2.77k | 0x62 => visitor.visit_i8x16_popcnt(), | 159 | 1.09k | 0x63 => visitor.visit_i8x16_all_true(), | 160 | 1.33k | 0x64 => visitor.visit_i8x16_bitmask(), | 161 | 38 | 0x65 => visitor.visit_i8x16_narrow_i16x8_s(), | 162 | 45 | 0x66 => visitor.visit_i8x16_narrow_i16x8_u(), | 163 | 527 | 0x67 => visitor.visit_f32x4_ceil(), | 164 | 562 | 0x68 => visitor.visit_f32x4_floor(), | 165 | 2.14k | 0x69 => visitor.visit_f32x4_trunc(), | 166 | 573 | 0x6a => visitor.visit_f32x4_nearest(), | 167 | 146 | 0x6b => visitor.visit_i8x16_shl(), | 168 | 112 | 0x6c => visitor.visit_i8x16_shr_s(), | 169 | 65 | 0x6d => visitor.visit_i8x16_shr_u(), | 170 | 137 | 0x6e => visitor.visit_i8x16_add(), | 171 | 10 | 0x6f => visitor.visit_i8x16_add_sat_s(), | 172 | 13 | 0x70 => visitor.visit_i8x16_add_sat_u(), | 173 | 11 | 0x71 => visitor.visit_i8x16_sub(), | 174 | 47 | 0x72 => visitor.visit_i8x16_sub_sat_s(), | 175 | 3 | 0x73 => visitor.visit_i8x16_sub_sat_u(), | 176 | 559 | 0x74 => visitor.visit_f64x2_ceil(), | 177 | 1.77k | 0x75 => visitor.visit_f64x2_floor(), | 178 | 79 | 0x76 => visitor.visit_i8x16_min_s(), | 179 | 22 | 0x77 => visitor.visit_i8x16_min_u(), | 180 | 23 | 0x78 => visitor.visit_i8x16_max_s(), | 181 | 25 | 0x79 => visitor.visit_i8x16_max_u(), | 182 | 835 | 0x7a => visitor.visit_f64x2_trunc(), | 183 | 42 | 0x7b => visitor.visit_i8x16_avgr_u(), | 184 | 2.07k | 0x7c => visitor.visit_i16x8_extadd_pairwise_i8x16_s(), | 185 | 3.12k | 0x7d => visitor.visit_i16x8_extadd_pairwise_i8x16_u(), | 186 | 10.1k | 0x7e => visitor.visit_i32x4_extadd_pairwise_i16x8_s(), | 187 | 16.0k | 0x7f => visitor.visit_i32x4_extadd_pairwise_i16x8_u(), | 188 | 2.87k | 0x80 => visitor.visit_i16x8_abs(), | 189 | 3.23k | 0x81 => visitor.visit_i16x8_neg(), | 190 | 53 | 0x82 => visitor.visit_i16x8_q15mulr_sat_s(), | 191 | 770 | 0x83 => visitor.visit_i16x8_all_true(), | 192 | 996 | 0x84 => visitor.visit_i16x8_bitmask(), | 193 | 21 | 0x85 => visitor.visit_i16x8_narrow_i32x4_s(), | 194 | 58 | 0x86 => visitor.visit_i16x8_narrow_i32x4_u(), | 195 | 2.04k | 0x87 => visitor.visit_i16x8_extend_low_i8x16_s(), | 196 | 2.24k | 0x88 => visitor.visit_i16x8_extend_high_i8x16_s(), | 197 | 1.59k | 0x89 => visitor.visit_i16x8_extend_low_i8x16_u(), | 198 | 2.30k | 0x8a => visitor.visit_i16x8_extend_high_i8x16_u(), | 199 | 102 | 0x8b => visitor.visit_i16x8_shl(), | 200 | 101 | 0x8c => visitor.visit_i16x8_shr_s(), | 201 | 109 | 0x8d => visitor.visit_i16x8_shr_u(), | 202 | 61 | 0x8e => visitor.visit_i16x8_add(), | 203 | 8 | 0x8f => visitor.visit_i16x8_add_sat_s(), | 204 | 111 | 0x90 => visitor.visit_i16x8_add_sat_u(), | 205 | 24 | 0x91 => visitor.visit_i16x8_sub(), | 206 | 22 | 0x92 => visitor.visit_i16x8_sub_sat_s(), | 207 | 29 | 0x93 => visitor.visit_i16x8_sub_sat_u(), | 208 | 1.97k | 0x94 => visitor.visit_f64x2_nearest(), | 209 | 29 | 0x95 => visitor.visit_i16x8_mul(), | 210 | 90 | 0x96 => visitor.visit_i16x8_min_s(), | 211 | 51 | 0x97 => visitor.visit_i16x8_min_u(), | 212 | 28 | 0x98 => visitor.visit_i16x8_max_s(), | 213 | 29 | 0x99 => visitor.visit_i16x8_max_u(), | 214 | 44 | 0x9b => visitor.visit_i16x8_avgr_u(), | 215 | 58 | 0x9c => visitor.visit_i16x8_extmul_low_i8x16_s(), | 216 | 52 | 0x9d => visitor.visit_i16x8_extmul_high_i8x16_s(), | 217 | 15 | 0x9e => visitor.visit_i16x8_extmul_low_i8x16_u(), | 218 | 21 | 0x9f => visitor.visit_i16x8_extmul_high_i8x16_u(), | 219 | 2.27k | 0xa0 => visitor.visit_i32x4_abs(), | 220 | 6.93k | 0xa1 => visitor.visit_i32x4_neg(), | 221 | 942 | 0xa3 => visitor.visit_i32x4_all_true(), | 222 | 1.51k | 0xa4 => visitor.visit_i32x4_bitmask(), | 223 | 3.95k | 0xa7 => visitor.visit_i32x4_extend_low_i16x8_s(), | 224 | 914 | 0xa8 => visitor.visit_i32x4_extend_high_i16x8_s(), | 225 | 1.36k | 0xa9 => visitor.visit_i32x4_extend_low_i16x8_u(), | 226 | 2.24k | 0xaa => visitor.visit_i32x4_extend_high_i16x8_u(), | 227 | 69 | 0xab => visitor.visit_i32x4_shl(), | 228 | 75 | 0xac => visitor.visit_i32x4_shr_s(), | 229 | 30 | 0xad => visitor.visit_i32x4_shr_u(), | 230 | 12 | 0xae => visitor.visit_i32x4_add(), | 231 | 8 | 0xb1 => visitor.visit_i32x4_sub(), | 232 | 31 | 0xb5 => visitor.visit_i32x4_mul(), | 233 | 12 | 0xb6 => visitor.visit_i32x4_min_s(), | 234 | 28 | 0xb7 => visitor.visit_i32x4_min_u(), | 235 | 12 | 0xb8 => visitor.visit_i32x4_max_s(), | 236 | 18 | 0xb9 => visitor.visit_i32x4_max_u(), | 237 | 7 | 0xba => visitor.visit_i32x4_dot_i16x8_s(), | 238 | 26 | 0xbc => visitor.visit_i32x4_extmul_low_i16x8_s(), | 239 | 9 | 0xbd => visitor.visit_i32x4_extmul_high_i16x8_s(), | 240 | 16 | 0xbe => visitor.visit_i32x4_extmul_low_i16x8_u(), | 241 | 68 | 0xbf => visitor.visit_i32x4_extmul_high_i16x8_u(), | 242 | 1.60k | 0xc0 => visitor.visit_i64x2_abs(), | 243 | 4.72k | 0xc1 => visitor.visit_i64x2_neg(), | 244 | 1.58k | 0xc3 => visitor.visit_i64x2_all_true(), | 245 | 4.44k | 0xc4 => visitor.visit_i64x2_bitmask(), | 246 | 3.13k | 0xc7 => visitor.visit_i64x2_extend_low_i32x4_s(), | 247 | 1.20k | 0xc8 => visitor.visit_i64x2_extend_high_i32x4_s(), | 248 | 1.27k | 0xc9 => visitor.visit_i64x2_extend_low_i32x4_u(), | 249 | 1.13k | 0xca => visitor.visit_i64x2_extend_high_i32x4_u(), | 250 | 97 | 0xcb => visitor.visit_i64x2_shl(), | 251 | 67 | 0xcc => visitor.visit_i64x2_shr_s(), | 252 | 92 | 0xcd => visitor.visit_i64x2_shr_u(), | 253 | 43 | 0xce => visitor.visit_i64x2_add(), | 254 | 33 | 0xd1 => visitor.visit_i64x2_sub(), | 255 | 31 | 0xd5 => visitor.visit_i64x2_mul(), | 256 | 8 | 0xd6 => visitor.visit_i64x2_eq(), | 257 | 15 | 0xd7 => visitor.visit_i64x2_ne(), | 258 | 28 | 0xd8 => visitor.visit_i64x2_lt_s(), | 259 | 19 | 0xd9 => visitor.visit_i64x2_gt_s(), | 260 | 39 | 0xda => visitor.visit_i64x2_le_s(), | 261 | 18 | 0xdb => visitor.visit_i64x2_ge_s(), | 262 | 43 | 0xdc => visitor.visit_i64x2_extmul_low_i32x4_s(), | 263 | 2 | 0xdd => visitor.visit_i64x2_extmul_high_i32x4_s(), | 264 | 12 | 0xde => visitor.visit_i64x2_extmul_low_i32x4_u(), | 265 | 150 | 0xdf => visitor.visit_i64x2_extmul_high_i32x4_u(), | 266 | 1.63k | 0xe0 => visitor.visit_f32x4_abs(), | 267 | 1.15k | 0xe1 => visitor.visit_f32x4_neg(), | 268 | 1.07k | 0xe3 => visitor.visit_f32x4_sqrt(), | 269 | 5 | 0xe4 => visitor.visit_f32x4_add(), | 270 | 32 | 0xe5 => visitor.visit_f32x4_sub(), | 271 | 10 | 0xe6 => visitor.visit_f32x4_mul(), | 272 | 23 | 0xe7 => visitor.visit_f32x4_div(), | 273 | 8 | 0xe8 => visitor.visit_f32x4_min(), | 274 | 4 | 0xe9 => visitor.visit_f32x4_max(), | 275 | 9 | 0xea => visitor.visit_f32x4_pmin(), | 276 | 2 | 0xeb => visitor.visit_f32x4_pmax(), | 277 | 1.99k | 0xec => visitor.visit_f64x2_abs(), | 278 | 2.56k | 0xed => visitor.visit_f64x2_neg(), | 279 | 699 | 0xef => visitor.visit_f64x2_sqrt(), | 280 | 19 | 0xf0 => visitor.visit_f64x2_add(), | 281 | 4 | 0xf1 => visitor.visit_f64x2_sub(), | 282 | 10 | 0xf2 => visitor.visit_f64x2_mul(), | 283 | 0 | 0xf3 => visitor.visit_f64x2_div(), | 284 | 6 | 0xf4 => visitor.visit_f64x2_min(), | 285 | 7 | 0xf5 => visitor.visit_f64x2_max(), | 286 | 11 | 0xf6 => visitor.visit_f64x2_pmin(), | 287 | 3 | 0xf7 => visitor.visit_f64x2_pmax(), | 288 | 2.05k | 0xf8 => visitor.visit_i32x4_trunc_sat_f32x4_s(), | 289 | 686 | 0xf9 => visitor.visit_i32x4_trunc_sat_f32x4_u(), | 290 | 1.04k | 0xfa => visitor.visit_f32x4_convert_i32x4_s(), | 291 | 1.08k | 0xfb => visitor.visit_f32x4_convert_i32x4_u(), | 292 | 1.54k | 0xfc => visitor.visit_i32x4_trunc_sat_f64x2_s_zero(), | 293 | 400 | 0xfd => visitor.visit_i32x4_trunc_sat_f64x2_u_zero(), | 294 | 1.07k | 0xfe => visitor.visit_f64x2_convert_low_i32x4_s(), | 295 | 458 | 0xff => visitor.visit_f64x2_convert_low_i32x4_u(), | 296 | 3 | 0x100 => visitor.visit_i8x16_relaxed_swizzle(), | 297 | 106 | 0x101 => visitor.visit_i32x4_relaxed_trunc_f32x4_s(), | 298 | 267 | 0x102 => visitor.visit_i32x4_relaxed_trunc_f32x4_u(), | 299 | 204 | 0x103 => visitor.visit_i32x4_relaxed_trunc_f64x2_s_zero(), | 300 | 81 | 0x104 => visitor.visit_i32x4_relaxed_trunc_f64x2_u_zero(), | 301 | 0 | 0x105 => visitor.visit_f32x4_relaxed_madd(), | 302 | 0 | 0x106 => visitor.visit_f32x4_relaxed_nmadd(), | 303 | 0 | 0x107 => visitor.visit_f64x2_relaxed_madd(), | 304 | 0 | 0x108 => visitor.visit_f64x2_relaxed_nmadd(), | 305 | 7 | 0x109 => visitor.visit_i8x16_relaxed_laneselect(), | 306 | 0 | 0x10a => visitor.visit_i16x8_relaxed_laneselect(), | 307 | 10 | 0x10b => visitor.visit_i32x4_relaxed_laneselect(), | 308 | 1 | 0x10c => visitor.visit_i64x2_relaxed_laneselect(), | 309 | 0 | 0x10d => visitor.visit_f32x4_relaxed_min(), | 310 | 0 | 0x10e => visitor.visit_f32x4_relaxed_max(), | 311 | 2 | 0x10f => visitor.visit_f64x2_relaxed_min(), | 312 | 5 | 0x110 => visitor.visit_f64x2_relaxed_max(), | 313 | 27 | 0x111 => visitor.visit_i16x8_relaxed_q15mulr_s(), | 314 | 2 | 0x112 => visitor.visit_i16x8_relaxed_dot_i8x16_i7x16_s(), | 315 | 0 | 0x113 => visitor.visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(), | 316 | | | 317 | 0 | _ => bail!(pos, "unknown 0xfd subopcode: 0x{code:x}"), | 318 | | }) | 319 | 408k | } |
|
320 | | } |