diff options
| author | sayantn <sayantn05@gmail.com> | 2025-04-14 04:06:33 +0530 |
|---|---|---|
| committer | Amanieu d'Antras <amanieu@gmail.com> | 2025-04-23 10:40:09 +0000 |
| commit | e61df091c1a54588f0ea6a58a646f030ea0e5ef5 (patch) | |
| tree | 9f9c28e8a9d676b3ad3a097f0d3d055f01ffc2d1 | |
| parent | 444c636fdbee811678116d881e5ef2ebd5458324 (diff) | |
| download | rust-e61df091c1a54588f0ea6a58a646f030ea0e5ef5.tar.gz rust-e61df091c1a54588f0ea6a58a646f030ea0e5ef5.zip | |
Remove workarounds for llvm/llvm-project#98306
| -rw-r--r-- | library/stdarch/crates/core_arch/src/x86/avx512fp16.rs | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/library/stdarch/crates/core_arch/src/x86/avx512fp16.rs b/library/stdarch/crates/core_arch/src/x86/avx512fp16.rs index a191ebfcb3b..d0a4f41dac9 100644 --- a/library/stdarch/crates/core_arch/src/x86/avx512fp16.rs +++ b/library/stdarch/crates/core_arch/src/x86/avx512fp16.rs @@ -4563,9 +4563,13 @@ pub fn _mm_maskz_fmadd_round_sch<const ROUNDING: i32>( ) -> __m128h { unsafe { static_assert_rounding!(ROUNDING); - let a = transmute(a); - let r = vfmaddcsh_maskz(a, transmute(b), transmute(c), k, ROUNDING); - 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(vfmaddcsh_maskz( + transmute(a), + transmute(b), + transmute(c), + k, + ROUNDING, + )) } } @@ -5108,9 +5112,13 @@ pub fn _mm_maskz_fcmadd_round_sch<const ROUNDING: i32>( ) -> __m128h { unsafe { static_assert_rounding!(ROUNDING); - let a = transmute(a); - let r = vfcmaddcsh_maskz(a, transmute(b), transmute(c), k, ROUNDING); - 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(vfcmaddcsh_maskz( + transmute(a), + transmute(b), + transmute(c), + k, + ROUNDING, + )) } } |
