Find a file
Jubilee Young fd6179b4cd Add a blank issue template
Setting this in config.yml only enables the appearance of a tiny link
on GitHub that is hard to see and find. This template adds a "blank issue"
link that is as equally visible as the rest of the template options.
2021-02-02 18:12:26 -08:00
.github Add a blank issue template 2021-02-02 18:12:26 -08:00
crates/core_simd Merge pull request #55 from miguelraz/min-panics 2021-02-02 17:21:09 -08:00
.gitignore Add initial type implementations 2020-09-22 19:41:42 -04:00
.travis.yml Rewrite (and improve) CI. 2020-10-07 09:02:34 -07:00
beginners-guide.md Document size/align of SIMD types 2020-10-16 17:11:52 -07:00
Cargo.toml Add initial type implementations 2020-09-22 19:41:42 -04:00
CONTRIBUTING.md Draft a CONTRIBUTING.md (#33) 2020-10-09 23:49:43 -07:00
LICENSE-APACHE Add licenses and update Cargo.toml 2020-10-01 23:42:10 -04:00
LICENSE-MIT Add licenses and update Cargo.toml 2020-10-01 23:42:10 -04:00
README.md Add cross-links to Zulip, etc. 2020-10-12 14:31:55 -07:00

stdsimd - Rust's standard library portable SIMD API

Build Status

Code repository for the Portable SIMD Project Group. Please refer to CONTRIBUTING.md for our contributing guidelines.

If you have questions about SIMD, we have begun writing a guide. We can also be found on Zulip.

If you are interested in support for a specific architecture, you may want stdarch instead.

Code Organization

Currently the crate is organized so that each element type is a file, and then the 64-bit, 128-bit, 256-bit, and 512-bit vectors using those types are contained in said file.

All types are then exported as a single, flat module.

Depending on the size of the primitive type, the number of lanes the vector will have varies. For example, 128-bit vectors have four f32 lanes and two f64 lanes.

The supported element types are as follows:

  • Floating Point: f32, f64
  • Signed Integers: i8, i16, i32, i64, i128, isize
  • Unsigned Integers: u8, u16, u32, u64, u128, usize
  • Masks: mask8, mask16, mask32, mask64, mask128, masksize

Floating point, signed integers, and unsigned integers are the primitive types you're already used to. The mask types are "truthy" values, but they use the number of bits in their name instead of just 1 bit like a normal bool uses.