On 1/24/25 08:27, Peter Maydell wrote:
@@ -4411,6 +4431,11 @@ float32_hs_compare(float32 xa, float32 xb, float_status
*s, bool is_quiet)
goto soft;
}
+ if (unlikely(float32_is_denormal(ua.s) || float32_is_denormal(ub.s))) {
+ /* We may need to set the input_denormal_used flag */
+ goto soft;
+ }
+
float32_input_flush2(&ua.s, &ub.s, s);
if (isgreaterequal(ua.h, ub.h)) {
if (isgreater(ua.h, ub.h)) {
This obviates the float32_input_flush2 check.
@@ -4462,6 +4487,12 @@ float64_hs_compare(float64 xa, float64 xb, float_status
*s, bool is_quiet)
}
float64_input_flush2(&ua.s, &ub.s, s);
+
+ if (unlikely(float64_is_denormal(ua.s) || float64_is_denormal(ub.s))) {
+ /* We may need to set the input_denormal_used flag */
+ goto soft;
+ }
+
if (isgreaterequal(ua.h, ub.h)) {
if (isgreater(ua.h, ub.h)) {
return float_relation_greater;
Likewise, though you're shadowing in the wrong direction this time.
Otherwise it looks ok.
r~