Folkert de Vries
70a07c91de
Merge pull request #1991 from usamoi/fp16-transmute
...
remove fp16 target feature from some vreinterpret intrinsics
2026-01-28 11:37:09 +00:00
usamoi
18a4a3ace0
fix overflowing_literals in avx512fp16 tests
2026-01-28 19:15:25 +08:00
usamoi
f4b4ab3b23
remove fp16 target feature from some vreinterpret intrinsics
2026-01-28 19:04:59 +08:00
Folkert de Vries
5a6e86708a
Merge pull request #1994 from CrooseGit/dev/reucru01/add-missing-intrinsics
...
Adds missing neon intrinsics
2026-01-27 21:45:28 +00:00
reucru01
9fddd28d38
Ammends typo in generator & generated
2026-01-27 15:53:01 +00:00
reucru01
9ce0ebf994
Disables assert_instr tests on windows msvc
...
The opcodes for these intructions are not recognised by the dissasembler on the windows msvc toolchain.
As such they are not translated to the relevant mneumonic and the `assert_instr` test fails.
Please see [failing test](https://github.com/rust-lang/stdarch/actions/runs/20992978794/job/60342796821?pr=1994#logs ).
2026-01-27 15:51:41 +00:00
reucru01
57a42dbf54
Makes some A64 intrinsics available on A32
...
Moves the relevant defintions from the aarch64 yaml to the arm_shared.
2026-01-27 15:51:37 +00:00
Reuben Cruise
354365a0e0
Adds some arm intrinsics to bring more up-to-date with acle
...
- Adds vluti2 intrinsics
- Adds famin/famax intrinsics
- Adds vstl1(q) intrinsics
- Adds vldap1(q) intrinsics
- Excludes vldap1_lane_f64 as in testing it fails assert_intr. There seems to be some bad IR gen from rust.
- Adds vscale(q) intrinsics
- Adds new intrinsics to arm_intrinsics.json
- Had to be done manually as intrinsics are not yet on developer.arm.com
2026-01-27 15:48:26 +00:00
Amanieu d'Antras
333ce17b2c
Merge pull request #1995 from CrooseGit/dev/reucru01/documentation
...
Adds documentation for `stdarch-gen-arm`
2026-01-27 15:32:38 +00:00
Amanieu d'Antras
e20d484540
Merge pull request #1989 from eduardosm/unsafe-tests
...
Avoid `unsafe fn` in remaining x86 tests
2026-01-27 15:03:52 +00:00
Folkert de Vries
f648ba2e0a
Merge pull request #2003 from folkertdev/use-simd-splat
...
use `simd_splat`
2026-01-26 21:01:13 +00:00
Folkert de Vries
0ef4c3aca7
use simd_splat for the set1 functions
2026-01-26 21:03:43 +01:00
Folkert de Vries
246399cb7d
use simd_splat
2026-01-26 10:38:04 +01:00
The rustc-josh-sync Cronjob Bot
7168e5d9e1
Merge ref '873d4682c7d2' from rust-lang/rust
...
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: rust-lang/rust@873d4682c7
Filtered ref: rust-lang/stdarch@003d326514
Upstream diff: https://github.com/rust-lang/rust/compare/48622726c4a91c87bf6cd4dbe1000c95df59906e...873d4682c7d285540b8f28bfe637006cef8918a6
This merge was created using https://github.com/rust-lang/josh-sync .
2026-01-26 04:34:26 +00:00
The rustc-josh-sync Cronjob Bot
a4f92e5d81
Prepare for merging from rust-lang/rust
...
This updates the rust-version file to 873d4682c7 .
2026-01-26 04:32:16 +00:00
Folkert de Vries
464b309040
Merge pull request #1993 from folkertdev/stabilize-jscvt
...
Stabilize `__jcvt`
2026-01-24 17:48:52 +00:00
Jonathan 'theJPster' Pallant
7cc102a4ee
Revised yield hints
...
Turns out v7 targets always have v6t2 set, so that line was redundant. Also add a link to the Arm Armv7 A.R.M.
2026-01-24 17:29:25 +00:00
Jonathan 'theJPster' Pallant
96897f016e
Add ARMv6 bare-metal targets
...
Three targets, covering A32 and T32 instructions, and soft-float and
hard-float ABIs. Hard-float not available in Thumb mode. Atomics
in Thumb mode require __sync* functions from compiler-builtins.
2026-01-24 17:29:25 +00:00
Amanieu d'Antras
5ec32b532c
Merge pull request #1998 from folkertdev/test-vmulh_lane_f16
...
test `vmulh_lane_f16` in intrinsic test
2026-01-22 23:58:54 +00:00
Folkert de Vries
cf08a111d0
s390x: add nnp-assist intrinsics
...
Because `qemu` does not support these (yet), I haven't added any runtime tests
2026-01-22 18:29:45 +01:00
Folkert de Vries
b1ef655cb3
use simd_extract_dyn for extract
2026-01-22 17:00:45 +01:00
Folkert de Vries
bf7c1c2d82
test vmulh_lane_f16 in intrinsic test
2026-01-21 20:57:49 +01:00
Sayantan Chakraborty
d251a38981
Merge pull request #1974 from JamieCunliffe/inline-always-neon
...
Mark the neon intrinsics as inline(always).
2026-01-20 16:19:29 +00:00
Sayantan Chakraborty
0d802f5078
Merge pull request #1992 from folkertdev/remove-impl-neg
...
remove `impl Neg` on s390x/powerpc vector types
2026-01-17 16:43:13 +00:00
Sayantan Chakraborty
aaf31e7e65
Merge pull request #1973 from ZuseZ4/u32-threadidx
...
thread, grid, and block dim/idx can only return non-negative values
2026-01-17 16:35:57 +00:00
Folkert de Vries
5bf9ca7b00
stabilize __jscvt
2026-01-13 12:11:18 +01:00
reucru01
f09b0bc2cb
Creates README for stdarch-gen-arm
2026-01-13 10:28:11 +00:00
Jamie Cunliffe
78952f6aaa
Mark the neon intrinsics as inline(always).
...
The inline(always) attribute is now applied to the call site when a
function has target features enabled so that it can determine that the
call is safe to inline.
2026-01-12 17:18:45 +00:00
Folkert de Vries
d0204a399a
remove impl Neg on s390x/powerpc vector types
...
For other targets we don't have such instances. We specifically decided agains implementing arithmetic operators on these low-level vector types
2026-01-11 21:40:30 +01:00
Eduardo Sánchez Muñoz
7630884c55
Avoid unsafe fn in remaining x86 tests
2026-01-07 17:58:32 +01:00
Sayantan Chakraborty
f9e6d4bc20
Merge pull request #1987 from eduardosm/generic-simd-type-avoid-unsafe-tests
...
Use a generic type to implement SIMD types in `core_arch::simd` and avoid `unsafe fn` in more tests
2026-01-05 14:17:38 +00:00
Sayantan Chakraborty
7434dd6a2d
Merge pull request #1984 from rust-lang/rustc-pull
...
Rustc pull update
2026-01-03 03:33:46 +00:00
Eduardo Sánchez Muñoz
68701ff93a
arm_shared: avoid using transmute and unsafe fn in tests
2026-01-02 22:07:47 +01:00
Eduardo Sánchez Muñoz
dab553268a
x86: avoid using transmute in some tests
2026-01-02 22:07:47 +01:00
Eduardo Sánchez Muñoz
69c7a7e405
Use a generic type to implement SIMD types in core_arch::simd
...
This allows the `types` macro to easily implement `From<Simd<T, N>>` and `Into<Simd<T, N>>`
2026-01-02 22:07:47 +01:00
Sayantan Chakraborty
c914627c86
Merge pull request #1988 from eduardosm/packed-struct
...
Change `repr(packed)` struct to `repr(C, packed)`
2026-01-02 20:31:26 +00:00
Eduardo Sánchez Muñoz
f41fa64f97
Change repr(packed) struct to repr(C, packed)
...
`repr(packed)` structs do not have a well-defined layout
2026-01-02 21:18:51 +01:00
Sayantan Chakraborty
85f3ba3dd1
Merge pull request #1985 from usamoi/vpmaddwd
...
Use LLVM intrinsics for `madd` intrinsics
2026-01-02 19:35:29 +00:00
usamoi
344fc5112a
Use LLVM intrinsics for madd intrinsics
2026-01-02 00:02:11 +08:00
Luca Versari
c571336420
Clarify documentation around "undefined" bits in intrinsics.
2026-01-01 13:24:42 +01:00
The rustc-josh-sync Cronjob Bot
8a8b2e72e0
Merge ref '48622726c4a9' from rust-lang/rust
...
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: 48622726c4
Filtered ref: cd67a857259ae6c8e166020f097dd070d6c16fb3
Upstream diff: https://github.com/rust-lang/rust/compare/8401398e1f14a24670ee1a3203713dc2f0f8b3a8...48622726c4a91c87bf6cd4dbe1000c95df59906e
This merge was created using https://github.com/rust-lang/josh-sync .
2026-01-01 04:24:14 +00:00
The rustc-josh-sync Cronjob Bot
6ba984fa33
Prepare for merging from rust-lang/rust
...
This updates the rust-version file to 48622726c4 .
2026-01-01 04:24:07 +00:00
Amanieu d'Antras
56a8bfadfc
Merge pull request #1981 from eduardosm/unsafe-tests
...
x86: remove "unsafe" from tests that do not need it
2025-12-31 20:41:19 +00:00
Jonathan Brouwer
dc103c4cd9
Rollup merge of #146798 - a4lg:riscv-intrinsics-zkne_or_zknd, r=Amanieu
...
RISC-V: Implement (Zkne or Zknd) intrinsics correctly
On rust-lang/stdarch#1765 , it has been pointed out that two RISC-V (64-bit only) intrinsics to perform AES key scheduling have wrong target feature.
`aes64ks1i` and `aes64ks2` instructions require *either* Zkne (scalar cryptography: AES encryption) or Zknd (scalar cryptography: AES decryption) extension (or both) but corresponding Rust intrinsics (in `core::arch::riscv64`) required *both* Zkne and Zknd extensions.
An excerpt from the original intrinsics:
```rust
#[target_feature(enable = "zkne", enable = "zknd")]
```
To fix that, we need to:
1. Represent a condition where *either* Zkne or Zknd is available and
2. Workaround an issue: `llvm.riscv.aes64ks1i` / `llvm.riscv.aes64ks2` LLVM intrinsics require either Zkne or Zknd extension.
This PR attempts to resolve them by:
1. Adding a perma-unstable RISC-V target feature: `zkne_or_zknd` (implied from both `zkne` and `zknd`) and
2. Using inline assembly to construct machine code directly (because `zkne_or_zknd` alone cannot imply neither Zkne nor Zknd, we cannot use LLVM intrinsics).
The author confirmed that we can construct an AES key scheduling function with decent performance using fixed `aes64ks1i` and `aes64ks2` intrinsics (with optimization enabled).
2025-12-31 17:32:04 +01:00
Amanieu d'Antras
e116716862
Merge pull request #1905 from sayantn/stabilize-avx512fp16
...
(Partially) Stabilize AVX512-FP16
2025-12-29 13:30:19 +00:00
Amanieu d'Antras
cb3952a243
Merge pull request #1983 from eduardosm/tests
...
Fix some tests so they test the correct function
2025-12-29 13:29:11 +00:00
Eduardo Sánchez Muñoz
8d66e58838
Fix some tests so they test the correct function
2025-12-28 19:32:34 +01:00
Eduardo Sánchez Muñoz
c32f2759a3
x86: remove "unsafe" from tests that do not need it
...
Some test utility functions (e.g., `assert_eq_m128`) have been refactored so they are not unsafe. Many test functions (`test_mm_*`) do not call any unsafe function (besides needing target features) anymore, so they do not need to be `unsafe fn`.
2025-12-26 21:50:27 +01:00
usamoi
e9b75fa34a
(partially) stablize stdarch_neon_f16
2025-12-20 23:27:19 +08:00
Sayantan Chakraborty
6adebf5685
Merge pull request #1976 from Flakebi/amdgpu-intrinsics
...
Add amdgpu intrinsics
2025-12-19 20:02:31 +00:00