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.cor...@intel.com> + + PR libgcc/61685 + * bid128_fma.c (rounding_correction): Remove redundant tests. + 2014-06-10 Uros Bizjak <ubiz...@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 {