arm: use simd_fmin and simd_fmax
This commit is contained in:
parent
441824cfca
commit
72afae5fd6
2 changed files with 12 additions and 100 deletions
|
|
@ -27942,15 +27942,7 @@ pub fn vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
|
|||
#[target_feature(enable = "neon,fp16")]
|
||||
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
|
||||
pub fn vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
|
||||
unsafe extern "unadjusted" {
|
||||
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v4f16")]
|
||||
#[cfg_attr(
|
||||
any(target_arch = "aarch64", target_arch = "arm64ec"),
|
||||
link_name = "llvm.aarch64.neon.fmaxnm.v4f16"
|
||||
)]
|
||||
fn _vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
|
||||
}
|
||||
unsafe { _vmaxnm_f16(a, b) }
|
||||
unsafe { simd_fmax(a, b) }
|
||||
}
|
||||
#[doc = "Floating-point Maximum Number (vector)"]
|
||||
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f16)"]
|
||||
|
|
@ -27964,15 +27956,7 @@ pub fn vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
|
|||
#[target_feature(enable = "neon,fp16")]
|
||||
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
|
||||
pub fn vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
|
||||
unsafe extern "unadjusted" {
|
||||
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v8f16")]
|
||||
#[cfg_attr(
|
||||
any(target_arch = "aarch64", target_arch = "arm64ec"),
|
||||
link_name = "llvm.aarch64.neon.fmaxnm.v8f16"
|
||||
)]
|
||||
fn _vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
|
||||
}
|
||||
unsafe { _vmaxnmq_f16(a, b) }
|
||||
unsafe { simd_fmax(a, b) }
|
||||
}
|
||||
#[doc = "Floating-point Maximum Number (vector)"]
|
||||
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f32)"]
|
||||
|
|
@ -27993,15 +27977,7 @@ pub fn vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
|
|||
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
|
||||
)]
|
||||
pub fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
|
||||
unsafe extern "unadjusted" {
|
||||
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v2f32")]
|
||||
#[cfg_attr(
|
||||
any(target_arch = "aarch64", target_arch = "arm64ec"),
|
||||
link_name = "llvm.aarch64.neon.fmaxnm.v2f32"
|
||||
)]
|
||||
fn _vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
|
||||
}
|
||||
unsafe { _vmaxnm_f32(a, b) }
|
||||
unsafe { simd_fmax(a, b) }
|
||||
}
|
||||
#[doc = "Floating-point Maximum Number (vector)"]
|
||||
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f32)"]
|
||||
|
|
@ -28022,15 +27998,7 @@ pub fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
|
|||
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
|
||||
)]
|
||||
pub fn vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
|
||||
unsafe extern "unadjusted" {
|
||||
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v4f32")]
|
||||
#[cfg_attr(
|
||||
any(target_arch = "aarch64", target_arch = "arm64ec"),
|
||||
link_name = "llvm.aarch64.neon.fmaxnm.v4f32"
|
||||
)]
|
||||
fn _vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
|
||||
}
|
||||
unsafe { _vmaxnmq_f32(a, b) }
|
||||
unsafe { simd_fmax(a, b) }
|
||||
}
|
||||
#[doc = "Minimum (vector)"]
|
||||
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f16)"]
|
||||
|
|
@ -28434,15 +28402,7 @@ pub fn vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
|
|||
#[target_feature(enable = "neon,fp16")]
|
||||
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
|
||||
pub fn vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
|
||||
unsafe extern "unadjusted" {
|
||||
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v4f16")]
|
||||
#[cfg_attr(
|
||||
any(target_arch = "aarch64", target_arch = "arm64ec"),
|
||||
link_name = "llvm.aarch64.neon.fminnm.v4f16"
|
||||
)]
|
||||
fn _vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
|
||||
}
|
||||
unsafe { _vminnm_f16(a, b) }
|
||||
unsafe { simd_fmin(a, b) }
|
||||
}
|
||||
#[doc = "Floating-point Minimum Number (vector)"]
|
||||
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f16)"]
|
||||
|
|
@ -28456,15 +28416,7 @@ pub fn vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
|
|||
#[target_feature(enable = "neon,fp16")]
|
||||
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
|
||||
pub fn vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
|
||||
unsafe extern "unadjusted" {
|
||||
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v8f16")]
|
||||
#[cfg_attr(
|
||||
any(target_arch = "aarch64", target_arch = "arm64ec"),
|
||||
link_name = "llvm.aarch64.neon.fminnm.v8f16"
|
||||
)]
|
||||
fn _vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
|
||||
}
|
||||
unsafe { _vminnmq_f16(a, b) }
|
||||
unsafe { simd_fmin(a, b) }
|
||||
}
|
||||
#[doc = "Floating-point Minimum Number (vector)"]
|
||||
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f32)"]
|
||||
|
|
@ -28485,15 +28437,7 @@ pub fn vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
|
|||
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
|
||||
)]
|
||||
pub fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
|
||||
unsafe extern "unadjusted" {
|
||||
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v2f32")]
|
||||
#[cfg_attr(
|
||||
any(target_arch = "aarch64", target_arch = "arm64ec"),
|
||||
link_name = "llvm.aarch64.neon.fminnm.v2f32"
|
||||
)]
|
||||
fn _vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
|
||||
}
|
||||
unsafe { _vminnm_f32(a, b) }
|
||||
unsafe { simd_fmin(a, b) }
|
||||
}
|
||||
#[doc = "Floating-point Minimum Number (vector)"]
|
||||
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f32)"]
|
||||
|
|
@ -28514,15 +28458,7 @@ pub fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
|
|||
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
|
||||
)]
|
||||
pub fn vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
|
||||
unsafe extern "unadjusted" {
|
||||
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v4f32")]
|
||||
#[cfg_attr(
|
||||
any(target_arch = "aarch64", target_arch = "arm64ec"),
|
||||
link_name = "llvm.aarch64.neon.fminnm.v4f32"
|
||||
)]
|
||||
fn _vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
|
||||
}
|
||||
unsafe { _vminnmq_f32(a, b) }
|
||||
unsafe { simd_fmin(a, b) }
|
||||
}
|
||||
#[doc = "Floating-point multiply-add to accumulator"]
|
||||
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f32)"]
|
||||
|
|
|
|||
|
|
@ -7223,13 +7223,7 @@ intrinsics:
|
|||
- float32x2_t
|
||||
- float32x4_t
|
||||
compose:
|
||||
- LLVMLink:
|
||||
name: "fmaxnm.{neon_type}"
|
||||
links:
|
||||
- link: "llvm.arm.neon.vmaxnm.{neon_type}"
|
||||
arch: arm
|
||||
- link: "llvm.aarch64.neon.fmaxnm.{neon_type}"
|
||||
arch: aarch64,arm64ec
|
||||
- FnCall: [simd_fmax, [a, b]]
|
||||
|
||||
|
||||
- name: "vmaxnm{neon_type.no}"
|
||||
|
|
@ -7247,13 +7241,7 @@ intrinsics:
|
|||
- float16x4_t
|
||||
- float16x8_t
|
||||
compose:
|
||||
- LLVMLink:
|
||||
name: "fmaxnm.{neon_type}"
|
||||
links:
|
||||
- link: "llvm.arm.neon.vmaxnm.{neon_type}"
|
||||
arch: arm
|
||||
- link: "llvm.aarch64.neon.fmaxnm.{neon_type}"
|
||||
arch: aarch64,arm64ec
|
||||
- FnCall: [simd_fmax, [a, b]]
|
||||
|
||||
|
||||
- name: "vminnm{neon_type.no}"
|
||||
|
|
@ -7271,13 +7259,7 @@ intrinsics:
|
|||
- float16x4_t
|
||||
- float16x8_t
|
||||
compose:
|
||||
- LLVMLink:
|
||||
name: "fminnm.{neon_type}"
|
||||
links:
|
||||
- link: "llvm.arm.neon.vminnm.{neon_type}"
|
||||
arch: arm
|
||||
- link: "llvm.aarch64.neon.fminnm.{neon_type}"
|
||||
arch: aarch64,arm64ec
|
||||
- FnCall: [simd_fmin, [a, b]]
|
||||
|
||||
|
||||
- name: "vmin{neon_type.no}"
|
||||
|
|
@ -7388,13 +7370,7 @@ intrinsics:
|
|||
- float32x2_t
|
||||
- float32x4_t
|
||||
compose:
|
||||
- LLVMLink:
|
||||
name: "fminnm.{neon_type}"
|
||||
links:
|
||||
- link: "llvm.arm.neon.vminnm.{neon_type}"
|
||||
arch: arm
|
||||
- link: "llvm.aarch64.neon.fminnm.{neon_type}"
|
||||
arch: aarch64,arm64ec
|
||||
- FnCall: [simd_fmin, [a, b]]
|
||||
|
||||
- name: "vpadd{neon_type.no}"
|
||||
doc: Floating-point add pairwise
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue