Skip to content

Commit b7aecd9

Browse files
committed
powerpc: implement vnmsubfp using intrinsics::simd
1 parent 9040e2f commit b7aecd9

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

crates/core_arch/src/powerpc/altivec.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,6 @@ unsafe extern "C" {
129129
b: vector_signed_short,
130130
c: vector_signed_int,
131131
) -> vector_signed_int;
132-
#[link_name = "llvm.ppc.altivec.vnmsubfp"]
133-
fn vnmsubfp(a: vector_float, b: vector_float, c: vector_float) -> vector_float;
134132
#[link_name = "llvm.ppc.altivec.vsum2sws"]
135133
fn vsum2sws(a: vector_signed_int, b: vector_signed_int) -> vector_signed_int;
136134
#[link_name = "llvm.ppc.altivec.vsum4ubs"]
@@ -1881,9 +1879,9 @@ mod sealed {
18811879

18821880
#[inline]
18831881
#[target_feature(enable = "altivec")]
1884-
#[cfg_attr(test, assert_instr(vnmsubfp))]
1885-
unsafe fn vec_vnmsubfp(a: vector_float, b: vector_float, c: vector_float) -> vector_float {
1886-
vnmsubfp(a, b, c)
1882+
#[cfg_attr(test, assert_instr(xvnmsubasp))]
1883+
pub unsafe fn vec_vnmsubfp(a: vector_float, b: vector_float, c: vector_float) -> vector_float {
1884+
simd_neg(simd_fma(a, b, simd_neg(c)))
18871885
}
18881886

18891887
#[inline]
@@ -4281,7 +4279,7 @@ pub unsafe fn vec_madd(a: vector_float, b: vector_float, c: vector_float) -> vec
42814279
#[target_feature(enable = "altivec")]
42824280
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
42834281
pub unsafe fn vec_nmsub(a: vector_float, b: vector_float, c: vector_float) -> vector_float {
4284-
vnmsubfp(a, b, c)
4282+
sealed::vec_vnmsubfp(a, b, c)
42854283
}
42864284

42874285
/// Vector Select

0 commit comments

Comments
 (0)