Merge pull request #1906 from folkertdev/arm-roundeven

use `llvm.roundeven` on arm
This commit is contained in:
Amanieu d'Antras 2025-08-29 11:28:37 +00:00 committed by GitHub
commit bbb222f9ea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 14 deletions

View file

@ -58256,10 +58256,9 @@ pub fn vrhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
pub fn vrndn_f16(a: float16x4_t) -> float16x4_t {
unsafe extern "unadjusted" {
#[cfg_attr(
any(target_arch = "aarch64", target_arch = "arm64ec"),
any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
link_name = "llvm.roundeven.v4f16"
)]
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrintn.v4f16")]
fn _vrndn_f16(a: float16x4_t) -> float16x4_t;
}
unsafe { _vrndn_f16(a) }
@ -58279,10 +58278,9 @@ pub fn vrndn_f16(a: float16x4_t) -> float16x4_t {
pub fn vrndnq_f16(a: float16x8_t) -> float16x8_t {
unsafe extern "unadjusted" {
#[cfg_attr(
any(target_arch = "aarch64", target_arch = "arm64ec"),
any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
link_name = "llvm.roundeven.v8f16"
)]
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrintn.v8f16")]
fn _vrndnq_f16(a: float16x8_t) -> float16x8_t;
}
unsafe { _vrndnq_f16(a) }
@ -58308,10 +58306,9 @@ pub fn vrndnq_f16(a: float16x8_t) -> float16x8_t {
pub fn vrndn_f32(a: float32x2_t) -> float32x2_t {
unsafe extern "unadjusted" {
#[cfg_attr(
any(target_arch = "aarch64", target_arch = "arm64ec"),
any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
link_name = "llvm.roundeven.v2f32"
)]
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrintn.v2f32")]
fn _vrndn_f32(a: float32x2_t) -> float32x2_t;
}
unsafe { _vrndn_f32(a) }
@ -58337,10 +58334,9 @@ pub fn vrndn_f32(a: float32x2_t) -> float32x2_t {
pub fn vrndnq_f32(a: float32x4_t) -> float32x4_t {
unsafe extern "unadjusted" {
#[cfg_attr(
any(target_arch = "aarch64", target_arch = "arm64ec"),
any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
link_name = "llvm.roundeven.v4f32"
)]
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrintn.v4f32")]
fn _vrndnq_f32(a: float32x4_t) -> float32x4_t;
}
unsafe { _vrndnq_f32(a) }

View file

@ -2486,9 +2486,7 @@ intrinsics:
name: "llvm.frinn.{neon_type}"
links:
- link: "llvm.roundeven.{neon_type}"
arch: aarch64,arm64ec
- link: "llvm.arm.neon.vrintn.{neon_type}"
arch: arm
arch: aarch64,arm64ec,arm
- name: "vrndn{neon_type.no}"
doc: "Floating-point round to integral, to nearest with ties to even"
@ -2510,9 +2508,7 @@ intrinsics:
name: "llvm.frinn.{neon_type}"
links:
- link: "llvm.roundeven.{neon_type}"
arch: aarch64,arm64ec
- link: "llvm.arm.neon.vrintn.{neon_type}"
arch: arm
arch: aarch64,arm64ec,arm
- name: "vqadd{neon_type.no}"
doc: Saturating add