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 /include/fpu/softfloat.h | |
| 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 'include/fpu/softfloat.h')
| -rw-r--r-- | include/fpu/softfloat.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/fpu/softfloat.h b/include/fpu/softfloat.h index aa69aecfb0..09a40b4310 100644 --- a/include/fpu/softfloat.h +++ b/include/fpu/softfloat.h @@ -120,11 +120,16 @@ bfloat16 bfloat16_squash_input_denormal(bfloat16 a, float_status *status); | Using these differs from negating an input or output before calling | the muladd function in that this means that a NaN doesn't have its | sign bit inverted before it is propagated. +| +| With float_muladd_suppress_add_product_zero, if A or B is zero +| such that the product is a true zero, then return C without addition. +| This preserves the sign of C when C is +/- 0. Used for Hexagon. *----------------------------------------------------------------------------*/ enum { float_muladd_negate_c = 1, float_muladd_negate_product = 2, float_muladd_negate_result = 4, + float_muladd_suppress_add_product_zero = 8, }; /*---------------------------------------------------------------------------- |