[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 03/11] softfloat: Use goto for default nan case in pick_nan_mulad
From: |
Richard Henderson |
Subject: |
[PATCH 03/11] softfloat: Use goto for default nan case in pick_nan_muladd |
Date: |
Tue, 3 Dec 2024 14:39:40 -0600 |
Remove "3" as a special case for which and simply
branch to return the desired value.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
fpu/softfloat-parts.c.inc | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc
index f5c6b21fee..6423e12406 100644
--- a/fpu/softfloat-parts.c.inc
+++ b/fpu/softfloat-parts.c.inc
@@ -79,7 +79,7 @@ static FloatPartsN *partsN(pick_nan_muladd)(FloatPartsN *a,
FloatPartsN *b,
}
if (s->default_nan_mode) {
- which = 3;
+ goto default_nan;
} else if (infzero) {
/*
* Inf * 0 + NaN -- some implementations return the
@@ -87,17 +87,18 @@ static FloatPartsN *partsN(pick_nan_muladd)(FloatPartsN *a,
FloatPartsN *b,
*/
switch (s->float_infzeronan_rule) {
case float_infzeronan_dnan_never:
- which = 2;
break;
case float_infzeronan_dnan_always:
- which = 3;
- break;
+ goto default_nan;
case float_infzeronan_dnan_if_qnan:
- which = is_qnan(c->cls) ? 3 : 2;
+ if (is_qnan(c->cls)) {
+ goto default_nan;
+ }
break;
default:
g_assert_not_reached();
}
+ which = 2;
} else {
FloatClass cls[3] = { a->cls, b->cls, c->cls };
Float3NaNPropRule rule = s->float_3nan_prop_rule;
@@ -117,11 +118,6 @@ static FloatPartsN *partsN(pick_nan_muladd)(FloatPartsN
*a, FloatPartsN *b,
}
}
- if (which == 3) {
- parts_default_nan(a, s);
- return a;
- }
-
switch (which) {
case 0:
break;
@@ -138,6 +134,10 @@ static FloatPartsN *partsN(pick_nan_muladd)(FloatPartsN
*a, FloatPartsN *b,
parts_silence_nan(a, s);
}
return a;
+
+ default_nan:
+ parts_default_nan(a, s);
+ return a;
}
/*
--
2.43.0
- [PATCH for-10.0 00/11] fpu: pickNaN follow ups, Richard Henderson, 2024/12/03
- [PATCH 05/11] softfloat: Pad array size in pick_nan_muladd, Richard Henderson, 2024/12/03
- [PATCH 01/11] target/arm: Copy entire float_status in is_ebf, Richard Henderson, 2024/12/03
- [PATCH 03/11] softfloat: Use goto for default nan case in pick_nan_muladd,
Richard Henderson <=
- [PATCH 04/11] softfloat: Remove which from parts_pick_nan_muladd, Richard Henderson, 2024/12/03
- [PATCH 08/11] softfloat: Inline pickNaN, Richard Henderson, 2024/12/03
- [PATCH 09/11] softfloat: Share code between parts_pick_nan cases, Richard Henderson, 2024/12/03
- [PATCH 06/11] softfloat: Move propagateFloatx80NaN to softfloat.c, Richard Henderson, 2024/12/03
- [PATCH 02/11] softfloat: Inline pickNaNMulAdd, Richard Henderson, 2024/12/03