diff mbox series

[20/22] target/arm: Use float*_maybe_ah_chs in sve_ftmad_*

Message ID 20250127232604.20386-21-richard.henderson@linaro.org
State New
Headers show
Series target/arm: FEAT_AFP followups for FEAT_SME2 | expand

Commit Message

Richard Henderson Jan. 27, 2025, 11:26 p.m. UTC
Since we know the operand is negative, absolute value
can be had by negating rather than abs per se.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/arm/tcg/sve_helper.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)
diff mbox series

Patch

diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c
index a2ff3b7f11..970947e1ca 100644
--- a/target/arm/tcg/sve_helper.c
+++ b/target/arm/tcg/sve_helper.c
@@ -5150,9 +5150,7 @@  void HELPER(sve_ftmad_h)(void *vd, void *vn, void *vm,
         float16 mm = m[i];
         intptr_t xx = x;
         if (float16_is_neg(mm)) {
-            if (!(fpcr_ah && float16_is_any_nan(mm))) {
-                mm = float16_abs(mm);
-            }
+            mm = float16_maybe_ah_chs(mm, fpcr_ah);
             xx += 8;
         }
         d[i] = float16_muladd(n[i], mm, coeff[xx], 0, s);
@@ -5176,9 +5174,7 @@  void HELPER(sve_ftmad_s)(void *vd, void *vn, void *vm,
         float32 mm = m[i];
         intptr_t xx = x;
         if (float32_is_neg(mm)) {
-            if (!(fpcr_ah && float32_is_any_nan(mm))) {
-                mm = float32_abs(mm);
-            }
+            mm = float32_maybe_ah_chs(mm, fpcr_ah);
             xx += 8;
         }
         d[i] = float32_muladd(n[i], mm, coeff[xx], 0, s);
@@ -5206,9 +5202,7 @@  void HELPER(sve_ftmad_d)(void *vd, void *vn, void *vm,
         float64 mm = m[i];
         intptr_t xx = x;
         if (float64_is_neg(mm)) {
-            if (!(fpcr_ah && float64_is_any_nan(mm))) {
-                mm = float64_abs(mm);
-            }
+            mm = float64_maybe_ah_chs(mm, fpcr_ah);
             xx += 8;
         }
         d[i] = float64_muladd(n[i], mm, coeff[xx], 0, s);