Lines Matching refs:a

121 INLINE bits32 extractFloat32Frac( float32 a )  in extractFloat32Frac()  argument
124 return a & 0x007FFFFF; in extractFloat32Frac()
133 INLINE int16 extractFloat32Exp( float32 a ) in extractFloat32Exp() argument
136 return ( a>>23 ) & 0xFF; in extractFloat32Exp()
146 INLINE flag extractFloat32Sign( float32 a )
149 return a>>31;
302 INLINE bits64 extractFloat64Frac( float64 a ) in extractFloat64Frac() argument
305 return a & LIT64( 0x000FFFFFFFFFFFFF ); in extractFloat64Frac()
314 INLINE int16 extractFloat64Exp( float64 a ) in extractFloat64Exp() argument
317 return ( a>>52 ) & 0x7FF; in extractFloat64Exp()
327 INLINE flag extractFloat64Sign( float64 a )
330 return a>>63;
478 INLINE bits64 extractFloatx80Frac( floatx80 a ) in extractFloatx80Frac() argument
481 return a.low; in extractFloatx80Frac()
491 INLINE int32 extractFloatx80Exp( floatx80 a ) in extractFloatx80Exp() argument
494 return a.high & 0x7FFF; in extractFloatx80Exp()
504 INLINE flag extractFloatx80Sign( floatx80 a ) in extractFloatx80Sign() argument
507 return a.high>>15; in extractFloatx80Sign()
768 float32 int32_to_float32( int32 a ) in int32_to_float32() argument
772 if ( a == 0 ) return 0; in int32_to_float32()
773 if ( a == 0x80000000 ) return packFloat32( 1, 0x9E, 0 ); in int32_to_float32()
774 zSign = ( a < 0 ); in int32_to_float32()
775 return normalizeRoundAndPackFloat32( zSign, 0x9C, zSign ? - a : a ); in int32_to_float32()
786 float64 int32_to_float64( int32 a ) in int32_to_float64() argument
793 if ( a == 0 ) return 0; in int32_to_float64()
794 aSign = ( a < 0 ); in int32_to_float64()
795 absA = aSign ? - a : a; in int32_to_float64()
812 floatx80 int32_to_floatx80( int32 a ) in int32_to_floatx80() argument
819 if ( a == 0 ) return packFloatx80( 0, 0, 0 ); in int32_to_floatx80()
820 zSign = ( a < 0 ); in int32_to_floatx80()
821 absA = zSign ? - a : a; in int32_to_floatx80()
841 int32 float32_to_int32( float32 a ) in float32_to_int32() argument
848 aSig = extractFloat32Frac( a ); in float32_to_int32()
849 aExp = extractFloat32Exp( a ); in float32_to_int32()
850 aSign = extractFloat32Sign( a ); in float32_to_int32()
872 int32 float32_to_int32_round_to_zero( float32 a ) in float32_to_int32_round_to_zero() argument
879 aSig = extractFloat32Frac( a ); in float32_to_int32_round_to_zero()
880 aExp = extractFloat32Exp( a ); in float32_to_int32_round_to_zero()
881 aSign = extractFloat32Sign( a ); in float32_to_int32_round_to_zero()
884 if ( a == 0xCF000000 ) return 0x80000000; in float32_to_int32_round_to_zero()
910 float64 float32_to_float64( float32 a ) in float32_to_float64() argument
916 aSig = extractFloat32Frac( a ); in float32_to_float64()
917 aExp = extractFloat32Exp( a ); in float32_to_float64()
918 aSign = extractFloat32Sign( a ); in float32_to_float64()
920 if ( aSig ) return commonNaNToFloat64( float32ToCommonNaN( a ) ); in float32_to_float64()
942 floatx80 float32_to_floatx80( float32 a ) in float32_to_floatx80() argument
948 aSig = extractFloat32Frac( a ); in float32_to_floatx80()
949 aExp = extractFloat32Exp( a ); in float32_to_floatx80()
950 aSign = extractFloat32Sign( a ); in float32_to_floatx80()
952 if ( aSig ) return commonNaNToFloatx80( float32ToCommonNaN( a ) ); in float32_to_floatx80()
974 float32 float32_round_to_int( float32 a ) in float32_round_to_int() argument
982 aExp = extractFloat32Exp( a ); in float32_round_to_int()
984 if ( ( aExp == 0xFF ) && extractFloat32Frac( a ) ) { in float32_round_to_int()
985 return propagateFloat32NaN( a, a ); in float32_round_to_int()
987 return a; in float32_round_to_int()
990 if ( (bits32) ( a<<1 ) == 0 ) return a; in float32_round_to_int()
992 aSign = extractFloat32Sign( a ); in float32_round_to_int()
995 if ( ( aExp == 0x7E ) && extractFloat32Frac( a ) ) { in float32_round_to_int()
1009 z = a; in float32_round_to_int()
1021 if ( z != a ) float_exception_flags |= float_flag_inexact; in float32_round_to_int()
1035 static float32 addFloat32Sigs( float32 a, float32 b, flag zSign ) in addFloat32Sigs() argument
1041 aSig = extractFloat32Frac( a ); in addFloat32Sigs()
1042 aExp = extractFloat32Exp( a ); in addFloat32Sigs()
1050 if ( aSig ) return propagateFloat32NaN( a, b ); in addFloat32Sigs()
1051 return a; in addFloat32Sigs()
1064 if ( bSig ) return propagateFloat32NaN( a, b ); in addFloat32Sigs()
1078 if ( aSig | bSig ) return propagateFloat32NaN( a, b ); in addFloat32Sigs()
1079 return a; in addFloat32Sigs()
1107 static float32 subFloat32Sigs( float32 a, float32 b, flag zSign ) in subFloat32Sigs() argument
1113 aSig = extractFloat32Frac( a ); in subFloat32Sigs()
1114 aExp = extractFloat32Exp( a ); in subFloat32Sigs()
1123 if ( aSig | bSig ) return propagateFloat32NaN( a, b ); in subFloat32Sigs()
1136 if ( bSig ) return propagateFloat32NaN( a, b ); in subFloat32Sigs()
1154 if ( aSig ) return propagateFloat32NaN( a, b ); in subFloat32Sigs()
1155 return a; in subFloat32Sigs()
1181 float32 float32_add( float32 a, float32 b ) in float32_add() argument
1185 aSign = extractFloat32Sign( a ); in float32_add()
1188 return addFloat32Sigs( a, b, aSign ); in float32_add()
1191 return subFloat32Sigs( a, b, aSign ); in float32_add()
1203 float32 float32_sub( float32 a, float32 b ) in float32_sub() argument
1207 aSign = extractFloat32Sign( a ); in float32_sub()
1210 return subFloat32Sigs( a, b, aSign ); in float32_sub()
1213 return addFloat32Sigs( a, b, aSign ); in float32_sub()
1225 float32 float32_mul( float32 a, float32 b ) in float32_mul() argument
1233 aSig = extractFloat32Frac( a ); in float32_mul()
1234 aExp = extractFloat32Exp( a ); in float32_mul()
1235 aSign = extractFloat32Sign( a ); in float32_mul()
1242 return propagateFloat32NaN( a, b ); in float32_mul()
1251 if ( bSig ) return propagateFloat32NaN( a, b ); in float32_mul()
1286 float32 float32_div( float32 a, float32 b ) in float32_div() argument
1292 aSig = extractFloat32Frac( a ); in float32_div()
1293 aExp = extractFloat32Exp( a ); in float32_div()
1294 aSign = extractFloat32Sign( a ); in float32_div()
1300 if ( aSig ) return propagateFloat32NaN( a, b ); in float32_div()
1302 if ( bSig ) return propagateFloat32NaN( a, b ); in float32_div()
1309 if ( bSig ) return propagateFloat32NaN( a, b ); in float32_div()
1349 float32 float32_rem( float32 a, float32 b ) in float32_rem() argument
1359 aSig = extractFloat32Frac( a ); in float32_rem()
1360 aExp = extractFloat32Exp( a ); in float32_rem()
1361 aSign = extractFloat32Sign( a ); in float32_rem()
1367 return propagateFloat32NaN( a, b ); in float32_rem()
1373 if ( bSig ) return propagateFloat32NaN( a, b ); in float32_rem()
1374 return a; in float32_rem()
1384 if ( aSig == 0 ) return a; in float32_rem()
1394 if ( expDiff < -1 ) return a; in float32_rem()
1450 float32 float32_sqrt( float32 a ) in float32_sqrt() argument
1457 aSig = extractFloat32Frac( a ); in float32_sqrt()
1458 aExp = extractFloat32Exp( a ); in float32_sqrt()
1459 aSign = extractFloat32Sign( a ); in float32_sqrt()
1461 if ( aSig ) return propagateFloat32NaN( a, 0 ); in float32_sqrt()
1462 if ( ! aSign ) return a; in float32_sqrt()
1467 if ( ( aExp | aSig ) == 0 ) return a; in float32_sqrt()
1505 flag float32_eq( float32 a, float32 b ) in float32_eq() argument
1508 if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) in float32_eq()
1511 if ( float32_is_signaling_nan( a ) || float32_is_signaling_nan( b ) ) { in float32_eq()
1516 return ( a == b ) || ( (bits32) ( ( a | b )<<1 ) == 0 ); in float32_eq()
1528 flag float32_le( float32 a, float32 b ) in float32_le() argument
1532 if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) in float32_le()
1538 aSign = extractFloat32Sign( a ); in float32_le()
1540 if ( aSign != bSign ) return aSign || ( (bits32) ( ( a | b )<<1 ) == 0 ); in float32_le()
1541 return ( a == b ) || ( aSign ^ ( a < b ) ); in float32_le()
1552 flag float32_lt( float32 a, float32 b ) in float32_lt() argument
1556 if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) in float32_lt()
1562 aSign = extractFloat32Sign( a ); in float32_lt()
1564 if ( aSign != bSign ) return aSign && ( (bits32) ( ( a | b )<<1 ) != 0 ); in float32_lt()
1565 return ( a != b ) && ( aSign ^ ( a < b ) ); in float32_lt()
1577 flag float32_eq_signaling( float32 a, float32 b ) in float32_eq_signaling() argument
1580 if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) in float32_eq_signaling()
1586 return ( a == b ) || ( (bits32) ( ( a | b )<<1 ) == 0 ); in float32_eq_signaling()
1598 flag float32_le_quiet( float32 a, float32 b ) in float32_le_quiet() argument
1603 if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) in float32_le_quiet()
1606 if ( float32_is_signaling_nan( a ) || float32_is_signaling_nan( b ) ) { in float32_le_quiet()
1611 aSign = extractFloat32Sign( a ); in float32_le_quiet()
1613 if ( aSign != bSign ) return aSign || ( (bits32) ( ( a | b )<<1 ) == 0 ); in float32_le_quiet()
1614 return ( a == b ) || ( aSign ^ ( a < b ) ); in float32_le_quiet()
1626 flag float32_lt_quiet( float32 a, float32 b ) in float32_lt_quiet() argument
1630 if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) in float32_lt_quiet()
1633 if ( float32_is_signaling_nan( a ) || float32_is_signaling_nan( b ) ) { in float32_lt_quiet()
1638 aSign = extractFloat32Sign( a ); in float32_lt_quiet()
1640 if ( aSign != bSign ) return aSign && ( (bits32) ( ( a | b )<<1 ) != 0 ); in float32_lt_quiet()
1641 return ( a != b ) && ( aSign ^ ( a < b ) ); in float32_lt_quiet()
1656 int32 float64_to_int32( float64 a ) in float64_to_int32() argument
1662 aSig = extractFloat64Frac( a ); in float64_to_int32()
1663 aExp = extractFloat64Exp( a ); in float64_to_int32()
1664 aSign = extractFloat64Sign( a ); in float64_to_int32()
1684 int32 float64_to_int32_round_to_zero( float64 a ) in float64_to_int32_round_to_zero() argument
1691 aSig = extractFloat64Frac( a ); in float64_to_int32_round_to_zero()
1692 aExp = extractFloat64Exp( a ); in float64_to_int32_round_to_zero()
1693 aSign = extractFloat64Sign( a ); in float64_to_int32_round_to_zero()
1731 int32 float64_to_uint32( float64 a ) in float64_to_uint32() argument
1737 aSig = extractFloat64Frac( a ); in float64_to_uint32()
1738 aExp = extractFloat64Exp( a ); in float64_to_uint32()
1757 int32 float64_to_uint32_round_to_zero( float64 a ) in float64_to_uint32_round_to_zero() argument
1764 aSig = extractFloat64Frac( a ); in float64_to_uint32_round_to_zero()
1765 aExp = extractFloat64Exp( a ); in float64_to_uint32_round_to_zero()
1766 aSign = extractFloat64Sign( a ); in float64_to_uint32_round_to_zero()
1800 float32 float64_to_float32( float64 a ) in float64_to_float32() argument
1807 aSig = extractFloat64Frac( a ); in float64_to_float32()
1808 aExp = extractFloat64Exp( a ); in float64_to_float32()
1809 aSign = extractFloat64Sign( a ); in float64_to_float32()
1811 if ( aSig ) return commonNaNToFloat32( float64ToCommonNaN( a ) ); in float64_to_float32()
1834 floatx80 float64_to_floatx80( float64 a ) in float64_to_floatx80() argument
1840 aSig = extractFloat64Frac( a ); in float64_to_floatx80()
1841 aExp = extractFloat64Exp( a ); in float64_to_floatx80()
1842 aSign = extractFloat64Sign( a ); in float64_to_floatx80()
1844 if ( aSig ) return commonNaNToFloatx80( float64ToCommonNaN( a ) ); in float64_to_floatx80()
1867 float64 float64_round_to_int( float64 a ) in float64_round_to_int() argument
1875 aExp = extractFloat64Exp( a ); in float64_round_to_int()
1877 if ( ( aExp == 0x7FF ) && extractFloat64Frac( a ) ) { in float64_round_to_int()
1878 return propagateFloat64NaN( a, a ); in float64_round_to_int()
1880 return a; in float64_round_to_int()
1883 if ( (bits64) ( a<<1 ) == 0 ) return a; in float64_round_to_int()
1885 aSign = extractFloat64Sign( a ); in float64_round_to_int()
1888 if ( ( aExp == 0x3FE ) && extractFloat64Frac( a ) ) { in float64_round_to_int()
1903 z = a; in float64_round_to_int()
1915 if ( z != a ) float_exception_flags |= float_flag_inexact; in float64_round_to_int()
1929 static float64 addFloat64Sigs( float64 a, float64 b, flag zSign ) in addFloat64Sigs() argument
1935 aSig = extractFloat64Frac( a ); in addFloat64Sigs()
1936 aExp = extractFloat64Exp( a ); in addFloat64Sigs()
1944 if ( aSig ) return propagateFloat64NaN( a, b ); in addFloat64Sigs()
1945 return a; in addFloat64Sigs()
1958 if ( bSig ) return propagateFloat64NaN( a, b ); in addFloat64Sigs()
1972 if ( aSig | bSig ) return propagateFloat64NaN( a, b ); in addFloat64Sigs()
1973 return a; in addFloat64Sigs()
2001 static float64 subFloat64Sigs( float64 a, float64 b, flag zSign ) in subFloat64Sigs() argument
2007 aSig = extractFloat64Frac( a ); in subFloat64Sigs()
2008 aExp = extractFloat64Exp( a ); in subFloat64Sigs()
2017 if ( aSig | bSig ) return propagateFloat64NaN( a, b ); in subFloat64Sigs()
2030 if ( bSig ) return propagateFloat64NaN( a, b ); in subFloat64Sigs()
2048 if ( aSig ) return propagateFloat64NaN( a, b ); in subFloat64Sigs()
2049 return a; in subFloat64Sigs()
2075 float64 float64_add( float64 a, float64 b ) in float64_add() argument
2079 aSign = extractFloat64Sign( a ); in float64_add()
2082 return addFloat64Sigs( a, b, aSign ); in float64_add()
2085 return subFloat64Sigs( a, b, aSign ); in float64_add()
2097 float64 float64_sub( float64 a, float64 b ) in float64_sub() argument
2101 aSign = extractFloat64Sign( a ); in float64_sub()
2104 return subFloat64Sigs( a, b, aSign ); in float64_sub()
2107 return addFloat64Sigs( a, b, aSign ); in float64_sub()
2119 float64 float64_mul( float64 a, float64 b ) in float64_mul() argument
2125 aSig = extractFloat64Frac( a ); in float64_mul()
2126 aExp = extractFloat64Exp( a ); in float64_mul()
2127 aSign = extractFloat64Sign( a ); in float64_mul()
2134 return propagateFloat64NaN( a, b ); in float64_mul()
2143 if ( bSig ) return propagateFloat64NaN( a, b ); in float64_mul()
2178 float64 float64_div( float64 a, float64 b ) in float64_div() argument
2186 aSig = extractFloat64Frac( a ); in float64_div()
2187 aExp = extractFloat64Exp( a ); in float64_div()
2188 aSign = extractFloat64Sign( a ); in float64_div()
2194 if ( aSig ) return propagateFloat64NaN( a, b ); in float64_div()
2196 if ( bSig ) return propagateFloat64NaN( a, b ); in float64_div()
2203 if ( bSig ) return propagateFloat64NaN( a, b ); in float64_div()
2249 float64 float64_rem( float64 a, float64 b ) in float64_rem() argument
2257 aSig = extractFloat64Frac( a ); in float64_rem()
2258 aExp = extractFloat64Exp( a ); in float64_rem()
2259 aSign = extractFloat64Sign( a ); in float64_rem()
2265 return propagateFloat64NaN( a, b ); in float64_rem()
2271 if ( bSig ) return propagateFloat64NaN( a, b ); in float64_rem()
2272 return a; in float64_rem()
2282 if ( aSig == 0 ) return a; in float64_rem()
2289 if ( expDiff < -1 ) return a; in float64_rem()
2335 float64 float64_sqrt( float64 a ) in float64_sqrt() argument
2343 aSig = extractFloat64Frac( a ); in float64_sqrt()
2344 aExp = extractFloat64Exp( a ); in float64_sqrt()
2345 aSign = extractFloat64Sign( a ); in float64_sqrt()
2347 if ( aSig ) return propagateFloat64NaN( a, a ); in float64_sqrt()
2348 if ( ! aSign ) return a; in float64_sqrt()
2353 if ( ( aExp | aSig ) == 0 ) return a; in float64_sqrt()
2396 flag float64_eq( float64 a, float64 b ) in float64_eq() argument
2399 if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) in float64_eq()
2402 if ( float64_is_signaling_nan( a ) || float64_is_signaling_nan( b ) ) { in float64_eq()
2407 return ( a == b ) || ( (bits64) ( ( a | b )<<1 ) == 0 ); in float64_eq()
2419 flag float64_le( float64 a, float64 b ) in float64_le() argument
2423 if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) in float64_le()
2429 aSign = extractFloat64Sign( a ); in float64_le()
2431 if ( aSign != bSign ) return aSign || ( (bits64) ( ( a | b )<<1 ) == 0 ); in float64_le()
2432 return ( a == b ) || ( aSign ^ ( a < b ) ); in float64_le()
2443 flag float64_lt( float64 a, float64 b ) in float64_lt() argument
2447 if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) in float64_lt()
2453 aSign = extractFloat64Sign( a ); in float64_lt()
2455 if ( aSign != bSign ) return aSign && ( (bits64) ( ( a | b )<<1 ) != 0 ); in float64_lt()
2456 return ( a != b ) && ( aSign ^ ( a < b ) ); in float64_lt()
2468 flag float64_eq_signaling( float64 a, float64 b ) in float64_eq_signaling() argument
2471 if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) in float64_eq_signaling()
2477 return ( a == b ) || ( (bits64) ( ( a | b )<<1 ) == 0 ); in float64_eq_signaling()
2489 flag float64_le_quiet( float64 a, float64 b ) in float64_le_quiet() argument
2494 if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) in float64_le_quiet()
2497 if ( float64_is_signaling_nan( a ) || float64_is_signaling_nan( b ) ) { in float64_le_quiet()
2502 aSign = extractFloat64Sign( a ); in float64_le_quiet()
2504 if ( aSign != bSign ) return aSign || ( (bits64) ( ( a | b )<<1 ) == 0 ); in float64_le_quiet()
2505 return ( a == b ) || ( aSign ^ ( a < b ) ); in float64_le_quiet()
2517 flag float64_lt_quiet( float64 a, float64 b ) in float64_lt_quiet() argument
2521 if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) in float64_lt_quiet()
2524 if ( float64_is_signaling_nan( a ) || float64_is_signaling_nan( b ) ) { in float64_lt_quiet()
2529 aSign = extractFloat64Sign( a ); in float64_lt_quiet()
2531 if ( aSign != bSign ) return aSign && ( (bits64) ( ( a | b )<<1 ) != 0 ); in float64_lt_quiet()
2532 return ( a != b ) && ( aSign ^ ( a < b ) ); in float64_lt_quiet()
2549 int32 floatx80_to_int32( floatx80 a ) in floatx80_to_int32() argument
2555 aSig = extractFloatx80Frac( a ); in floatx80_to_int32()
2556 aExp = extractFloatx80Exp( a ); in floatx80_to_int32()
2557 aSign = extractFloatx80Sign( a ); in floatx80_to_int32()
2577 int32 floatx80_to_int32_round_to_zero( floatx80 a ) in floatx80_to_int32_round_to_zero() argument
2584 aSig = extractFloatx80Frac( a ); in floatx80_to_int32_round_to_zero()
2585 aExp = extractFloatx80Exp( a ); in floatx80_to_int32_round_to_zero()
2586 aSign = extractFloatx80Sign( a ); in floatx80_to_int32_round_to_zero()
2620 float32 floatx80_to_float32( floatx80 a ) in floatx80_to_float32() argument
2626 aSig = extractFloatx80Frac( a ); in floatx80_to_float32()
2627 aExp = extractFloatx80Exp( a ); in floatx80_to_float32()
2628 aSign = extractFloatx80Sign( a ); in floatx80_to_float32()
2631 return commonNaNToFloat32( floatx80ToCommonNaN( a ) ); in floatx80_to_float32()
2649 float64 floatx80_to_float64( floatx80 a ) in floatx80_to_float64() argument
2655 aSig = extractFloatx80Frac( a ); in floatx80_to_float64()
2656 aExp = extractFloatx80Exp( a ); in floatx80_to_float64()
2657 aSign = extractFloatx80Sign( a ); in floatx80_to_float64()
2660 return commonNaNToFloat64( floatx80ToCommonNaN( a ) ); in floatx80_to_float64()
2678 floatx80 floatx80_round_to_int( floatx80 a ) in floatx80_round_to_int() argument
2686 aExp = extractFloatx80Exp( a ); in floatx80_round_to_int()
2688 if ( ( aExp == 0x7FFF ) && (bits64) ( extractFloatx80Frac( a )<<1 ) ) { in floatx80_round_to_int()
2689 return propagateFloatx80NaN( a, a ); in floatx80_round_to_int()
2691 return a; in floatx80_round_to_int()
2695 && ( (bits64) ( extractFloatx80Frac( a )<<1 ) == 0 ) ) { in floatx80_round_to_int()
2696 return a; in floatx80_round_to_int()
2699 aSign = extractFloatx80Sign( a ); in floatx80_round_to_int()
2702 if ( ( aExp == 0x3FFE ) && (bits64) ( extractFloatx80Frac( a )<<1 ) in floatx80_round_to_int()
2723 z = a; in floatx80_round_to_int()
2739 if ( z.low != a.low ) float_exception_flags |= float_flag_inexact; in floatx80_round_to_int()
2753 static floatx80 addFloatx80Sigs( floatx80 a, floatx80 b, flag zSign ) in addFloatx80Sigs() argument
2759 aSig = extractFloatx80Frac( a ); in addFloatx80Sigs()
2760 aExp = extractFloatx80Exp( a ); in addFloatx80Sigs()
2766 if ( (bits64) ( aSig<<1 ) ) return propagateFloatx80NaN( a, b ); in addFloatx80Sigs()
2767 return a; in addFloatx80Sigs()
2775 if ( (bits64) ( bSig<<1 ) ) return propagateFloatx80NaN( a, b ); in addFloatx80Sigs()
2785 return propagateFloatx80NaN( a, b ); in addFloatx80Sigs()
2787 return a; in addFloatx80Sigs()
2822 static floatx80 subFloatx80Sigs( floatx80 a, floatx80 b, flag zSign ) in subFloatx80Sigs() argument
2829 aSig = extractFloatx80Frac( a ); in subFloatx80Sigs()
2830 aExp = extractFloatx80Exp( a ); in subFloatx80Sigs()
2838 return propagateFloatx80NaN( a, b ); in subFloatx80Sigs()
2855 if ( (bits64) ( bSig<<1 ) ) return propagateFloatx80NaN( a, b ); in subFloatx80Sigs()
2867 if ( (bits64) ( aSig<<1 ) ) return propagateFloatx80NaN( a, b ); in subFloatx80Sigs()
2868 return a; in subFloatx80Sigs()
2889 floatx80 floatx80_add( floatx80 a, floatx80 b ) in floatx80_add() argument
2893 aSign = extractFloatx80Sign( a ); in floatx80_add()
2896 return addFloatx80Sigs( a, b, aSign ); in floatx80_add()
2899 return subFloatx80Sigs( a, b, aSign ); in floatx80_add()
2911 floatx80 floatx80_sub( floatx80 a, floatx80 b ) in floatx80_sub() argument
2915 aSign = extractFloatx80Sign( a ); in floatx80_sub()
2918 return subFloatx80Sigs( a, b, aSign ); in floatx80_sub()
2921 return addFloatx80Sigs( a, b, aSign ); in floatx80_sub()
2933 floatx80 floatx80_mul( floatx80 a, floatx80 b ) in floatx80_mul() argument
2940 aSig = extractFloatx80Frac( a ); in floatx80_mul()
2941 aExp = extractFloatx80Exp( a ); in floatx80_mul()
2942 aSign = extractFloatx80Sign( a ); in floatx80_mul()
2950 return propagateFloatx80NaN( a, b ); in floatx80_mul()
2956 if ( (bits64) ( bSig<<1 ) ) return propagateFloatx80NaN( a, b ); in floatx80_mul()
2993 floatx80 floatx80_div( floatx80 a, floatx80 b ) in floatx80_div() argument
3001 aSig = extractFloatx80Frac( a ); in floatx80_div()
3002 aExp = extractFloatx80Exp( a ); in floatx80_div()
3003 aSign = extractFloatx80Sign( a ); in floatx80_div()
3009 if ( (bits64) ( aSig<<1 ) ) return propagateFloatx80NaN( a, b ); in floatx80_div()
3011 if ( (bits64) ( bSig<<1 ) ) return propagateFloatx80NaN( a, b ); in floatx80_div()
3017 if ( (bits64) ( bSig<<1 ) ) return propagateFloatx80NaN( a, b ); in floatx80_div()
3074 floatx80 floatx80_rem( floatx80 a, floatx80 b ) in floatx80_rem() argument
3082 aSig0 = extractFloatx80Frac( a ); in floatx80_rem()
3083 aExp = extractFloatx80Exp( a ); in floatx80_rem()
3084 aSign = extractFloatx80Sign( a ); in floatx80_rem()
3091 return propagateFloatx80NaN( a, b ); in floatx80_rem()
3096 if ( (bits64) ( bSig<<1 ) ) return propagateFloatx80NaN( a, b ); in floatx80_rem()
3097 return a; in floatx80_rem()
3110 if ( (bits64) ( aSig0<<1 ) == 0 ) return a; in floatx80_rem()
3118 if ( expDiff < -1 ) return a; in floatx80_rem()
3172 floatx80 floatx80_sqrt( floatx80 a ) in floatx80_sqrt() argument
3181 aSig0 = extractFloatx80Frac( a ); in floatx80_sqrt()
3182 aExp = extractFloatx80Exp( a ); in floatx80_sqrt()
3183 aSign = extractFloatx80Sign( a ); in floatx80_sqrt()
3185 if ( (bits64) ( aSig0<<1 ) ) return propagateFloatx80NaN( a, a ); in floatx80_sqrt()
3186 if ( ! aSign ) return a; in floatx80_sqrt()
3190 if ( ( aExp | aSig0 ) == 0 ) return a; in floatx80_sqrt()
3249 flag floatx80_eq( floatx80 a, floatx80 b ) in floatx80_eq() argument
3252 if ( ( ( extractFloatx80Exp( a ) == 0x7FFF ) in floatx80_eq()
3253 && (bits64) ( extractFloatx80Frac( a )<<1 ) ) in floatx80_eq()
3257 if ( floatx80_is_signaling_nan( a ) in floatx80_eq()
3264 ( a.low == b.low ) in floatx80_eq()
3265 && ( ( a.high == b.high ) in floatx80_eq()
3266 || ( ( a.low == 0 ) in floatx80_eq()
3267 && ( (bits16) ( ( a.high | b.high )<<1 ) == 0 ) ) in floatx80_eq()
3280 flag floatx80_le( floatx80 a, floatx80 b ) in floatx80_le() argument
3284 if ( ( ( extractFloatx80Exp( a ) == 0x7FFF ) in floatx80_le()
3285 && (bits64) ( extractFloatx80Frac( a )<<1 ) ) in floatx80_le()
3292 aSign = extractFloatx80Sign( a ); in floatx80_le()
3297 || ( ( ( (bits16) ( ( a.high | b.high )<<1 ) ) | a.low | b.low ) in floatx80_le()
3301 aSign ? le128( b.high, b.low, a.high, a.low ) in floatx80_le()
3302 : le128( a.high, a.low, b.high, b.low ); in floatx80_le()
3314 flag floatx80_lt( floatx80 a, floatx80 b ) in floatx80_lt() argument
3318 if ( ( ( extractFloatx80Exp( a ) == 0x7FFF ) in floatx80_lt()
3319 && (bits64) ( extractFloatx80Frac( a )<<1 ) ) in floatx80_lt()
3326 aSign = extractFloatx80Sign( a ); in floatx80_lt()
3331 && ( ( ( (bits16) ( ( a.high | b.high )<<1 ) ) | a.low | b.low ) in floatx80_lt()
3335 aSign ? lt128( b.high, b.low, a.high, a.low ) in floatx80_lt()
3336 : lt128( a.high, a.low, b.high, b.low ); in floatx80_lt()
3348 flag floatx80_eq_signaling( floatx80 a, floatx80 b ) in floatx80_eq_signaling() argument
3351 if ( ( ( extractFloatx80Exp( a ) == 0x7FFF ) in floatx80_eq_signaling()
3352 && (bits64) ( extractFloatx80Frac( a )<<1 ) ) in floatx80_eq_signaling()
3360 ( a.low == b.low ) in floatx80_eq_signaling()
3361 && ( ( a.high == b.high ) in floatx80_eq_signaling()
3362 || ( ( a.low == 0 ) in floatx80_eq_signaling()
3363 && ( (bits16) ( ( a.high | b.high )<<1 ) == 0 ) ) in floatx80_eq_signaling()
3376 flag floatx80_le_quiet( floatx80 a, floatx80 b ) in floatx80_le_quiet() argument
3380 if ( ( ( extractFloatx80Exp( a ) == 0x7FFF ) in floatx80_le_quiet()
3381 && (bits64) ( extractFloatx80Frac( a )<<1 ) ) in floatx80_le_quiet()
3385 if ( floatx80_is_signaling_nan( a ) in floatx80_le_quiet()
3391 aSign = extractFloatx80Sign( a ); in floatx80_le_quiet()
3396 || ( ( ( (bits16) ( ( a.high | b.high )<<1 ) ) | a.low | b.low ) in floatx80_le_quiet()
3400 aSign ? le128( b.high, b.low, a.high, a.low ) in floatx80_le_quiet()
3401 : le128( a.high, a.low, b.high, b.low ); in floatx80_le_quiet()
3413 flag floatx80_lt_quiet( floatx80 a, floatx80 b ) in floatx80_lt_quiet() argument
3417 if ( ( ( extractFloatx80Exp( a ) == 0x7FFF ) in floatx80_lt_quiet()
3418 && (bits64) ( extractFloatx80Frac( a )<<1 ) ) in floatx80_lt_quiet()
3422 if ( floatx80_is_signaling_nan( a ) in floatx80_lt_quiet()
3428 aSign = extractFloatx80Sign( a ); in floatx80_lt_quiet()
3433 && ( ( ( (bits16) ( ( a.high | b.high )<<1 ) ) | a.low | b.low ) in floatx80_lt_quiet()
3437 aSign ? lt128( b.high, b.low, a.high, a.low ) in floatx80_lt_quiet()
3438 : lt128( a.high, a.low, b.high, b.low ); in floatx80_lt_quiet()