Add aarch64_unstable_target_feature and relax instruction assertion
This commit is contained in:
parent
1088aae289
commit
de7f56ff35
4 changed files with 12 additions and 10 deletions
|
|
@ -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" {
|
||||
|
|
|
|||
|
|
@ -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)]
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue