Lines Matching refs:APInt
498 lsb = APInt::tcLSB(parts, partCount); in lostFractionThroughTruncation()
506 APInt::tcExtractBit(parts, bits - 1)) in lostFractionThroughTruncation()
520 APInt::tcShiftRight(dst, parts, bits); in shiftRight()
634 APInt::tcFullMultiply(pow5, pow5 - pc, pow5 - pc, pc, pc); in powerOf5()
644 APInt::tcFullMultiply(p2, p1, pow5, result, pc); in powerOf5()
660 APInt::tcAssign(dst, p1, result); in powerOf5()
755 APInt::tcAssign(significandParts(), rhs.significandParts(), in copySignificand()
762 void IEEEFloat::makeNaN(bool SNaN, bool Negative, const APInt *fill) { in makeNaN()
772 APInt::tcSet(significand, 0, numParts); in makeNaN()
774 APInt::tcAssign(significand, fill->getRawData(), in makeNaN()
790 APInt::tcClearBit(significand, QNaNBit); in makeNaN()
795 if (APInt::tcIsZero(significand, numParts)) in makeNaN()
796 APInt::tcSetBit(significand, QNaNBit - 1); in makeNaN()
799 APInt::tcSetBit(significand, QNaNBit); in makeNaN()
806 APInt::tcSetBit(significand, QNaNBit + 1); in makeNaN()
836 (APInt::tcExtractBit(significandParts(), in isDenormal()
972 APInt::tcSet(significandParts(), 0, partCount()); in zeroSignificand()
979 carry = APInt::tcIncrement(significandParts(), partCount()); in incrementSignificand()
995 return APInt::tcAdd(parts, rhs.significandParts(), 0, partCount()); in addSignificand()
1009 return APInt::tcSubtract(parts, rhs.significandParts(), borrow, in subtractSignificand()
1042 APInt::tcFullMultiply(fullSignificand, lhsSignificand, in multiplySignificand()
1046 omsb = APInt::tcMSB(fullSignificand, newPartsCount) + 1; in multiplySignificand()
1075 APInt::tcShiftLeft(fullSignificand, newPartsCount, in multiplySignificand()
1113 omsb = APInt::tcMSB(fullSignificand, newPartsCount) + 1; in multiplySignificand()
1140 APInt::tcAssign(lhsSignificand, fullSignificand, partsCount); in multiplySignificand()
1185 bit = precision - APInt::tcMSB(divisor, partsCount) - 1; in divideSignificand()
1188 APInt::tcShiftLeft(divisor, partsCount, bit); in divideSignificand()
1192 bit = precision - APInt::tcMSB(dividend, partsCount) - 1; in divideSignificand()
1195 APInt::tcShiftLeft(dividend, partsCount, bit); in divideSignificand()
1201 if (APInt::tcCompare(dividend, divisor, partsCount) < 0) { in divideSignificand()
1203 APInt::tcShiftLeft(dividend, partsCount, 1); in divideSignificand()
1204 assert(APInt::tcCompare(dividend, divisor, partsCount) >= 0); in divideSignificand()
1209 if (APInt::tcCompare(dividend, divisor, partsCount) >= 0) { in divideSignificand()
1210 APInt::tcSubtract(dividend, divisor, 0, partsCount); in divideSignificand()
1211 APInt::tcSetBit(lhsSignificand, bit - 1); in divideSignificand()
1214 APInt::tcShiftLeft(dividend, partsCount, 1); in divideSignificand()
1218 int cmp = APInt::tcCompare(dividend, divisor, partsCount); in divideSignificand()
1224 else if (APInt::tcIsZero(dividend, partsCount)) in divideSignificand()
1236 return APInt::tcMSB(significandParts(), partCount()); in significandMSB()
1240 return APInt::tcLSB(significandParts(), partCount()); in significandLSB()
1260 APInt::tcShiftLeft(significandParts(), partsCount, bits); in shiftSignificandLeft()
1263 assert(!APInt::tcIsZero(significandParts(), partsCount)); in shiftSignificandLeft()
1280 compare = APInt::tcCompare(significandParts(), rhs.significandParts(), in compareAbsoluteValue()
1306 APInt::tcSetLeastSignificantBits(significandParts(), partCount(), in handleOverflow()
1336 return APInt::tcExtractBit(significandParts(), bit); in roundAwayFromZero()
2066 APInt IntegerConstant(NextPowerOf2(semanticsPrecision(*semantics)), 1); in roundToIntegral()
2220 APInt::tcSet(newParts, 0, newPartCount); in convert()
2222 APInt::tcAssign(newParts, significandParts(), oldPartCount); in convert()
2240 APInt::tcShiftLeft(significandParts(), newPartCount, shift); in convert()
2251 APInt::tcSetBit(significandParts(), semantics->precision - 1); in convert()
2297 APInt::tcSet(parts.data(), 0, dstPartsCount); in convertToSignExtendedInteger()
2309 APInt::tcSet(parts.data(), 0, dstPartsCount); in convertToSignExtendedInteger()
2325 APInt::tcExtract(parts.data(), dstPartsCount, src, bits, truncatedBits); in convertToSignExtendedInteger()
2328 APInt::tcExtract(parts.data(), dstPartsCount, src, semantics->precision, in convertToSignExtendedInteger()
2330 APInt::tcShiftLeft(parts.data(), dstPartsCount, in convertToSignExtendedInteger()
2343 if (APInt::tcIncrement(parts.data(), dstPartsCount)) in convertToSignExtendedInteger()
2351 unsigned int omsb = APInt::tcMSB(parts.data(), dstPartsCount) + 1; in convertToSignExtendedInteger()
2363 APInt::tcLSB(parts.data(), dstPartsCount) + 1 != omsb) in convertToSignExtendedInteger()
2371 APInt::tcNegate (parts.data(), dstPartsCount); in convertToSignExtendedInteger()
2415 APInt::tcSetLeastSignificantBits(parts.data(), dstPartsCount, bits); in convertToInteger()
2417 APInt::tcShiftLeft(parts.data(), dstPartsCount, width - 1); in convertToInteger()
2433 omsb = APInt::tcMSB(src, srcCount) + 1; in convertFromUnsignedParts()
2444 APInt::tcExtract(dst, dstCount, src, precision, omsb - precision); in convertFromUnsignedParts()
2448 APInt::tcExtract(dst, dstCount, src, omsb, 0); in convertFromUnsignedParts()
2454 IEEEFloat::opStatus IEEEFloat::convertFromAPInt(const APInt &Val, bool isSigned, in convertFromAPInt()
2457 APInt api = Val; in convertFromAPInt()
2478 APInt::tcExtractBit(src, srcCount * integerPartWidth - 1)) { in convertFromSignExtendedInteger()
2484 APInt::tcAssign(copy, src, srcCount); in convertFromSignExtendedInteger()
2485 APInt::tcNegate(copy, srcCount); in convertFromSignExtendedInteger()
2502 APInt api = APInt(width, makeArrayRef(parts, partCount)); in convertFromZeroExtendedInteger()
2505 if (isSigned && APInt::tcExtractBit(parts, width - 1)) { in convertFromZeroExtendedInteger()
2666 assert(APInt::tcExtractBit in roundSignificandWithExponent()
2676 APInt::tcExtract(significandParts(), partCount(), decSig.significandParts(), in roundSignificandWithExponent()
2794 APInt::tcMultiplyPart(decSignificand, decSignificand, multiplier, val, in convertFromDecimalString()
2873 APInt Payload; in convertFromStringSpecials()
3110 APInt IEEEFloat::convertF80LongDoubleAPFloatToAPInt() const { in convertF80LongDoubleAPFloatToAPInt()
3137 return APInt(80, words); in convertF80LongDoubleAPFloatToAPInt()
3140 APInt IEEEFloat::convertPPCDoubleDoubleAPFloatToAPInt() const { in convertPPCDoubleDoubleAPFloatToAPInt()
3186 return APInt(128, words); in convertPPCDoubleDoubleAPFloatToAPInt()
3189 APInt IEEEFloat::convertQuadrupleAPFloatToAPInt() const { in convertQuadrupleAPFloatToAPInt()
3220 return APInt(128, words); in convertQuadrupleAPFloatToAPInt()
3223 APInt IEEEFloat::convertDoubleAPFloatToAPInt() const { in convertDoubleAPFloatToAPInt()
3246 return APInt(64, ((((uint64_t)(sign & 1) << 63) | in convertDoubleAPFloatToAPInt()
3251 APInt IEEEFloat::convertFloatAPFloatToAPInt() const { in convertFloatAPFloatToAPInt()
3274 return APInt(32, (((sign&1) << 31) | ((myexponent&0xff) << 23) | in convertFloatAPFloatToAPInt()
3278 APInt IEEEFloat::convertBFloatAPFloatToAPInt() const { in convertBFloatAPFloatToAPInt()
3301 return APInt(16, (((sign & 1) << 15) | ((myexponent & 0xff) << 7) | in convertBFloatAPFloatToAPInt()
3305 APInt IEEEFloat::convertHalfAPFloatToAPInt() const { in convertHalfAPFloatToAPInt()
3328 return APInt(16, (((sign&1) << 15) | ((myexponent&0x1f) << 10) | in convertHalfAPFloatToAPInt()
3336 APInt IEEEFloat::bitcastToAPInt() const { in bitcastToAPInt()
3363 APInt api = bitcastToAPInt(); in convertToFloat()
3370 APInt api = bitcastToAPInt(); in convertToDouble()
3381 void IEEEFloat::initFromF80LongDoubleAPInt(const APInt &api) { in initFromF80LongDoubleAPInt()
3413 void IEEEFloat::initFromPPCDoubleDoubleAPInt(const APInt &api) { in initFromPPCDoubleDoubleAPInt()
3421 initFromDoubleAPInt(APInt(64, i1)); in initFromPPCDoubleDoubleAPInt()
3428 IEEEFloat v(semIEEEdouble, APInt(64, i2)); in initFromPPCDoubleDoubleAPInt()
3437 void IEEEFloat::initFromQuadrupleAPInt(const APInt &api) { in initFromQuadrupleAPInt()
3473 void IEEEFloat::initFromDoubleAPInt(const APInt &api) { in initFromDoubleAPInt()
3502 void IEEEFloat::initFromFloatAPInt(const APInt &api) { in initFromFloatAPInt()
3531 void IEEEFloat::initFromBFloatAPInt(const APInt &api) { in initFromBFloatAPInt()
3560 void IEEEFloat::initFromHalfAPInt(const APInt &api) { in initFromHalfAPInt()
3593 void IEEEFloat::initFromAPInt(const fltSemantics *Sem, const APInt &api) { in initFromAPInt()
3647 APInt::tcSet(significandParts(), 1, partCount()); in makeSmallest()
3664 IEEEFloat::IEEEFloat(const fltSemantics &Sem, const APInt &API) { in IEEEFloat()
3669 initFromAPInt(&semIEEEsingle, APInt::floatToBits(f)); in IEEEFloat()
3673 initFromAPInt(&semIEEEdouble, APInt::doubleToBits(d)); in IEEEFloat()
3683 void AdjustToPrecision(APInt &significand, in AdjustToPrecision()
3697 APInt divisor(significand.getBitWidth(), 1); in AdjustToPrecision()
3698 APInt powten(significand.getBitWidth(), 10); in AdjustToPrecision()
3797 APInt significand(semantics->precision, in toString()
3844 APInt five_to_the_i(precision, 5); in toString()
3860 APInt ten(precision, 10); in toString()
3861 APInt digit(precision, 0); in toString()
3867 APInt::udivrem(significand, ten, significand, digit); in toString()
4011 return !APInt::tcExtractBit(significandParts(), semantics->precision - 2); in isSignaling()
4052 APInt::tcSet(significandParts(), 0, partCount()); in next()
4060 APInt::tcSet(significandParts(), 0, partCount()); in next()
4092 APInt::tcDecrement(Parts, partCount()); in next()
4098 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
4114 APInt::tcSet(Parts, 0, partCount()); in next()
4115 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
4150 APInt::tcSet(significandParts(), 0, partCount()); in makeInf()
4157 APInt::tcSet(significandParts(), 0, partCount()); in makeZero()
4162 APInt::tcSetBit(significandParts(), semantics->precision - 2); in makeQuiet()
4242 DoubleAPFloat::DoubleAPFloat(const fltSemantics &S, const APInt &I) in DoubleAPFloat()
4245 APFloat(semIEEEdouble, APInt(64, I.getRawData()[0])), in DoubleAPFloat()
4246 APFloat(semIEEEdouble, APInt(64, I.getRawData()[1]))}) { in DoubleAPFloat()
4603 Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x7fefffffffffffffull)); in makeLargest()
4604 Floats[1] = APFloat(semIEEEdouble, APInt(64, 0x7c8ffffffffffffeull)); in makeLargest()
4617 Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x0360000000000000ull)); in makeSmallestNormalized()
4623 void DoubleAPFloat::makeNaN(bool SNaN, bool Neg, const APInt *fill) { in makeNaN()
4647 APInt DoubleAPFloat::bitcastToAPInt() const { in bitcastToAPInt()
4653 return APInt(128, 2, Data); in bitcastToAPInt()
4682 APFloat::opStatus DoubleAPFloat::convertFromAPInt(const APInt &Input, in convertFromAPInt()
4852 return APFloat(Semantics, APInt::getAllOnesValue(BitWidth)); in getAllOnesValue()
4881 result = APInt(bitWidth, parts); in convertToInteger()