diff options
Diffstat (limited to 'libquadmath/math/fmaxq.c')
-rw-r--r-- | libquadmath/math/fmaxq.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/libquadmath/math/fmaxq.c b/libquadmath/math/fmaxq.c index e8ed6f440aa..661bb6b6ef2 100644 --- a/libquadmath/math/fmaxq.c +++ b/libquadmath/math/fmaxq.c @@ -1,5 +1,5 @@ /* Return maximum numeric value of X and Y. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -14,15 +14,20 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ #include "quadmath-imp.h" - __float128 fmaxq (__float128 x, __float128 y) { - return (__builtin_isgreaterequal (x, y) || isnanq (y)) ? x : y; + if (__builtin_isgreaterequal (x, y)) + return x; + else if (__builtin_isless (x, y)) + return y; + else if (issignalingq (x) || issignalingq (y)) + return x + y; + else + return isnanq (y) ? x : y; } |