27 Commits

Author SHA1 Message Date
gnzlbg
4d545e713f Run-time feature detection for AES-NI and TSC (#312)
* add runtime detection for aes-ni

* fmtting and fixing some clippy issues

* add runtime-feature detection for tsc

* fix remaining clippy issues

* manually fix some formatting issues

* increase feature cache size

* use 2x AtomicU32 on 32-bit targets as the feature cache

* use the new cache in stdsimd
2018-02-02 09:08:27 -06:00
Alex Crichton
e19b6d9efd
Remove Into/From between x86 and portable types (#292)
This is primarily doing to avoid falling into a portability trap by accident,
and in general makes the vendor types (on x86) going towards as minimal as they
can be. Along the way some tests were cleaned up which were still using the
portable types.
2018-01-19 20:15:07 -06:00
Alex Crichton
54452230a7
Add an example of SIMD-powered hex encoding (#291)
This is lifted from an example elsewhere I found and shows off runtime
dispatching along with a lot of intrinsics being used in a bunch.
2018-01-19 16:53:38 -06:00
Alex Crichton
5c8867c7c3
Update target_feature syntax (#283)
This commit updates to the latest nightly's syntax where `#[target_feature =
"+foo"]` is now deprecated in favor of `#[target_feature(enable = "foo")]`.
Additionally `#[target_feature]` can only be applied to `unsafe` functions for
now.

Along the way this removes a few exampels that were just left around and also
disables the `fxsr` modules as that target feature will need to land in upstream
rust-lang/rust first as it's currently unknown to the compiler.
2018-01-17 09:45:02 -06:00
Alex Crichton
baf9d0e7e0
Migrate the i686::sse module to vendor types (#269)
This migrates the entire `i686::sse` module (and touches a few others) to the
vendor types.
2018-01-09 13:38:09 -06:00
gnzlbg
4fb9420acb
Fix rustfmt (#239)
* [fmt] manually fix some formatting
* [fmt] reformat with rustfmt-nightly
* [clippy] fix clippy issues
2017-12-14 19:57:53 +01:00
gnzlbg
dd9a3f92ff move __m128i to the v128 module 2017-12-13 10:19:09 -05:00
gnzlbg
542aac988a [ci] enable clippy (#62)
* [ci] enable clippy

* [clippy] fix clippy issues
2017-11-02 13:43:12 -04:00
gnzlbg
69d2ad85f3 [ci] check formatting (#64)
* [ci] check formatting

* [rustfmt] reformat the whole library
2017-10-27 11:55:29 -04:00
gnzlbg
1f44e3166e Deny all warnings and fix errors (#135)
* [travis-ci] deny warnings

* fix all warnings
2017-10-22 12:30:26 -05:00
gnzlbg
a3a703d83e [example] nbody (#117) 2017-10-18 17:19:19 -05:00
Andrew Gallant
6dfc65289c x86: add unsafe to all x86 vendor intrinsics
Also, add missing assert_instr tests to each intrinsic, where possible.
2017-09-27 11:04:23 -04:00
Alex Crichton
5a8887b0c0 Add CI for more platforms
This commit adds CI for a few more targets:

* i686-unknown-linux-gnu
* arm-unknown-linux-gnueabihf
* armv7-unknown-linux-gnueabihf
* aarch64-unknown-linux-gnu

The CI here is structured around using a Docker container to set up a test
environment and then QEMU is used to actually execute code from these platforms.
QEMU's emulation actually makes it so we can continue to just use `cargo test`,
as processes can be spawned from QEMU like `objdump` and files can be read (for
libbacktrace). Ends up being a relatively seamless experience!

Note that a number of intrinsics were disabled on i686 because they were failing
tests, and otherwise a few ARM touch-ups were made to get tests passing.
2017-09-21 12:35:46 -07:00
Andrew Gallant
baaa64258b
add scratch 2017-09-17 18:09:04 -04:00
Andrew Gallant
8f490e5dff
fix 2017-06-19 18:34:32 -04:00
Andrew Gallant
f04dd91c71
add strange example that fails 2017-06-19 18:31:05 -04:00
Andrew Gallant
e975e22c20
refactor 2017-06-19 17:06:53 -04:00
Andrew Gallant
1203e97ac0 progress 2017-03-13 20:56:22 -04:00
Andrew Gallant
5bfc38a994 progress 2016-12-28 18:22:09 -05:00
Andrew Gallant
8b27771cc5 progress 2016-12-11 20:35:28 -05:00
Andrew Gallant
c01240299f progress 2016-12-11 18:26:04 -05:00
Andrew Gallant
f268844dc9 progress 2016-12-02 21:46:58 -05:00
Andrew Gallant
535794f129 progress 2016-11-30 19:35:14 -05:00
Andrew Gallant
b5e73d1ed2 progress 2016-11-29 01:06:17 -05:00
Andrew Gallant
1593cf01cd progress 2016-11-28 12:14:57 -05:00
Andrew Gallant
12121fc2bb progress 2016-11-27 01:06:39 -05:00
Andrew Gallant
c709196f7a scratch 2016-11-24 22:45:52 -05:00