WebAssembly / WebAssembly/half-precision

First-class F16 type and scalar operation

Open
#1 1 comment 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

The introduction of the proposal included first-class F16 scalar value type and operations for it.
During exploratory implementation in V8 I discovered it is pretty costly to bring it to V8: there is no instances of 16-bit optional registers/operations, so register allocator, memory allocator and others need significant refactoring. Also, there is no interest in scalar operations from potential users I discussed the proposal with.
Also, during the discussion at CG the same question was raised in chat: "Could we have F16 SIMD shapes without having an F16 scalar type? Similar to i8 and i16 SIMD shapes without i8 and i16 scalar types in the spec so far."
I think I can answer that question now: we don't need them until some concrete and persuading use cases are demonstrated.

Opening that issue for tracking that question.

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 with the proposal introduction and the linked CG discussion, then review the exploratory V8 findings about F16 scalar implementation costs. Done means determining whether concrete, persuasive scalar-operation use cases exist and recording a decision about tracking or pursuing the first-class F16 scalar type.

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.