bytecodealliance / bytecodealliance/wasmtime
Split large vectors into smaller ones as necessary
- Dominant language
- Rust
- Stars
- 18.6k
- Forks
- 1.8k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 126
Description
#### Feature
When a vector type is larger than the largest natively supported vector, split it into multiple smaller ones and use multiple vector instructions for each clif instruction.
#### Benefit
This allows using vector types larger than natively supported in cranelift embedders without having to manually split it into smaller vectors and without having to change lowering as bigger vectors get supported by the backend. In case of cg_clif I currently have the option to either duplicate code to handle 128bit and larger or smaller vectors or to use scalar emulations everywhere. I am using scalar emulations at the moment, but I would like to be able to always use vector instructions.
#### Implementation
Similar to how i128 is handled.
#### Alternatives
Not implement this and force all embedders to do the splitting themself.
Contributor guide
Assessment
This issue has not been assessed yet.