avutil/softfloat: Fix av_gt_sf() with large exponents try #2
authorMichael Niedermayer <michael@niedermayer.cc>
Sun, 8 Nov 2015 14:03:28 +0000 (15:03 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 11 Nov 2015 23:00:57 +0000 (00:00 +0100)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 05b05a7a841c0c67cce319941104d6f11b9ecd84)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavutil/softfloat.h

index ae11bdb..651bbf4 100644 (file)
@@ -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){