Skip to content

Portable packed SIMD vector types #2948

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 20 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
more prior art, typo fixes,...
  • Loading branch information
gnzlbg committed Mar 22, 2018
commit 64a3ce62440a32e8a6a21ea00ed9ea4ea1d5cdc8
24 changes: 15 additions & 9 deletions text/0000-ppv.md
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ methods which, on overflow, produce the correct mathematical result modulo `2^n`

If any of the vector elements is divided by zero the behavior is undefined.

#### Binary minmax vertical operations
#### Binary `min`/`max` vertical operations

All portable signed integer, unsigned integer, and floating-point vectors
implement the following methods:
Expand Down Expand Up @@ -1244,15 +1244,21 @@ If there is consensus for it the RFC can be easily amended.
# Prior art
[prior-art]: #prior-art

All of this is implemented in `stdsimd` and can be used on nightly today via the
`std::simd` module. The `stdsimd` crate is an effort started by @burntsushi to
put the `rust-lang-nursery/simd` crate into a state suitable for stabilization.
The `rust-lang-nursery/simd` crate was mainly developed by @huonw and IIRC it is
heavily-inspired by Dart's SIMD which is from where the `f32x4` naming scheme
comes from. This RFC has been heavily inspired by Dart, and two of the three
examples used in the motivation come from the [Using SIMD in
Most of this is implemented in `stdsimd` and can be used on nightly today via
the `std::simd` module. The `stdsimd` crate is an effort started by @burntsushi
to put the `rust-lang-nursery/simd` crate into a state suitable for
stabilization. The `rust-lang-nursery/simd` crate was mainly developed by @huonw
and IIRC it is heavily-inspired by Dart's SIMD which is from where the `f32x4`
naming scheme comes from. This RFC has been heavily inspired by Dart, and two of
the three examples used in the motivation come from the [Using SIMD in
Dart](https://www.dartlang.org/articles/dart-vm/simd) article written by John
McCutchan.
McCutchan. Some of the key ideas of this RFC come from LLVM's design, which was
originally inspired by GCC's vector extensions, which was probably inspired by
something else.

Or in other words: to the author's best knowledge, this RFC does not contain any
really novel ideas. Instead, it only draws inspriation from previous designs
that have withstood the test of time, and it adapts these designs to Rust.

# Unresolved questions
[unresolved]: #unresolved-questions
Expand Down