Alex Crichton
7063458f30
Touch up some recently added intrinsics
...
* Mark them as `unsafe`
* Mark the tests as `unsafe`
* Leverage the new features of the `#[assert_instr]` macro
2017-09-27 19:44:14 -07:00
Adam Niederer
ddf4512561
Add vroundps, vceilps, vfloorps, vsqrtps, vsqrtpd ( #53 )
...
* Add vroundps, vceilps, vfloorps, vsqrtps, vsqrtpd
* Uninhibit assert_instr on non-expanded intrinsics
Also use the new simd_test macro
* Use simd_test where possible
* Add automated tests for vround*
* Add target_feature guards to automated tests
* Move automated tests below their functions
2017-09-27 21:41:37 -05:00
Andrew Gallant
bd75f7fcac
avx2: add _mm256_movemask_epi8
2017-09-27 12:18:57 -04:00
Andrew Gallant
5cc85000a7
x86: remove remaining wrapper tests
...
This commit switches the remaining "wrapper" tests to assert_instr with
constant parameters. This form of test is necessary when a vendor
intrinsic requires an immediate constant value to optimize properly into
the intended CPU instruction.
2017-09-27 11:03:10 -05:00
Alex Crichton
24f08cd458
Enhance #[assert_instr] with constant arguments
...
Some intrinsics need to be invoked with constant arguments to get the right
instruction to get generated, so this commit enhances the `assert_instr` macro
to enable this ability. Namely you pass constant arguments like:
#[assert_instr(foo, a = b)]
where this will assert that the intrinsic, when invoked with argument `a` equal
to the value `b` and all other arguments passed from the outside, will generate
the instruction `foo`.
Closes #49
2017-09-27 10:32:13 -05:00
Andrew Gallant
25cef3696a
crate: use unsafe in tests
2017-09-27 11:04:23 -04: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
Andrew Gallant
ff9e960628
arm: add unsafe to target fns
...
This commit only updates one function, _rbit_u32, which conditionally
sets the target feature.
2017-09-27 11:04:23 -04:00
Andrew Gallant
84331e7afb
ci: limit CI to master
...
This prevents duplicating CI on every PR.
2017-09-27 11:04:23 -04:00
Andrew Gallant
91d463b3e1
crate: allow unused features
...
It looks like const_atomic_usize_new is conditionally used?
2017-09-27 11:04:23 -04:00
Alex Crichton
89719a802d
Merge pull request #56 from AdamNiederer/autotest-avx
...
Add assert_instr to the rest of avx.rs
2017-09-26 22:10:41 -05:00
Alex Crichton
fbcf876ce0
Merge pull request #55 from AdamNiederer/addps
...
Add vaddsubps
2017-09-26 22:10:21 -05:00
Alex Crichton
b5c5d82941
Merge pull request #54 from AdamNiederer/vmul
...
Add vmulpd and vmulps
2017-09-26 22:10:03 -05:00
Alex Crichton
9413ec01a7
Don't backtrace failures on windows
2017-09-26 20:03:01 -07:00
Adam
6486b65308
Add assert_instr to the rest of avx.rs
2017-09-26 22:57:32 -04:00
Adam
d3b97d0566
Add vaddsubps
2017-09-26 22:56:10 -04:00
Adam
ecfad658fc
Add vmulpd and vmulps
2017-09-26 22:55:18 -04:00
Alex Crichton
87afb940eb
Fix a test on Windows
2017-09-26 19:14:25 -07:00
Alex Crichton
c201942094
Tweak some test asserts and style
2017-09-26 19:06:44 -07:00
Adam
a01fd615ba
Use new assert_instr
2017-09-26 21:19:02 -04:00
Adam Niederer
d5ed881685
Merge branch 'master' into master
2017-09-26 19:37:59 -04:00
Adam
e1dd2ae43c
Constify vroundpd, add tests for vsubps and vsubpd
...
Tests are still up in the air because of #49 .
2017-09-26 19:36:38 -04:00
Alex Crichton
60fbf44231
Run bmi tests everywhere
2017-09-26 15:55:36 -07:00
Alex Crichton
1d6fbebf11
x86 intrinsics TODO is now in an issue
2017-09-26 15:08:40 -07:00
Alex Crichton
15530322e6
Merge branch 'master' of https://github.com/mohanrajendran/stdsimd
2017-09-26 15:06:44 -07:00
Alex Crichton
30513d05e0
Merge pull request #48 from alexcrichton/assert-detection-correct
...
Add a test for x86 runtime support
2017-09-26 17:03:12 -05:00
Alex Crichton
6fbab9af44
Add a test for x86 runtime support
...
Make sure we agree with the `cupid` crate
2017-09-26 14:58:41 -07:00
Alex Crichton
2660ba176e
Fix a merge conflict
2017-09-26 14:53:20 -07:00
Alex Crichton
129f7191dd
Merge pull request #44 from alexcrichton/assert
...
Add AVX2 instruction assertiosn
2017-09-26 16:49:51 -05:00
Alex Crichton
374ece6818
Merge pull request #46 from alexcrichton/always-test
...
Always test intrinsics unconditionally
2017-09-26 16:45:05 -05:00
Alex Crichton
b8bcdd93c6
Always test intrinsics unconditionally
...
This commit alters the test suite to unconditionally compile and run all tests,
regardless of the ambient target features enabled. This then uses a new
convenience macro, `#[simd_test]`, to guard all tests with the appropriate
`cfg_feature_enabled!` and also enable the `#[target_feature]` appropriately.
2017-09-26 14:38:58 -07:00
Alex Crichton
1fa49dfe5d
Add AVX2 instruction assertiosn
...
Also a few other assorted modules
2017-09-26 11:12:16 -07:00
Adam
6003dbf51f
Do not use nonexistent subtraction intrinsics
...
We can use the generic operators instead
2017-09-26 00:47:55 -04:00
Adam
ef97a06670
Add subtraction, rounding avx instrs
...
Adds subpd256, subps256, roundpd256, ceilpd256, floorpd256, and associated tests
2017-09-26 00:17:35 -04:00
Mohan Rajendran
b787226061
Squashing
2017-09-25 22:36:28 -05:00
Alex Crichton
299b2f3c29
Merge pull request #41 from alexcrichton/assert-small
...
Assert that diassembly is "small"
2017-09-25 16:10:36 -05:00
Alex Crichton
e5a98843b4
Assert that diassembly is "small"
...
There's a lot of trickery in this crate which expands to a lot of code, so in
addition to asserting that we find the right instruction, let's assert we find
a small function as well (as these should all be just one or so instructions
anyway).
2017-09-25 13:55:48 -07:00
Alex Crichton
58119db1a0
Fix link in README
2017-09-25 13:45:00 -07:00
Alex Crichton
1d22fe36b9
Update CONTRIBUTING
2017-09-25 13:44:20 -07:00
Alex Crichton
a03935143f
Add links to docs
2017-09-25 13:39:02 -07:00
Alex Crichton
b44d388d88
Add aarch64 docs
2017-09-25 13:38:12 -07:00
Alex Crichton
d978ac4c81
Write some short crate docs
2017-09-25 13:36:32 -07:00
Alex Crichton
f7a3fd65fd
Add some doc urls
2017-09-25 13:18:52 -07:00
Alex Crichton
a5d562faba
No need to debug so much
2017-09-25 13:17:41 -07:00
Alex Crichton
f17ac643a1
Tweak dox script
2017-09-25 13:15:32 -07:00
Alex Crichton
145a8694e1
Remove stray dir
2017-09-25 13:13:59 -07:00
Alex Crichton
63b5c09168
Add documentation generation
2017-09-25 13:13:01 -07:00
Alex Crichton
bcd2d9aa30
Update the README with some extra badges and info
2017-09-25 13:02:32 -07:00
Alex Crichton
903ed4f602
Add license files
...
Closes #12
2017-09-25 12:43:06 -07:00
Alex Crichton
d30ac624f8
Merge pull request #31 from gnzlbg/runtime_detection
...
[runtime] initial run-time feature detection support
2017-09-25 14:09:26 -05:00