| Instruction | LLVM[1] | V8[2] | WAVM[3] | ChakraCore[4] | SpiderMonkey[5] |
|---|---|---|---|---|---|
v128.load | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
v128.load8x8_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.load8x8_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.load16x4_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.load16x4_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.load32x2_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.load32x2_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.load8_splat | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.load16_splat | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.load32_splat | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.load64_splat | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.store | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
v128.const | -munimplemented-simd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.shuffle | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.swizzle | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i8x16.splat | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.splat | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.splat | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i64x2.splat | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.splat | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.splat | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.extract_lane_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.extract_lane_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.replace_lane | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.extract_lane_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.extract_lane_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.replace_lane | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.extract_lane | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.replace_lane | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i64x2.extract_lane | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i64x2.replace_lane | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.extract_lane | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.replace_lane | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.extract_lane | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.replace_lane | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.eq | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.ne | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.lt_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.lt_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.gt_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.gt_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.le_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.le_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.ge_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.ge_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.eq | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.ne | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.lt_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.lt_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.gt_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.gt_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.le_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.le_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.ge_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.ge_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.eq | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.ne | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.lt_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.lt_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.gt_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.gt_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.le_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.le_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.ge_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.ge_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.eq | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.ne | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.lt | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.gt | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.le | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.ge | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.eq | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.ne | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.lt | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.gt | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.le | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.ge | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
v128.not | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
v128.and | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
v128.andnot | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.or | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
v128.xor | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
v128.bitselect | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.abs | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i8x16.neg | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.all_true | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.bitmask | -munimplemented-simd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i8x16.narrow_i16x8_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i8x16.narrow_i16x8_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i8x16.shl | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.shr_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.shr_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.add | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.add_sat_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.add_sat_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.sub | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.sub_sat_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.sub_sat_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i8x16.min_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i8x16.min_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i8x16.max_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i8x16.max_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i8x16.avgr_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.abs | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.neg | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.all_true | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.bitmask | -munimplemented-simd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.narrow_i32x4_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.narrow_i32x4_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.extend_low_i8x16_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.extend_high_i8x16_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.extend_low_i8x16_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.extend_high_i8x16_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.shl | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.shr_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.shr_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.add | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.add_sat_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.add_sat_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.sub | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.sub_sat_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.sub_sat_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.mul | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i16x8.min_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.min_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.max_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.max_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.avgr_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i16x8.q15mulr_sat_s | :heavy_check_mark: | :heavy_check_mark: | |||
i32x4.abs | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i32x4.neg | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.all_true | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.bitmask | -munimplemented-simd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i32x4.extend_low_i16x8_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i32x4.extend_high_i16x8_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i32x4.extend_low_i16x8_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i32x4.extend_high_i16x8_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i32x4.shl | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.shr_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.shr_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.add | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.sub | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.mul | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.min_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i32x4.min_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i32x4.max_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i32x4.max_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i32x4.dot_i16x8_s | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.eq | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.abs | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.neg | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i64x2.all_true | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.bitmask | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.shl | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i64x2.shr_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i64x2.shr_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i64x2.add | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i64x2.sub | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i64x2.mul | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
i64x2.extend_low_i32x4_s | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.extend_high_i32x4_s | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.extend_low_i32x4_u | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.extend_high_i32x4_u | :heavy_check_mark: | :heavy_check_mark: | |||
f32x4.abs | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.neg | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.sqrt | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.add | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.sub | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.mul | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.div | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.min | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.max | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.pmin | :heavy_check_mark: | :heavy_check_mark: | |||
f32x4.pmax | :heavy_check_mark: | :heavy_check_mark: | |||
f32x4.ceil | :heavy_check_mark: | :heavy_check_mark: | |||
f32x4.floor | :heavy_check_mark: | :heavy_check_mark: | |||
f32x4.trunc | :heavy_check_mark: | :heavy_check_mark: | |||
f32x4.nearest | :heavy_check_mark: | :heavy_check_mark: | |||
f64x2.abs | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.neg | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.sqrt | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.add | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.sub | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.mul | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.div | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.min | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.max | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f64x2.pmin | :heavy_check_mark: | :heavy_check_mark: | |||
f64x2.pmax | :heavy_check_mark: | :heavy_check_mark: | |||
f64x2.ceil | :heavy_check_mark: | :heavy_check_mark: | |||
f64x2.floor | :heavy_check_mark: | :heavy_check_mark: | |||
f64x2.trunc | :heavy_check_mark: | :heavy_check_mark: | |||
f64x2.nearest | :heavy_check_mark: | :heavy_check_mark: | |||
i32x4.trunc_sat_f32x4_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
i32x4.trunc_sat_f32x4_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.convert_i32x4_s | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
f32x4.convert_i32x4_u | -msimd128 | :heavy_check_mark: | :heavy_check_mark: | ||
v128.load32_zero | :heavy_check_mark: | :heavy_check_mark: | |||
v128.load64_zero | :heavy_check_mark: | :heavy_check_mark: | |||
i16x8.extmul_low_i8x16_s | :heavy_check_mark: | :heavy_check_mark: | |||
i16x8.extmul_high_i8x16_s | :heavy_check_mark: | :heavy_check_mark: | |||
i16x8.extmul_low_i8x16_u | :heavy_check_mark: | :heavy_check_mark: | |||
i16x8.extmul_high_i8x16_u | :heavy_check_mark: | :heavy_check_mark: | |||
i32x4.extmul_low_i16x8_s | :heavy_check_mark: | :heavy_check_mark: | |||
i32x4.extmul_high_i16x8_s | :heavy_check_mark: | :heavy_check_mark: | |||
i32x4.extmul_low_i16x8_u | :heavy_check_mark: | :heavy_check_mark: | |||
i32x4.extmul_high_i16x8_u | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.extmul_low_i32x4_s | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.extmul_high_i32x4_s | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.extmul_low_i32x4_u | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.extmul_high_i32x4_u | :heavy_check_mark: | :heavy_check_mark: | |||
v128.any_true | :heavy_check_mark: | :heavy_check_mark: | |||
v128.load8_lane | :heavy_check_mark: | :heavy_check_mark: | |||
v128.load16_lane | :heavy_check_mark: | :heavy_check_mark: | |||
v128.load32_lane | :heavy_check_mark: | :heavy_check_mark: | |||
v128.load64_lane | :heavy_check_mark: | :heavy_check_mark: | |||
v128.store8_lane | :heavy_check_mark: | :heavy_check_mark: | |||
v128.store16_lane | :heavy_check_mark: | :heavy_check_mark: | |||
v128.store32_lane | :heavy_check_mark: | :heavy_check_mark: | |||
v128.store64_lane | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.ne | :heavy_check_mark: | :heavy_check_mark: | |||
f64x2.convert_low_i32x4_s | :heavy_check_mark: | :heavy_check_mark: | |||
f64x2.convert_low_i32x4_u | :heavy_check_mark: | :heavy_check_mark: | |||
i32x4.trunc_sat_f64x2_s_zero | :heavy_check_mark: | :heavy_check_mark: | |||
i32x4.trunc_sat_f64x2_u_zero | :heavy_check_mark: | :heavy_check_mark: | |||
f32x4.demote_f64x2_zero | :heavy_check_mark: | :heavy_check_mark: | |||
f64x2.promote_low_f32x4 | :heavy_check_mark: | :heavy_check_mark: | |||
i8x16.popcnt | :heavy_check_mark: | :heavy_check_mark: | |||
i16x8.extadd_pairwise_i8x16_s | :heavy_check_mark: | :heavy_check_mark: | |||
i16x8.extadd_pairwise_i8x16_u | :heavy_check_mark: | :heavy_check_mark: | |||
i32x4.extadd_pairwise_i16x8_s | :heavy_check_mark: | :heavy_check_mark: | |||
i32x4.extadd_pairwise_i16x8_u | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.lt_s | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.gt_s | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.le_s | :heavy_check_mark: | :heavy_check_mark: | |||
i64x2.ge_s | :heavy_check_mark: | :heavy_check_mark: |
[1] Tip of tree LLVM as of May 20, 2020
[2] V8 9.1.0.
[3] Not known to be updated after latest renumbering. Requires flag --enable simd
[4] Only in 1.12.* (development branch). Requires (case-insensitive) flag -wasmsimd
[5] Firefox x64/x86 (SSE4.1+ only) from FF89, ARM64 from FF90. Earlier versions control in about:config under javascript.options.wasm_simd