Lines Matching refs:APInt
621 lsb = APInt::tcLSB(parts, partCount); in lostFractionThroughTruncation()
629 APInt::tcExtractBit(parts, bits - 1)) in lostFractionThroughTruncation()
643 APInt::tcShiftRight(dst, parts, bits); in shiftRight()
757 APInt::tcFullMultiply(pow5, pow5 - pc, pow5 - pc, pc, pc); in powerOf5()
767 APInt::tcFullMultiply(p2, p1, pow5, result, pc); in powerOf5()
783 APInt::tcAssign(dst, p1, result); in powerOf5()
878 APInt::tcAssign(significandParts(), rhs.significandParts(), in copySignificand()
885 void IEEEFloat::makeNaN(bool SNaN, bool Negative, const APInt *fill) { in makeNaN()
893 APInt fill_storage; in makeNaN()
900 fill_storage = APInt::getZero(semantics->precision - 1); in makeNaN()
902 fill_storage = APInt::getAllOnes(semantics->precision - 1); in makeNaN()
909 APInt::tcSet(significand, 0, numParts); in makeNaN()
911 APInt::tcAssign(significand, fill->getRawData(), in makeNaN()
927 APInt::tcClearBit(significand, QNaNBit); in makeNaN()
932 if (APInt::tcIsZero(significand, numParts)) in makeNaN()
933 APInt::tcSetBit(significand, QNaNBit - 1); in makeNaN()
939 APInt::tcSetBit(significand, QNaNBit); in makeNaN()
946 APInt::tcSetBit(significand, QNaNBit + 1); in makeNaN()
976 (APInt::tcExtractBit(significandParts(), in isDenormal()
1168 APInt::tcSet(significandParts(), 0, partCount()); in zeroSignificand()
1175 carry = APInt::tcIncrement(significandParts(), partCount()); in incrementSignificand()
1191 return APInt::tcAdd(parts, rhs.significandParts(), 0, partCount()); in addSignificand()
1205 return APInt::tcSubtract(parts, rhs.significandParts(), borrow, in subtractSignificand()
1238 APInt::tcFullMultiply(fullSignificand, lhsSignificand, in multiplySignificand()
1242 omsb = APInt::tcMSB(fullSignificand, newPartsCount) + 1; in multiplySignificand()
1271 APInt::tcShiftLeft(fullSignificand, newPartsCount, in multiplySignificand()
1309 omsb = APInt::tcMSB(fullSignificand, newPartsCount) + 1; in multiplySignificand()
1336 APInt::tcAssign(lhsSignificand, fullSignificand, partsCount); in multiplySignificand()
1381 bit = precision - APInt::tcMSB(divisor, partsCount) - 1; in divideSignificand()
1384 APInt::tcShiftLeft(divisor, partsCount, bit); in divideSignificand()
1388 bit = precision - APInt::tcMSB(dividend, partsCount) - 1; in divideSignificand()
1391 APInt::tcShiftLeft(dividend, partsCount, bit); in divideSignificand()
1397 if (APInt::tcCompare(dividend, divisor, partsCount) < 0) { in divideSignificand()
1399 APInt::tcShiftLeft(dividend, partsCount, 1); in divideSignificand()
1400 assert(APInt::tcCompare(dividend, divisor, partsCount) >= 0); in divideSignificand()
1405 if (APInt::tcCompare(dividend, divisor, partsCount) >= 0) { in divideSignificand()
1406 APInt::tcSubtract(dividend, divisor, 0, partsCount); in divideSignificand()
1407 APInt::tcSetBit(lhsSignificand, bit - 1); in divideSignificand()
1410 APInt::tcShiftLeft(dividend, partsCount, 1); in divideSignificand()
1414 int cmp = APInt::tcCompare(dividend, divisor, partsCount); in divideSignificand()
1420 else if (APInt::tcIsZero(dividend, partsCount)) in divideSignificand()
1432 return APInt::tcMSB(significandParts(), partCount()); in significandMSB()
1436 return APInt::tcLSB(significandParts(), partCount()); in significandLSB()
1456 APInt::tcShiftLeft(significandParts(), partsCount, bits); in shiftSignificandLeft()
1459 assert(!APInt::tcIsZero(significandParts(), partsCount)); in shiftSignificandLeft()
1476 compare = APInt::tcCompare(significandParts(), rhs.significandParts(), in compareAbsoluteValue()
1489 static void tcSetLeastSignificantBits(APInt::WordType *dst, unsigned parts, in tcSetLeastSignificantBits()
1492 while (bits > APInt::APINT_BITS_PER_WORD) { in tcSetLeastSignificantBits()
1493 dst[i++] = ~(APInt::WordType)0; in tcSetLeastSignificantBits()
1494 bits -= APInt::APINT_BITS_PER_WORD; in tcSetLeastSignificantBits()
1498 dst[i++] = ~(APInt::WordType)0 >> (APInt::APINT_BITS_PER_WORD - bits); in tcSetLeastSignificantBits()
1526 APInt::tcClearBit(significandParts(), 0); in handleOverflow()
1555 return APInt::tcExtractBit(significandParts(), bit); in roundAwayFromZero()
2335 APInt IntegerConstant(NextPowerOf2(semanticsPrecision(*semantics)), 1); in roundToIntegral()
2499 APInt::tcSet(newParts, 0, newPartCount); in convert()
2501 APInt::tcAssign(newParts, significandParts(), oldPartCount); in convert()
2519 APInt::tcShiftLeft(significandParts(), newPartCount, shift); in convert()
2543 APInt::tcSetBit(significandParts(), semantics->precision - 1); in convert()
2602 APInt::tcSet(parts.data(), 0, dstPartsCount); in convertToSignExtendedInteger()
2614 APInt::tcSet(parts.data(), 0, dstPartsCount); in convertToSignExtendedInteger()
2630 APInt::tcExtract(parts.data(), dstPartsCount, src, bits, truncatedBits); in convertToSignExtendedInteger()
2633 APInt::tcExtract(parts.data(), dstPartsCount, src, semantics->precision, in convertToSignExtendedInteger()
2635 APInt::tcShiftLeft(parts.data(), dstPartsCount, in convertToSignExtendedInteger()
2648 if (APInt::tcIncrement(parts.data(), dstPartsCount)) in convertToSignExtendedInteger()
2656 unsigned int omsb = APInt::tcMSB(parts.data(), dstPartsCount) + 1; in convertToSignExtendedInteger()
2668 APInt::tcLSB(parts.data(), dstPartsCount) + 1 != omsb) in convertToSignExtendedInteger()
2676 APInt::tcNegate (parts.data(), dstPartsCount); in convertToSignExtendedInteger()
2722 APInt::tcShiftLeft(parts.data(), dstPartsCount, width - 1); in convertToInteger()
2738 omsb = APInt::tcMSB(src, srcCount) + 1; in convertFromUnsignedParts()
2749 APInt::tcExtract(dst, dstCount, src, precision, omsb - precision); in convertFromUnsignedParts()
2753 APInt::tcExtract(dst, dstCount, src, omsb, 0); in convertFromUnsignedParts()
2759 IEEEFloat::opStatus IEEEFloat::convertFromAPInt(const APInt &Val, bool isSigned, in convertFromAPInt()
2762 APInt api = Val; in convertFromAPInt()
2783 APInt::tcExtractBit(src, srcCount * integerPartWidth - 1)) { in convertFromSignExtendedInteger()
2789 APInt::tcAssign(copy, src, srcCount); in convertFromSignExtendedInteger()
2790 APInt::tcNegate(copy, srcCount); in convertFromSignExtendedInteger()
2807 APInt api = APInt(width, ArrayRef(parts, partCount)); in convertFromZeroExtendedInteger()
2810 if (isSigned && APInt::tcExtractBit(parts, width - 1)) { in convertFromZeroExtendedInteger()
2971 assert(APInt::tcExtractBit in roundSignificandWithExponent()
2981 APInt::tcExtract(significandParts(), partCount(), decSig.significandParts(), in roundSignificandWithExponent()
3101 APInt::tcMultiplyPart(decSignificand, decSignificand, multiplier, val, in convertFromDecimalString()
3180 APInt Payload; in convertFromStringSpecials()
3417 APInt IEEEFloat::convertF80LongDoubleAPFloatToAPInt() const { in convertF80LongDoubleAPFloatToAPInt()
3444 return APInt(80, words); in convertF80LongDoubleAPFloatToAPInt()
3447 APInt IEEEFloat::convertPPCDoubleDoubleAPFloatToAPInt() const { in convertPPCDoubleDoubleAPFloatToAPInt()
3493 return APInt(128, words); in convertPPCDoubleDoubleAPFloatToAPInt()
3497 APInt IEEEFloat::convertIEEEFloatToAPInt() const { in convertIEEEFloatToAPInt()
3553 return APInt(S.sizeInBits, words[0]); in convertIEEEFloatToAPInt()
3555 return APInt(S.sizeInBits, words); in convertIEEEFloatToAPInt()
3558 APInt IEEEFloat::convertQuadrupleAPFloatToAPInt() const { in convertQuadrupleAPFloatToAPInt()
3563 APInt IEEEFloat::convertDoubleAPFloatToAPInt() const { in convertDoubleAPFloatToAPInt()
3568 APInt IEEEFloat::convertFloatAPFloatToAPInt() const { in convertFloatAPFloatToAPInt()
3573 APInt IEEEFloat::convertBFloatAPFloatToAPInt() const { in convertBFloatAPFloatToAPInt()
3578 APInt IEEEFloat::convertHalfAPFloatToAPInt() const { in convertHalfAPFloatToAPInt()
3583 APInt IEEEFloat::convertFloat8E5M2APFloatToAPInt() const { in convertFloat8E5M2APFloatToAPInt()
3588 APInt IEEEFloat::convertFloat8E5M2FNUZAPFloatToAPInt() const { in convertFloat8E5M2FNUZAPFloatToAPInt()
3593 APInt IEEEFloat::convertFloat8E4M3FNAPFloatToAPInt() const { in convertFloat8E4M3FNAPFloatToAPInt()
3598 APInt IEEEFloat::convertFloat8E4M3FNUZAPFloatToAPInt() const { in convertFloat8E4M3FNUZAPFloatToAPInt()
3603 APInt IEEEFloat::convertFloat8E4M3B11FNUZAPFloatToAPInt() const { in convertFloat8E4M3B11FNUZAPFloatToAPInt()
3608 APInt IEEEFloat::convertFloatTF32APFloatToAPInt() const { in convertFloatTF32APFloatToAPInt()
3617 APInt IEEEFloat::bitcastToAPInt() const { in bitcastToAPInt()
3662 APInt api = bitcastToAPInt(); in convertToFloat()
3669 APInt api = bitcastToAPInt(); in convertToDouble()
3680 void IEEEFloat::initFromF80LongDoubleAPInt(const APInt &api) { in initFromF80LongDoubleAPInt()
3711 void IEEEFloat::initFromPPCDoubleDoubleAPInt(const APInt &api) { in initFromPPCDoubleDoubleAPInt()
3718 initFromDoubleAPInt(APInt(64, i1)); in initFromPPCDoubleDoubleAPInt()
3725 IEEEFloat v(semIEEEdouble, APInt(64, i2)); in initFromPPCDoubleDoubleAPInt()
3735 void IEEEFloat::initFromIEEEAPInt(const APInt &api) { in initFromIEEEAPInt()
3817 void IEEEFloat::initFromQuadrupleAPInt(const APInt &api) { in initFromQuadrupleAPInt()
3821 void IEEEFloat::initFromDoubleAPInt(const APInt &api) { in initFromDoubleAPInt()
3825 void IEEEFloat::initFromFloatAPInt(const APInt &api) { in initFromFloatAPInt()
3829 void IEEEFloat::initFromBFloatAPInt(const APInt &api) { in initFromBFloatAPInt()
3833 void IEEEFloat::initFromHalfAPInt(const APInt &api) { in initFromHalfAPInt()
3837 void IEEEFloat::initFromFloat8E5M2APInt(const APInt &api) { in initFromFloat8E5M2APInt()
3841 void IEEEFloat::initFromFloat8E5M2FNUZAPInt(const APInt &api) { in initFromFloat8E5M2FNUZAPInt()
3845 void IEEEFloat::initFromFloat8E4M3FNAPInt(const APInt &api) { in initFromFloat8E4M3FNAPInt()
3849 void IEEEFloat::initFromFloat8E4M3FNUZAPInt(const APInt &api) { in initFromFloat8E4M3FNUZAPInt()
3853 void IEEEFloat::initFromFloat8E4M3B11FNUZAPInt(const APInt &api) { in initFromFloat8E4M3B11FNUZAPInt()
3857 void IEEEFloat::initFromFloatTF32APInt(const APInt &api) { in initFromFloatTF32APInt()
3862 void IEEEFloat::initFromAPInt(const fltSemantics *Sem, const APInt &api) { in initFromAPInt()
3933 APInt::tcSet(significandParts(), 1, partCount()); in makeSmallest()
3946 APInt::tcSetBit(significandParts(), semantics->precision - 1); in makeSmallestNormalized()
3949 IEEEFloat::IEEEFloat(const fltSemantics &Sem, const APInt &API) { in IEEEFloat()
3954 initFromAPInt(&semIEEEsingle, APInt::floatToBits(f)); in IEEEFloat()
3958 initFromAPInt(&semIEEEdouble, APInt::doubleToBits(d)); in IEEEFloat()
3968 void AdjustToPrecision(APInt &significand, in AdjustToPrecision()
3982 APInt divisor(significand.getBitWidth(), 1); in AdjustToPrecision()
3983 APInt powten(significand.getBitWidth(), 10); in AdjustToPrecision()
4082 APInt significand( in toString()
4129 APInt five_to_the_i(precision, 5); in toString()
4150 APInt ten(precision, 10); in toString()
4151 APInt digit(precision, 0); in toString()
4157 APInt::udivrem(significand, ten, significand, digit); in toString()
4314 ++i, CountrParts += APInt::APINT_BITS_PER_WORD) { in getExactLog2Abs()
4332 return !APInt::tcExtractBit(significandParts(), semantics->precision - 2); in isSignaling()
4373 APInt::tcSet(significandParts(), 0, partCount()); in next()
4388 APInt::tcSet(significandParts(), 0, partCount()); in next()
4421 APInt::tcDecrement(Parts, partCount()); in next()
4427 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
4443 APInt::tcSet(Parts, 0, partCount()); in next()
4444 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
4484 APInt::tcSet(significandParts(), 0, partCount()); in makeInf()
4495 APInt::tcSet(significandParts(), 0, partCount()); in makeZero()
4501 APInt::tcSetBit(significandParts(), semantics->precision - 2); in makeQuiet()
4581 DoubleAPFloat::DoubleAPFloat(const fltSemantics &S, const APInt &I) in DoubleAPFloat()
4584 APFloat(semIEEEdouble, APInt(64, I.getRawData()[0])), in DoubleAPFloat()
4585 APFloat(semIEEEdouble, APInt(64, I.getRawData()[1]))}) { in DoubleAPFloat()
4942 Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x7fefffffffffffffull)); in makeLargest()
4943 Floats[1] = APFloat(semIEEEdouble, APInt(64, 0x7c8ffffffffffffeull)); in makeLargest()
4956 Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x0360000000000000ull)); in makeSmallestNormalized()
4962 void DoubleAPFloat::makeNaN(bool SNaN, bool Neg, const APInt *fill) { in makeNaN()
4986 APInt DoubleAPFloat::bitcastToAPInt() const { in bitcastToAPInt()
4992 return APInt(128, 2, Data); in bitcastToAPInt()
5021 APFloat::opStatus DoubleAPFloat::convertFromAPInt(const APInt &Input, in convertFromAPInt()
5222 return APFloat(Semantics, APInt::getAllOnes(Semantics.sizeInBits)); in getAllOnesValue()
5251 result = APInt(bitWidth, parts); in convertToInteger()