Repository navigation
Conversation
There was a problem hiding this comment.
What happens when code uses long SIMD on a hardware platform which doesn't support it?
There was a problem hiding this comment.
Good question. I added it.
This is meant to address the original concern in WebAssembly/spec#41
Materialize the section on "Long SIMD".
|
Since I'm unable to comment on #1075, I'd like to say that fixed-width packed SIMD has a complicated relationship with RISC-V. I'm working on V8 for RISC-V (and presumably somebody will end up working on SpiderMonkey for RISC-V). There is a Packed SIMD extension for RISC-V, but interest in implementing it is mixed. The preferred method of addressing vectors seems to be the Vector extension, which is variable-width and handles element counts which are not a multiple of the stride in hardware, rather than relying on software. There are five major things that come to mind:
|
|
I'm sure RISC-V is very nice... but realistically only x86 and ARM matter for the immediate term :( What's more compelling perhaps is that ARM is getting variable-width SIMD soon via "Scalable Vector Extension" (and I was chatting some people from the ARM compilers team at an LLVM developer meetup, who were enthusiastic about it). LLVM doesn't support variable-width SIMD yet, but it is being worked on currently. In the long run, it's probably the most future-proof way of adding these instructions. A target that only has fixed width SIMD can use that to implement variable-width Wasm instructions, but it's a bit harder going the other way round. |
|
The right place to discuss SIMD, and bring up limitations to the proposed approach, is in the SIMD repo. Tracking issues are purposefully closed because they're informative, for tracking purpose, and not for discussion. The repo is where development and discussion happen. |
This is meant to address the original concern in
WebAssembly/spec#41