[][src]Function safe_arch::fused_mul_neg_sub_m128d

#[must_use]pub fn fused_mul_neg_sub_m128d(a: m128d, b: m128d, c: m128d) -> m128d
This is supported with target feature fma only.

Lanewise fused -(a * b) - c

let a = m128d::from_array([2.0, 3.0]);
let b = m128d::from_array([4.0, 5.0]);
let c = m128d::from_array([1.0, 1.0]);
let d = fused_mul_neg_sub_m128d(a, b, c).to_array();
assert_eq!(d, [-9.0, -16.0]);
  • Intrinsic: _mm_fnmsub_pd
  • Assembly: one of
    • vfnmsub132pd xmm, xmm, xmm
    • vfnmsub213pd xmm, xmm, xmm
    • vfnmsub231pd xmm, xmm, xmm