mirror of
https://github.com/rust-lang/rust.git
synced 2025-11-25 10:58:29 +00:00
70 lines
2.6 KiB
Markdown
70 lines
2.6 KiB
Markdown
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/
|