comparison libquadmath/math/fminq.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 561a7518be6b
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 /* Return minimum numeric value of X and Y. 1 /* Return minimum numeric value of X and Y.
2 Copyright (C) 1997 Free Software Foundation, Inc. 2 Copyright (C) 1997-2018 Free Software Foundation, Inc.
3 This file is part of the GNU C Library. 3 This file is part of the GNU C Library.
4 Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. 4 Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
5 5
6 The GNU C Library is free software; you can redistribute it and/or 6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public 7 modify it under the terms of the GNU Lesser General Public
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details. 14 Lesser General Public License for more details.
15 15
16 You should have received a copy of the GNU Lesser General Public 16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, write to the Free 17 License along with the GNU C Library; if not, see
18 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 18 <http://www.gnu.org/licenses/>. */
19 02111-1307 USA. */
20 19
21 #include "quadmath-imp.h" 20 #include "quadmath-imp.h"
22
23 21
24 __float128 22 __float128
25 fminq (__float128 x, __float128 y) 23 fminq (__float128 x, __float128 y)
26 { 24 {
27 return (__builtin_islessequal (x, y) || isnanq (y)) ? x : y; 25 if (__builtin_islessequal (x, y))
26 return x;
27 else if (__builtin_isgreater (x, y))
28 return y;
29 else if (issignalingq (x) || issignalingq (y))
30 return x + y;
31 else
32 return isnanq (y) ? x : y;
28 } 33 }