More run-time detection improvements (#242)

* [core/runtime] use getauxval on non-x86 platforms

* test coresimd::auxv against auxv crate

* add test files from auxv crate

* [arm] use simd_test macro

* formatting

* missing docs

* improve docs

* reading /proc/self/auxv succeeds only if reading all fields succeeds

* remove cc-crate build dependency

* getauxval succeeds only if hwcap/hwcap2 are non-zero

* fix formatting

* move getauxval to stdsimd

* delete getauxval-wrapper.c

* remove auxv crate dev-dependency from coresimd
37 files changed
tree: fc591b00577e5d6c86381257f0250ed51d76619f
  1. ci/
  2. coresimd/
  3. examples/
  4. src/
  5. stdsimd-test/
  6. stdsimd-verify/
  7. tests/
  8. .appveyor.yml
  9. .gitignore
  10. .travis.yml
  11. Cargo.toml
  12. CONTRIBUTING.md
  13. LICENSE-APACHE
  14. LICENSE-MIT
  15. QUESTIONS.md
  16. README.md
  17. rustfmt.toml
README.md

stdsimd

Travis-CI Status Appveyor Status Latest Version docs

Experimental support for SIMD destined to eventually become part of Rust's standard library

This is a work in progress.

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.