Portable SIMD project group #321
Labels
major-change
A proposal to make a major change to rustc
T-compiler
Add this label so rfcbot knows to poll the compiler team
Proposal
Create a project group for considering what portable SIMD in the standard library should look like.
As a practical matter, I think the multi-ISA-tested running code in the
packed_simd
crate should be used as the starting point. Compiler back ends in general and LLVM in particular already have a dominant design for the general shape of portable SIMD. It makes sense to expose that kind of general API shape in the standard library in order to avoid exposing lower-level compiler intrinsics. Thepacked_simd
crate already has multi-ISA-tested running code for an API shape that is a good fit for what compiler back ends in general and LLVM in particular expose in this domain. Other kinds of designs can be layered over this by the crate ecosystem.Notably,
packed_simd
is already a restart from scratch compared to thesimd
crate. While the internals differ, the general API shape ended up being similar despite initially trying to simplify things away. (Notably,packed_simd
initially tried to not have boolean/mask vectors thatsimd
had but LLVM doesn't have but ended up re-introducing them.) It's not a good use of anyone's time to start from scratch again.See an FAQ for more.
Mentors or Reviewers
@joshtriplett advised me to file an MCP about this.
Process
The main points of the Major Change Process is as follows:
@rustbot second
.-C flag
, then full team check-off is required.@rfcbot fcp merge
on either the MCP or the PR.You can read more about Major Change Proposals on forge.
Comments
This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.
The text was updated successfully, but these errors were encountered: