Some intrinsics take `i64` or `u64` arguments which typically means that they're using 64-bit registers and aren't actually available on x86. This commit adds a check to stdsimd-verify to assert this and moves around some intrinsics that I believe should only be available on x86_64. This commit was checked in many places against gcc/clang/MSVC using godbolt.org to ensure that we're agreeing with what other compilers are doing. Closes #304 |
||
|---|---|---|
| .. | ||
| ci | ||
| coresimd | ||
| examples | ||
| src | ||
| stdsimd-test | ||
| stdsimd-verify | ||
| tests | ||
| .appveyor.yml | ||
| .gitignore | ||
| .travis.yml | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| QUESTIONS.md | ||
| README.md | ||
| rustfmt.toml | ||
stdsimd
Experimental support for SIMD destined to eventually become part of Rust's standard library
This is a work in progress.
- Documentation - i686
- Documentation - x86_64
- Documentation - arm
- Documentation - aarch64
- How to get started
- How to help implement intrinsics
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.