|
4 | 4 | | `v128.store` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
5 | 5 | | `v128.const` | `-munimplemented-simd128` | | :heavy_check_mark: | :heavy_check_mark: | |
6 | 6 | | `i8x16.splat` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
7 | | -| `v8x16.load_splat` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
| 7 | +| `v8x16.load_splat` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
8 | 8 | | `i8x16.extract_lane_s` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
9 | 9 | | `i8x16.extract_lane_u` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
10 | 10 | | `i8x16.replace_lane` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
11 | 11 | | `i16x8.splat` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
12 | | -| `v16x8.load_splat` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
| 12 | +| `v16x8.load_splat` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
13 | 13 | | `i16x8.extract_lane_s` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
14 | 14 | | `i16x8.extract_lane_u` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
15 | 15 | | `i16x8.replace_lane` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
16 | 16 | | `i32x4.splat` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
17 | | -| `v32x4.load_splat` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
| 17 | +| `v32x4.load_splat` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
18 | 18 | | `i32x4.extract_lane` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
19 | 19 | | `i32x4.replace_lane` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
20 | 20 | | `i64x2.splat` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
|
24 | 24 | | `f32x4.extract_lane` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
25 | 25 | | `f32x4.replace_lane` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
26 | 26 | | `f64x2.splat` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
27 | | -| `v64x2.load_splat` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
| 27 | +| `v64x2.load_splat` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
28 | 28 | | `f64x2.extract_lane` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
29 | 29 | | `f64x2.replace_lane` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
30 | 30 | | `i8x16.eq` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
|
71 | 71 | | `f64x2.ge` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
72 | 72 | | `v128.not` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
73 | 73 | | `v128.and` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
74 | | -| `v128.andnot` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
| 74 | +| `v128.andnot` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
75 | 75 | | `v128.or` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
76 | 76 | | `v128.xor` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
77 | 77 | | `v128.bitselect` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
|
132 | 132 | | `i64x2.shr_u` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
133 | 133 | | `i64x2.add` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
134 | 134 | | `i64x2.sub` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
135 | | -| `i64x2.mul` | | | :heavy_check_mark: | | |
| 135 | +| `i64x2.mul` | | :heavy_check_mark: | :heavy_check_mark: | | |
136 | 136 | | `f32x4.abs` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
137 | 137 | | `f32x4.neg` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
138 | 138 | | `f32x4.sqrt` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
|
155 | 155 | | `i32x4.trunc_sat_f32x4_u` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
156 | 156 | | `f32x4.convert_i32x4_s` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
157 | 157 | | `f32x4.convert_i32x4_u` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
158 | | -| `v8x16.swizzle` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
159 | | -| `v8x16.shuffle` | `-msimd128`[5] | :white_check_mark:[5] | :heavy_check_mark: | :heavy_check_mark: | |
160 | | -| `i16x8.load8x8_s` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
161 | | -| `i16x8.load8x8_u` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
162 | | -| `i32x4.load16x4_s` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
163 | | -| `i32x4.load16x4_u` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
164 | | -| `i64x2.load32x2_s` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
165 | | -| `i64x2.load32x2_u` | `-munimplemented-simd128` | | :heavy_check_mark: | | |
| 158 | +| `v8x16.swizzle` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
| 159 | +| `v8x16.shuffle` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
| 160 | +| `i16x8.load8x8_s` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
| 161 | +| `i16x8.load8x8_u` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
| 162 | +| `i32x4.load16x4_s` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
| 163 | +| `i32x4.load16x4_u` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
| 164 | +| `i64x2.load32x2_s` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
| 165 | +| `i64x2.load32x2_u` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | | |
166 | 166 | | `i8x16.narrow_i16x8_s` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | | |
167 | 167 | | `i8x16.narrow_i16x8_u` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | | |
168 | 168 | | `i16x8.narrow_i32x4_s` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | | |
|
176 | 176 | | `i32x4.widen_low_i16x8_u` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | | |
177 | 177 | | `i32x4.widen_high_i16x8_u` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | | |
178 | 178 |
|
179 | | -[1] Tip of tree LLVM as of March 23, 2020 |
| 179 | +[1] Tip of tree LLVM as of May 6, 2020 |
180 | 180 |
|
181 | | -[2] Tested on V8 8.1.0 (candidate). Requires flag `--experimental-wasm-simd` |
| 181 | +[2] Tested on V8 8.4.272. Requires flag `--experimental-wasm-simd` |
182 | 182 |
|
183 | 183 | [3] Tip of tree WAVM as of Feb 16, 2020. Requires flag `--enable simd` |
184 | 184 |
|
185 | 185 | [4] Requires (case-insensitive) flag `-wasmsimd` |
186 | | - |
187 | | -[5] Uses older `v8x16.shuffle` opcode `0xfd 0x03` |
0 commit comments