Implement all ARM NEON intrinsics
Open
Nobody has claimed this yet.
A-arm
- Dominant language
- Rust
- Stars
- 694
- Forks
- 336
- Avg merge
- 5d 14h
- Merged PRs (30d)
- 9
Description
Steps for implementing an intrinsic:
- Select an intrinsic below
- Review
coresimd/arm/neon.rsandcoresimd/aarch64/neon.rs - Consult ARM official documentation about your intrinsic
- Consult godbolt for how the intrinsic should be codegen'd, using clang as an example. Use the links below and replace the name of the intrinsic in the code with your intrinsic. Note that if ARM is an error then your intrinsic may be AArch64-only
- If the codegen is the same on ARM/AArch64, place the intrinsic in
coresimd/arm/neon.rs. If it's different place it in both with appropriate#[cfg]incoresimd/arm/neon.rs. If it's only AArch64 place it incoresimd/aarch64/neon.rs - Write a test for your intrinsic at the bottom of the file as well
- Test! Probably use
rustup run nightly sh ci/run-docker.sh aarch64-unknown-linux-gnu. - When ready, send a PR!
Contributor guide
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
Select one intrinsic from the linked list, then review coresimd/arm/neon.rs and coresimd/aarch64/neon.rs. Consult the ARM documentation and the linked Godbolt examples to determine placement and code generation, add a test at the bottom of the relevant file, and run rustup run nightly sh ci/run-docker.sh aarch64-unknown-linux-gnu. Done means the selected intrinsic is implemented and tested.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100