linebender / linebender/fearless_simd
swizzle_dyn with non-matching table/indexes sizes
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 457
- Forks
- 30
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 25
Description
Currently, the `swizzle_dyn` family of functions require the length of the table and indexes to match.
However, it's useful to allow them to differ, in both ways:
Larger tables, even with shorter indexes, like Neon's tbl instruction (see also `concat_swizzle_dyn` from #349)
Using a short table, but allowing larger sizes of index vectors. E.g. with this 32 item table, swizzle for these 16/32/64 indexes, or even `S::u8s` indexes.
The only thing is to avoid too much of a combinatorial explosion.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the swizzle_dyn family of functions and the concat_swizzle_dyn work referenced in issue #349. Compare the supported table and index sizes, then determine an API shape that permits both size mismatches without a combinatorial explosion. Done means the differing-size cases described in the issue are supported and covered by the project’s tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100