WebAssembly / WebAssembly/half-precision

f16x8.demote_f64x2_zero

Open
#2 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
WebAssembly
Stars
14
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Do we need direct conversion from F64 lanes to F16?
Recently, we discovered there is pure support on x64 for direct f64 -> f16 conversion.
F64 to F16 conversion with roundToEven semantic couldn't be efficiently implemented on x64 without AVX512-FP16(so, only Sapphire Rapids Xeon support it today).
We can introduce f16x8.demote_f64x2_zero with roundToZero rounding, so it will be composable with f64 -> f32 -> f16 conversions, but today roundToEven semantic is a default on the Web and such instruction could be easily emulated with f32x4.demote_f64x2_zero + f16x8.demote_f32x4_zero
On the other side Arm64 supports direct F64 -> F16 conversion with roundToEven rounding mode, but without f16x8.demote_f64x2_zero it won't be possible to use it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the proposal discussion and the linked TC39 float16 issue to understand the competing rounding semantics and platform support described here. Define whether a direct f16x8.demote_f64x2_zero operation is needed and what agreement would establish the issue as resolved; no implementation files or tests are named.

Written by the indexing model from the issue text.

Assessment

Tech stack
wasm
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.