Lines Matching refs:zSign
112 static int32 roundAndPackInt32( flag zSign, uint64_t absZ STATUS_PARAM) in roundAndPackInt32() argument
128 if ( zSign ) { in roundAndPackInt32()
140 if ( zSign ) z = - z; in roundAndPackInt32()
141 if ( ( absZ>>32 ) || ( z && ( ( z < 0 ) ^ zSign ) ) ) { in roundAndPackInt32()
143 return zSign ? (int32_t) 0x80000000 : 0x7FFFFFFF; in roundAndPackInt32()
162 static int64 roundAndPackInt64( flag zSign, uint64_t absZ0, uint64_t absZ1 STATUS_PARAM) in roundAndPackInt64() argument
176 if ( zSign ) { in roundAndPackInt64()
190 if ( zSign ) z = - z; in roundAndPackInt64()
191 if ( z && ( ( z < 0 ) ^ zSign ) ) { in roundAndPackInt64()
195 zSign ? (int64_t) LIT64( 0x8000000000000000 ) in roundAndPackInt64()
280 INLINE float32 packFloat32( flag zSign, int16 zExp, uint32_t zSig ) in packFloat32() argument
284 ( ( (uint32_t) zSign )<<31 ) + ( ( (uint32_t) zExp )<<23 ) + zSig); in packFloat32()
310 static float32 roundAndPackFloat32( flag zSign, int16 zExp, uint32_t zSig STATUS_PARAM) in roundAndPackFloat32() argument
326 if ( zSign ) { in roundAndPackFloat32()
341 return packFloat32( zSign, 0xFF, - ( roundIncrement == 0 )); in roundAndPackFloat32()
346 return packFloat32(zSign, 0, 0); in roundAndPackFloat32()
362 return packFloat32( zSign, zExp, zSig ); in roundAndPackFloat32()
376 normalizeRoundAndPackFloat32( flag zSign, int16 zExp, uint32_t zSig STATUS_PARAM) in normalizeRoundAndPackFloat32() argument
381 return roundAndPackFloat32( zSign, zExp - shiftCount, zSig<<shiftCount STATUS_VAR); in normalizeRoundAndPackFloat32()
462 INLINE float64 packFloat64( flag zSign, int16 zExp, uint64_t zSig ) in packFloat64() argument
466 ( ( (uint64_t) zSign )<<63 ) + ( ( (uint64_t) zExp )<<52 ) + zSig); in packFloat64()
492 static float64 roundAndPackFloat64( flag zSign, int16 zExp, uint64_t zSig STATUS_PARAM) in roundAndPackFloat64() argument
508 if ( zSign ) { in roundAndPackFloat64()
523 return packFloat64( zSign, 0x7FF, - ( roundIncrement == 0 )); in roundAndPackFloat64()
528 return packFloat64(zSign, 0, 0); in roundAndPackFloat64()
544 return packFloat64( zSign, zExp, zSig ); in roundAndPackFloat64()
558 normalizeRoundAndPackFloat64( flag zSign, int16 zExp, uint64_t zSig STATUS_PARAM) in normalizeRoundAndPackFloat64() argument
563 return roundAndPackFloat64( zSign, zExp - shiftCount, zSig<<shiftCount STATUS_VAR); in normalizeRoundAndPackFloat64()
628 INLINE floatx80 packFloatx80( flag zSign, int32 zExp, uint64_t zSig ) in packFloatx80() argument
633 z.high = ( ( (uint16_t) zSign )<<15 ) + zExp; in packFloatx80()
664 int8 roundingPrecision, flag zSign, int32 zExp, uint64_t zSig0, uint64_t zSig1 in roundAndPackFloatx80() argument
692 if ( zSign ) { in roundAndPackFloatx80()
710 return packFloatx80(zSign, 0, 0); in roundAndPackFloatx80()
728 return packFloatx80( zSign, zExp, zSig0 ); in roundAndPackFloatx80()
743 return packFloatx80( zSign, zExp, zSig0 ); in roundAndPackFloatx80()
751 if ( zSign ) { in roundAndPackFloatx80()
770 || ( zSign && ( roundingMode == float_round_up ) ) in roundAndPackFloatx80()
771 || ( ! zSign && ( roundingMode == float_round_down ) ) in roundAndPackFloatx80()
773 return packFloatx80( zSign, 0x7FFE, ~ roundMask ); in roundAndPackFloatx80()
775 return packFloatx80( zSign, 0x7FFF, LIT64( 0x8000000000000000 ) ); in roundAndPackFloatx80()
791 if ( zSign ) { in roundAndPackFloatx80()
804 return packFloatx80( zSign, zExp, zSig0 ); in roundAndPackFloatx80()
821 return packFloatx80( zSign, zExp, zSig0 ); in roundAndPackFloatx80()
836 int8 roundingPrecision, flag zSign, int32 zExp, uint64_t zSig0, uint64_t zSig1 in normalizeRoundAndPackFloatx80() argument
850 roundAndPackFloatx80( roundingPrecision, zSign, zExp, zSig0, zSig1 STATUS_VAR); in normalizeRoundAndPackFloatx80()
960 packFloat128( flag zSign, int32 zExp, uint64_t zSig0, uint64_t zSig1 ) in packFloat128() argument
965 z.high = ( ( (uint64_t) zSign )<<63 ) + ( ( (uint64_t) zExp )<<48 ) + zSig0; in packFloat128()
993 flag zSign, int32 zExp, uint64_t zSig0, uint64_t zSig1, uint64_t zSig2 STATUS_PARAM) in roundAndPackFloat128() argument
1006 if ( zSign ) { in roundAndPackFloat128()
1028 || ( zSign && ( roundingMode == float_round_up ) ) in roundAndPackFloat128()
1029 || ( ! zSign && ( roundingMode == float_round_down ) ) in roundAndPackFloat128()
1033 zSign, in roundAndPackFloat128()
1039 return packFloat128( zSign, 0x7FFF, 0, 0 ); in roundAndPackFloat128()
1044 return packFloat128(zSign, 0, 0, 0); in roundAndPackFloat128()
1064 if ( zSign ) { in roundAndPackFloat128()
1081 return packFloat128( zSign, zExp, zSig0, zSig1 ); in roundAndPackFloat128()
1097 flag zSign, int32 zExp, uint64_t zSig0, uint64_t zSig1 STATUS_PARAM) in normalizeRoundAndPackFloat128() argument
1117 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR); in normalizeRoundAndPackFloat128()
1131 flag zSign; in int32_to_float32() local
1135 zSign = ( a < 0 ); in int32_to_float32()
1136 return normalizeRoundAndPackFloat32( zSign, 0x9C, zSign ? - a : a STATUS_VAR ); in int32_to_float32()
1148 flag zSign; in int32_to_float64() local
1154 zSign = ( a < 0 ); in int32_to_float64()
1155 absA = zSign ? - a : a; in int32_to_float64()
1158 return packFloat64( zSign, 0x432 - shiftCount, zSig<<shiftCount ); in int32_to_float64()
1173 flag zSign; in int32_to_floatx80() local
1179 zSign = ( a < 0 ); in int32_to_floatx80()
1180 absA = zSign ? - a : a; in int32_to_floatx80()
1183 return packFloatx80( zSign, 0x403E - shiftCount, zSig<<shiftCount ); in int32_to_floatx80()
1199 flag zSign; in int32_to_float128() local
1205 zSign = ( a < 0 ); in int32_to_float128()
1206 absA = zSign ? - a : a; in int32_to_float128()
1209 return packFloat128( zSign, 0x402E - shiftCount, zSig0<<shiftCount, 0 ); in int32_to_float128()
1223 flag zSign; in int64_to_float32() local
1228 zSign = ( a < 0 ); in int64_to_float32()
1229 absA = zSign ? - a : a; in int64_to_float32()
1232 return packFloat32( zSign, 0x95 - shiftCount, absA<<shiftCount ); in int64_to_float32()
1242 return roundAndPackFloat32( zSign, 0x9C - shiftCount, absA STATUS_VAR ); in int64_to_float32()
1276 flag zSign; in int64_to_float64() local
1282 zSign = ( a < 0 ); in int64_to_float64()
1283 return normalizeRoundAndPackFloat64( zSign, 0x43C, zSign ? - a : a STATUS_VAR ); in int64_to_float64()
1305 flag zSign; in int64_to_floatx80() local
1310 zSign = ( a < 0 ); in int64_to_floatx80()
1311 absA = zSign ? - a : a; in int64_to_floatx80()
1313 return packFloatx80( zSign, 0x403E - shiftCount, absA<<shiftCount ); in int64_to_floatx80()
1329 flag zSign; in int64_to_float128() local
1336 zSign = ( a < 0 ); in int64_to_float128()
1337 absA = zSign ? - a : a; in int64_to_float128()
1350 return packFloat128( zSign, zExp, zSig0, zSig1 ); in int64_to_float128()
1729 static float32 addFloat32Sigs( float32 a, float32 b, flag zSign STATUS_PARAM) in addFloat32Sigs()
1759 return packFloat32( zSign, 0xFF, 0 ); in addFloat32Sigs()
1780 return packFloat32(zSign, 0, 0); in addFloat32Sigs()
1782 return packFloat32( zSign, 0, ( aSig + bSig )>>6 ); in addFloat32Sigs()
1796 return roundAndPackFloat32( zSign, zExp, zSig STATUS_VAR ); in addFloat32Sigs()
1808 static float32 subFloat32Sigs( float32 a, float32 b, flag zSign STATUS_PARAM) in subFloat32Sigs()
1838 return packFloat32( zSign ^ 1, 0xFF, 0 ); in subFloat32Sigs()
1851 zSign ^= 1; in subFloat32Sigs()
1871 return normalizeRoundAndPackFloat32( zSign, zExp, zSig STATUS_VAR ); in subFloat32Sigs()
1929 flag aSign, bSign, zSign; in float32_mul() local
1944 zSign = aSign ^ bSign; in float32_mul()
1953 return packFloat32( zSign, 0xFF, 0 ); in float32_mul()
1961 return packFloat32( zSign, 0xFF, 0 ); in float32_mul()
1964 if ( aSig == 0 ) return packFloat32( zSign, 0, 0 ); in float32_mul()
1968 if ( bSig == 0 ) return packFloat32( zSign, 0, 0 ); in float32_mul()
1980 return roundAndPackFloat32( zSign, zExp, zSig STATUS_VAR ); in float32_mul()
1992 flag aSign, bSign, zSign; in float32_div() local
2004 zSign = aSign ^ bSign; in float32_div()
2012 return packFloat32( zSign, 0xFF, 0 ); in float32_div()
2016 return packFloat32( zSign, 0, 0 ); in float32_div()
2025 return packFloat32( zSign, 0xFF, 0 ); in float32_div()
2030 if ( aSig == 0 ) return packFloat32( zSign, 0, 0 ); in float32_div()
2044 return roundAndPackFloat32( zSign, zExp, zSig STATUS_VAR ); in float32_div()
2056 flag aSign, zSign; in float32_rem() local
2143 zSign = ( (int32_t) aSig < 0 ); in float32_rem()
2144 if ( zSign ) aSig = - aSig; in float32_rem()
2145 return normalizeRoundAndPackFloat32( aSign ^ zSign, bExp, aSig STATUS_VAR ); in float32_rem()
2291 flag aSign, zSign; in float32_log2() local
2315 zSign = aExp < 0; in float32_log2()
2326 if ( zSign ) in float32_log2()
2329 return normalizeRoundAndPackFloat32( zSign, 0x85, zSig STATUS_VAR ); in float32_log2()
2809 static float16 packFloat16(flag zSign, int16 zExp, uint16_t zSig) in packFloat16() argument
2812 (((uint32_t)zSign) << 15) + (((uint32_t)zExp) << 10) + zSig); in packFloat16()
3093 static float64 addFloat64Sigs( float64 a, float64 b, flag zSign STATUS_PARAM ) in addFloat64Sigs()
3123 return packFloat64( zSign, 0x7FF, 0 ); in addFloat64Sigs()
3144 return packFloat64(zSign, 0, 0); in addFloat64Sigs()
3146 return packFloat64( zSign, 0, ( aSig + bSig )>>9 ); in addFloat64Sigs()
3160 return roundAndPackFloat64( zSign, zExp, zSig STATUS_VAR ); in addFloat64Sigs()
3172 static float64 subFloat64Sigs( float64 a, float64 b, flag zSign STATUS_PARAM ) in subFloat64Sigs()
3202 return packFloat64( zSign ^ 1, 0x7FF, 0 ); in subFloat64Sigs()
3215 zSign ^= 1; in subFloat64Sigs()
3235 return normalizeRoundAndPackFloat64( zSign, zExp, zSig STATUS_VAR ); in subFloat64Sigs()
3293 flag aSign, bSign, zSign; in float64_mul() local
3306 zSign = aSign ^ bSign; in float64_mul()
3315 return packFloat64( zSign, 0x7FF, 0 ); in float64_mul()
3323 return packFloat64( zSign, 0x7FF, 0 ); in float64_mul()
3326 if ( aSig == 0 ) return packFloat64( zSign, 0, 0 ); in float64_mul()
3330 if ( bSig == 0 ) return packFloat64( zSign, 0, 0 ); in float64_mul()
3342 return roundAndPackFloat64( zSign, zExp, zSig0 STATUS_VAR ); in float64_mul()
3354 flag aSign, bSign, zSign; in float64_div() local
3368 zSign = aSign ^ bSign; in float64_div()
3376 return packFloat64( zSign, 0x7FF, 0 ); in float64_div()
3380 return packFloat64( zSign, 0, 0 ); in float64_div()
3389 return packFloat64( zSign, 0x7FF, 0 ); in float64_div()
3394 if ( aSig == 0 ) return packFloat64( zSign, 0, 0 ); in float64_div()
3414 return roundAndPackFloat64( zSign, zExp, zSig STATUS_VAR ); in float64_div()
3426 flag aSign, zSign; in float64_rem() local
3498 zSign = ( (int64_t) aSig < 0 ); in float64_rem()
3499 if ( zSign ) aSig = - aSig; in float64_rem()
3500 return normalizeRoundAndPackFloat64( aSign ^ zSign, bExp, aSig STATUS_VAR ); in float64_rem()
3563 flag aSign, zSign; in float64_log2() local
3587 zSign = aExp < 0; in float64_log2()
3598 if ( zSign ) in float64_log2()
3600 return normalizeRoundAndPackFloat64( zSign, 0x408, zSig STATUS_VAR ); in float64_log2()
4142 static floatx80 addFloatx80Sigs( floatx80 a, floatx80 b, flag zSign STATUS_PARAM) in addFloatx80Sigs()
4165 return packFloatx80( zSign, 0x7FFF, LIT64( 0x8000000000000000 ) ); in addFloatx80Sigs()
4196 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR ); in addFloatx80Sigs()
4208 static floatx80 subFloatx80Sigs( floatx80 a, floatx80 b, flag zSign STATUS_PARAM ) in subFloatx80Sigs()
4242 return packFloatx80( zSign ^ 1, 0x7FFF, LIT64( 0x8000000000000000 ) ); in subFloatx80Sigs()
4249 zSign ^= 1; in subFloatx80Sigs()
4264 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR ); in subFloatx80Sigs()
4318 flag aSign, bSign, zSign; in floatx80_mul() local
4329 zSign = aSign ^ bSign; in floatx80_mul()
4336 return packFloatx80( zSign, 0x7FFF, LIT64( 0x8000000000000000 ) ); in floatx80_mul()
4347 return packFloatx80( zSign, 0x7FFF, LIT64( 0x8000000000000000 ) ); in floatx80_mul()
4350 if ( aSig == 0 ) return packFloatx80( zSign, 0, 0 ); in floatx80_mul()
4354 if ( bSig == 0 ) return packFloatx80( zSign, 0, 0 ); in floatx80_mul()
4365 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR ); in floatx80_mul()
4377 flag aSign, bSign, zSign; in floatx80_div() local
4389 zSign = aSign ^ bSign; in floatx80_div()
4396 return packFloatx80( zSign, 0x7FFF, LIT64( 0x8000000000000000 ) ); in floatx80_div()
4400 return packFloatx80( zSign, 0, 0 ); in floatx80_div()
4412 return packFloatx80( zSign, 0x7FFF, LIT64( 0x8000000000000000 ) ); in floatx80_div()
4417 if ( aSig == 0 ) return packFloatx80( zSign, 0, 0 ); in floatx80_div()
4445 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR ); in floatx80_div()
4457 flag aSign, zSign; in floatx80_rem() local
4494 zSign = aSign; in floatx80_rem()
4537 zSign = ! zSign; in floatx80_rem()
4541 80, zSign, bExp + expDiff, aSig0, aSig1 STATUS_VAR ); in floatx80_rem()
5255 static float128 addFloat128Sigs( float128 a, float128 b, flag zSign STATUS_PARAM) in addFloat128Sigs()
5286 return packFloat128( zSign, 0x7FFF, 0, 0 ); in addFloat128Sigs()
5311 return packFloat128(zSign, 0, 0, 0); in addFloat128Sigs()
5313 return packFloat128( zSign, 0, zSig0, zSig1 ); in addFloat128Sigs()
5329 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR ); in addFloat128Sigs()
5341 static float128 subFloat128Sigs( float128 a, float128 b, flag zSign STATUS_PARAM) in subFloat128Sigs()
5380 return packFloat128( zSign ^ 1, 0x7FFF, 0, 0 ); in subFloat128Sigs()
5393 zSign ^= 1; in subFloat128Sigs()
5413 return normalizeRoundAndPackFloat128( zSign, zExp - 14, zSig0, zSig1 STATUS_VAR ); in subFloat128Sigs()
5467 flag aSign, bSign, zSign; in float128_mul() local
5480 zSign = aSign ^ bSign; in float128_mul()
5487 return packFloat128( zSign, 0x7FFF, 0, 0 ); in float128_mul()
5498 return packFloat128( zSign, 0x7FFF, 0, 0 ); in float128_mul()
5501 if ( ( aSig0 | aSig1 ) == 0 ) return packFloat128( zSign, 0, 0, 0 ); in float128_mul()
5505 if ( ( bSig0 | bSig1 ) == 0 ) return packFloat128( zSign, 0, 0, 0 ); in float128_mul()
5519 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR ); in float128_mul()
5531 flag aSign, bSign, zSign; in float128_div() local
5545 zSign = aSign ^ bSign; in float128_div()
5552 return packFloat128( zSign, 0x7FFF, 0, 0 ); in float128_div()
5556 return packFloat128( zSign, 0, 0, 0 ); in float128_div()
5568 return packFloat128( zSign, 0x7FFF, 0, 0 ); in float128_div()
5573 if ( ( aSig0 | aSig1 ) == 0 ) return packFloat128( zSign, 0, 0, 0 ); in float128_div()
5603 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR ); in float128_div()
5615 flag aSign, zSign; in float128_rem() local
5709 zSign = ( (int64_t) aSig0 < 0 ); in float128_rem()
5710 if ( zSign ) sub128( 0, 0, aSig0, aSig1, &aSig0, &aSig1 ); in float128_rem()
5712 normalizeRoundAndPackFloat128( aSign ^ zSign, bExp - 4, aSig0, aSig1 STATUS_VAR ); in float128_rem()