Skip to content

Commit

Permalink
nvptx: use simd_fmin and simd_fmax for minnum and maxnum
Browse files Browse the repository at this point in the history
  • Loading branch information
folkertdev authored and Amanieu committed Feb 24, 2025
1 parent 7690a98 commit eb1b14b
Showing 1 changed file with 2 additions and 6 deletions.
8 changes: 2 additions & 6 deletions crates/core_arch/src/nvptx/packed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,8 @@ use crate::intrinsics::simd::*;

#[allow(improper_ctypes)]
unsafe extern "C" {
#[link_name = "llvm.minnum.v2f16"]
fn llvm_f16x2_minnum(a: f16x2, b: f16x2) -> f16x2;
#[link_name = "llvm.minimum.v2f16"]
fn llvm_f16x2_minimum(a: f16x2, b: f16x2) -> f16x2;
#[link_name = "llvm.maxnum.v2f16"]
fn llvm_f16x2_maxnum(a: f16x2, b: f16x2) -> f16x2;
#[link_name = "llvm.maximum.v2f16"]
fn llvm_f16x2_maximum(a: f16x2, b: f16x2) -> f16x2;
}
Expand Down Expand Up @@ -103,7 +99,7 @@ pub unsafe fn f16x2_neg(a: f16x2) -> f16x2 {
#[cfg_attr(test, assert_instr(min.f16x2))]
#[unstable(feature = "stdarch_nvptx", issue = "111199")]
pub unsafe fn f16x2_min(a: f16x2, b: f16x2) -> f16x2 {
llvm_f16x2_minnum(a, b)
simd_fmin(a, b)
}

/// Find the minimum of two values, NaNs pass through.
Expand All @@ -127,7 +123,7 @@ pub unsafe fn f16x2_min_nan(a: f16x2, b: f16x2) -> f16x2 {
#[cfg_attr(test, assert_instr(max.f16x2))]
#[unstable(feature = "stdarch_nvptx", issue = "111199")]
pub unsafe fn f16x2_max(a: f16x2, b: f16x2) -> f16x2 {
llvm_f16x2_maxnum(a, b)
simd_fmax(a, b)
}

/// Find the maximum of two values, NaNs pass through.
Expand Down

0 comments on commit eb1b14b

Please sign in to comment.