Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 5.5k
    • Issues 5.5k
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 631
    • Merge requests 631
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Model experiments
  • Analytics
    • Analytics
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #22618

Add SIMD128 support to the wasm backend

Most WebAssembly runtimes as of today supports 128bits fixed-width SIMD, and it's also supported by LLVM. So it's possible for us to support it in the wasm backend, a good portion of GHC SIMD primops can be lowered to wasm SIMD128 opcodes directly.

I don't see any particular difficulty in this, but it does take some time to implement. And it's a rather low priority feature request, should be postponed given:

  • There still exist issue with -dcmm-lint and SIMD in GHC (#22297 (closed)).
    • Update: the related issue has been fixed
  • JavaScriptCore still doesn't support it yet, and WebKit-based browsers do have a market share we'd like to not ignore.
    • Update: it's supported since safari 16.4
Edited May 03, 2023 by Cheng Shao
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking