This commit is contained in:
sayantn
2025-04-14 04:06:33 +05:30
committed by Amanieu d'Antras
parent 444c636fdb
commit e61df091c1

View File

@@ -4563,9 +4563,13 @@ pub fn _mm_maskz_fmadd_round_sch<const ROUNDING: i32>(
) -> __m128h { ) -> __m128h {
unsafe { unsafe {
static_assert_rounding!(ROUNDING); static_assert_rounding!(ROUNDING);
let a = transmute(a); transmute(vfmaddcsh_maskz(
let r = vfmaddcsh_maskz(a, transmute(b), transmute(c), k, ROUNDING); transmute(a),
transmute(_mm_move_ss(a, r)) // FIXME: If `k == 0`, then LLVM optimized `vfmaddcsh_maskz` to output an all-zero vector, which is incorrect transmute(b),
transmute(c),
k,
ROUNDING,
))
} }
} }
@@ -5108,9 +5112,13 @@ pub fn _mm_maskz_fcmadd_round_sch<const ROUNDING: i32>(
) -> __m128h { ) -> __m128h {
unsafe { unsafe {
static_assert_rounding!(ROUNDING); static_assert_rounding!(ROUNDING);
let a = transmute(a); transmute(vfcmaddcsh_maskz(
let r = vfcmaddcsh_maskz(a, transmute(b), transmute(c), k, ROUNDING); transmute(a),
transmute(_mm_move_ss(a, r)) // FIXME: If `k == 0`, then LLVM optimized `vfcmaddcsh_maskz` to output an all-zero vector, which is incorrect transmute(b),
transmute(c),
k,
ROUNDING,
))
} }
} }