Ben Kimock
2a21235f7a
Don't depend on libc for cfg(windows)
2024-04-22 01:24:03 +02:00
Daniel Paoliello
a00a70eacb
arm64ec
2024-03-13 22:30:36 +00:00
WANG Rui
1fbe4dddec
std_detect: loongarch: Add runtime detectable features from LLVM
...
* f
* d
* frecipe
* lbt
2024-03-07 23:00:39 +00:00
WANG Rui
5fd2d04ef7
std_detect: loongarch: Remove features not supported by LLVM
2024-03-07 23:00:39 +00:00
Mingzhuo Yin
012e4ce580
check sub-leaf to detect avx512bf16
...
Signed-off-by: Mingzhuo Yin <yinmingzhuo@gmail.com>
2024-03-05 23:16:09 +00:00
Mingzhuo Yin
210913f1c4
fix: invalid bit for detecting avx512 feature
...
Signed-off-by: Mingzhuo Yin <yinmingzhuo@gmail.com>
2024-03-05 23:16:09 +00:00
usamoi
8531e289b0
feat: std_detect avx512fp16
...
Signed-off-by: usamoi <usamoi@outlook.com>
2024-02-24 16:07:04 +00:00
Adam Gemmell
e54a6d71bf
Improve feature detect for combined aarch64 features
...
LLVM's `ssbs` and `mte` target_features represent two Arm features.
Linux's HWCAP also represents the same two features, so this is just a
documentation update.
LLVM's `ras` target_feature represents two Arm features - FEAT_RAS and FEAT_RASv1p1. There is no runtime detection for this, so this is a no-op in stdarch.
LLVM's `aes` feature covers both `FEAT_AES` and `FEAT_PMULL`, but Linux
exposes seperate feature bits. This patch makes the `aes` target_feature
correctly shortcut runtime `pmull` detection and also makes the `aes`
feature check for `pmull` at runtime to bring it in line with the
target_feature behaviour. In practice I think this makes the two runtime
features identical since the ID_AA64ISAR0_EL1 register does not allow
for PMULL without AES.
2024-02-16 18:21:34 +00:00
daxpedda
1e8274d34d
Remove last mention of stdsimd
2024-02-14 15:08:29 +00:00
Makoto Kato
d51ea0d261
Add CPU detection for macOS/aarch64.
2024-01-16 02:57:10 +00:00
Amanieu d'Antras
76d52cdd68
Fix std_detect not being an unstable crate
...
More fallout from #1486
2024-01-05 11:14:38 +00:00
Amanieu d'Antras
fd973c2765
Fix std build failure on non-x86 architectures
...
This is more fallout from #1486
2024-01-04 13:00:34 +00:00
Amanieu d'Antras
a600c72f50
Fixes for use in the standard library
2024-01-02 17:46:10 +00:00
Amanieu d'Antras
b5406fedd4
Add #![allow(internal_features)]
to a test to fix CI
2023-12-19 01:25:56 +00:00
Gijs Burghoorn
786f28dd8b
Stabilize Ratified RISC-V Target Features
...
As shortly discussed on Zulip
(https://rust-lang.zulipchat.com/#narrow/stream/250483-t-compiler.2Frisc-v/topic/Stabilization.20of.20RISC-V.20Target.20Features/near/394793704 ), this commit stabilizes the ratified RISC-V instruction bases and extensions.
Specifically, this commit stabilizes the:
* Atomic Instructions (A) on v2.0
* Compressed Instructions (C) on v2.0
* Integer Multiplication and Division (M) on v2.0
* Bit Manipulations (B) on v1.0 listed as `zba`, `zbc`, `zbs`
* Scalar Cryptography (Zk) v1.0.1 listed as `zk`, `zkn`, `zknd`, `zkne`, `zknh`, `zkr`, `zks`, `zksed`, `zksh`, `zkt`, `zbkb`, `zbkc` `zkbx`
2023-11-30 22:53:04 +00:00
ZHAI Xiang
5625c8bf49
std_detect: Add support for LoongArch
...
Co-authored-by: WANG Rui <wangrui@loongson.cn>
2023-10-31 14:37:10 +01:00
Eduardo Sánchez Muñoz
eaa7298694
Derive Default
for Initializer
in std_detect
2023-10-31 02:20:17 +01:00
Eduardo Sánchez Muñoz
4bfd9935f7
Simplify a cfg
2023-10-31 02:20:17 +01:00
Eduardo Sánchez Muñoz
936583f12c
Do not deny clippy::missing_inline_in_public_items
in std_detect
2023-10-31 02:20:17 +01:00
Amanieu d'Antras
ea27e5cfcb
Fix various compilation errors
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
3e5850284a
Fix more missing/incorrect feature specifications
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
b8ba57f310
Cleanup last uses of the stdsimd feature
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
21599975ff
Add tracking issues for feature detection
2023-10-29 20:39:50 +01:00
Eduardo Sánchez Muñoz
b2c5bc9696
Remove unneeded transmutes
...
(or replace them with safe versions)
2023-10-11 18:11:51 +02:00
bjorn3
6f33e9c36b
Remove use of auv crate from tests
2023-10-10 14:38:20 +01:00
bjorn3
d1df958a32
Remove the auxv dev dependency.
...
It hasn't been used since roughly 2018. The latest published version of
auxv has a less common license and doesn't specify any license in it's
Cargo.toml file.
2023-10-10 14:38:20 +01:00
Amanieu d'Antras
5161de5da4
Add #![allow(internal_unstable)]
...
This is required to avoid build failures when using rustc features
intended only for use by the standard library.
2023-08-29 15:21:34 +02:00
Jacob Bramley
a9fecd8456
Support AArch32 Neon dotprod intrinsics.
...
Note that the feature detection requires a recent Linux kernel (v6.2).
2023-06-21 18:52:21 +02:00
Taiki Endo
38c1a16190
std_detect: Do not use libc::getauxval on 32-bit Android
...
libc crate currently doesn't provide it.
2023-04-24 12:50:27 -07:00
Urgau
5d4192a9d6
Remove useless drop (clippy drop_ref and drop_copy lint)
2023-04-21 06:41:55 -07:00
Taiki Endo
221eb88986
std_detect: Remove support for arm crypto target feature
2023-04-01 18:42:27 +01:00
Taiki Endo
1661f06cd0
std_detect: Always avoid dlsym on *-android* targets
2023-04-01 18:41:20 +01:00
Luca Barbato
0af4d8a307
std_detect: Unbreak auxv_from_file
...
Discovered on powerpc64 where it crashes since it has more entries.
2023-03-25 00:33:58 +01:00
Nilstrieb
e41918d76c
Allow internal_features
2023-03-19 21:31:00 +01:00
Chase Wilson
1f0116fea9
Implemented is_x86_feature_detected!(ermsb)
2023-03-12 20:20:06 +01:00
Kathryn Long
1515d52d17
add f16c to x86 detection test
2023-03-12 20:19:54 +01:00
Taiki Endo
ba58f91769
std_detect: Support run-time detection of crc/aes/sha2/crypto on arm FreeBSD
2023-03-01 19:58:15 +01:00
Taiki Endo
8f9ed37be7
std_detect: Support run-time detection of fp on aarch64 Windows
...
According to google/cpu_features, IsProcessorFeaturePresent(PF_ARM_VFP_32_REGISTERS_AVAILABLE)
returns whether fp is available.
a6bf4f9031/src/impl_aarch64_windows.c (L112-L113)
2023-03-01 19:57:28 +01:00
Taiki Endo
a9681a2ca6
Merge core_arch/tests/cpu-detection.rs to std_detect/tests/cpu-detection.rs
...
Except for the recently added `x86_deprecated` test,
`core_arch/tests/cpu-detection.rs` is a subset of
`std_detect/tests/cpu-detection.rs`.
2023-03-01 18:53:20 +01:00
bwmf2
1c18225f32
Fix typo
2023-02-18 20:02:17 +01:00
Taiki Endo
e6b7951ccd
std_detect: Remove extra cfg
...
This module is already `#[cfg(target_arch = "aarch64")]`.
2023-02-13 02:04:54 +01:00
Taiki Endo
2ebd1395ec
std_detect: Only check features that are known to be available on armv8.0 cores if CPU is Exynos 9810
2023-02-13 02:04:54 +01:00
Taiki Endo
e9d18c6b18
std_detect: Workaround Exynos 9810 bug on aarch64 Android
...
Samsung Exynos 9810 has a bug that big and little cores have different
ISAs. And on older Android (pre-9), the kernel incorrectly reports
that features available only on some cores are available on all cores.
https://reviews.llvm.org/D114523
2023-02-13 02:04:54 +01:00
Taiki Endo
dc49234574
std_detect: Support run-time detection of FEAT_LSE2 on aarch64 BSD ( #1379 )
2023-02-11 17:31:21 +00:00
Taiki Endo
57c492180d
std_detect: Update platform support docs ( #1380 )
2023-02-11 16:10:11 +00:00
Taiki Endo
1829ee06f0
std_detect: Always avoid dlsym on *-linux-gnu* targets ( #1375 )
2023-02-03 18:23:09 +00:00
Taiki Endo
a36f5bd7c8
std_detect: Support run-time detection on aarch64 OpenBSD
2023-01-26 23:33:52 +00:00
Taiki Endo
d3bb923c82
std_detect: Split os/aarch64.rs' detect_features into reading and parsing
2023-01-26 23:33:52 +00:00
Taiki Endo
674fd58f60
std_detect: Move aarch64 freebsd test to tests/cpu-detection.rs
2023-01-26 23:33:52 +00:00
Taiki Endo
e706a13add
std_detect: Add test for feature detection on aarch64 Windows
2023-01-23 22:26:08 +00:00