Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
109e097
(Partially) Stabilize AVX512-FP16, except for functions that explicit…
sayantn Aug 27, 2025
e9b75fa
(partially) stablize stdarch_neon_f16
usamoi Sep 20, 2025
c32f275
x86: remove "unsafe" from tests that do not need it
eduardosm Dec 26, 2025
9bd9244
Merge pull request #1922 from usamoi/stdarch_neon_f16_stablize
sayantn Dec 28, 2025
8d66e58
Fix some tests so they test the correct function
eduardosm Dec 28, 2025
cb3952a
Merge pull request #1983 from eduardosm/tests
Amanieu Dec 29, 2025
e116716
Merge pull request #1905 from sayantn/stabilize-avx512fp16
Amanieu Dec 29, 2025
56a8bfa
Merge pull request #1981 from eduardosm/unsafe-tests
Amanieu Dec 31, 2025
6ba984f
Prepare for merging from rust-lang/rust
invalid-email-address Jan 1, 2026
8a8b2e7
Merge ref '48622726c4a9' from rust-lang/rust
invalid-email-address Jan 1, 2026
c571336
Clarify documentation around "undefined" bits in intrinsics.
veluca93 Jan 1, 2026
da57c64
Merge pull request #1986 from veluca93/main
folkertdev Jan 1, 2026
344fc51
Use LLVM intrinsics for `madd` intrinsics
usamoi Jan 1, 2026
85f3ba3
Merge pull request #1985 from usamoi/vpmaddwd
sayantn Jan 2, 2026
f41fa64
Change `repr(packed)` struct to `repr(C, packed)`
eduardosm Jan 2, 2026
c914627
Merge pull request #1988 from eduardosm/packed-struct
sayantn Jan 2, 2026
7434dd6
Merge pull request #1984 from rust-lang/rustc-pull
sayantn Jan 3, 2026
5e4168b
partially revert https://github.com/rust-lang/rust/commit/8d597aa3652…
usamoi Jan 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
266 changes: 133 additions & 133 deletions library/stdarch/crates/core_arch/src/aarch64/neon/generated.rs

Large diffs are not rendered by default.

1,826 changes: 1,620 additions & 206 deletions library/stdarch/crates/core_arch/src/arm_shared/neon/generated.rs

Large diffs are not rendered by default.

57 changes: 50 additions & 7 deletions library/stdarch/crates/core_arch/src/arm_shared/neon/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ types! {
}

