Skip to content

Commit f16932b

Browse files
committed
Remove workarounds for llvm/llvm-project#98306
1 parent be19327 commit f16932b

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

crates/core_arch/src/x86/avx512fp16.rs

+14-6
Original file line numberDiff line numberDiff line change
@@ -4563,9 +4563,13 @@ pub fn _mm_maskz_fmadd_round_sch<const ROUNDING: i32>(
45634563
) -> __m128h {
45644564
unsafe {
45654565
static_assert_rounding!(ROUNDING);
4566-
let a = transmute(a);
4567-
let r = vfmaddcsh_maskz(a, transmute(b), transmute(c), k, ROUNDING);
4568-
transmute(_mm_move_ss(a, r)) // FIXME: If `k == 0`, then LLVM optimized `vfmaddcsh_maskz` to output an all-zero vector, which is incorrect
4566+
transmute(vfmaddcsh_maskz(
4567+
transmute(a),
4568+
transmute(b),
4569+
transmute(c),
4570+
k,
4571+
ROUNDING,
4572+
))
45694573
}
45704574
}
45714575

@@ -5108,9 +5112,13 @@ pub fn _mm_maskz_fcmadd_round_sch<const ROUNDING: i32>(
51085112
) -> __m128h {
51095113
unsafe {
51105114
static_assert_rounding!(ROUNDING);
5111-
let a = transmute(a);
5112-
let r = vfcmaddcsh_maskz(a, transmute(b), transmute(c), k, ROUNDING);
5113-
transmute(_mm_move_ss(a, r)) // FIXME: If `k == 0`, then LLVM optimized `vfcmaddcsh_maskz` to output an all-zero vector, which is incorrect
5115+
transmute(vfcmaddcsh_maskz(
5116+
transmute(a),
5117+
transmute(b),
5118+
transmute(c),
5119+
k,
5120+
ROUNDING,
5121+
))
51145122
}
51155123
}
51165124

0 commit comments

Comments
 (0)