:p
atchew
Login
Use float_raise instead of open coding it. Signed-off-by: Anton Blanchard <antonb@tenstorrent.com> --- target/riscv/vector_helper.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index XXXXXXX..XXXXXXX 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -XXX,XX +XXX,XX @@ static float16 frsqrt7_h(float16 f, float_status *s) (float16_is_infinity(f) && sign) || (float16_is_normal(f) && sign) || (float16_is_zero_or_denormal(f) && !float16_is_zero(f) && sign)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float16_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float16 frsqrt7_h(float16 f, float_status *s) /* frsqrt7(+-0) = +-inf */ if (float16_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float16_set_sign(float16_infinity, sign); } @@ -XXX,XX +XXX,XX @@ static float32 frsqrt7_s(float32 f, float_status *s) (float32_is_infinity(f) && sign) || (float32_is_normal(f) && sign) || (float32_is_zero_or_denormal(f) && !float32_is_zero(f) && sign)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float32_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float32 frsqrt7_s(float32 f, float_status *s) /* frsqrt7(+-0) = +-inf */ if (float32_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float32_set_sign(float32_infinity, sign); } @@ -XXX,XX +XXX,XX @@ static float64 frsqrt7_d(float64 f, float_status *s) (float64_is_infinity(f) && sign) || (float64_is_normal(f) && sign) || (float64_is_zero_or_denormal(f) && !float64_is_zero(f) && sign)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float64_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float64 frsqrt7_d(float64 f, float_status *s) /* frsqrt7(+-0) = +-inf */ if (float64_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float64_set_sign(float64_infinity, sign); } @@ -XXX,XX +XXX,XX @@ static uint64_t frec7(uint64_t f, int exp_size, int frac_size, * Overflow to inf or max value of same sign, * depending on sign and rounding mode. */ - s->float_exception_flags |= (float_flag_inexact | - float_flag_overflow); + float_raise(float_flag_inexact | float_flag_overflow, s); if ((s->float_rounding_mode == float_round_to_zero) || ((s->float_rounding_mode == float_round_down) && !sign) || @@ -XXX,XX +XXX,XX @@ static float16 frec7_h(float16 f, float_status *s) /* frec7(+-0) = +-inf */ if (float16_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float16_set_sign(float16_infinity, sign); } /* frec7(sNaN) = canonical NaN */ if (float16_is_signaling_nan(f, s)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float16_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float32 frec7_s(float32 f, float_status *s) /* frec7(+-0) = +-inf */ if (float32_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float32_set_sign(float32_infinity, sign); } /* frec7(sNaN) = canonical NaN */ if (float32_is_signaling_nan(f, s)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float32_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float64 frec7_d(float64 f, float_status *s) /* frec7(+-0) = +-inf */ if (float64_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float64_set_sign(float64_infinity, sign); } /* frec7(sNaN) = canonical NaN */ if (float64_is_signaling_nan(f, s)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float64_default_nan(s); } -- 2.34.1
--- target/riscv/vector_helper.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index XXXXXXX..XXXXXXX 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -XXX,XX +XXX,XX @@ static bfloat16 frsqrt7_h_bf16(bfloat16 f, float_status *s) (bfloat16_is_infinity(f) && sign) || (bfloat16_is_normal(f) && sign) || (bfloat16_is_zero_or_denormal(f) && !bfloat16_is_zero(f) && sign)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return bfloat16_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static bfloat16 frsqrt7_h_bf16(bfloat16 f, float_status *s) /* frsqrt7(+-0) = +-inf */ if (bfloat16_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return bfloat16_set_sign(bfloat16_infinity, sign); } @@ -XXX,XX +XXX,XX @@ static float16 frsqrt7_h(float16 f, float_status *s) (float16_is_infinity(f) && sign) || (float16_is_normal(f) && sign) || (float16_is_zero_or_denormal(f) && !float16_is_zero(f) && sign)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float16_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float16 frsqrt7_h(float16 f, float_status *s) /* frsqrt7(+-0) = +-inf */ if (float16_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float16_set_sign(float16_infinity, sign); } @@ -XXX,XX +XXX,XX @@ static float32 frsqrt7_s(float32 f, float_status *s) (float32_is_infinity(f) && sign) || (float32_is_normal(f) && sign) || (float32_is_zero_or_denormal(f) && !float32_is_zero(f) && sign)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float32_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float32 frsqrt7_s(float32 f, float_status *s) /* frsqrt7(+-0) = +-inf */ if (float32_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float32_set_sign(float32_infinity, sign); } @@ -XXX,XX +XXX,XX @@ static float64 frsqrt7_d(float64 f, float_status *s) (float64_is_infinity(f) && sign) || (float64_is_normal(f) && sign) || (float64_is_zero_or_denormal(f) && !float64_is_zero(f) && sign)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float64_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float64 frsqrt7_d(float64 f, float_status *s) /* frsqrt7(+-0) = +-inf */ if (float64_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float64_set_sign(float64_infinity, sign); } @@ -XXX,XX +XXX,XX @@ static uint64_t frec7(uint64_t f, int exp_size, int frac_size, * Overflow to inf or max value of same sign, * depending on sign and rounding mode. */ - s->float_exception_flags |= (float_flag_inexact | - float_flag_overflow); + float_raise(float_flag_inexact | float_flag_overflow, s); if ((s->float_rounding_mode == float_round_to_zero) || ((s->float_rounding_mode == float_round_down) && !sign) || @@ -XXX,XX +XXX,XX @@ static bfloat16 frec7_h_bf16(bfloat16 f, float_status *s) /* frec7(+-0) = +-inf */ if (bfloat16_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return bfloat16_set_sign(bfloat16_infinity, sign); } /* frec7(sNaN) = canonical NaN */ if (bfloat16_is_signaling_nan(f, s)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return bfloat16_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float16 frec7_h(float16 f, float_status *s) /* frec7(+-0) = +-inf */ if (float16_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float16_set_sign(float16_infinity, sign); } /* frec7(sNaN) = canonical NaN */ if (float16_is_signaling_nan(f, s)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float16_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float32 frec7_s(float32 f, float_status *s) /* frec7(+-0) = +-inf */ if (float32_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float32_set_sign(float32_infinity, sign); } /* frec7(sNaN) = canonical NaN */ if (float32_is_signaling_nan(f, s)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float32_default_nan(s); } @@ -XXX,XX +XXX,XX @@ static float64 frec7_d(float64 f, float_status *s) /* frec7(+-0) = +-inf */ if (float64_is_zero(f)) { - s->float_exception_flags |= float_flag_divbyzero; + float_raise(float_flag_divbyzero, s); return float64_set_sign(float64_infinity, sign); } /* frec7(sNaN) = canonical NaN */ if (float64_is_signaling_nan(f, s)) { - s->float_exception_flags |= float_flag_invalid; + float_raise(float_flag_invalid, s); return float64_default_nan(s); } -- 2.34.1