Mercurial > hg > CbC > CbC_gcc
comparison libquadmath/math/copysignq.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* copysignq.c -- __float128 version of s_copysign.c. | 1 /* s_copysignl.c -- long double version of s_copysign.c. |
2 * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz. | 2 * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz. |
3 */ | 3 */ |
4 | 4 |
5 /* | 5 /* |
6 * ==================================================== | 6 * ==================================================== |
11 * software is freely granted, provided that this notice | 11 * software is freely granted, provided that this notice |
12 * is preserved. | 12 * is preserved. |
13 * ==================================================== | 13 * ==================================================== |
14 */ | 14 */ |
15 | 15 |
16 #if defined(LIBM_SCCS) && !defined(lint) | |
17 static char rcsid[] = "$NetBSD: $"; | |
18 #endif | |
19 | |
20 /* | |
21 * copysignq(long double x, long double y) | |
22 * copysignq(x,y) returns a value with the magnitude of x and | |
23 * with the sign bit of y. | |
24 */ | |
25 | |
26 #define NO_MATH_REDIRECT | |
27 | |
16 #include "quadmath-imp.h" | 28 #include "quadmath-imp.h" |
17 | 29 |
18 __float128 | 30 __float128 copysignq(__float128 x, __float128 y) |
19 copysignq (__float128 x, __float128 y) | |
20 { | 31 { |
21 uint64_t hx,hy; | 32 uint64_t hx,hy; |
22 GET_FLT128_MSW64(hx,x); | 33 GET_FLT128_MSW64(hx,x); |
23 GET_FLT128_MSW64(hy,y); | 34 GET_FLT128_MSW64(hy,y); |
24 SET_FLT128_MSW64(x,(hx&0x7fffffffffffffffULL)|(hy&0x8000000000000000ULL)); | 35 SET_FLT128_MSW64(x,(hx&0x7fffffffffffffffULL) |
25 return x; | 36 |(hy&0x8000000000000000ULL)); |
37 return x; | |
26 } | 38 } |