types! {
#![unstable(feature = "stdarch_neon_f16", issue = "136306")]
#![cfg_attr(not(target_arch = "arm"), stable(feature = "stdarch_neon_fp16", since = "CURRENT_RUSTC_VERSION"))]
#![cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]

/// Arm-specific 64-bit wide vector of four packed `f16`.
pub struct float16x4_t(4 x pub(crate) f16);
Expand Down Expand Up @@ -747,19 +748,40 @@ pub struct uint32x4x4_t(
/// Arm-specific type containing two `float16x4_t` vectors.
#[repr(C)]
#[derive(Copy, Clone, Debug)]
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
#[cfg_attr(
not(target_arch = "arm"),
stable(feature = "stdarch_neon_fp16", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
pub struct float16x4x2_t(pub float16x4_t, pub float16x4_t);

/// Arm-specific type containing three `float16x4_t` vectors.
#[repr(C)]
#[derive(Copy, Clone, Debug)]
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
#[cfg_attr(
not(target_arch = "arm"),
stable(feature = "stdarch_neon_fp16", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
pub struct float16x4x3_t(pub float16x4_t, pub float16x4_t, pub float16x4_t);

/// Arm-specific type containing four `float16x4_t` vectors.
#[repr(C)]
#[derive(Copy, Clone, Debug)]
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
#[cfg_attr(
not(target_arch = "arm"),
stable(feature = "stdarch_neon_fp16", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
pub struct float16x4x4_t(
pub float16x4_t,
pub float16x4_t,
Expand All @@ -770,19 +792,40 @@ pub struct float16x4x4_t(
/// Arm-specific type containing two `float16x8_t` vectors.
#[repr(C)]
#[derive(Copy, Clone, Debug)]
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
#[cfg_attr(
not(target_arch = "arm"),
stable(feature = "stdarch_neon_fp16", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
pub struct float16x8x2_t(pub float16x8_t, pub float16x8_t);

/// Arm-specific type containing three `float16x8_t` vectors.
#[repr(C)]
#[derive(Copy, Clone, Debug)]
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
#[cfg_attr(
not(target_arch = "arm"),
stable(feature = "stdarch_neon_fp16", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
pub struct float16x8x3_t(pub float16x8_t, pub float16x8_t, pub float16x8_t);

/// Arm-specific type containing four `float16x8_t` vectors.
#[repr(C)]
#[derive(Copy, Clone, Debug)]
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
#[cfg_attr(
not(target_arch = "arm"),
stable(feature = "stdarch_neon_fp16", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
pub struct float16x8x4_t(
pub float16x8_t,
pub float16x8_t,
Expand Down
4 changes: 2 additions & 2 deletions library/stdarch/crates/core_arch/src/x86/abm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,12 @@ mod tests {
use crate::core_arch::x86::*;

#[simd_test(enable = "lzcnt")]
const unsafe fn test_lzcnt_u32() {
const fn test_lzcnt_u32() {
assert_eq!(_lzcnt_u32(0b0101_1010), 25);
}

#[simd_test(enable = "popcnt")]
const unsafe fn test_popcnt32() {
const fn test_popcnt32() {
assert_eq!(_popcnt32(0b0101_1010), 4);
}
}
12 changes: 6 additions & 6 deletions library/stdarch/crates/core_arch/src/x86/aes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ mod tests {
use crate::core_arch::x86::*;

#[simd_test(enable = "aes")]
unsafe fn test_mm_aesdec_si128() {
fn test_mm_aesdec_si128() {
// Constants taken from https://msdn.microsoft.com/en-us/library/cc664949.aspx.
let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff);
let k = _mm_set_epi64x(0x1133557799bbddff, 0x0022446688aaccee);
Expand All @@ -122,7 +122,7 @@ mod tests {
}

#[simd_test(enable = "aes")]
unsafe fn test_mm_aesdeclast_si128() {
fn test_mm_aesdeclast_si128() {
// Constants taken from https://msdn.microsoft.com/en-us/library/cc714178.aspx.
let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff);
let k = _mm_set_epi64x(0x1133557799bbddff, 0x0022446688aaccee);
Expand All @@ -132,7 +132,7 @@ mod tests {
}

#[simd_test(enable = "aes")]
unsafe fn test_mm_aesenc_si128() {
fn test_mm_aesenc_si128() {
// Constants taken from https://msdn.microsoft.com/en-us/library/cc664810.aspx.
let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff);
let k = _mm_set_epi64x(0x1133557799bbddff, 0x0022446688aaccee);
Expand All @@ -142,7 +142,7 @@ mod tests {
}

#[simd_test(enable = "aes")]
unsafe fn test_mm_aesenclast_si128() {
fn test_mm_aesenclast_si128() {
// Constants taken from https://msdn.microsoft.com/en-us/library/cc714136.aspx.
let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff);
let k = _mm_set_epi64x(0x1133557799bbddff, 0x0022446688aaccee);
Expand All @@ -152,7 +152,7 @@ mod tests {
}

#[simd_test(enable = "aes")]
unsafe fn test_mm_aesimc_si128() {
fn test_mm_aesimc_si128() {
// Constants taken from https://msdn.microsoft.com/en-us/library/cc714195.aspx.
let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff);
let e = _mm_set_epi64x(0xc66c82284ee40aa0, 0x6633441122770055);
Expand All @@ -161,7 +161,7 @@ mod tests {
}

#[simd_test(enable = "aes")]
unsafe fn test_mm_aeskeygenassist_si128() {
fn test_mm_aeskeygenassist_si128() {
// Constants taken from https://msdn.microsoft.com/en-us/library/cc714138.aspx.
let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff);
let e = _mm_set_epi64x(0x857c266b7c266e85, 0xeac4eea9c4eeacea);
Expand Down
Loading
Loading