595 Commits

Author SHA1 Message Date
Luca Barbato
5c00a2b2a4 Add vector multiply round and add saturated 2018-06-28 00:34:14 +02:00
gnzlbg
f55d7be7c9 deprecate read/write eflags (#494) 2018-06-27 13:32:11 -05:00
gnzlbg
0402aba4be allow dead code in reduction tests 2018-06-26 14:54:07 +02:00
gnzlbg
ea6d2b47af [s390x] Fall back to scalar math for portable floating-point vector operations.
I've opened #501 to track the workarounds introduced here.

Closes #498.
2018-06-26 14:54:07 +02:00
gnzlbg
d5cf70cac5 [s390x] add CI
This commit tests `s390x-unknown-linux-gnu` on CI using `qemu-user`.

Closes #499 .
2018-06-26 14:54:07 +02:00
gnzlbg
8287afe0cb Optimize has_cpuid for x86 Rust targets that have cpuid
Improves #497.
2018-06-26 14:53:57 +02:00
gnzlbg
6fa79873e3 Document what the xcr0 masks do 2018-06-26 14:53:46 +02:00
gnzlbg
a0a6e784fb fma requires osxsave 2018-06-26 14:53:46 +02:00
gnzlbg
ae64d7a468 Calling xgetbv is safe only if the OS has set osxsave.
Closes #500.
2018-06-26 14:53:46 +02:00
gnzlbg
f72da708eb fix all nursery doc links 2018-06-26 14:03:57 +02:00
gnzlbg
771dc9fd8e hoist the and out of the inline assembly 2018-06-25 10:16:15 +02:00
gnzlbg
7affba30a5 use and to test the 21st bit 2018-06-25 10:16:15 +02:00
gnzlbg
d6290b5e88 remove unnecesary unsafe block 2018-06-25 10:16:15 +02:00
gnzlbg
a84c619bf3 remove unnecessary shift 2018-06-25 10:16:15 +02:00
gnzlbg
637541bd83 Use Stephen Checkoway solution 2018-06-25 10:16:15 +02:00
gnzlbg
7e710e7e4a fix the shift 2018-06-25 10:16:15 +02:00
gnzlbg
099d6d9093 no need to save/restore ecx in the inline assembly because its already clobbered 2018-06-25 10:16:15 +02:00
gnzlbg
29d969012e fix test and add comments 2018-06-25 10:16:15 +02:00
gnzlbg
6524ead794 fix has_cpuid_test 2018-06-25 10:16:15 +02:00
gnzlbg
8195e74705 use inline assembly instead of the __{read,write}eflags intrinsics 2018-06-25 10:16:15 +02:00
gnzlbg
a51a3ab289 Fixes has_cpuid implementation
https://github.com/rust-lang/rust/issues/51691
2018-06-25 10:16:15 +02:00
est31
39b15bc993 Fix some links
Always point to {target_name}/.../{target_name}/index.html
2018-06-24 11:10:13 +02:00
Terence
709f796a22 Fix typo in max docs
The `max` methods claimed to return the minimum in one location.
2018-06-24 11:08:22 +02:00
gnzlbg
b86ba305b3 x86 android tests now pass 2018-06-23 16:09:27 +02:00
gnzlbg
e70ae5558f add CI for Android 2018-06-23 16:09:27 +02:00
est31
b042566808 Remove stray inconsistent #[cfg]
The cfg for the target is already covered a few lines below.
This cfg meant that even with the dox feature enabled, no
documentation for powerpc64 was generated except you were
actually targetting the powerpc64 arch.
2018-06-23 14:11:26 +02:00
gnzlbg
21a5ac0c31 update README 2018-06-23 12:57:46 +02:00
gnzlbg
388c35ed4b fix run-time detection in doc-test 2018-06-21 12:27:37 +02:00
gnzlbg
3a5bbf11b1 fix doc-test for __m256. Closes #481 2018-06-21 12:03:20 +02:00
gnzlbg
14a5742d4e make check_for and the feature cache function inline 2018-06-20 23:21:24 +02:00
Cameron Hart
784fb26d8c Added implementation and test of _MM_SHUFFLE macro. 2018-06-18 09:58:22 +02:00
gnzlbg
c3d273c980 reformat with latest rustfmt 2018-06-15 14:40:34 +02:00
TheIronBorn
c2d60b18e4 add _mm_mullo_pi16 intrinsic 2018-06-14 22:49:18 +02:00
gnzlbg
f583b31632 fix warnings in reductions tests 2018-06-13 15:23:39 +02:00
Michael Lamparski
215e9cf934 "dotprot" -> "dotprod"
Well, since I reported it I guess I should do something about it.

Note this is a *cough* **breaking change.**

---

Closes #442.
2018-06-12 10:34:10 +02:00
gnzlbg
8ce74840ce rename portable float vector's wrapping_{sum,product} to {sum,product} per the RFC 2018-06-06 14:25:33 +02:00
gnzlbg
d62b7dbc64 add float math: sin, cos 2018-06-06 00:14:01 +02:00
gnzlbg
c8491ea363 add vertical float math: abs, sqrt, sqrte, rsqrte, fma 2018-06-06 00:14:01 +02:00
Erik
b3b668e499 Small spelling fix
sixteem -> sixteen
2018-06-06 00:11:54 +02:00
Luca Barbato
4f2eff627e Replace the deprecated TokenStream::empty() with new()
Requires proc-macro2 0.4.4
2018-06-05 17:37:58 +02:00
Luca Barbato
2b6148d623 Use cfg_if for the nbody example
Avoid the combinatorial explosion once we add support for additional
architectures and simd flavours.
2018-06-05 17:37:58 +02:00
QuietMisdreavus
5ef15cd71f tag private modules with doc(cfg) 2018-05-29 22:27:04 +02:00
Simon Sapin
9151998404 Make SIMD tracking issue marked for stdsimd too
https://github.com/rust-lang/rust/issues/27731
2018-05-24 18:16:14 +02:00
Luca Barbato
2a2f05aedd Extend the xxpermdi coverage 2018-05-23 18:16:14 +02:00
Luca Barbato
3d618b3cd6 Do not run the altivec tests for powerpc64
The big endian variant will be supported properly later.
2018-05-23 18:16:14 +02:00
Luca Barbato
c01982348e Add an env variable to ignore the arch-specific tests
Use STDSIMD_TEST_NORUN=1 to disable them.
2018-05-23 18:16:14 +02:00
Luca Barbato
a1955afb47 Add multiply add saturated 2018-05-23 18:16:14 +02:00
Luca Barbato
0f4ea30683 Extend the tests 2018-05-23 18:16:14 +02:00
Luca Barbato
67746a1393 Move the endian-biased intrinsics in a separate module 2018-05-23 18:16:14 +02:00
Luca Barbato
f6cb5f20a5 Check for the extended mnemonic
It is what objdump produces usually.
2018-05-23 18:16:14 +02:00