about summary refs log tree commit diff
path: root/library/std/tests/run-time-detect.rs
AgeCommit message (Collapse)AuthorLines
2025-06-25make `tidy-alphabetical` use a natural sortFolkert de Vries-4/+4
2025-03-09expose `is_s390x_feature_detected` from `std::arch`Folkert de Vries-0/+30
2024-10-10rustc_target: Add sme-b16b16 as an explicit aarch64 target featureKajetan Puchalski-0/+1
LLVM 20 split out what used to be called b16b16 and correspond to aarch64 FEAT_SVE_B16B16 into sve-b16b16 and sme-b16b16. Add sme-b16b16 as an explicit feature and update the codegen accordingly.
2024-08-27rustc_target: Add SME aarch64 featuresKajetan Puchalski-0/+13
Add SME aarch64 features already supported by LLVM and Linux. This commit adds compiler support for the following features: - FEAT_SME - FEAT_SME_F16F16 - FEAT_SME_F64F64 - FEAT_SME_F8F16 - FEAT_SME_F8F32 - FEAT_SME_FA64 - FEAT_SME_I16I64 - FEAT_SME_LUTv2 - FEAT_SME2 - FEAT_SME2p1 - FEAT_SSVE_FP8DOT2 - FEAT_SSVE_FP8DOT4 - FEAT_SSVE_FP8FMA
2024-08-27rustc_target: Add various aarch64 featuresKajetan Puchalski-0/+21
Add various aarch64 features already supported by LLVM and Linux. The features are marked as unstable using a newly added symbol, i.e. aarch64_unstable_target_feature. Additionally include some comment fixes to ensure consistency of feature names with the Arm ARM and support for architecture version target features up to v9.5a. This commit adds compiler support for the following features: - FEAT_CSSC - FEAT_ECV - FEAT_FAMINMAX - FEAT_FLAGM2 - FEAT_FP8 - FEAT_FP8DOT2 - FEAT_FP8DOT4 - FEAT_FP8FMA - FEAT_FPMR - FEAT_HBC - FEAT_LSE128 - FEAT_LSE2 - FEAT_LUT - FEAT_MOPS - FEAT_LRCPC3 - FEAT_SVE_B16B16 - FEAT_SVE2p1 - FEAT_WFxT
2024-05-24Stop using the avx512er and avx512pf x86 target featuresHans Wennborg-2/+0
They are no longer supported by LLVM 19. Fixes #125492
2024-01-30Update feature names for new stdarchAmanieu d'Antras-6/+10
2023-05-08std: remove test for arm's crypto featureKisaragi Marine-1/+0
please see https://github.com/rust-lang/rust/pull/110285#issuecomment-1521201953 for more details
2023-01-27Rollup merge of #105784 - yanns:update_stdarch, r=AmanieuYuki Okushi-3/+3
update stdarch This will allow using miri on simd instructions https://github.com/rust-lang/stdarch/issues/1347#issuecomment-1353664361
2023-01-26fix alphabetical sortYann Simon-3/+3
2023-01-26remove avx512 prefix for gfni, vaes and vpclmulqdqYann Simon-3/+3
2022-12-30Replace libstd, libcore, liballoc in docs.jonathanCogan-1/+1
2022-12-28delete more `cfg(bootstrap)`Lukas Markeffsky-1/+0
2022-10-14Sort target features alphabeticallynils-38/+48
2022-03-22Fold aarch64 feature +fp into +neonJubilee Young-1/+0
Arm's FEAT_FP and Feat_AdvSIMD describe the same thing on AArch64: The Neon unit, which handles both floating point and SIMD instructions. Moreover, a configuration for AArch64 must include both or neither. Arm says "entirely proprietary" toolchains may omit floating point: https://developer.arm.com/documentation/102374/0101/Data-processing---floating-point In the Programmer's Guide for Armv8-A, Arm says AArch64 can have both FP and Neon or neither in custom implementations: https://developer.arm.com/documentation/den0024/a/AArch64-Floating-point-and-NEON In "Bare metal boot code for Armv8-A", enabling Neon and FP is just disabling the same trap flag: https://developer.arm.com/documentation/dai0527/a In an unlikely future where "Neon and FP" become unrelated, we can add "[+-]fp" as its own feature flag. Until then, we can simplify programming with Rust on AArch64 by folding both into "[+-]neon", which is valid as it supersets both. "[+-]neon" is retained for niche uses such as firmware, kernels, "I just hate floats", and so on.
2022-02-10Move `is_aarch64_feature_detected!` to `simd_aarch64` feature and stabiliseAdam Gemmell-3/+3
2022-01-28Move unstable is_{arch}_feature_detected! macros to std::archAmanieu d'Antras-0/+6
2021-08-03Update aarch64 runtime feature detection testsAdam Gemmell-2/+36
2021-05-19Remove test for crypto feature ahead of its removalAdam Gemmell-1/+0
2020-10-26Updated documentation, x86 feature detection testing, and removed LLVM 9 ↵DevJPM-0/+7
exclusive features Updated the added documentation in llvm_util.rs to note which copies of LLVM need to be inspected. Removed avx512bf16 and avx512vp2intersect because they are unsupported before LLVM 9 with the build with external LLVM 8 being supported Re-introduced detection testing previously removed for un-requestable features tsc and mmx
2020-10-25Removed movbe from run-time-detectDevJPM-1/+1
`movbe` seems to not be a run-time detectable feature on x86. It has thus been removed from the list. It was only commented out to ease comparison against the full list.
2020-10-25Updated the list of white-listed target features for x86DevJPM-25/+38
This PR both adds in-source documentation on what to look out for when adding a new (X86) feature set and adds all that are detectable at run-time in Rust stable as of 1.27.0. This should only enable the use of the corresponding LLVM intrinsics. Actual intrinsics need to be added separately in rust-lang/stdarch. It also re-orders the run-time-detect test statements to be more consistent with the actual list of intrinsics whitelisted and removes underscores not present in the actual names (which might be mistaken as being part of the name)
2020-07-27mv std libs to library/mark-0/+95