Lines Matching refs:semantics
323 unsigned int APFloatBase::semanticsPrecision(const fltSemantics &semantics) { in semanticsPrecision() argument
324 return semantics.precision; in semanticsPrecision()
327 APFloatBase::semanticsMaxExponent(const fltSemantics &semantics) { in semanticsMaxExponent() argument
328 return semantics.maxExponent; in semanticsMaxExponent()
331 APFloatBase::semanticsMinExponent(const fltSemantics &semantics) { in semanticsMinExponent() argument
332 return semantics.minExponent; in semanticsMinExponent()
334 unsigned int APFloatBase::semanticsSizeInBits(const fltSemantics &semantics) { in semanticsSizeInBits() argument
335 return semantics.sizeInBits; in semanticsSizeInBits()
337 unsigned int APFloatBase::semanticsIntSizeInBits(const fltSemantics &semantics, in semanticsIntSizeInBits() argument
341 unsigned int MinBitWidth = semanticsMaxExponent(semantics) + 1; in semanticsIntSizeInBits()
367 exponentZero(const fltSemantics &semantics) { in exponentZero() argument
368 return semantics.minExponent - 1; in exponentZero()
372 exponentInf(const fltSemantics &semantics) { in exponentInf() argument
373 return semantics.maxExponent + 1; in exponentInf()
377 exponentNaN(const fltSemantics &semantics) { in exponentNaN() argument
378 if (semantics.nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in exponentNaN()
379 if (semantics.nanEncoding == fltNanEncoding::NegativeZero) in exponentNaN()
380 return exponentZero(semantics); in exponentNaN()
381 return semantics.maxExponent; in exponentNaN()
383 return semantics.maxExponent + 1; in exponentNaN()
879 semantics = ourSemantics; in initialize()
891 assert(semantics == rhs.semantics); in assign()
912 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::FiniteOnly) in makeNaN()
923 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in makeNaN()
927 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) { in makeNaN()
929 fill_storage = APInt::getZero(semantics->precision - 1); in makeNaN()
931 fill_storage = APInt::getAllOnes(semantics->precision - 1); in makeNaN()
944 unsigned bitsToPreserve = semantics->precision - 1; in makeNaN()
952 unsigned QNaNBit = semantics->precision - 2; in makeNaN()
963 } else if (semantics->nanEncoding == fltNanEncoding::NegativeZero) { in makeNaN()
974 if (semantics == &semX87DoubleExtended) in makeNaN()
980 if (semantics != rhs.semantics) { in operator =()
982 initialize(rhs.semantics); in operator =()
993 semantics = rhs.semantics; in operator =()
999 rhs.semantics = &semBogus; in operator =()
1004 return isFiniteNonZero() && (exponent == semantics->minExponent) && in isDenormal()
1006 semantics->precision - 1) == 0); in isDenormal()
1013 return isFiniteNonZero() && exponent == semantics->minExponent && in isSmallest()
1018 return getCategory() == fcNormal && exponent == semantics->minExponent && in isSmallestNormalized()
1026 const unsigned PartCount = partCountForBits(semantics->precision); in isSignificandAllOnes()
1033 PartCount*integerPartWidth - semantics->precision + 1; in isSignificandAllOnes()
1052 const unsigned PartCount = partCountForBits(semantics->precision); in isSignificandAllOnesExceptLSB()
1060 PartCount * integerPartWidth - semantics->precision + 1; in isSignificandAllOnesExceptLSB()
1075 const unsigned PartCount = partCountForBits(semantics->precision); in isSignificandAllZeros()
1083 PartCount*integerPartWidth - semantics->precision + 1; in isSignificandAllZeros()
1096 const unsigned PartCount = partCountForBits(semantics->precision); in isSignificandAllZerosExceptMSB()
1104 PartCount * integerPartWidth - semantics->precision + 1; in isSignificandAllZerosExceptMSB()
1110 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly && in isLargest()
1111 semantics->nanEncoding == fltNanEncoding::AllOnes) { in isLargest()
1115 return isFiniteNonZero() && exponent == semantics->maxExponent && in isLargest()
1120 return isFiniteNonZero() && exponent == semantics->maxExponent && in isLargest()
1136 if (semantics != rhs.semantics || in bitwiseIsEqual()
1171 initialize(rhs.semantics); in IEEEFloat()
1175 IEEEFloat::IEEEFloat(IEEEFloat &&rhs) : semantics(&semBogus) { in IEEEFloat()
1182 return partCountForBits(semantics->precision + 1); in partCount()
1217 assert(semantics == rhs.semantics); in addSignificand()
1231 assert(semantics == rhs.semantics); in subtractSignificand()
1251 assert(semantics == rhs.semantics); in multiplySignificand()
1253 precision = semantics->precision; in multiplySignificand()
1291 const fltSemantics *savedSemantics = semantics; in multiplySignificand()
1306 extendedSemantics = *semantics; in multiplySignificand()
1313 semantics = &extendedSemantics; in multiplySignificand()
1336 semantics = savedSemantics; in multiplySignificand()
1374 return multiplySignificand(rhs, IEEEFloat(*semantics)); in multiplySignificand()
1385 assert(semantics == rhs.semantics); in divideSignificand()
1407 unsigned int precision = semantics->precision; in divideSignificand()
1480 assert(bits < semantics->precision); in shiftSignificandLeft()
1496 assert(semantics == rhs.semantics); in compareAbsoluteValue()
1536 if (semantics->nonFiniteBehavior != fltNonfiniteBehavior::FiniteOnly) { in handleOverflow()
1542 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) in handleOverflow()
1552 exponent = semantics->maxExponent; in handleOverflow()
1554 semantics->precision); in handleOverflow()
1555 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly && in handleOverflow()
1556 semantics->nanEncoding == fltNanEncoding::AllOnes) in handleOverflow()
1620 exponentChange = omsb - semantics->precision; in normalize()
1624 if (exponent + exponentChange > semantics->maxExponent) in normalize()
1629 if (exponent + exponentChange < semantics->minExponent) in normalize()
1630 exponentChange = semantics->minExponent - exponent; in normalize()
1659 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly && in normalize()
1660 semantics->nanEncoding == fltNanEncoding::AllOnes && in normalize()
1661 exponent == semantics->maxExponent && isSignificandAllOnes()) in normalize()
1673 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in normalize()
1683 exponent = semantics->minExponent; in normalize()
1689 if (omsb == (unsigned) semantics->precision + 1) { in normalize()
1693 if (exponent == semantics->maxExponent) in normalize()
1707 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly && in normalize()
1708 semantics->nanEncoding == fltNanEncoding::AllOnes && in normalize()
1709 exponent == semantics->maxExponent && isSignificandAllOnes()) in normalize()
1715 if (omsb == semantics->precision) in normalize()
1719 assert(omsb < semantics->precision); in normalize()
1724 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in normalize()
1934 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) in divideSpecials()
2030 if (semantics->nanEncoding == fltNanEncoding::NegativeZero && in changeSign()
2063 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in addOrSubtract()
2090 if (isZero() && semantics->nanEncoding == fltNanEncoding::NegativeZero) in multiply()
2110 if (isZero() && semantics->nanEncoding == fltNanEncoding::NegativeZero) in divide()
2184 fltSemantics extendedSemantics = *semantics; in remainder()
2222 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in remainder()
2253 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in mod()
2285 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in fusedMultiplyAdd()
2357 if (exponent+1 >= (int)semanticsPrecision(*semantics)) in roundToIntegral()
2366 APInt IntegerConstant(NextPowerOf2(semanticsPrecision(*semantics)), 1); in roundToIntegral()
2367 IntegerConstant <<= semanticsPrecision(*semantics)-1; in roundToIntegral()
2368 IEEEFloat MagicConstant(*semantics); in roundToIntegral()
2396 assert(semantics == rhs.semantics); in compare()
2477 const fltSemantics &fromSemantics = *semantics; in convert()
2521 (category == fcNaN && semantics->nonFiniteBehavior != in convert()
2545 semantics = &toSemantics; in convert()
2556 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in convert()
2566 semantics->nanEncoding != fltNanEncoding::NegativeZero) in convert()
2573 if (!X86SpecialNan && semantics == &semX87DoubleExtended) in convert()
2574 APInt::tcSetBit(significandParts(), semantics->precision - 1); in convert()
2586 semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in convert()
2591 semantics->nanEncoding == fltNanEncoding::NegativeZero) { in convert()
2648 truncatedBits = semantics->precision -1U - exponent; in convertToSignExtendedInteger()
2658 if (bits < semantics->precision) { in convertToSignExtendedInteger()
2660 truncatedBits = semantics->precision - bits; in convertToSignExtendedInteger()
2664 APInt::tcExtract(parts.data(), dstPartsCount, src, semantics->precision, in convertToSignExtendedInteger()
2667 bits - semantics->precision); in convertToSignExtendedInteger()
2772 precision = semantics->precision; in convertFromUnsignedParts()
2930 expAdjustment += semantics->precision; in convertFromHexadecimalString()
2955 parts = partCountForBits(semantics->precision + 11); in roundSignificandWithExponent()
2965 excessPrecision = calcSemantics.precision - semantics->precision; in roundSignificandWithExponent()
2990 if (decSig.exponent < semantics->minExponent) { in roundSignificandWithExponent()
2991 excessPrecision += (semantics->minExponent - decSig.exponent); in roundSignificandWithExponent()
3018 exponent = (decSig.exponent + semantics->precision in roundSignificandWithExponent()
3065 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in convertFromDecimalString()
3079 8651 * (semantics->minExponent - (int) semantics->precision)) { in convertFromDecimalString()
3087 >= 12655 * semantics->maxExponent) { in convertFromDecimalString()
3342 valueBits = semantics->precision + 3; in convertNormalToHexString()
3429 Arg.semantics->precision); in hash_value()
3433 Arg.semantics->precision, Arg.exponent, in hash_value()
3449 assert(semantics == (const llvm::fltSemantics*)&semX87DoubleExtended); in convertF80LongDoubleAPFloatToAPInt()
3479 assert(semantics == (const llvm::fltSemantics *)&semPPCDoubleDoubleLegacy); in convertPPCDoubleDoubleAPFloatToAPInt()
3492 fltSemantics extendedSemantics = *semantics; in convertPPCDoubleDoubleAPFloatToAPInt()
3529 assert(semantics == &S); in convertIEEEFloatToAPInt()
3671 if (semantics == (const llvm::fltSemantics*)&semIEEEhalf) in bitcastToAPInt()
3674 if (semantics == (const llvm::fltSemantics *)&semBFloat) in bitcastToAPInt()
3677 if (semantics == (const llvm::fltSemantics*)&semIEEEsingle) in bitcastToAPInt()
3680 if (semantics == (const llvm::fltSemantics*)&semIEEEdouble) in bitcastToAPInt()
3683 if (semantics == (const llvm::fltSemantics*)&semIEEEquad) in bitcastToAPInt()
3686 if (semantics == (const llvm::fltSemantics *)&semPPCDoubleDoubleLegacy) in bitcastToAPInt()
3689 if (semantics == (const llvm::fltSemantics *)&semFloat8E5M2) in bitcastToAPInt()
3692 if (semantics == (const llvm::fltSemantics *)&semFloat8E5M2FNUZ) in bitcastToAPInt()
3695 if (semantics == (const llvm::fltSemantics *)&semFloat8E4M3) in bitcastToAPInt()
3698 if (semantics == (const llvm::fltSemantics *)&semFloat8E4M3FN) in bitcastToAPInt()
3701 if (semantics == (const llvm::fltSemantics *)&semFloat8E4M3FNUZ) in bitcastToAPInt()
3704 if (semantics == (const llvm::fltSemantics *)&semFloat8E4M3B11FNUZ) in bitcastToAPInt()
3707 if (semantics == (const llvm::fltSemantics *)&semFloatTF32) in bitcastToAPInt()
3710 if (semantics == (const llvm::fltSemantics *)&semFloat6E3M2FN) in bitcastToAPInt()
3713 if (semantics == (const llvm::fltSemantics *)&semFloat6E2M3FN) in bitcastToAPInt()
3716 if (semantics == (const llvm::fltSemantics *)&semFloat4E2M1FN) in bitcastToAPInt()
3719 assert(semantics == (const llvm::fltSemantics*)&semX87DoubleExtended && in bitcastToAPInt()
3725 assert(semantics == (const llvm::fltSemantics*)&semIEEEsingle && in convertToFloat()
3732 assert(semantics == (const llvm::fltSemantics*)&semIEEEdouble && in convertToDouble()
3740 assert(semantics == (const llvm::fltSemantics *)&semIEEEquad && in convertToQuad()
4001 exponent = semantics->maxExponent; in makeLargest()
4011 PartCount*integerPartWidth - semantics->precision; in makeLargest()
4016 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly && in makeLargest()
4017 semantics->nanEncoding == fltNanEncoding::AllOnes) in makeLargest()
4030 exponent = semantics->minExponent; in makeSmallest()
4043 exponent = semantics->minExponent; in makeSmallestNormalized()
4044 APInt::tcSetBit(significandParts(), semantics->precision - 1); in makeSmallestNormalized()
4369 int exp = exponent - ((int) semantics->precision - 1); in toString()
4371 semantics->precision, in toString()
4372 ArrayRef(significandParts(), partCountForBits(semantics->precision))); in toString()
4386 if (significandLSB() != semantics->precision - 1) in getExactInverse()
4390 IEEEFloat reciprocal(*semantics, 1ULL); in getExactInverse()
4400 reciprocal.significandLSB() == reciprocal.semantics->precision - 1); in getExactInverse()
4403 *inv = APFloat(reciprocal, *semantics); in getExactInverse()
4413 const int PartCount = partCountForBits(semantics->precision); in getExactLog2Abs()
4422 if (exponent != semantics->minExponent) in getExactLog2Abs()
4429 return exponent - semantics->precision + CountrParts + in getExactLog2Abs()
4440 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly || in isSignaling()
4441 semantics->nonFiniteBehavior == fltNonfiniteBehavior::FiniteOnly) in isSignaling()
4446 return !APInt::tcExtractBit(significandParts(), semantics->precision - 2); in isSignaling()
4490 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) in next()
4496 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in next()
4500 } else if (semantics->nonFiniteBehavior == in next()
4508 exponent = semantics->maxExponent + 1; in next()
4523 exponent != semantics->minExponent && isSignificandAllZeros(); in next()
4545 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
4562 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
4563 assert(exponent != semantics->maxExponent && in next()
4582 return ::exponentNaN(*semantics); in exponentNaN()
4586 return ::exponentInf(*semantics); in exponentInf()
4590 return ::exponentZero(*semantics); in exponentZero()
4594 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::FiniteOnly) in makeInf()
4597 if (semantics->nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) { in makeInf()
4611 if (semantics->nanEncoding == fltNanEncoding::NegativeZero) { in makeZero()
4621 if (semantics->nonFiniteBehavior != fltNonfiniteBehavior::NanOnly) in makeQuiet()
4622 APInt::tcSetBit(significandParts(), semantics->precision - 2); in makeQuiet()