Oliver Scherer
5548609204
Add const unstability attributes
...
These are needed for rustc to be able to correctly handle stability of constness of intrinsics. Without either `rustc_const_unstable` or `rustc_const_stable` an intrinsic is not const evaluable at all.
2019-12-20 23:31:51 +01:00
bjorn3
c8249c76c4
Revert mmx changes
...
On i586 the simd_* intrinsics don't compile to MMX instructions, even
with `#[target_feature(enable = "mmx")]`.
2019-12-18 17:41:21 +01:00
bjorn3
ea51d868ec
Rustfmt
2019-12-18 17:41:21 +01:00
bjorn3
0aa5e29724
Revert _mm_{min,max}_ps changes and add explanation why
2019-12-18 17:41:21 +01:00
bjorn3
2112972a64
Use <i64>::swap_bytes instead of llvm.bswap.i64
2019-12-18 17:41:21 +01:00
bjorn3
61693f3b53
Remove some unused llvm intrinsic declarations
2019-12-18 17:41:21 +01:00
bjorn3
c7e16bcebe
Use <i32>::swap_bytes instead of llvm.bswap.i32
2019-12-18 17:41:21 +01:00
bjorn3
35fc3c36e3
Use simd_* in x86/avx2.rs where possible
2019-12-18 17:41:21 +01:00
bjorn3
fb84f79ce7
Use simd_* in x86/avx.rs where possible
2019-12-18 17:41:21 +01:00
bjorn3
c5572ec1f6
Use simd_* in x86/sse41.rs where possible
2019-12-18 17:41:21 +01:00
bjorn3
4da22d5120
Use simd_saturating_* in x86/sse2.rs where possible
2019-12-18 17:41:21 +01:00
bjorn3
039944d366
Use simd_fmin and simd_fmax for _mm_min_ps and _mm_max_ps
2019-12-18 17:41:21 +01:00
bjorn3
4de364cfb4
Use simd_* in x86/mmx.rs where possible
2019-12-18 17:41:21 +01:00
bjorn3
1c38869538
Add missing simd platform intrinsics
2019-12-18 17:41:21 +01:00
bjorn3
a4cd918dff
Use simd_fma where possible
2019-12-18 17:41:21 +01:00
bjorn3
8c643df017
Use simd_floor and simd_ceil where possible
2019-12-18 17:41:21 +01:00
bjorn3
1ac2f13d76
Use simd_fsqrt where possible
2019-12-18 17:41:21 +01:00
bjorn3
dd65ed38db
Require prefix of instruction line to be the expected instruction
...
`rsqrtps %xmm0,%xmm1` used to match `sqrtps` without leading `r`.
2019-12-18 17:41:21 +01:00
Makoto Kato
f5783f5193
Run-time feature detection for Aarch64 on Windows.
2019-12-11 12:24:03 +01:00
Makoto Kato
51c3295de1
Fix unused import: mem::transmute
...
When building on aarch64, the following warning occurs.
```
warning: unused import: `mem::transmute`
--> crates/core_arch/src/arm/neon.rs:3:38
|
3 | use crate::{core_arch::simd_llvm::*, mem::transmute};
| ^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
```
2019-12-06 12:17:56 +01:00
Makoto Kato
cca9a86637
Add CRC32 detection to arm32
...
armv8 has 32-bit mode, but it can use crc32 instruction sets even if 32-bit.
2019-12-02 19:23:05 +01:00
ecstatic-morse
7c56404f1a
Add #[rustc_args_required_const] to simd_shuffle
...
Currently, these have to be special-cased in the promotion logic for rustc.
2019-10-30 10:29:15 +01:00
Taiki Endo
5c1430079b
Format with rustfmt
2019-10-26 18:46:57 +02:00
Taiki Endo
8f07ba7489
Update proc-macro2, syn, and quote to 1.0
2019-10-26 18:46:57 +02:00
Mateusz Mikuła
ed27e2fccd
Replace rustfmt::skip custom inner attribute with rustfmt.toml
2019-10-26 18:46:22 +02:00
Alex Crichton
036b6348d9
Remove need for #[macro_use] with cfg-if
...
Modernizes usage of `cfg_if!` slightly
2019-10-10 12:43:27 +02:00
Taiki Endo
cd7aa7720a
Remove azure pipelines badges
2019-10-10 12:42:41 +02:00
Taiki Endo
204c648633
Remove const_str_as_bytes feature gate
2019-10-10 12:41:08 +02:00
gnzlbg
128aa330ea
Feature::from_str is not always needed
2019-09-18 12:09:07 +02:00
gnzlbg
579e4cc655
std_detect_env_override should be disabled by default
2019-09-18 12:09:07 +02:00
gnzlbg
88fe414dd3
These items do not need to be public
2019-09-18 12:09:07 +02:00
Luca Barbato
5bec3383c9
Drop the features test for now
2019-09-18 09:03:42 +02:00
Luca Barbato
a4dddb4b2f
Unbreak non-x86
2019-09-18 09:03:42 +02:00
Luca Barbato
e0d42221ff
Implement a fallback for the No-op Feature
2019-09-17 20:59:31 +02:00
Luca Barbato
8cad95c8ab
Move the tests away from the code
2019-09-17 19:22:18 +02:00
Luca Barbato
efd19f4a13
Add a test for the env_override
2019-09-17 19:22:18 +02:00
Luca Barbato
b70d574394
Make the test function smaller
2019-09-17 19:22:18 +02:00
Luca Barbato
ee35b1848e
Simplify the std imports
2019-09-17 19:22:18 +02:00
Luca Barbato
33688eaa10
Remove the FIXME about the cache size checks
...
And leave a NOTE.
2019-09-17 19:22:18 +02:00
Luca Barbato
6420fa4fb0
Override the features detected using an env::var
...
Fixes : #804
2019-09-17 19:22:18 +02:00
Luca Barbato
1855195f40
Add a mean to unset a bit in the cache
2019-09-17 15:36:02 +02:00
gnzlbg
13fffd5fde
Try harder to error on usage of unstable features
2019-09-17 02:43:48 +02:00
gnzlbg
42b7041e94
Remove staged_api from the allowed_internal_unstabled of the feature macros
2019-09-17 01:35:26 +02:00
gnzlbg
4821a68959
Fix std_detect on targets without feature detection
2019-09-16 23:43:01 +02:00
gnzlbg
226b3265c8
Format
2019-09-16 23:43:01 +02:00
gnzlbg
599bcf28ad
Enforce staged_api on a per-feature basis
2019-09-16 23:43:01 +02:00
gnzlbg
1f44c1407d
Add std_detect::detect::features() -> impl Iterator<Item=(&'static str, bool)> API
2019-09-16 23:43:01 +02:00
Luca Barbato
f3140f4b25
Factor out check_for
...
All the os-specific code implements a `check_for` and a `detect_features`.
Move the always identical check_for in the mod.rs and use
`os::detect_features` there.
2019-09-09 22:20:10 +02:00
Luca Barbato
5b11935d43
Document how miri support works
...
Co-Authored-By: gnzlbg <gnzlbg@users.noreply.github.com >
2019-09-06 15:01:26 +02:00
Luca Barbato
430744f46a
Minimal miri support
...
Should address https://github.com/rust-lang/miri/issues/932
2019-09-06 15:01:26 +02:00