diff --git a/libavutil/softfloat.h b/libavutil/softfloat.h
index ae11bdb39d9c1d0690a62dee7f076637e9e221ee..651bbf41110a338e7d68792b73a4ca2e681e3a07 100644
--- a/libavutil/softfloat.h
+++ b/libavutil/softfloat.h
@@ -128,10 +128,10 @@ static inline av_const int av_cmp_sf(SoftFloat a, SoftFloat b){
 static inline av_const int av_gt_sf(SoftFloat a, SoftFloat b)
 {
     int t= a.exp - b.exp;
-    if      (t <-31) return 0;
+    if      (t <-31) return 0                >  b.mant      ;
     else if (t <  0) return (a.mant >> (-t)) >  b.mant      ;
     else if (t < 32) return  a.mant          > (b.mant >> t);
-    else             return 1;
+    else             return  a.mant          >  0           ;
 }
 
 static inline av_const SoftFloat av_add_sf(SoftFloat a, SoftFloat b){