softfloat: Add float{16,32,64}_muladd_scalbn
We currently have a flag, float_muladd_halve_result, to scale the result by 2**-1. Extend this to handle arbitrary scaling. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
29f6586f61
commit
910556bbf4
3 changed files with 44 additions and 27 deletions
|
|
@ -238,6 +238,8 @@ float16 float16_add(float16, float16, float_status *status);
|
|||
float16 float16_sub(float16, float16, float_status *status);
|
||||
float16 float16_mul(float16, float16, float_status *status);
|
||||
float16 float16_muladd(float16, float16, float16, int, float_status *status);
|
||||
float16 float16_muladd_scalbn(float16, float16, float16,
|
||||
int, int, float_status *status);
|
||||
float16 float16_div(float16, float16, float_status *status);
|
||||
float16 float16_scalbn(float16, int, float_status *status);
|
||||
float16 float16_min(float16, float16, float_status *status);
|
||||
|
|
@ -597,6 +599,8 @@ float32 float32_mul(float32, float32, float_status *status);
|
|||
float32 float32_div(float32, float32, float_status *status);
|
||||
float32 float32_rem(float32, float32, float_status *status);
|
||||
float32 float32_muladd(float32, float32, float32, int, float_status *status);
|
||||
float32 float32_muladd_scalbn(float32, float32, float32,
|
||||
int, int, float_status *status);
|
||||
float32 float32_sqrt(float32, float_status *status);
|
||||
float32 float32_exp2(float32, float_status *status);
|
||||
float32 float32_log2(float32, float_status *status);
|
||||
|
|
@ -792,6 +796,8 @@ float64 float64_mul(float64, float64, float_status *status);
|
|||
float64 float64_div(float64, float64, float_status *status);
|
||||
float64 float64_rem(float64, float64, float_status *status);
|
||||
float64 float64_muladd(float64, float64, float64, int, float_status *status);
|
||||
float64 float64_muladd_scalbn(float64, float64, float64,
|
||||
int, int, float_status *status);
|
||||
float64 float64_sqrt(float64, float_status *status);
|
||||
float64 float64_log2(float64, float_status *status);
|
||||
FloatRelation float64_compare(float64, float64, float_status *status);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue