1789 Commits

Author SHA1 Message Date
sayantn
658b5c8f69 Use simd_funnel_sh{l,r} and simd_round_ties_even to remove uses of LLVM intrinsics 2025-07-07 23:30:02 +00:00
Marijn Schouten
fddd05bd7f some clippy fixes 2025-07-07 23:28:47 +00:00
Tsukasa OI
1bc289da3a std_detect: RISC-V Linux: Ergonomic querying with riscv_hwprobe
Originally, we used an array of `riscv_hwprobe` directly and indexed
using raw numbers, making correspondence between the index and the query
key less obvious.

We also frequently used `out[idx].key != -1` to test whether the key is
supported by the `riscv_hwprobe` system call (on the Linux kernel
version we are testing) but we'd better to integrate with an operation
to retrieve the value.

This commit improves the ergonomics of feature querying by:

1.  Utilizing macros to
    a.  enable indexing by identifier names and
    b.  encapsulate accesses to the `riscv_hwprobe` array to query and
2.  New method `riscv_hwprobe::get()` returning `Option<u64>`,
    integrating availability checking and value retrieval.

It also removes `has_ima` for now because it's redundant if we only need
to test for single base behavior.
2025-07-07 23:13:29 +00:00
kilavvy
816f029739 Update README.md
- Update ui.md
- Update type-alias-impl-trait.md
- Update README.md
2025-07-07 21:51:29 +00:00
Jakub Beránek
b535003608 Remove std-detect dev dependency in core_arch 2025-07-07 21:50:45 +00:00
okaneco
600497f3ed Mark avx broadcast intrinsics as safe 2025-07-07 21:50:01 +00:00
ltdk
e46d2207bd Use simd_extract! macro instead of calling simd_extract directly 2025-07-07 21:48:32 +00:00
Amanieu d'Antras
8ae4e6a566 Update stabilization version of certain x86 intrinsics to 1.89
These were left as `CURRENT_RUSTC_VERSION` in the submodule.
2025-07-07 21:47:33 +00:00
Folkert de Vries
bb2d169700 use is_multiple_of to check if an addr is aligned 2025-07-07 17:08:03 +00:00
Tsukasa OI
e101e383d0 std_detect: Tidying of slice length
We don't need to put the length of the `riscv_hwprobe` array into a
variable.  This commit removes that variable and gives the length
of the output slice to the `__riscv_hwprobe` directly.
2025-07-03 11:26:07 +00:00
Folkert de Vries
359f986ddd s390x: add feature detection for the z17 target features 2025-06-19 15:31:16 +00:00
Folkert de Vries
26b7dd4304 the generic_arg_infer feature is now stable on nightly 2025-06-19 15:31:16 +00:00
satiscugcat
003516cd44 Test 2025-06-17 19:28:07 +00:00
satiscugcat
dcd35573f7 Ran cargo fmt, removed unexpected character 2025-06-17 19:28:07 +00:00
satiscugcat
fd1b9c72fd Moved const fn outside unsafe block 2025-06-17 19:28:07 +00:00
satiscugcat
64dd3e4489 Changed implementation of _mm{256,512}_alignr_epi8 to match that of _mm_alignr_epi8 in ssse3.rs, also removed the import of the unreachable unchecked hint as it was no longer necessary 2025-06-17 19:28:07 +00:00
satiscugcat
48dafaa1c7 Changed implementation of bsrli in avx512.rs to match that of bslli, fixing a bug in the process. 2025-06-17 19:28:07 +00:00
satiscugcat
09475721a8 Changed the implementation of bsrli to match bslli in avx2 intrinsics 2025-06-17 19:28:07 +00:00
Aniket Mishra
1c5b2a659d Fixing mistake in previous commit 2025-06-17 19:28:07 +00:00
Aniket Mishra
58db094d9e Removal of redundant mod operation in _mm256_alignr_epi8 2025-06-17 19:28:07 +00:00
Aniket Mishra
8fb78f3f69 Fix in erroneous implementation of _mm256_bsrli_epi128
Fixing the issue mentioned in issue #1822 of rust-lang/stdarch.
2025-06-17 19:28:07 +00:00
Amanieu d'Antras
341889647e Fixes to compile with latest Rust nightly 2025-06-11 14:11:23 +00:00
Laine Taffin Altman
7c2d2a3050 Darwin AArch64 detection update
Synchronizes the lists of detectable features with macOS 15.5 “Sequoia” as of June 9, 2025.
2025-06-09 23:25:18 +00:00
Trevor Gross
f0b25641fb Remove compiler-builtins from rustc-dep-of-std dependencies
Since [1], this will come automatically from `rustc-std-workspace-core`
and the crates.io dependency should no longer be specified.

[1]: https://github.com/rust-lang/rust/pull/141993
2025-06-09 23:11:45 +00:00
Folkert de Vries
852d853a03 add s390x z17 target features 2025-06-09 22:45:55 +00:00
Amanieu d'Antras
68c0308cbe Stabilize AVX512 intrinsics
FCP completed in tracking issue rust-lang/rust#111137
2025-06-02 19:45:44 +00:00
sayantn
7a9e01ad92 Fix incorrect intrinsic name in WASM 2025-06-02 19:45:08 +00:00
sayantn
77174a3f43 Fix incorrect intrinsic name in X86 2025-06-02 19:45:08 +00:00
sayantn
068cc378a6 Remove uses of deprecated type-specific pointers from ARM 2025-06-02 19:45:08 +00:00
sayantn
5d47941854 Use correct LLVM intrinsic for vmull and vaddv 2025-06-02 19:45:08 +00:00
sayantn
2665fe5729 Use rust intrinsics for more ARM intrinsics 2025-06-02 19:45:08 +00:00
Adam Gemmell
3fe6f7616d Mark Neon f16 vectors as unstable 2025-06-02 18:34:18 +00:00
Adam Gemmell
d2587282eb Revert vbsl[q]_f16 to unstable 2025-06-02 18:34:18 +00:00
Tsukasa OI
bc4333545a RISC-V: Linux 6.15 riscv_hwprobe support
This commit adds support for `riscv_hwprobe` on the Linux kernel 6.15.
It adds feature detection of 8 extensions (4 of them are new in this).

