Lines Matching defs:zExp

270 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
275 | will have an integer portion equal to 1, the `zExp' input should be 1 less
280 INLINE float32 packFloat32( flag zSign, int16 zExp, uint32_t zSig )
284 ( ( (uint32_t) zSign )<<31 ) + ( ( (uint32_t) zExp )<<23 ) + zSig);
289 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
303 | `zExp' must be 0; in that case, the result returned is a subnormal number,
305 | normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.
310 static float32 roundAndPackFloat32( flag zSign, int16 zExp, uint32_t zSig STATUS_PARAM)
335 if ( 0xFD <= (uint16_t) zExp ) {
336 if ( ( 0xFD < zExp )
337 || ( ( zExp == 0xFD )
343 if ( zExp < 0 ) {
350 || ( zExp < -1 )
352 shift32RightJamming( zSig, - zExp, &zSig );
353 zExp = 0;
361 if ( zSig == 0 ) zExp = 0;
362 return packFloat32( zSign, zExp, zSig );
367 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
371 | Bit 31 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
376 normalizeRoundAndPackFloat32( flag zSign, int16 zExp, uint32_t zSig STATUS_PARAM)
381 return roundAndPackFloat32( zSign, zExp - shiftCount, zSig<<shiftCount STATUS_VAR);
452 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
457 | will have an integer portion equal to 1, the `zExp' input should be 1 less
462 INLINE float64 packFloat64( flag zSign, int16 zExp, uint64_t zSig )
466 ( ( (uint64_t) zSign )<<63 ) + ( ( (uint64_t) zExp )<<52 ) + zSig);
471 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
485 | `zExp' must be 0; in that case, the result returned is a subnormal number,
487 | normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.
492 static float64 roundAndPackFloat64( flag zSign, int16 zExp, uint64_t zSig STATUS_PARAM)
517 if ( 0x7FD <= (uint16_t) zExp ) {
518 if ( ( 0x7FD < zExp )
519 || ( ( zExp == 0x7FD )
525 if ( zExp < 0 ) {
532 || ( zExp < -1 )
534 shift64RightJamming( zSig, - zExp, &zSig );
535 zExp = 0;
543 if ( zSig == 0 ) zExp = 0;
544 return packFloat64( zSign, zExp, zSig );
549 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
553 | Bit 63 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
558 normalizeRoundAndPackFloat64( flag zSign, int16 zExp, uint64_t zSig STATUS_PARAM)
563 return roundAndPackFloat64( zSign, zExp - shiftCount, zSig<<shiftCount STATUS_VAR);
624 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into an
628 INLINE floatx80 packFloatx80( flag zSign, int32 zExp, uint64_t zSig )
633 z.high = ( ( (uint16_t) zSign )<<15 ) + zExp;
639 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
656 | significand is not normalized, `zExp' must be 0; in that case, the result
664 int8 roundingPrecision, flag zSign, int32 zExp, uint64_t zSig0, uint64_t zSig1
701 if ( 0x7FFD <= (uint32_t) ( zExp - 1 ) ) {
702 if ( ( 0x7FFE < zExp )
703 || ( ( zExp == 0x7FFE ) && ( zSig0 + roundIncrement < zSig0 ) )
707 if ( zExp <= 0 ) {
714 || ( zExp < 0 )
716 shift64RightJamming( zSig0, 1 - zExp, &zSig0 );
717 zExp = 0;
722 if ( (int64_t) zSig0 < 0 ) zExp = 1;
728 return packFloatx80( zSign, zExp, zSig0 );
734 ++zExp;
742 if ( zSig0 == 0 ) zExp = 0;
743 return packFloatx80( zSign, zExp, zSig0 );
759 if ( 0x7FFD <= (uint32_t) ( zExp - 1 ) ) {
760 if ( ( 0x7FFE < zExp )
761 || ( ( zExp == 0x7FFE )
777 if ( zExp <= 0 ) {
780 || ( zExp < 0 )
783 shift64ExtraRightJamming( zSig0, zSig1, 1 - zExp, &zSig0, &zSig1 );
784 zExp = 0;
802 if ( (int64_t) zSig0 < 0 ) zExp = 1;
804 return packFloatx80( zSign, zExp, zSig0 );
811 ++zExp;
819 if ( zSig0 == 0 ) zExp = 0;
821 return packFloatx80( zSign, zExp, zSig0 );
827 | `zExp', and significand formed by the concatenation of `zSig0' and `zSig1',
836 int8 roundingPrecision, flag zSign, int32 zExp, uint64_t zSig0, uint64_t zSig1
844 zExp -= 64;
848 zExp -= shiftCount;
850 roundAndPackFloatx80( roundingPrecision, zSign, zExp, zSig0, zSig1 STATUS_VAR);
947 | Packs the sign `zSign', the exponent `zExp', and the significand formed
950 | proper positions, the three fields `zSign', `zExp', and `zSig0' are simply
954 | to 1, the `zExp' input should be 1 less than the desired result exponent
960 packFloat128( flag zSign, int32 zExp, uint64_t zSig0, uint64_t zSig1 )
965 z.high = ( ( (uint64_t) zSign )<<63 ) + ( ( (uint64_t) zExp )<<48 ) + zSig0;
971 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
984 | significand is not normalized, `zExp' must be 0; in that case, the result
986 | usual case that the input significand is normalized, `zExp' must be 1 less
993 flag zSign, int32 zExp, uint64_t zSig0, uint64_t zSig1, uint64_t zSig2 STATUS_PARAM)
1014 if ( 0x7FFD <= (uint32_t) zExp ) {
1015 if ( ( 0x7FFD < zExp )
1016 || ( ( zExp == 0x7FFD )
1041 if ( zExp < 0 ) {
1048 || ( zExp < -1 )
1057 zSig0, zSig1, zSig2, - zExp, &zSig0, &zSig1, &zSig2 );
1058 zExp = 0;
1079 if ( ( zSig0 | zSig1 ) == 0 ) zExp = 0;
1081 return packFloat128( zSign, zExp, zSig0, zSig1 );
1086 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
1091 | normalized. In all cases, `zExp' must be 1 less than the ``true'' floating-
1097 flag zSign, int32 zExp, uint64_t zSig0, uint64_t zSig1 STATUS_PARAM)
1105 zExp -= 64;
1116 zExp -= shiftCount;
1117 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR);
1332 int32 zExp;
1339 zExp = 0x406E - shiftCount;
1350 return packFloat128( zSign, zExp, zSig0, zSig1 );
1731 int16 aExp, bExp, zExp;
1754 zExp = aExp;
1768 zExp = bExp;
1785 zExp = aExp;
1790 --zExp;
1793 ++zExp;
1796 return roundAndPackFloat32( zSign, zExp, zSig STATUS_VAR );
1810 int16 aExp, bExp, zExp;
1850 zExp = bExp;
1868 zExp = aExp;
1870 --zExp;
1871 return normalizeRoundAndPackFloat32( zSign, zExp, zSig STATUS_VAR );
1930 int16 aExp, bExp, zExp;
1971 zExp = aExp + bExp - 0x7F;
1978 --zExp;
1980 return roundAndPackFloat32( zSign, zExp, zSig STATUS_VAR );
1993 int16 aExp, bExp, zExp;
2033 zExp = aExp - bExp + 0x7D;
2038 ++zExp;
2044 return roundAndPackFloat32( zSign, zExp, zSig STATUS_VAR );
2158 int16 aExp, zExp;
2181 zExp = ( ( aExp - 0x7F )>>1 ) + 0x7E;
2200 return roundAndPackFloat32( 0, zExp, zSig STATUS_VAR );
2800 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
2805 | will have an integer portion equal to 1, the `zExp' input should be 1 less
2809 static float16 packFloat16(flag zSign, int16 zExp, uint16_t zSig)
2812 (((uint32_t)zSign) << 15) + (((uint32_t)zExp) << 10) + zSig);
3095 int16 aExp, bExp, zExp;
3118 zExp = aExp;
3132 zExp = bExp;
3149 zExp = aExp;
3154 --zExp;
3157 ++zExp;
3160 return roundAndPackFloat64( zSign, zExp, zSig STATUS_VAR );
3174 int16 aExp, bExp, zExp;
3214 zExp = bExp;
3232 zExp = aExp;
3234 --zExp;
3235 return normalizeRoundAndPackFloat64( zSign, zExp, zSig STATUS_VAR );
3294 int16 aExp, bExp, zExp;
3333 zExp = aExp + bExp - 0x3FF;
3340 --zExp;
3342 return roundAndPackFloat64( zSign, zExp, zSig0 STATUS_VAR );
3355 int16 aExp, bExp, zExp;
3397 zExp = aExp - bExp + 0x3FD;
3402 ++zExp;
3414 return roundAndPackFloat64( zSign, zExp, zSig STATUS_VAR );
3513 int16 aExp, zExp;
3536 zExp = ( ( aExp - 0x3FF )>>1 ) + 0x3FE;
3552 return roundAndPackFloat64( 0, zExp, zSig STATUS_VAR );
4144 int32 aExp, bExp, zExp;
4160 zExp = aExp;
4169 zExp = bExp;
4181 normalizeFloatx80Subnormal( zSig0, &zExp, &zSig0 );
4184 zExp = aExp;
4192 ++zExp;
4196 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR );
4210 int32 aExp, bExp, zExp;
4248 zExp = bExp;
4260 zExp = aExp;
4264 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR );
4319 int32 aExp, bExp, zExp;
4357 zExp = aExp + bExp - 0x3FFE;
4361 --zExp;
4365 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR );
4378 int32 aExp, bExp, zExp;
4420 zExp = aExp - bExp + 0x3FFE;
4424 ++zExp;
4445 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR );
4554 int32 aExp, zExp;
4579 zExp = ( ( aExp - 0x3FFF )>>1 ) + 0x3FFF;
4611 STATUS(floatx80_rounding_precision), 0, zExp, zSig0, zSig1 STATUS_VAR );
5257 int32 aExp, bExp, zExp;
5281 zExp = aExp;
5296 zExp = bExp;
5317 zExp = aExp;
5322 --zExp;
5324 ++zExp;
5329 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR );
5343 int32 aExp, bExp, zExp;
5392 zExp = bExp;
5410 zExp = aExp;
5412 --zExp;
5413 return normalizeRoundAndPackFloat128( zSign, zExp - 14, zSig0, zSig1 STATUS_VAR );
5468 int32 aExp, bExp, zExp;
5508 zExp = aExp + bExp - 0x4000;
5517 ++zExp;
5519 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR );
5532 int32 aExp, bExp, zExp;
5576 zExp = aExp - bExp + 0x3FFD;
5583 ++zExp;
5603 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR );
5725 int32 aExp, zExp;
5751 zExp = ( ( aExp - 0x3FFF )>>1 ) + 0x3FFE;
5781 return roundAndPackFloat128( 0, zExp, zSig0, zSig1, zSig2 STATUS_VAR );