diff options
| author | Richard Henderson <richard.henderson@linaro.org> | 2024-12-08 09:13:45 -0600 |
|---|---|---|
| committer | Richard Henderson <richard.henderson@linaro.org> | 2024-12-24 08:32:15 -0800 |
| commit | 82f898f3b660fb11e601ee5ea1cab4b2fdafacc8 (patch) | |
| tree | 30a43e4d0e4514ebeeadaeaf46e268b2fe2941dc /fpu/softfloat.c | |
| parent | 72330260cdb42015ae72096bae37e6fdaf361737 (diff) | |
| download | focaccia-qemu-82f898f3b660fb11e601ee5ea1cab4b2fdafacc8.tar.gz focaccia-qemu-82f898f3b660fb11e601ee5ea1cab4b2fdafacc8.zip | |
softfloat: Add float_muladd_suppress_add_product_zero
Certain Hexagon instructions suppress changes to the result when the product of fma() is a true zero. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'fpu/softfloat.c')
| -rw-r--r-- | fpu/softfloat.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 6967fb5c9f..8d75d66817 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -2274,6 +2274,9 @@ float32_muladd(float32 xa, float32 xb, float32 xc, int flags, float_status *s) if (unlikely(!can_use_fpu(s))) { goto soft; } + if (unlikely(flags & float_muladd_suppress_add_product_zero)) { + goto soft; + } float32_input_flush3(&ua.s, &ub.s, &uc.s, s); if (unlikely(!f32_is_zon3(ua, ub, uc))) { |