@@ -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);
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(-)