Lines Matching refs:semantics

292 unsigned int APFloatBase::semanticsPrecision(const fltSemantics &semantics) {  in semanticsPrecision()  argument
293 return semantics.precision; in semanticsPrecision()
296 APFloatBase::semanticsMaxExponent(const fltSemantics &semantics) { in semanticsMaxExponent() argument
297 return semantics.maxExponent; in semanticsMaxExponent()
300 APFloatBase::semanticsMinExponent(const fltSemantics &semantics) { in semanticsMinExponent() argument
301 return semantics.minExponent; in semanticsMinExponent()
303 unsigned int APFloatBase::semanticsSizeInBits(const fltSemantics &semantics) { in semanticsSizeInBits() argument
304 return semantics.sizeInBits; in semanticsSizeInBits()
306 unsigned int APFloatBase::semanticsIntSizeInBits(const fltSemantics &semantics, in semanticsIntSizeInBits() argument
310 unsigned int MinBitWidth = semanticsMaxExponent(semantics) + 1; in semanticsIntSizeInBits()
336 exponentZero(const fltSemantics &semantics) { in exponentZero() argument
337 return semantics.minExponent - 1; in exponentZero()
341 exponentInf(const fltSemantics &semantics) { in exponentInf() argument
342 return semantics.maxExponent + 1; in exponentInf()
346 exponentNaN(const fltSemantics &semantics) { in exponentNaN() argument
347 if (semantics.nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in exponentNaN()
348 if (semantics.nanEncoding == fltNanEncoding::NegativeZero) in exponentNaN()
349 return exponentZero(semantics); in exponentNaN()
350 return semantics.maxExponent; in exponentNaN()
352 return semantics.maxExponent + 1; in exponentNaN()
853 semantics = ourSemantics; in initialize()
865 assert(semantics == rhs.semantics); in assign()
894 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in makeNaN()
898 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) { in makeNaN()
900 fill_storage = APInt::getZero(semantics->precision - 1); in makeNaN()
902 fill_storage = APInt::getAllOnes(semantics->precision - 1); in makeNaN()
915 unsigned bitsToPreserve = semantics->precision - 1; in makeNaN()
923 unsigned QNaNBit = semantics->precision - 2; in makeNaN()
934 } else if (semantics->nanEncoding == fltNanEncoding::NegativeZero) { in makeNaN()
945 if (semantics == &semX87DoubleExtended) in makeNaN()
951 if (semantics != rhs.semantics) { in operator =()
953 initialize(rhs.semantics); in operator =()
964 semantics = rhs.semantics; in operator =()
970 rhs.semantics = &semBogus; in operator =()
975 return isFiniteNonZero() && (exponent == semantics->minExponent) && in isDenormal()
977 semantics->precision - 1) == 0); in isDenormal()
984 return isFiniteNonZero() && exponent == semantics->minExponent && in isSmallest()
989 return getCategory() == fcNormal && exponent == semantics->minExponent && in isSmallestNormalized()
997 const unsigned PartCount = partCountForBits(semantics->precision); in isSignificandAllOnes()
1004 PartCount*integerPartWidth - semantics->precision + 1; in isSignificandAllOnes()
1023 const unsigned PartCount = partCountForBits(semantics->precision); in isSignificandAllOnesExceptLSB()
1031 PartCount * integerPartWidth - semantics->precision + 1; in isSignificandAllOnesExceptLSB()
1046 const unsigned PartCount = partCountForBits(semantics->precision); in isSignificandAllZeros()
1054 PartCount*integerPartWidth - semantics->precision + 1; in isSignificandAllZeros()
1067 const unsigned PartCount = partCountForBits(semantics->precision); in isSignificandAllZerosExceptMSB()
1075 PartCount * integerPartWidth - semantics->precision + 1; in isSignificandAllZerosExceptMSB()
1081 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly && in isLargest()
1082 semantics->nanEncoding == fltNanEncoding::AllOnes) { in isLargest()
1086 return isFiniteNonZero() && exponent == semantics->maxExponent && in isLargest()
1091 return isFiniteNonZero() && exponent == semantics->maxExponent && in isLargest()
1107 if (semantics != rhs.semantics || in bitwiseIsEqual()
1142 initialize(rhs.semantics); in IEEEFloat()
1146 IEEEFloat::IEEEFloat(IEEEFloat &&rhs) : semantics(&semBogus) { in IEEEFloat()
1153 return partCountForBits(semantics->precision + 1); in partCount()
1188 assert(semantics == rhs.semantics); in addSignificand()
1202 assert(semantics == rhs.semantics); in subtractSignificand()
1222 assert(semantics == rhs.semantics); in multiplySignificand()
1224 precision = semantics->precision; in multiplySignificand()
1262 const fltSemantics *savedSemantics = semantics; in multiplySignificand()
1277 extendedSemantics = *semantics; in multiplySignificand()
1284 semantics = &extendedSemantics; in multiplySignificand()
1307 semantics = savedSemantics; in multiplySignificand()
1345 return multiplySignificand(rhs, IEEEFloat(*semantics)); in multiplySignificand()
1356 assert(semantics == rhs.semantics); in divideSignificand()
1378 unsigned int precision = semantics->precision; in divideSignificand()
1451 assert(bits < semantics->precision); in shiftSignificandLeft()
1467 assert(semantics == rhs.semantics); in compareAbsoluteValue()
1512 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) in handleOverflow()
1521 exponent = semantics->maxExponent; in handleOverflow()
1523 semantics->precision); in handleOverflow()
1524 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly && in handleOverflow()
1525 semantics->nanEncoding == fltNanEncoding::AllOnes) in handleOverflow()
1589 exponentChange = omsb - semantics->precision; in normalize()
1593 if (exponent + exponentChange > semantics->maxExponent) in normalize()
1598 if (exponent + exponentChange < semantics->minExponent) in normalize()
1599 exponentChange = semantics->minExponent - exponent; in normalize()
1628 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly && in normalize()
1629 semantics->nanEncoding == fltNanEncoding::AllOnes && in normalize()
1630 exponent == semantics->maxExponent && isSignificandAllOnes()) in normalize()
1642 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in normalize()
1652 exponent = semantics->minExponent; in normalize()
1658 if (omsb == (unsigned) semantics->precision + 1) { in normalize()
1662 if (exponent == semantics->maxExponent) in normalize()
1676 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly && in normalize()
1677 semantics->nanEncoding == fltNanEncoding::AllOnes && in normalize()
1678 exponent == semantics->maxExponent && isSignificandAllOnes()) in normalize()
1684 if (omsb == semantics->precision) in normalize()
1688 assert(omsb < semantics->precision); in normalize()
1693 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in normalize()
1903 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) in divideSpecials()
1999 if (semantics->nanEncoding == fltNanEncoding::NegativeZero && in changeSign()
2032 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in addOrSubtract()
2059 if (isZero() && semantics->nanEncoding == fltNanEncoding::NegativeZero) in multiply()
2079 if (isZero() && semantics->nanEncoding == fltNanEncoding::NegativeZero) in divide()
2153 fltSemantics extendedSemantics = *semantics; in remainder()
2191 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in remainder()
2222 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in mod()
2254 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in fusedMultiplyAdd()
2326 if (exponent+1 >= (int)semanticsPrecision(*semantics)) in roundToIntegral()
2335 APInt IntegerConstant(NextPowerOf2(semanticsPrecision(*semantics)), 1); in roundToIntegral()
2336 IntegerConstant <<= semanticsPrecision(*semantics)-1; in roundToIntegral()
2337 IEEEFloat MagicConstant(*semantics); in roundToIntegral()
2365 assert(semantics == rhs.semantics); in compare()
2446 const fltSemantics &fromSemantics = *semantics; in convert()
2490 (category == fcNaN && semantics->nonFiniteBehavior != in convert()
2514 semantics = &toSemantics; in convert()
2525 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in convert()
2535 semantics->nanEncoding != fltNanEncoding::NegativeZero) in convert()
2542 if (!X86SpecialNan && semantics == &semX87DoubleExtended) in convert()
2543 APInt::tcSetBit(significandParts(), semantics->precision - 1); in convert()
2555 semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in convert()
2560 semantics->nanEncoding == fltNanEncoding::NegativeZero) { in convert()
2617 truncatedBits = semantics->precision -1U - exponent; in convertToSignExtendedInteger()
2627 if (bits < semantics->precision) { in convertToSignExtendedInteger()
2629 truncatedBits = semantics->precision - bits; in convertToSignExtendedInteger()
2633 APInt::tcExtract(parts.data(), dstPartsCount, src, semantics->precision, in convertToSignExtendedInteger()
2636 bits - semantics->precision); in convertToSignExtendedInteger()
2741 precision = semantics->precision; in convertFromUnsignedParts()
2899 expAdjustment += semantics->precision; in convertFromHexadecimalString()
2924 parts = partCountForBits(semantics->precision + 11); in roundSignificandWithExponent()
2934 excessPrecision = calcSemantics.precision - semantics->precision; in roundSignificandWithExponent()
2959 if (decSig.exponent < semantics->minExponent) { in roundSignificandWithExponent()
2960 excessPrecision += (semantics->minExponent - decSig.exponent); in roundSignificandWithExponent()
2987 exponent = (decSig.exponent + semantics->precision in roundSignificandWithExponent()
3034 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in convertFromDecimalString()
3048 8651 * (semantics->minExponent - (int) semantics->precision)) { in convertFromDecimalString()
3056 >= 12655 * semantics->maxExponent) { in convertFromDecimalString()
3311 valueBits = semantics->precision + 3; in convertNormalToHexString()
3398 Arg.semantics->precision); in hash_value()
3402 Arg.semantics->precision, Arg.exponent, in hash_value()
3418 assert(semantics == (const llvm::fltSemantics*)&semX87DoubleExtended); in convertF80LongDoubleAPFloatToAPInt()
3448 assert(semantics == (const llvm::fltSemantics *)&semPPCDoubleDoubleLegacy); in convertPPCDoubleDoubleAPFloatToAPInt()
3461 fltSemantics extendedSemantics = *semantics; in convertPPCDoubleDoubleAPFloatToAPInt()
3498 assert(semantics == &S); in convertIEEEFloatToAPInt()
3618 if (semantics == (const llvm::fltSemantics*)&semIEEEhalf) in bitcastToAPInt()
3621 if (semantics == (const llvm::fltSemantics *)&semBFloat) in bitcastToAPInt()
3624 if (semantics == (const llvm::fltSemantics*)&semIEEEsingle) in bitcastToAPInt()
3627 if (semantics == (const llvm::fltSemantics*)&semIEEEdouble) in bitcastToAPInt()
3630 if (semantics == (const llvm::fltSemantics*)&semIEEEquad) in bitcastToAPInt()
3633 if (semantics == (const llvm::fltSemantics *)&semPPCDoubleDoubleLegacy) in bitcastToAPInt()
3636 if (semantics == (const llvm::fltSemantics *)&semFloat8E5M2) in bitcastToAPInt()
3639 if (semantics == (const llvm::fltSemantics *)&semFloat8E5M2FNUZ) in bitcastToAPInt()
3642 if (semantics == (const llvm::fltSemantics *)&semFloat8E4M3FN) in bitcastToAPInt()
3645 if (semantics == (const llvm::fltSemantics *)&semFloat8E4M3FNUZ) in bitcastToAPInt()
3648 if (semantics == (const llvm::fltSemantics *)&semFloat8E4M3B11FNUZ) in bitcastToAPInt()
3651 if (semantics == (const llvm::fltSemantics *)&semFloatTF32) in bitcastToAPInt()
3654 assert(semantics == (const llvm::fltSemantics*)&semX87DoubleExtended && in bitcastToAPInt()
3660 assert(semantics == (const llvm::fltSemantics*)&semIEEEsingle && in convertToFloat()
3667 assert(semantics == (const llvm::fltSemantics*)&semIEEEdouble && in convertToDouble()
3903 exponent = semantics->maxExponent; in makeLargest()
3913 PartCount*integerPartWidth - semantics->precision; in makeLargest()
3918 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly && in makeLargest()
3919 semantics->nanEncoding == fltNanEncoding::AllOnes) in makeLargest()
3932 exponent = semantics->minExponent; in makeSmallest()
3945 exponent = semantics->minExponent; in makeSmallestNormalized()
3946 APInt::tcSetBit(significandParts(), semantics->precision - 1); in makeSmallestNormalized()
4081 int exp = exponent - ((int) semantics->precision - 1); in toString()
4083 semantics->precision, in toString()
4084 ArrayRef(significandParts(), partCountForBits(semantics->precision))); in toString()
4096 FormatPrecision = 2 + semantics->precision * 59 / 196; in toString()
4109 significand = significand.zext(semantics->precision + exp); in toString()
4124 unsigned precision = semantics->precision + (137 * texp + 136) / 59; in toString()
4273 if (significandLSB() != semantics->precision - 1) in getExactInverse()
4277 IEEEFloat reciprocal(*semantics, 1ULL); in getExactInverse()
4287 reciprocal.significandLSB() == reciprocal.semantics->precision - 1); in getExactInverse()
4290 *inv = APFloat(reciprocal, *semantics); in getExactInverse()
4300 const int PartCount = partCountForBits(semantics->precision); in getExactLog2Abs()
4309 if (exponent != semantics->minExponent) in getExactLog2Abs()
4316 return exponent - semantics->precision + CountrParts + in getExactLog2Abs()
4327 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) in isSignaling()
4332 return !APInt::tcExtractBit(significandParts(), semantics->precision - 2); in isSignaling()
4376 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in next()
4382 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in next()
4390 exponent = semantics->maxExponent + 1; in next()
4405 exponent != semantics->minExponent && isSignificandAllZeros(); in next()
4427 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
4444 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
4445 assert(exponent != semantics->maxExponent && in next()
4464 return ::exponentNaN(*semantics); in exponentNaN()
4468 return ::exponentInf(*semantics); in exponentInf()
4472 return ::exponentZero(*semantics); in exponentZero()
4476 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in makeInf()
4490 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) { in makeZero()
4500 if (semantics->nonFiniteBehavior != fltNonfiniteBehavior::NanOnly) in makeQuiet()
4501 APInt::tcSetBit(significandParts(), semantics->precision - 2); in makeQuiet()