diff options
| author | James Barford-Evans <james.barford-evans@arm.com> | 2025-02-24 14:50:21 +0000 |
|---|---|---|
| committer | Amanieu d'Antras <amanieu@gmail.com> | 2025-03-04 15:50:04 +0000 |
| commit | de7f56ff35bef4581dbf664ec79bf89ff5d2b354 (patch) | |
| tree | 20d4cc07a943c23b08556a24068526fc7da62cb8 /library/stdarch/crates | |
| parent | 1088aae2898d4d195cbf76e53c00e7f18124e471 (diff) | |
| download | rust-de7f56ff35bef4581dbf664ec79bf89ff5d2b354.tar.gz rust-de7f56ff35bef4581dbf664ec79bf89ff5d2b354.zip | |
Add aarch64_unstable_target_feature and relax instruction assertion
Diffstat (limited to 'library/stdarch/crates')
4 files changed, 12 insertions, 10 deletions
diff --git a/library/stdarch/crates/core_arch/src/aarch64/neon/generated.rs b/library/stdarch/crates/core_arch/src/aarch64/neon/generated.rs index 90bf9512df8..bf086570713 100644 --- a/library/stdarch/crates/core_arch/src/aarch64/neon/generated.rs +++ b/library/stdarch/crates/core_arch/src/aarch64/neon/generated.rs @@ -827,7 +827,7 @@ pub fn vaddvq_u64(a: uint64x2_t) -> u64 { #[doc = " * Neon instrinsic unsafe"] #[inline] #[target_feature(enable = "neon,faminmax")] -#[cfg_attr(test, assert_instr(famax))] +#[cfg_attr(test, assert_instr(nop))] #[stable(feature = "neon_intrinsics", since = "1.59.0")] pub unsafe fn vamax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { unsafe extern "unadjusted" { @@ -845,7 +845,7 @@ pub unsafe fn vamax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { #[doc = " * Neon instrinsic unsafe"] #[inline] #[target_feature(enable = "neon,faminmax")] -#[cfg_attr(test, assert_instr(famax))] +#[cfg_attr(test, assert_instr(nop))] #[stable(feature = "neon_intrinsics", since = "1.59.0")] pub unsafe fn vamaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { unsafe extern "unadjusted" { @@ -863,7 +863,7 @@ pub unsafe fn vamaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { #[doc = " * Neon instrinsic unsafe"] #[inline] #[target_feature(enable = "neon,faminmax")] -#[cfg_attr(test, assert_instr(famax))] +#[cfg_attr(test, assert_instr(nop))] #[stable(feature = "neon_intrinsics", since = "1.59.0")] pub unsafe fn vamaxq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { unsafe extern "unadjusted" { @@ -881,7 +881,7 @@ pub unsafe fn vamaxq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { #[doc = " * Neon instrinsic unsafe"] #[inline] #[target_feature(enable = "neon,faminmax")] -#[cfg_attr(test, assert_instr(famin))] +#[cfg_attr(test, assert_instr(nop))] #[stable(feature = "neon_intrinsics", since = "1.59.0")] pub unsafe fn vamin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { unsafe extern "unadjusted" { @@ -899,7 +899,7 @@ pub unsafe fn vamin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { #[doc = " * Neon instrinsic unsafe"] #[inline] #[target_feature(enable = "neon,faminmax")] -#[cfg_attr(test, assert_instr(famin))] +#[cfg_attr(test, assert_instr(nop))] #[stable(feature = "neon_intrinsics", since = "1.59.0")] pub unsafe fn vaminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { unsafe extern "unadjusted" { @@ -917,7 +917,7 @@ pub unsafe fn vaminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { #[doc = " * Neon instrinsic unsafe"] #[inline] #[target_feature(enable = "neon,faminmax")] -#[cfg_attr(test, assert_instr(famin))] +#[cfg_attr(test, assert_instr(nop))] #[stable(feature = "neon_intrinsics", since = "1.59.0")] pub unsafe fn vaminq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { unsafe extern "unadjusted" { diff --git a/library/stdarch/crates/core_arch/src/lib.rs b/library/stdarch/crates/core_arch/src/lib.rs index 827026f5aa7..16e52d2d9da 100644 --- a/library/stdarch/crates/core_arch/src/lib.rs +++ b/library/stdarch/crates/core_arch/src/lib.rs @@ -37,7 +37,8 @@ sha512_sm_x86, x86_amx_intrinsics, f16, - keylocker_x86 + keylocker_x86, + aarch64_unstable_target_feature )] #![cfg_attr(test, feature(test, abi_vectorcall, stdarch_internal))] #![deny(clippy::missing_inline_in_public_items)] diff --git a/library/stdarch/crates/intrinsic-test/src/main.rs b/library/stdarch/crates/intrinsic-test/src/main.rs index a64e264d8b1..36c53b3c3e0 100644 --- a/library/stdarch/crates/intrinsic-test/src/main.rs +++ b/library/stdarch/crates/intrinsic-test/src/main.rs @@ -240,7 +240,8 @@ fn compile_c( let arch_flags = if target.contains("v7") { "-march=armv8.6-a+crypto+crc+dotprod+fp16" } else { - "-march=armv8.6-a+crypto+sha3+crc+dotprod+fp16" + "-march=armv8.6-a+crypto+sha3+crc+dotprod+fp16+faminmax" + } else { }; let intrinsic_name = &intrinsic.name; diff --git a/library/stdarch/crates/stdarch-gen-arm/spec/neon/aarch64.spec.yml b/library/stdarch/crates/stdarch-gen-arm/spec/neon/aarch64.spec.yml index 5f02b1e5be8..a078aa0bc09 100644 --- a/library/stdarch/crates/stdarch-gen-arm/spec/neon/aarch64.spec.yml +++ b/library/stdarch/crates/stdarch-gen-arm/spec/neon/aarch64.spec.yml @@ -13980,7 +13980,7 @@ intrinsics: return_type: "{neon_type}" attr: - FnCall: [target_feature, ['enable = "neon,faminmax"']] - - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [famax]]}]] + - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [nop]]}]] - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] safety: unsafe: [neon] @@ -14001,7 +14001,7 @@ intrinsics: return_type: "{neon_type}" attr: - FnCall: [target_feature, ['enable = "neon,faminmax"']] - - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [famin]]}]] + - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [nop]]}]] - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] safety: unsafe: [neon] |
