This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: PR libgcc/61685: Strange check in bid128_fma.c - rounding_correction()


Hi,

This patch from Marius removes the redundant tests.  Tested on
Linux/x86-64 without regressions.  I will check it in tomorrow.

Thanks.

H.J.
--
diff --git a/libgcc/config/libbid/ChangeLog b/libgcc/config/libbid/ChangeLog
index 9405a3a..8ec7468 100644
--- a/libgcc/config/libbid/ChangeLog
+++ b/libgcc/config/libbid/ChangeLog
@@ -1,3 +1,8 @@
+2014-07-22  Marius Cornea  <marius.cornea@intel.com>
+
+	PR libgcc/61685
+	* bid128_fma.c (rounding_correction): Remove redundant tests.
+
 2014-06-10  Uros Bizjak  <ubizjak@gmail.com>
 
 	* bid128_div.c (BID128_FUNCTION_ARG2): Remove unused variable 'Ql'.
diff --git a/libgcc/config/libbid/bid128_fma.c b/libgcc/config/libbid/bid128_fma.c
index 5f9879f..7ddd53b 100644
--- a/libgcc/config/libbid/bid128_fma.c
+++ b/libgcc/config/libbid/bid128_fma.c
@@ -93,10 +93,8 @@ rounding_correction (unsigned int rnd_mode,
         // exp = exp - EXP_P1;
         unbexp = unbexp - 1;
         exp = (UINT64) (unbexp + 6176) << 49;
-      } else { // if exp = 0
-        if (is_midpoint_lt_even || is_midpoint_lt_even ||
-            is_inexact_gt_midpoint || is_inexact_gt_midpoint) // tiny & inexact
-          *ptrfpsf |= UNDERFLOW_EXCEPTION;
+      } else { // if exp = 0 the result is tiny & inexact
+        *ptrfpsf |= UNDERFLOW_EXCEPTION;
       }
     }
   } else {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]