• Home
  • Raw
  • Download

Lines Matching full:semantics

43   /* Represents floating point arithmetic semantics.  */
57 /* Number of bits actually used in the semantics. */
585 semantics = ourSemantics; in initialize()
601 assert(semantics == rhs.semantics); in assign()
639 unsigned bitsToPreserve = semantics->precision - 1; in makeNaN()
647 unsigned QNaNBit = semantics->precision - 2; in makeNaN()
666 if (semantics == &APFloat::x87DoubleExtended) in makeNaN()
681 if (semantics != rhs.semantics) { in operator =()
683 initialize(rhs.semantics); in operator =()
695 semantics = rhs.semantics; in operator =()
701 rhs.semantics = &Bogus; in operator =()
707 return isFiniteNonZero() && (exponent == semantics->minExponent) && in isDenormal()
709 semantics->precision - 1) == 0); in isDenormal()
717 return isFiniteNonZero() && exponent == semantics->minExponent && in isSmallest()
732 PartCount*integerPartWidth - semantics->precision + 1; in isSignificandAllOnes()
754 PartCount*integerPartWidth - semantics->precision + 1; in isSignificandAllZeros()
769 return isFiniteNonZero() && exponent == semantics->maxExponent in isLargest()
786 if (semantics != rhs.semantics || in bitwiseIsEqual()
827 initialize(rhs.semantics); in APFloat()
831 APFloat::APFloat(APFloat &&rhs) : semantics(&Bogus) { in APFloat()
848 return partCountForBits(semantics->precision + 1); in partCount()
852 APFloat::semanticsPrecision(const fltSemantics &semantics) in semanticsPrecision() argument
854 return semantics.precision; in semanticsPrecision()
857 APFloat::semanticsMaxExponent(const fltSemantics &semantics) in semanticsMaxExponent() argument
859 return semantics.maxExponent; in semanticsMaxExponent()
862 APFloat::semanticsMinExponent(const fltSemantics &semantics) in semanticsMinExponent() argument
864 return semantics.minExponent; in semanticsMinExponent()
867 APFloat::semanticsSizeInBits(const fltSemantics &semantics) in semanticsSizeInBits() argument
869 return semantics.sizeInBits; in semanticsSizeInBits()
914 assert(semantics == rhs.semantics); in addSignificand()
929 assert(semantics == rhs.semantics); in subtractSignificand()
950 assert(semantics == rhs.semantics); in multiplySignificand()
952 precision = semantics->precision; in multiplySignificand()
990 const fltSemantics *savedSemantics = semantics; in multiplySignificand()
1004 /* Create new semantics. */ in multiplySignificand()
1005 extendedSemantics = *semantics; in multiplySignificand()
1012 semantics = &extendedSemantics; in multiplySignificand()
1032 semantics = savedSemantics; in multiplySignificand()
1078 assert(semantics == rhs.semantics); in divideSignificand()
1100 unsigned int precision = semantics->precision; in divideSignificand()
1181 assert(bits < semantics->precision); in shiftSignificandLeft()
1198 assert(semantics == rhs.semantics); in compareAbsoluteValue()
1234 exponent = semantics->maxExponent; in handleOverflow()
1236 semantics->precision); in handleOverflow()
1300 exponentChange = omsb - semantics->precision; in normalize()
1304 if (exponent + exponentChange > semantics->maxExponent) in normalize()
1309 if (exponent + exponentChange < semantics->minExponent) in normalize()
1310 exponentChange = semantics->minExponent - exponent; in normalize()
1353 exponent = semantics->minExponent; in normalize()
1359 if (omsb == (unsigned) semantics->precision + 1) { in normalize()
1363 if (exponent == semantics->maxExponent) { in normalize()
1377 if (omsb == semantics->precision) in normalize()
1381 assert(omsb < semantics->precision); in normalize()
1876 if (isFiniteNonZero() && exponent+1 >= (int)semanticsPrecision(*semantics)) in roundToIntegral()
1885 APInt IntegerConstant(NextPowerOf2(semanticsPrecision(*semantics)), 1); in roundToIntegral()
1886 IntegerConstant <<= semanticsPrecision(*semantics)-1; in roundToIntegral()
1887 APFloat MagicConstant(*semantics); in roundToIntegral()
1918 assert(semantics == rhs.semantics); in compare()
2000 const fltSemantics &fromSemantics = *semantics; in convert()
2017 // If this is a truncation of a denormal number, and the target semantics in convert()
2018 // has larger exponent range than the source semantics (this can happen in convert()
2057 // Now that we have the right storage, switch the semantics. in convert()
2058 semantics = &toSemantics; in convert()
2073 if (!X86SpecialNan && semantics == &APFloat::x87DoubleExtended) in convert()
2074 APInt::tcSetBit(significandParts(), semantics->precision - 1); in convert()
2133 truncatedBits = semantics->precision -1U - exponent; in convertToSignExtendedInteger()
2143 if (bits < semantics->precision) { in convertToSignExtendedInteger()
2144 /* We truncate (semantics->precision - bits) bits. */ in convertToSignExtendedInteger()
2145 truncatedBits = semantics->precision - bits; in convertToSignExtendedInteger()
2149 APInt::tcExtract(parts, dstPartsCount, src, semantics->precision, 0); in convertToSignExtendedInteger()
2150 APInt::tcShiftLeft(parts, dstPartsCount, bits - semantics->precision); in convertToSignExtendedInteger()
2274 precision = semantics->precision; in convertFromUnsignedParts()
2427 expAdjustment += semantics->precision; in convertFromHexadecimalString()
2450 parts = partCountForBits(semantics->precision + 11); in roundSignificandWithExponent()
2460 excessPrecision = calcSemantics.precision - semantics->precision; in roundSignificandWithExponent()
2484 if (decSig.exponent < semantics->minExponent) { in roundSignificandWithExponent()
2485 excessPrecision += (semantics->minExponent - decSig.exponent); in roundSignificandWithExponent()
2512 exponent = (decSig.exponent + semantics->precision in roundSignificandWithExponent()
2571 8651 * (semantics->minExponent - (int) semantics->precision)) { in convertFromDecimalString()
2579 >= 12655 * semantics->maxExponent) { in convertFromDecimalString()
2787 valueBits = semantics->precision + 3; in convertNormalToHexString()
2874 Arg.semantics->precision); in hash_value()
2878 Arg.semantics->precision, Arg.exponent, in hash_value()
2896 assert(semantics == (const llvm::fltSemantics*)&x87DoubleExtended); in convertF80LongDoubleAPFloatToAPInt()
2928 assert(semantics == (const llvm::fltSemantics*)&PPCDoubleDouble); in convertPPCDoubleDoubleAPFloatToAPInt()
2941 fltSemantics extendedSemantics = *semantics; in convertPPCDoubleDoubleAPFloatToAPInt()
2979 assert(semantics == (const llvm::fltSemantics*)&IEEEquad); in convertQuadrupleAPFloatToAPInt()
3015 assert(semantics == (const llvm::fltSemantics*)&IEEEdouble); in convertDoubleAPFloatToAPInt()
3045 assert(semantics == (const llvm::fltSemantics*)&IEEEsingle); in convertFloatAPFloatToAPInt()
3074 assert(semantics == (const llvm::fltSemantics*)&IEEEhalf); in convertHalfAPFloatToAPInt()
3107 if (semantics == (const llvm::fltSemantics*)&IEEEhalf) in bitcastToAPInt()
3110 if (semantics == (const llvm::fltSemantics*)&IEEEsingle) in bitcastToAPInt()
3113 if (semantics == (const llvm::fltSemantics*)&IEEEdouble) in bitcastToAPInt()
3116 if (semantics == (const llvm::fltSemantics*)&IEEEquad) in bitcastToAPInt()
3119 if (semantics == (const llvm::fltSemantics*)&PPCDoubleDouble) in bitcastToAPInt()
3122 assert(semantics == (const llvm::fltSemantics*)&x87DoubleExtended && in bitcastToAPInt()
3130 assert(semantics == (const llvm::fltSemantics*)&IEEEsingle && in convertToFloat()
3131 "Float semantics are not IEEEsingle"); in convertToFloat()
3139 assert(semantics == (const llvm::fltSemantics*)&IEEEdouble && in convertToDouble()
3140 "Float semantics are not IEEEdouble"); in convertToDouble()
3400 /// semantics.
3408 exponent = semantics->maxExponent; in makeLargest()
3418 PartCount*integerPartWidth - semantics->precision; in makeLargest()
3425 /// semantics.
3433 exponent = semantics->minExponent; in makeSmallest()
3602 int exp = exponent - ((int) semantics->precision - 1); in toString()
3603 APInt significand(semantics->precision, in toString()
3605 partCountForBits(semantics->precision))); in toString()
3617 FormatPrecision = 2 + semantics->precision * 59 / 196; in toString()
3630 significand = significand.zext(semantics->precision + exp); in toString()
3642 // <= semantics->precision + e * 137 / 59 in toString()
3645 unsigned precision = semantics->precision + (137 * texp + 136) / 59; in toString()
3782 if (significandLSB() != semantics->precision - 1) in getExactInverse()
3786 APFloat reciprocal(*semantics, 1ULL); in getExactInverse()
3796 reciprocal.significandLSB() == reciprocal.semantics->precision - 1); in getExactInverse()
3810 return !APInt::tcExtractBit(significandParts(), semantics->precision - 2); in isSignaling()
3861 exponent = semantics->maxExponent + 1; in next()
3871 // 1. exponent != semantics->minExponent. This implies we are not in the in next()
3875 exponent != semantics->minExponent && isSignificandAllZeros(); in next()
3897 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
3914 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
3915 assert(exponent != semantics->maxExponent && in next()
3917 " by the given floating point semantics."); in next()
3937 exponent = semantics->maxExponent + 1; in makeInf()
3945 exponent = semantics->minExponent-1; in makeZero()
3951 APInt::tcSetBit(significandParts(), semantics->precision - 2); in makeQuiet()