Winch is missing support for most of finished WebAssembly proposals. The goal of this issue is to track support for the [SIMD proposal](https://github.com/webassembly/simd) - [x] `v128.load8x8_s` @jeffcharles - [x] `v128.load8x8_u` @jeffcharles - [x] `v128.load16x4_s` @jeffcharles - [x] `v128.load16x4_u` @jeffcharles - [x] `v128.load32x2_s` @jeffcharles - [x] `v128.load32x2_u` @jeffcharles - [x] `v128.load8_splat` @jeffcharles - [x] `v128.load16_splat` @jeffcharles - [x] `v128.load32_splat` @jeffcharles - [x] `v128.load64_splat` @jeffcharles - [x] `i8x16.shuffle` @jeffcharles - [x] `i8x16.swizzle` @jeffcharles - [x] `i8x16.splat` @jeffcharles - [x] `i16x8.splat` @jeffcharles - [x] `i32x4.splat` @jeffcharles - [x] `i64x2.splat` @jeffcharles - [x] `f32x4.splat` @jeffcharles - [x] `f64x2.splat` @jeffcharles - [x] `i8x16.extract_lane_s` @jeffcharles - [x] `i8x16.extract_lane_u` @jeffcharles - [x] `i8x16.replace_lane` @jeffcharles - [x] `i16x8.extract_lane_s` @jeffcharles - [x] `i16x8.extract_lane_u` @jeffcharles - [x] `i16x8.replace_lane` @jeffcharles - [x] `i32x4.extract_lane` @jeffcharles - [x] `i32x4.replace_lane` @jeffcharles - [x] `i64x2.extract_lane` @jeffcharles - [x] `i64x2.replace_lane` @jeffcharles - [x] `f32x4.extract_lane` @jeffcharles - [x] `f32x4.replace_lane` @jeffcharles - [x] `f64x2.extract_lane` @jeffcharles - [x] `f64x2.replace_lane` @jeffcharles - [x] `i8x16.eq`@jeffcharles - [x] `i8x16.ne`@jeffcharles - [x] `i8x16.lt_s`@jeffcharles - [x] `i8x16.lt_u` @jeffcharles - [x] `i8x16.gt_s` @jeffcharles - [x] `i8x16.gt_u` @jeffcharles - [x] `i8x16.le_s` @jeffcharles - [x] `i8x16.le_u` @jeffcharles - [x] `i8x16.ge_s` @jeffcharles - [x] `i8x16.ge_u` @jeffcharles - [x] `i16x8.eq` @jeffcharles - [x] `i16x8.ne` @jeffcharles - [x] `i16x8.lt_s` @jeffcharles - [x] `i16x8.lt_u` @jeffcharles - [x] `i16x8.gt_s` @jeffcharles - [x] `i16x8.gt_u` @jeffcharles - [x] `i16x8.le_s` @jeffcharles - [x] `i16x8.le_u` @jeffcharles - [x] `i16x8.ge_s` @jeffcharles - [x] `i16x8.ge_u` @jeffcharles - [x] `i32x4.eq` @jeffcharles - [x] `i32x4.ne` @jeffcharles - [x] `i32x4.lt_s` @jeffcharles - [x] `i32x4.lt_u` @jeffcharles - [x] `i32x4.gt_s` @jeffcharles - [x] `i32x4.gt_u` @jeffcharles - [x] `i32x4.le_s` @jeffcharles - [x] `i32x4.le_u` @jeffcharles - [x] `i32x4.ge_s` @jeffcharles - [x] `i32x4.ge_u` @jeffcharles - [x] `f32x4.eq` @jeffcharles - [x] `f32x4.ne` @jeffcharles - [x] `f32x4.lt` @jeffcharles - [x] `f32x4.gt` @jeffcharles - [x] `f32x4.le` @jeffcharles - [x] `f32x4.ge` @jeffcharles - [x] `f64x2.eq` @jeffcharles - [x] `f64x2.ne` @jeffcharles - [x] `f64x2.lt` @jeffcharles - [x] `f64x2.gt` @jeffcharles - [x] `f64x2.le` @jeffcharles - [x] `f64x2.ge` @jeffcharles - [x] `f64x2.abs` @jeffcharles - [x] `f64x2.add` @jeffcharles - [x] `f64x2.ceil` @jeffcharles - [x] `f64x2.div` @jeffcharles - [x] `f64x2.floor` @jeffcharles - [x] `f64x2.max` @jeffcharles - [x] `f64x2.min` @jeffcharles - [x] `f64x2.mul` @jeffcharles - [x] `f64x2.nearest` @jeffcharles - [x] `f64x2.neg` @jeffcharles - [x] `f64x2.pmax` @jeffcharles - [x] `f64x2.pmin` @jeffcharles - [x] `f64x2.sqrt` @jeffcharles - [x] `f64x2.sub` @jeffcharles - [x] `f64x2.trunc` @jeffcharles - [x] `i64x2.ne` @jeffcharles - [x] `i64x2.lt_s` @jeffcharles - [x] `i64x2.gt_s` @jeffcharles - [x] `i64x2.le_s` @jeffcharles - [x] `i64x2.ge_s` @jeffcharles - [x] `v128.not` @MarinPostma - [x] `v128.and` @MarinPostma - [x] `v128.andnot` @MarinPostma - [x] `v128.or` @MarinPostma - [x] `v128.xor` @MarinPostma - [x] `v128.bitselect` @MarinPostma - [x] `v128.any_true` @MarinPostma - [x] `v128.load8_lane` @MarinPostma - [x] `v128.load16_lane` @MarinPostma - [x] `v128.load32_lane` @MarinPostma - [x] `v128.load64_lane` @MarinPostma - [x] `v128.store8_lane` @MarinPostma - [x] `v128.store16_lane` @MarinPostma - [x] `v128.store32_lane` @MarinPostma - [x] `v128.store64_lane` @MarinPostma - [x] `v128.load32_zero` @MarinPostma - [x] `v128.load64_zero` @MarinPostma - [x] `f32x4.demote_f64x2_zero` @jeffcharles - [x] `f64x2.promote_low_f32x4` @jeffcharles - [x] `i8x16.abs` @jeffcharles - [x] `i8x16.neg` @MarinPostma - [x] `i8x16.all_true` @jeffcharles - [x] `i8x16.bitmask` @jeffcharles - [x] `i8x16.narrow_i16x8_s` @jeffcharles - [x] `i8x16.narrow_i16x8_u` @jeffcharles - [x] `i8x16.shl` @MarinPostma - [x] `i8x16.shr_s` @MarinPostma - [x] `i8x16.shr_u` @MarinPostma - [x] `i8x16.add` @MarinPostma - [x] `i8x16.add_sat_s` @MarinPostma - [x] `i8x16.add_sat_u` @MarinPostma - [x] `i8x16.sub` @MarinPostma - [x] `i8x16.sub_sat_s` @MarinPostma - [x] `i8x16.sub_sat_u` @MarinPostma - [x] `i8x16.min_s`@MarinPostma - [x] `i8x16.min_u` @MarinPostma - [x] `i8x16.max_s` @MarinPostma - [x] `i8x16.max_u` @MarinPostma - [x] `i8x16.avgr_u` @jeffcharles - [x] `i16x8.abs` @jeffcharles - [x] `i16x8.neg` @MarinPostma - [x] `i16x8.all_true` @jeffcharles - [x] `i16x8.bitmask` @jeffcharles - [x] `i16x8.narrow_i32x4_s` @jeffcharles - [x] `i16x8.narrow_i32x4_u` @jeffcharles - [x] `i16x8.extend_low_i8x16_s` @jeffcharles - [x] `i16x8.extend_high_i8x16_s` @jeffcharles - [x] `i16x8.extend_low_i8x16_u` @jeffcharles - [x] `i16x8.extend_high_i8x16_u` @jeffcharles - [x] `i16x8.shl` @MarinPostma - [x] `i16x8.shr_s` @MarinPostma - [x] `i16x8.shr_u` @MarinPostma - [x] `i16x8.add` @MarinPostma - [x] `i16x8.add_sat_s` @MarinPostma - [x] `i16x8.add_sat_u` @MarinPostma - [x] `i16x8.sub` @MarinPostma - [x] `i16x8.sub_sat_s` @MarinPostma - [x] `i16x8.sub_sat_u` @MarinPostma - [x] `i16x8.mul` @MarinPostma - [x] `i16x8.min_s` @MarinPostma - [x] `i16x8.min_u` @MarinPostma - [x] `i16x8.max_s` @MarinPostma - [x] `i16x8.max_u` @MarinPostma - [x] `i16x8.avgr_u` @jeffcharles - [x] `i16x8.q15mulr_sat_s` @jeffcharles - [x] `i32x4.abs` @jeffcharles - [x] `i32x4.neg` @MarinPostma - [x] `i32x4.all_true` @jeffcharles - [x] `i32x4.bitmask` @jeffcharles - [x] `i32x4.extend_low_i16x8_s` @jeffcharles - [x] `i32x4.extend_high_i16x8_s` @jeffcharles - [x] `i32x4.extend_low_i16x8_u` @jeffcharles - [x] `i32x4.extend_high_i16x8_u` @jeffcharles - [x] `i32x4.shl` @MarinPostma - [x] `i32x4.shr_s` @MarinPostma - [x] `i32x4.shr_u` @MarinPostma - [x] `i32x4.add` @MarinPostma - [x] `i32x4.sub` @MarinPostma - [x] `i32x4.mul` @MarinPostma - [x] `i32x4.min_s` @MarinPostma - [x] `i32x4.min_u` @MarinPostma - [x] `i32x4.max_s` @MarinPostma - [x] `i32x4.max_u` @MarinPostma - [x] `i32x4.dot_i16x8_s` @jeffcharles - [x] `i64x2.eq` - [x] `i64x2.abs` @jeffcharles - [x] `i64x2.neg` @MarinPostma - [x] `i64x2.all_true` @jeffcharles - [x] `i64x2.bitmask` @jeffcharles - [x] `i64x2.shl` @MarinPostma - [x] `i64x2.shr_s` @MarinPostma - [x] `i64x2.shr_u` @MarinPostma - [x] `i64x2.add` @MarinPostma - [x] `i64x2.sub` @MarinPostma - [x] `i64x2.mul` @MarinPostma - [x] `i64x2.extend_low_i32x4_s` @jeffcharles - [x] `i64x2.extend_high_i32x4_s` @jeffcharles - [x] `i64x2.extend_low_i32x4_u` @jeffcharles - [x] `i64x2.extend_high_i32x4_u` @jeffcharles - [x] `i16x8.extmul_low_i8x16_s` @MarinPostma - [x] `i16x8.extmul_high_i8x16_s` @MarinPostma - [x] `i16x8.extmul_low_i8x16_u`@MarinPostma - [x] `i16x8.extmul_high_i8x16_u` @MarinPostma - [x] `i32x4.extmul_low_i16x8_s` @MarinPostma - [x] `i32x4.extmul_high_i16x8_s` @MarinPostma - [x] `i32x4.extmul_low_i16x8_u` @MarinPostma - [x] `i32x4.extmul_high_i16x8_u` @MarinPostma - [x] `i64x2.extmul_low_i32x4_s` @MarinPostma - [x] `i64x2.extmul_high_i32x4_s` @MarinPostma - [x] `i64x2.extmul_low_i32x4_u` @MarinPostma - [x] `i64x2.extmul_high_i32x4_u` @MarinPostma - [x] `i8x16.popcnt` @jeffcharles - [x] `i16x8.extadd_pairwise_i8x16_s` @MarinPostma - [x] `i16x8.extadd_pairwise_i8x16_u` @MarinPostma - [x] `i32x4.extadd_pairwise_i16x8_s` @MarinPostma - [x] `i32x4.extadd_pairwise_i16x8_u` @MarinPostma - [x] `f32x4.abs` @jeffcharles - [x] `f32x4.neg` @jeffcharles - [x] `f32x4.sqrt` @jeffcharles - [x] `f32x4.add` @jeffcharles - [x] `f32x4.sub` @jeffcharles - [x] `f32x4.mul` @jeffcharles - [x] `f32x4.div` @jeffcharles - [x] `f32x4.min` @jeffcharles - [x] `f32x4.max` @jeffcharles - [x] `f32x4.pmin` @jeffcharles - [x] `f32x4.pmax` @jeffcharles - [x] `f32x4.ceil` @jeffcharles - [x] `f32x4.floor` @jeffcharles - [x] `f32x4.trunc` @jeffcharles - [x] `f32x4.nearest` @jeffcharles - [x] `i32x4.trunc_sat_f32x4_s` @jeffcharles - [x] `i32x4.trunc_sat_f32x4_u` @jeffcharles - [x] `f32x4.convert_i32x4_s` @jeffcharles - [x] `f32x4.convert_i32x4_u` @jeffcharles - [x] `f64x2.convert_low_i32x4_s` @jeffcharles - [x] `f64x2.convert_low_i32x4_u` @jeffcharles - [x] `i32x4.trunc_sat_f64x2_s_zero` @jeffcharles - [x] `i32x4.trunc_sat_f64x2_u_zero` @jeffcharles - [x] Enable fuzzing
Winch is missing support for most of finished WebAssembly proposals. The goal of this issue is to track support for the SIMD proposal
v128.load8x8_s@jeffcharlesv128.load8x8_u@jeffcharlesv128.load16x4_s@jeffcharlesv128.load16x4_u@jeffcharlesv128.load32x2_s@jeffcharlesv128.load32x2_u@jeffcharlesv128.load8_splat@jeffcharlesv128.load16_splat@jeffcharlesv128.load32_splat@jeffcharlesv128.load64_splat@jeffcharlesi8x16.shuffle@jeffcharlesi8x16.swizzle@jeffcharlesi8x16.splat@jeffcharlesi16x8.splat@jeffcharlesi32x4.splat@jeffcharlesi64x2.splat@jeffcharlesf32x4.splat@jeffcharlesf64x2.splat@jeffcharlesi8x16.extract_lane_s@jeffcharlesi8x16.extract_lane_u@jeffcharlesi8x16.replace_lane@jeffcharlesi16x8.extract_lane_s@jeffcharlesi16x8.extract_lane_u@jeffcharlesi16x8.replace_lane@jeffcharlesi32x4.extract_lane@jeffcharlesi32x4.replace_lane@jeffcharlesi64x2.extract_lane@jeffcharlesi64x2.replace_lane@jeffcharlesf32x4.extract_lane@jeffcharlesf32x4.replace_lane@jeffcharlesf64x2.extract_lane@jeffcharlesf64x2.replace_lane@jeffcharlesi8x16.eq@jeffcharlesi8x16.ne@jeffcharlesi8x16.lt_s@jeffcharlesi8x16.lt_u@jeffcharlesi8x16.gt_s@jeffcharlesi8x16.gt_u@jeffcharlesi8x16.le_s@jeffcharlesi8x16.le_u@jeffcharlesi8x16.ge_s@jeffcharlesi8x16.ge_u@jeffcharlesi16x8.eq@jeffcharlesi16x8.ne@jeffcharlesi16x8.lt_s@jeffcharlesi16x8.lt_u@jeffcharlesi16x8.gt_s@jeffcharlesi16x8.gt_u@jeffcharlesi16x8.le_s@jeffcharlesi16x8.le_u@jeffcharlesi16x8.ge_s@jeffcharlesi16x8.ge_u@jeffcharlesi32x4.eq@jeffcharlesi32x4.ne@jeffcharlesi32x4.lt_s@jeffcharlesi32x4.lt_u@jeffcharlesi32x4.gt_s@jeffcharlesi32x4.gt_u@jeffcharlesi32x4.le_s@jeffcharlesi32x4.le_u@jeffcharlesi32x4.ge_s@jeffcharlesi32x4.ge_u@jeffcharlesf32x4.eq@jeffcharlesf32x4.ne@jeffcharlesf32x4.lt@jeffcharlesf32x4.gt@jeffcharlesf32x4.le@jeffcharlesf32x4.ge@jeffcharlesf64x2.eq@jeffcharlesf64x2.ne@jeffcharlesf64x2.lt@jeffcharlesf64x2.gt@jeffcharlesf64x2.le@jeffcharlesf64x2.ge@jeffcharlesf64x2.abs@jeffcharlesf64x2.add@jeffcharlesf64x2.ceil@jeffcharlesf64x2.div@jeffcharlesf64x2.floor@jeffcharlesf64x2.max@jeffcharlesf64x2.min@jeffcharlesf64x2.mul@jeffcharlesf64x2.nearest@jeffcharlesf64x2.neg@jeffcharlesf64x2.pmax@jeffcharlesf64x2.pmin@jeffcharlesf64x2.sqrt@jeffcharlesf64x2.sub@jeffcharlesf64x2.trunc@jeffcharlesi64x2.ne@jeffcharlesi64x2.lt_s@jeffcharlesi64x2.gt_s@jeffcharlesi64x2.le_s@jeffcharlesi64x2.ge_s@jeffcharlesv128.not@MarinPostmav128.and@MarinPostmav128.andnot@MarinPostmav128.or@MarinPostmav128.xor@MarinPostmav128.bitselect@MarinPostmav128.any_true@MarinPostmav128.load8_lane@MarinPostmav128.load16_lane@MarinPostmav128.load32_lane@MarinPostmav128.load64_lane@MarinPostmav128.store8_lane@MarinPostmav128.store16_lane@MarinPostmav128.store32_lane@MarinPostmav128.store64_lane@MarinPostmav128.load32_zero@MarinPostmav128.load64_zero@MarinPostmaf32x4.demote_f64x2_zero@jeffcharlesf64x2.promote_low_f32x4@jeffcharlesi8x16.abs@jeffcharlesi8x16.neg@MarinPostmai8x16.all_true@jeffcharlesi8x16.bitmask@jeffcharlesi8x16.narrow_i16x8_s@jeffcharlesi8x16.narrow_i16x8_u@jeffcharlesi8x16.shl@MarinPostmai8x16.shr_s@MarinPostmai8x16.shr_u@MarinPostmai8x16.add@MarinPostmai8x16.add_sat_s@MarinPostmai8x16.add_sat_u@MarinPostmai8x16.sub@MarinPostmai8x16.sub_sat_s@MarinPostmai8x16.sub_sat_u@MarinPostmai8x16.min_s@MarinPostmai8x16.min_u@MarinPostmai8x16.max_s@MarinPostmai8x16.max_u@MarinPostmai8x16.avgr_u@jeffcharlesi16x8.abs@jeffcharlesi16x8.neg@MarinPostmai16x8.all_true@jeffcharlesi16x8.bitmask@jeffcharlesi16x8.narrow_i32x4_s@jeffcharlesi16x8.narrow_i32x4_u@jeffcharlesi16x8.extend_low_i8x16_s@jeffcharlesi16x8.extend_high_i8x16_s@jeffcharlesi16x8.extend_low_i8x16_u@jeffcharlesi16x8.extend_high_i8x16_u@jeffcharlesi16x8.shl@MarinPostmai16x8.shr_s@MarinPostmai16x8.shr_u@MarinPostmai16x8.add@MarinPostmai16x8.add_sat_s@MarinPostmai16x8.add_sat_u@MarinPostmai16x8.sub@MarinPostmai16x8.sub_sat_s@MarinPostmai16x8.sub_sat_u@MarinPostmai16x8.mul@MarinPostmai16x8.min_s@MarinPostmai16x8.min_u@MarinPostmai16x8.max_s@MarinPostmai16x8.max_u@MarinPostmai16x8.avgr_u@jeffcharlesi16x8.q15mulr_sat_s@jeffcharlesi32x4.abs@jeffcharlesi32x4.neg@MarinPostmai32x4.all_true@jeffcharlesi32x4.bitmask@jeffcharlesi32x4.extend_low_i16x8_s@jeffcharlesi32x4.extend_high_i16x8_s@jeffcharlesi32x4.extend_low_i16x8_u@jeffcharlesi32x4.extend_high_i16x8_u@jeffcharlesi32x4.shl@MarinPostmai32x4.shr_s@MarinPostmai32x4.shr_u@MarinPostmai32x4.add@MarinPostmai32x4.sub@MarinPostmai32x4.mul@MarinPostmai32x4.min_s@MarinPostmai32x4.min_u@MarinPostmai32x4.max_s@MarinPostmai32x4.max_u@MarinPostmai32x4.dot_i16x8_s@jeffcharlesi64x2.eqi64x2.abs@jeffcharlesi64x2.neg@MarinPostmai64x2.all_true@jeffcharlesi64x2.bitmask@jeffcharlesi64x2.shl@MarinPostmai64x2.shr_s@MarinPostmai64x2.shr_u@MarinPostmai64x2.add@MarinPostmai64x2.sub@MarinPostmai64x2.mul@MarinPostmai64x2.extend_low_i32x4_s@jeffcharlesi64x2.extend_high_i32x4_s@jeffcharlesi64x2.extend_low_i32x4_u@jeffcharlesi64x2.extend_high_i32x4_u@jeffcharlesi16x8.extmul_low_i8x16_s@MarinPostmai16x8.extmul_high_i8x16_s@MarinPostmai16x8.extmul_low_i8x16_u@MarinPostmai16x8.extmul_high_i8x16_u@MarinPostmai32x4.extmul_low_i16x8_s@MarinPostmai32x4.extmul_high_i16x8_s@MarinPostmai32x4.extmul_low_i16x8_u@MarinPostmai32x4.extmul_high_i16x8_u@MarinPostmai64x2.extmul_low_i32x4_s@MarinPostmai64x2.extmul_high_i32x4_s@MarinPostmai64x2.extmul_low_i32x4_u@MarinPostmai64x2.extmul_high_i32x4_u@MarinPostmai8x16.popcnt@jeffcharlesi16x8.extadd_pairwise_i8x16_s@MarinPostmai16x8.extadd_pairwise_i8x16_u@MarinPostmai32x4.extadd_pairwise_i16x8_s@MarinPostmai32x4.extadd_pairwise_i16x8_u@MarinPostmaf32x4.abs@jeffcharlesf32x4.neg@jeffcharlesf32x4.sqrt@jeffcharlesf32x4.add@jeffcharlesf32x4.sub@jeffcharlesf32x4.mul@jeffcharlesf32x4.div@jeffcharlesf32x4.min@jeffcharlesf32x4.max@jeffcharlesf32x4.pmin@jeffcharlesf32x4.pmax@jeffcharlesf32x4.ceil@jeffcharlesf32x4.floor@jeffcharlesf32x4.trunc@jeffcharlesf32x4.nearest@jeffcharlesi32x4.trunc_sat_f32x4_s@jeffcharlesi32x4.trunc_sat_f32x4_u@jeffcharlesf32x4.convert_i32x4_s@jeffcharlesf32x4.convert_i32x4_u@jeffcharlesf64x2.convert_low_i32x4_s@jeffcharlesf64x2.convert_low_i32x4_u@jeffcharlesi32x4.trunc_sat_f64x2_s_zero@jeffcharlesi32x4.trunc_sat_f64x2_u_zero@jeffcharles