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~

Reply via email to