about summary refs log tree commit diff
diff options
context:
space:
mode:
authorsayantn <sayantn05@gmail.com>2025-04-14 04:06:33 +0530
committerAmanieu d'Antras <amanieu@gmail.com>2025-04-23 10:40:09 +0000
commite61df091c1a54588f0ea6a58a646f030ea0e5ef5 (patch)
tree9f9c28e8a9d676b3ad3a097f0d3d055f01ffc2d1
parent444c636fdbee811678116d881e5ef2ebd5458324 (diff)
downloadrust-e61df091c1a54588f0ea6a58a646f030ea0e5ef5.tar.gz
rust-e61df091c1a54588f0ea6a58a646f030ea0e5ef5.zip
Remove workarounds for llvm/llvm-project#98306
-rw-r--r--library/stdarch/crates/core_arch/src/x86/avx512fp16.rs20
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,
+        ))
     }
 }