target/hexagon: Use float32_muladd for helper_sffm[as]_lib
authorRichard Henderson <richard.henderson@linaro.org>
Sun, 8 Dec 2024 20:33:22 +0000 (14:33 -0600)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 24 Dec 2024 16:32:15 +0000 (08:32 -0800)
commit316dca398579f2de2f433db02685e6799159c498
tree0ec8b6a460f1e71fff322b060eab4aee42e5270f
parent904624ab8e1f41dd97bb6e2e524605f4c61bc795
target/hexagon: Use float32_muladd for helper_sffm[as]_lib

There are multiple special cases for this instruction.
(1) The saturate to normal maximum instead of overflow to infinity is
    handled by the new float_round_nearest_even_max rounding mode.
(2) The 0 * n + c special case is handled by the new
    float_muladd_suppress_add_product_zero flag.
(3) The Inf - Inf -> 0 special case can be detected after the fact
    by examining float_flag_invalid_isi.

Reviewed-by: Brian Cain <brian.cain@oss.qualcomm.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
target/hexagon/op_helper.c