Lines Matching refs:APInt
425 lsb = APInt::tcLSB(parts, partCount); in lostFractionThroughTruncation()
433 APInt::tcExtractBit(parts, bits - 1)) in lostFractionThroughTruncation()
447 APInt::tcShiftRight(dst, parts, bits); in shiftRight()
561 APInt::tcFullMultiply(pow5, pow5 - pc, pow5 - pc, pc, pc); in powerOf5()
571 APInt::tcFullMultiply(p2, p1, pow5, result, pc); in powerOf5()
587 APInt::tcAssign(dst, p1, result); in powerOf5()
682 APInt::tcAssign(significandParts(), rhs.significandParts(), in copySignificand()
689 void IEEEFloat::makeNaN(bool SNaN, bool Negative, const APInt *fill) { in makeNaN()
698 APInt::tcSet(significand, 0, numParts); in makeNaN()
700 APInt::tcAssign(significand, fill->getRawData(), in makeNaN()
716 APInt::tcClearBit(significand, QNaNBit); in makeNaN()
721 if (APInt::tcIsZero(significand, numParts)) in makeNaN()
722 APInt::tcSetBit(significand, QNaNBit - 1); in makeNaN()
725 APInt::tcSetBit(significand, QNaNBit); in makeNaN()
732 APInt::tcSetBit(significand, QNaNBit + 1); in makeNaN()
762 (APInt::tcExtractBit(significandParts(), in isDenormal()
898 APInt::tcSet(significandParts(), 0, partCount()); in zeroSignificand()
905 carry = APInt::tcIncrement(significandParts(), partCount()); in incrementSignificand()
921 return APInt::tcAdd(parts, rhs.significandParts(), 0, partCount()); in addSignificand()
935 return APInt::tcSubtract(parts, rhs.significandParts(), borrow, in subtractSignificand()
968 APInt::tcFullMultiply(fullSignificand, lhsSignificand, in multiplySignificand()
972 omsb = APInt::tcMSB(fullSignificand, newPartsCount) + 1; in multiplySignificand()
1001 APInt::tcShiftLeft(fullSignificand, newPartsCount, in multiplySignificand()
1036 omsb = APInt::tcMSB(fullSignificand, newPartsCount) + 1; in multiplySignificand()
1063 APInt::tcAssign(lhsSignificand, fullSignificand, partsCount); in multiplySignificand()
1104 bit = precision - APInt::tcMSB(divisor, partsCount) - 1; in divideSignificand()
1107 APInt::tcShiftLeft(divisor, partsCount, bit); in divideSignificand()
1111 bit = precision - APInt::tcMSB(dividend, partsCount) - 1; in divideSignificand()
1114 APInt::tcShiftLeft(dividend, partsCount, bit); in divideSignificand()
1120 if (APInt::tcCompare(dividend, divisor, partsCount) < 0) { in divideSignificand()
1122 APInt::tcShiftLeft(dividend, partsCount, 1); in divideSignificand()
1123 assert(APInt::tcCompare(dividend, divisor, partsCount) >= 0); in divideSignificand()
1128 if (APInt::tcCompare(dividend, divisor, partsCount) >= 0) { in divideSignificand()
1129 APInt::tcSubtract(dividend, divisor, 0, partsCount); in divideSignificand()
1130 APInt::tcSetBit(lhsSignificand, bit - 1); in divideSignificand()
1133 APInt::tcShiftLeft(dividend, partsCount, 1); in divideSignificand()
1137 int cmp = APInt::tcCompare(dividend, divisor, partsCount); in divideSignificand()
1143 else if (APInt::tcIsZero(dividend, partsCount)) in divideSignificand()
1155 return APInt::tcMSB(significandParts(), partCount()); in significandMSB()
1159 return APInt::tcLSB(significandParts(), partCount()); in significandLSB()
1179 APInt::tcShiftLeft(significandParts(), partsCount, bits); in shiftSignificandLeft()
1182 assert(!APInt::tcIsZero(significandParts(), partsCount)); in shiftSignificandLeft()
1199 compare = APInt::tcCompare(significandParts(), rhs.significandParts(), in compareAbsoluteValue()
1225 APInt::tcSetLeastSignificantBits(significandParts(), partCount(), in handleOverflow()
1255 return APInt::tcExtractBit(significandParts(), bit); in roundAwayFromZero()
1823 APInt IntegerConstant(NextPowerOf2(semanticsPrecision(*semantics)), 1); in roundToIntegral()
1978 APInt::tcSet(newParts, 0, newPartCount); in convert()
1980 APInt::tcAssign(newParts, significandParts(), oldPartCount); in convert()
1998 APInt::tcShiftLeft(significandParts(), newPartCount, shift); in convert()
2009 APInt::tcSetBit(significandParts(), semantics->precision - 1); in convert()
2051 APInt::tcSet(parts.data(), 0, dstPartsCount); in convertToSignExtendedInteger()
2063 APInt::tcSet(parts.data(), 0, dstPartsCount); in convertToSignExtendedInteger()
2079 APInt::tcExtract(parts.data(), dstPartsCount, src, bits, truncatedBits); in convertToSignExtendedInteger()
2082 APInt::tcExtract(parts.data(), dstPartsCount, src, semantics->precision, in convertToSignExtendedInteger()
2084 APInt::tcShiftLeft(parts.data(), dstPartsCount, in convertToSignExtendedInteger()
2097 if (APInt::tcIncrement(parts.data(), dstPartsCount)) in convertToSignExtendedInteger()
2105 unsigned int omsb = APInt::tcMSB(parts.data(), dstPartsCount) + 1; in convertToSignExtendedInteger()
2117 APInt::tcLSB(parts.data(), dstPartsCount) + 1 != omsb) in convertToSignExtendedInteger()
2125 APInt::tcNegate (parts.data(), dstPartsCount); in convertToSignExtendedInteger()
2169 APInt::tcSetLeastSignificantBits(parts.data(), dstPartsCount, bits); in convertToInteger()
2171 APInt::tcShiftLeft(parts.data(), dstPartsCount, width - 1); in convertToInteger()
2187 omsb = APInt::tcMSB(src, srcCount) + 1; in convertFromUnsignedParts()
2198 APInt::tcExtract(dst, dstCount, src, precision, omsb - precision); in convertFromUnsignedParts()
2202 APInt::tcExtract(dst, dstCount, src, omsb, 0); in convertFromUnsignedParts()
2208 IEEEFloat::opStatus IEEEFloat::convertFromAPInt(const APInt &Val, bool isSigned, in convertFromAPInt()
2211 APInt api = Val; in convertFromAPInt()
2232 APInt::tcExtractBit(src, srcCount * integerPartWidth - 1)) { in convertFromSignExtendedInteger()
2238 APInt::tcAssign(copy, src, srcCount); in convertFromSignExtendedInteger()
2239 APInt::tcNegate(copy, srcCount); in convertFromSignExtendedInteger()
2256 APInt api = APInt(width, makeArrayRef(parts, partCount)); in convertFromZeroExtendedInteger()
2259 if (isSigned && APInt::tcExtractBit(parts, width - 1)) { in convertFromZeroExtendedInteger()
2406 assert(APInt::tcExtractBit in roundSignificandWithExponent()
2416 APInt::tcExtract(significandParts(), partCount(), decSig.significandParts(), in roundSignificandWithExponent()
2530 APInt::tcMultiplyPart(decSignificand, decSignificand, multiplier, val, in convertFromDecimalString()
2797 APInt IEEEFloat::convertF80LongDoubleAPFloatToAPInt() const { in convertF80LongDoubleAPFloatToAPInt()
2824 return APInt(80, words); in convertF80LongDoubleAPFloatToAPInt()
2827 APInt IEEEFloat::convertPPCDoubleDoubleAPFloatToAPInt() const { in convertPPCDoubleDoubleAPFloatToAPInt()
2873 return APInt(128, words); in convertPPCDoubleDoubleAPFloatToAPInt()
2876 APInt IEEEFloat::convertQuadrupleAPFloatToAPInt() const { in convertQuadrupleAPFloatToAPInt()
2907 return APInt(128, words); in convertQuadrupleAPFloatToAPInt()
2910 APInt IEEEFloat::convertDoubleAPFloatToAPInt() const { in convertDoubleAPFloatToAPInt()
2933 return APInt(64, ((((uint64_t)(sign & 1) << 63) | in convertDoubleAPFloatToAPInt()
2938 APInt IEEEFloat::convertFloatAPFloatToAPInt() const { in convertFloatAPFloatToAPInt()
2961 return APInt(32, (((sign&1) << 31) | ((myexponent&0xff) << 23) | in convertFloatAPFloatToAPInt()
2965 APInt IEEEFloat::convertHalfAPFloatToAPInt() const { in convertHalfAPFloatToAPInt()
2988 return APInt(16, (((sign&1) << 15) | ((myexponent&0x1f) << 10) | in convertHalfAPFloatToAPInt()
2996 APInt IEEEFloat::bitcastToAPInt() const { in bitcastToAPInt()
3020 APInt api = bitcastToAPInt(); in convertToFloat()
3027 APInt api = bitcastToAPInt(); in convertToDouble()
3038 void IEEEFloat::initFromF80LongDoubleAPInt(const APInt &api) { in initFromF80LongDoubleAPInt()
3072 void IEEEFloat::initFromPPCDoubleDoubleAPInt(const APInt &api) { in initFromPPCDoubleDoubleAPInt()
3080 initFromDoubleAPInt(APInt(64, i1)); in initFromPPCDoubleDoubleAPInt()
3087 IEEEFloat v(semIEEEdouble, APInt(64, i2)); in initFromPPCDoubleDoubleAPInt()
3096 void IEEEFloat::initFromQuadrupleAPInt(const APInt &api) { in initFromQuadrupleAPInt()
3134 void IEEEFloat::initFromDoubleAPInt(const APInt &api) { in initFromDoubleAPInt()
3165 void IEEEFloat::initFromFloatAPInt(const APInt &api) { in initFromFloatAPInt()
3196 void IEEEFloat::initFromHalfAPInt(const APInt &api) { in initFromHalfAPInt()
3231 void IEEEFloat::initFromAPInt(const fltSemantics *Sem, const APInt &api) { in initFromAPInt()
3283 APInt::tcSet(significandParts(), 1, partCount()); in makeSmallest()
3300 IEEEFloat::IEEEFloat(const fltSemantics &Sem, const APInt &API) { in IEEEFloat()
3305 initFromAPInt(&semIEEEsingle, APInt::floatToBits(f)); in IEEEFloat()
3309 initFromAPInt(&semIEEEdouble, APInt::doubleToBits(d)); in IEEEFloat()
3319 void AdjustToPrecision(APInt &significand, in AdjustToPrecision()
3333 APInt divisor(significand.getBitWidth(), 1); in AdjustToPrecision()
3334 APInt powten(significand.getBitWidth(), 10); in AdjustToPrecision()
3433 APInt significand(semantics->precision, in toString()
3480 APInt five_to_the_i(precision, 5); in toString()
3496 APInt ten(precision, 10); in toString()
3497 APInt digit(precision, 0); in toString()
3503 APInt::udivrem(significand, ten, significand, digit); in toString()
3647 return !APInt::tcExtractBit(significandParts(), semantics->precision - 2); in isSignaling()
3688 APInt::tcSet(significandParts(), 0, partCount()); in next()
3696 APInt::tcSet(significandParts(), 0, partCount()); in next()
3728 APInt::tcDecrement(Parts, partCount()); in next()
3734 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
3750 APInt::tcSet(Parts, 0, partCount()); in next()
3751 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
3774 APInt::tcSet(significandParts(), 0, partCount()); in makeInf()
3781 APInt::tcSet(significandParts(), 0, partCount()); in makeZero()
3786 APInt::tcSetBit(significandParts(), semantics->precision - 2); in makeQuiet()
3866 DoubleAPFloat::DoubleAPFloat(const fltSemantics &S, const APInt &I) in DoubleAPFloat()
3869 APFloat(semIEEEdouble, APInt(64, I.getRawData()[0])), in DoubleAPFloat()
3870 APFloat(semIEEEdouble, APInt(64, I.getRawData()[1]))}) { in DoubleAPFloat()
4227 Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x7fefffffffffffffull)); in makeLargest()
4228 Floats[1] = APFloat(semIEEEdouble, APInt(64, 0x7c8ffffffffffffeull)); in makeLargest()
4241 Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x0360000000000000ull)); in makeSmallestNormalized()
4247 void DoubleAPFloat::makeNaN(bool SNaN, bool Neg, const APInt *fill) { in makeNaN()
4271 APInt DoubleAPFloat::bitcastToAPInt() const { in bitcastToAPInt()
4277 return APInt(128, 2, Data); in bitcastToAPInt()
4306 APFloat::opStatus DoubleAPFloat::convertFromAPInt(const APInt &Input, in convertFromAPInt()
4473 return APFloat(semIEEEhalf, APInt::getAllOnesValue(BitWidth)); in getAllOnesValue()
4475 return APFloat(semIEEEsingle, APInt::getAllOnesValue(BitWidth)); in getAllOnesValue()
4477 return APFloat(semIEEEdouble, APInt::getAllOnesValue(BitWidth)); in getAllOnesValue()
4479 return APFloat(semX87DoubleExtended, APInt::getAllOnesValue(BitWidth)); in getAllOnesValue()
4481 return APFloat(semIEEEquad, APInt::getAllOnesValue(BitWidth)); in getAllOnesValue()
4487 return APFloat(semPPCDoubleDouble, APInt::getAllOnesValue(BitWidth)); in getAllOnesValue()
4517 result = APInt(bitWidth, parts); in convertToInteger()