Skip to content
This repository was archived by the owner on Dec 22, 2021. It is now read-only.

Commit 31e8894

Browse files
ngzhiandtig
authored andcommitted
Remove i64x2 <-> f64x2 conversion opcodes (#178)
In the SIMD sync on 2020-01-14, we discussed the challenges with implementing these instructions in a performant way on 32-bit archs. And even on 64-bit arch, like x64, it requires AVX-512 for good codegen. There is consensus that because it is uncommon for such instructions to be used, and that hardware support is not widespread, we can remove these.
1 parent 0a82b43 commit 31e8894

File tree

3 files changed

+0
-12
lines changed

3 files changed

+0
-12
lines changed

proposals/simd/BinarySIMD.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,12 +170,8 @@ The `v8x16.shuffle` instruction has 16 bytes after `simdop`.
170170
| `f64x2.max` | `0xaa`| - |
171171
| `i32x4.trunc_sat_f32x4_s` | `0xab`| - |
172172
| `i32x4.trunc_sat_f32x4_u` | `0xac`| - |
173-
| `i64x2.trunc_sat_f64x2_s` | `0xad`| - |
174-
| `i64x2.trunc_sat_f64x2_u` | `0xae`| - |
175173
| `f32x4.convert_i32x4_s` | `0xaf`| - |
176174
| `f32x4.convert_i32x4_u` | `0xb0`| - |
177-
| `f64x2.convert_i64x2_s` | `0xb1`| - |
178-
| `f64x2.convert_i64x2_u` | `0xb2`| - |
179175
| `v8x16.swizzle` | `0xc0`| - |
180176
| `v8x16.shuffle` | `0xc1`| s:LaneIdx32[16] |
181177
| `v8x16.load_splat` | `0xc2`| - |

proposals/simd/ImplementationStatus.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,12 +150,8 @@
150150
| `f64x2.max` | `-munimplemented-simd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
151151
| `i32x4.trunc_sat_f32x4_s` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
152152
| `i32x4.trunc_sat_f32x4_u` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
153-
| `i64x2.trunc_sat_f64x2_s` | `-munimplemented-simd128` | | :heavy_check_mark: | :heavy_check_mark: |
154-
| `i64x2.trunc_sat_f64x2_u` | `-munimplemented-simd128` | | :heavy_check_mark: | :heavy_check_mark: |
155153
| `f32x4.convert_i32x4_s` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
156154
| `f32x4.convert_i32x4_u` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
157-
| `f64x2.convert_i64x2_s` | `-munimplemented-simd128` | | :heavy_check_mark: | :heavy_check_mark: |
158-
| `f64x2.convert_i64x2_u` | `-munimplemented-simd128` | | :heavy_check_mark: | :heavy_check_mark: |
159155
| `v8x16.swizzle` | `-munimplemented-simd128` | | :heavy_check_mark: | |
160156
| `v8x16.shuffle` | `-msimd128`[5] | :white_check_mark:[5] | :heavy_check_mark: | :heavy_check_mark: |
161157
| `i16x8.load8x8_s` | `-munimplemented-simd128` | | :heavy_check_mark: | |

proposals/simd/SIMD.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -859,17 +859,13 @@ Lane-wise IEEE `squareRoot`.
859859
### Integer to floating point
860860
* `f32x4.convert_i32x4_s(a: v128) -> v128`
861861
* `f32x4.convert_i32x4_u(a: v128) -> v128`
862-
* `f64x2.convert_i64x2_s(a: v128) -> v128`
863-
* `f64x2.convert_i64x2_u(a: v128) -> v128`
864862

865863
Lane-wise conversion from integer to floating point. Some integer values will be
866864
rounded.
867865

868866
### Floating point to integer with saturation
869867
* `i32x4.trunc_sat_f32x4_s(a: v128) -> v128`
870868
* `i32x4.trunc_sat_f32x4_u(a: v128) -> v128`
871-
* `i64x2.trunc_sat_f64x2_s(a: v128) -> v128`
872-
* `i64x2.trunc_sat_f64x2_u(a: v128) -> v128`
873869

874870
Lane-wise saturating conversion from floating point to integer using the IEEE
875871
`convertToIntegerTowardZero` function. If any input lane is a NaN, the

0 commit comments

Comments
 (0)