| stdsimd - Rust's standard library SIMD components |
| ======= |
| |
| [![Travis-CI Status]][travis] [![Appveyor Status]][appveyor] [![Latest Version]][crates.io] [![docs]][docs.rs] |
| |
| # Usage |
| |
| `stdsimd` is now shipped with Rust's `std` library - its is part of `libcore` |
| and `libstd`. |
| |
| The easiest way to use it is just to import it via `use std::arch`. |
| |
| The `std::arch` component for `x86` is available in stable Rust. The `std::arch` |
| components for other architectures and the `std::simd` component require nightly |
| Rust. |
| |
| Using `stdsimd` master branch is not recommended. It requires nightly Rust, it |
| only works with particular Rust nightly versions, and it can (and does) break |
| often. If you need to use `stdsimd` master branch, you can add it to your |
| `Cargo.toml` as follows: |
| |
| ```toml |
| #[dependencies] |
| stdsimd = { git = "https://github.com/rust-lang-nursery/stdsimd.git" } |
| ``` |
| |
| # Documentation |
| |
| * [Documentation - i686][i686] |
| * [Documentation - x86\_64][x86_64] |
| * [Documentation - arm][arm] |
| * [Documentation - aarch64][aarch64] |
| * [Documentation - powerpc][powerpc] |
| * [Documentation - powerpc64][powerpc64] |
| * [How to get started][contrib] |
| * [How to help implement intrinsics][help-implement] |
| |
| [contrib]: https://github.com/rust-lang-nursery/stdsimd/blob/master/CONTRIBUTING.md |
| [help-implement]: https://github.com/rust-lang-nursery/stdsimd/issues/40 |
| [i686]: https://rust-lang-nursery.github.io/stdsimd/i686/stdsimd/ |
| [x86_64]: https://rust-lang-nursery.github.io/stdsimd/x86_64/stdsimd/ |
| [arm]: https://rust-lang-nursery.github.io/stdsimd/arm/stdsimd/ |
| [aarch64]: https://rust-lang-nursery.github.io/stdsimd/aarch64/stdsimd/ |
| [powerpc]: https://rust-lang-nursery.github.io/stdsimd/powerpc/stdsimd/ |
| [powerpc64]: https://rust-lang-nursery.github.io/stdsimd/powerpc64/stdsimd/ |
| |
| ### Approach |
| |
| The main goal is to expose APIs defined by *vendors* with the least amount of |
| abstraction possible. On x86, for example, the API should correspond to that |
| provided by `emmintrin.h`. |
| |
| # License |
| |
| `stdsimd` is primarily distributed under the terms of both the MIT license and |
| the Apache License (Version 2.0), with portions covered by various BSD-like |
| licenses. |
| |
| See LICENSE-APACHE, and LICENSE-MIT for details. |
| |
| |
| [travis]: https://travis-ci.org/rust-lang-nursery/stdsimd |
| [Travis-CI Status]: https://travis-ci.org/rust-lang-nursery/stdsimd.svg?branch=master |
| [appveyor]: https://ci.appveyor.com/project/rust-lang-libs/stdsimd/branch/master |
| [Appveyor Status]: https://ci.appveyor.com/api/projects/status/ix74qhmilpibn00x/branch/master?svg=true |
| [Latest Version]: https://img.shields.io/crates/v/stdsimd.svg |
| [crates.io]: https://crates.io/crates/stdsimd |
| [docs]: https://docs.rs/stdsimd/badge.svg |
| [docs.rs]: https://docs.rs/stdsimd/ |