wasm-micro-runtime icon indicating copy to clipboard operation
wasm-micro-runtime copied to clipboard

[RFC] Add SIMD128 support in the interpreters

Open jammar1 opened this issue 1 year ago • 3 comments

Feature

Add support for the WASM SIMD opcodes in the interpreters. For my use case I imagine I would use only ARM NEON intrinsics that can run on ARMv7 processors. I imagine I can create some stub functions and then implement them for arm and keep x86 disabled for now.

Benefit

Ability to run code that uses the SIMD 128 opcodes in the interpreters where AOT is not possible.

Implementation

I've implemented a few of the SIMD opcodes already as a PoC but I'm expecting to work through the list and add them all.

Alternatives

jammar1 avatar Sep 19 '24 10:09 jammar1

Thanks @jammar1 . Do you think it'd be good to setup a dev branch so you can post incremental Pull requests or you'd rather just make one big request with all the opcodes implemented? cc: @wenyongh

loganek avatar Sep 20 '24 09:09 loganek

@loganek, @jammar1 Maybe using a dev branch is better so that we can do more test before merging the feature to main branch? I created a new branch dev/simd_for_interp: https://github.com/bytecodealliance/wasm-micro-runtime/tree/dev/simd_for_interp.

wenyongh avatar Sep 20 '24 09:09 wenyongh

Agree with using a dev branch. I imagine I will work through each of the SIMD test suites and raise a PR for each opcode in the block's here: core/iwasm/interpreter/wasm_opcode.h.

jammar1 avatar Sep 20 '24 14:09 jammar1