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 by Cheng Shao