Existing RISC-V Extensions:

1.  "Zicntr"
2.  "Zihpm"
3.  "Zalrsc"
4.  "Zaamo"

New RISC-V Extensions:

5.  "Zicbom"
6.  "Zfbfmin"
7.  "Zvfbfmin"
8.  "Zvfbfwma"
2025-06-01 22:58:42 +00:00
Folkert de Vries
52115419a3 use simd_bitreverse on aarch64 2025-06-01 22:58:15 +00:00
Tsukasa OI
a78d64e36b intrinsic-test: Reverse has_constraints() condition
It seems it returns true when *no* constraints are found, opposite to
the expected behavior of the function name.

This commit reverses condition as the name suggests.
2025-05-31 11:27:16 +00:00
Tsukasa OI
e28cff7ddb intrinsic-test: Use c_prefix to generate type names
To make the type names to test correct, this commit replaces occurrences
of `rust_prefix` to `c_prefix` where necessary.
2025-05-31 11:27:16 +00:00
sayantn
1ca4587841 Stabilize sha512, sm3 and sm4 intrinsics and runtime detection 2025-05-31 09:40:04 +00:00
sayantn
ba641e58a2 Stabilize keylocker intrinsics and runtime detection 2025-05-31 09:39:49 +00:00
Tsukasa OI
26ff29e7e2 intrinsic-test: Modernization of the coding style
It modernizes the coding style of the crate intrinsic-test by fixing
Clippy warnings.

Clippy: rust version 1.89.0-nightly (6f6971078 2025-05-28)
Number of Fixed Warnings: 36/36
2025-05-31 09:38:49 +00:00
Tsukasa OI
d63fde993f stdarch-verify: Modernization of the coding style
It modernizes the coding style of the crate stdarch-verify by dealing
with Clippy warnings (allows clippy::collapsible_if but review may be
required for later changes).

Clippy: rust version 1.89.0-nightly (6f6971078 2025-05-28)
Number of Fixed Warnings: 4/4
2025-05-31 09:38:49 +00:00
Tsukasa OI
ee64b8501f stdarch-test: Modernization of the coding style
It modernizes the coding style of the crate stdarch-test by fixing
Clippy warnings.

Clippy: rust version 1.89.0-nightly (6f6971078 2025-05-28)
Number of Fixed Warnings: 1/1
2025-05-31 09:38:49 +00:00
Tsukasa OI
9610536476 stdarch-gen-loongarch: Modernization of the coding style
It modernizes the coding style of the crate stdarch-gen-loongarch by
fixing Clippy warnings.

Clippy: rust version 1.89.0-nightly (6f6971078 2025-05-28)
Number of Fixed Warnings: 1/1

Confirmed that the exact same code will be generated (note that,
generated.rs in the repository is *not* an exact output but some spaces
removed).
2025-05-31 09:38:49 +00:00
Tsukasa OI
7168d48c0b stdarch-gen-arm: Modernization of the coding style
It modernizes the coding style of the crate stdarch-gen-arm by fixing
Clippy warnings (except clippy::{collapsible_if,obfuscated_if_else} that
might make the program look worse as a result of "fixing" warnings).

Clippy: rust version 1.89.0-nightly (6f6971078 2025-05-28)
Number of Fixed Warnings: 84/84
Note:
Rust Analyzer double counts one of the Clippy warnings so it reduces
85 warnings (as reported by the Rust Analyzer).

This commit also applies similar technique used to resolve Clippy
warnings but also simplifies identifier name formatting and makes
reading easier.

Confirmed that the exact same code will be generated.
2025-05-31 09:38:49 +00:00
Tsukasa OI
7a074c14a1 RISC-V: Linux: Imply Zicntr from the IMA base behavior
As the author confirmed as in:
<https://lists.infradead.org/pipermail/linux-riscv/2025-May/070844.html>,
runtime detection of the Zicntr extension (as in the Linux kernel 6.15)
is currently (and technically) redundant on the current base IMA behavior
(although can be meaningful if new base behavior is added).

This commit implies the Zicntr extension from the base IMA behavior.
2025-05-30 21:09:38 +00:00
sayantn
5984f7c61d Add back std_detect_env_override 2025-05-30 18:04:16 +00:00
sayantn
cd63f26d86 Upgrade more intrinsics to the new version 2025-05-30 18:02:17 +00:00
sayantn
3de76d47a2 Use the new definition of rdtscp intrinsic
- add `-Zverify-llvm-ir` in testsuite
2025-05-30 18:02:17 +00:00
sayantn
28960ece72 Fix s390x intrinsics
- use correct intrinsic for unpackl
 - fix invalid use of `simd_{or,and,xor}` on floating point vectors
 - `vec_search_string` should require `vector-enhancements-2`
2025-05-30 18:02:17 +00:00
sayantn
7afd613941 Fix PPC shift and rotate intrinsics 2025-05-30 18:02:17 +00:00