rust-lang / rust-lang/portable-simd
Missing compiler intrinsics
Open
Nobody has claimed this yet.
C-feature-request
C-tracking-issue
- Dominant language
- Rust
- Stars
- 1.1k
- Forks
- 108
- Avg merge
- 22h 53m
- Merged PRs (30d)
- 3
Description
I think it would be helpful to collect a list of all compiler intrinsics (the extern "platform-intrinsics" ones) that need to be added.
-
simd_neg -
simd_overflowing_addetc -
simd_trunc -
simd_round -
simd_lt_packedetc (all other packed intrinsics can be emulated with this one to start) -
simd_sat_shl<-- only supported in recent LLVM -
simd_abs -
simd_sext(or some kind ofsimd_castfor integer -> mask) -
simd_bitmask/simd_select_bitmask(these already exist, but they should be modified to accept arrays ofu8 -
simd_bswap
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
Start by reviewing the existing extern "platform-intrinsics" implementations and compare them with the unchecked entries in this issue. Determine the scope of one intrinsic group, including the required LLVM support noted for simd_sat_shl; done means the selected missing intrinsics are implemented and covered by the project's existing checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100