rust-lang / rust-lang/portable-simd

Missing compiler intrinsics

Open
#46 3 comments 0 reactions 0 assignees View on GitHub

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_add etc
  • simd_trunc
  • simd_round
  • simd_lt_packed etc (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 of simd_cast for integer -> mask)
  • simd_bitmask/simd_select_bitmask (these already exist, but they should be modified to accept arrays of u8
  • simd_bswap

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.