Lines Matching refs:APInt
652 lsb = APInt::tcLSB(parts, partCount); in lostFractionThroughTruncation()
660 APInt::tcExtractBit(parts, bits - 1)) in lostFractionThroughTruncation()
674 APInt::tcShiftRight(dst, parts, bits); in shiftRight()
783 APInt::tcFullMultiply(pow5, pow5 - partsCount, pow5 - partsCount, in powerOf5()
793 APInt::tcFullMultiply(p2, p1, pow5, result, partsCount); in powerOf5()
809 APInt::tcAssign(dst, p1, result); in powerOf5()
904 APInt::tcAssign(significandParts(), rhs.significandParts(), in copySignificand()
911 void IEEEFloat::makeNaN(bool SNaN, bool Negative, const APInt *fill) { in makeNaN()
922 APInt fill_storage; in makeNaN()
929 fill_storage = APInt::getZero(semantics->precision - 1); in makeNaN()
931 fill_storage = APInt::getAllOnes(semantics->precision - 1); in makeNaN()
938 APInt::tcSet(significand, 0, numParts); in makeNaN()
940 APInt::tcAssign(significand, fill->getRawData(), in makeNaN()
956 APInt::tcClearBit(significand, QNaNBit); in makeNaN()
961 if (APInt::tcIsZero(significand, numParts)) in makeNaN()
962 APInt::tcSetBit(significand, QNaNBit - 1); in makeNaN()
968 APInt::tcSetBit(significand, QNaNBit); in makeNaN()
975 APInt::tcSetBit(significand, QNaNBit + 1); in makeNaN()
1005 (APInt::tcExtractBit(significandParts(), in isDenormal()
1197 APInt::tcSet(significandParts(), 0, partCount()); in zeroSignificand()
1204 carry = APInt::tcIncrement(significandParts(), partCount()); in incrementSignificand()
1220 return APInt::tcAdd(parts, rhs.significandParts(), 0, partCount()); in addSignificand()
1234 return APInt::tcSubtract(parts, rhs.significandParts(), borrow, in subtractSignificand()
1267 APInt::tcFullMultiply(fullSignificand, lhsSignificand, in multiplySignificand()
1271 omsb = APInt::tcMSB(fullSignificand, newPartsCount) + 1; in multiplySignificand()
1300 APInt::tcShiftLeft(fullSignificand, newPartsCount, in multiplySignificand()
1338 omsb = APInt::tcMSB(fullSignificand, newPartsCount) + 1; in multiplySignificand()
1365 APInt::tcAssign(lhsSignificand, fullSignificand, partsCount); in multiplySignificand()
1410 bit = precision - APInt::tcMSB(divisor, partsCount) - 1; in divideSignificand()
1413 APInt::tcShiftLeft(divisor, partsCount, bit); in divideSignificand()
1417 bit = precision - APInt::tcMSB(dividend, partsCount) - 1; in divideSignificand()
1420 APInt::tcShiftLeft(dividend, partsCount, bit); in divideSignificand()
1426 if (APInt::tcCompare(dividend, divisor, partsCount) < 0) { in divideSignificand()
1428 APInt::tcShiftLeft(dividend, partsCount, 1); in divideSignificand()
1429 assert(APInt::tcCompare(dividend, divisor, partsCount) >= 0); in divideSignificand()
1434 if (APInt::tcCompare(dividend, divisor, partsCount) >= 0) { in divideSignificand()
1435 APInt::tcSubtract(dividend, divisor, 0, partsCount); in divideSignificand()
1436 APInt::tcSetBit(lhsSignificand, bit - 1); in divideSignificand()
1439 APInt::tcShiftLeft(dividend, partsCount, 1); in divideSignificand()
1443 int cmp = APInt::tcCompare(dividend, divisor, partsCount); in divideSignificand()
1449 else if (APInt::tcIsZero(dividend, partsCount)) in divideSignificand()
1461 return APInt::tcMSB(significandParts(), partCount()); in significandMSB()
1465 return APInt::tcLSB(significandParts(), partCount()); in significandLSB()
1485 APInt::tcShiftLeft(significandParts(), partsCount, bits); in shiftSignificandLeft()
1488 assert(!APInt::tcIsZero(significandParts(), partsCount)); in shiftSignificandLeft()
1505 compare = APInt::tcCompare(significandParts(), rhs.significandParts(), in compareAbsoluteValue()
1518 static void tcSetLeastSignificantBits(APInt::WordType *dst, unsigned parts, in tcSetLeastSignificantBits()
1521 while (bits > APInt::APINT_BITS_PER_WORD) { in tcSetLeastSignificantBits()
1522 dst[i++] = ~(APInt::WordType)0; in tcSetLeastSignificantBits()
1523 bits -= APInt::APINT_BITS_PER_WORD; in tcSetLeastSignificantBits()
1527 dst[i++] = ~(APInt::WordType)0 >> (APInt::APINT_BITS_PER_WORD - bits); in tcSetLeastSignificantBits()
1557 APInt::tcClearBit(significandParts(), 0); in handleOverflow()
1586 return APInt::tcExtractBit(significandParts(), bit); in roundAwayFromZero()
2366 APInt IntegerConstant(NextPowerOf2(semanticsPrecision(*semantics)), 1); in roundToIntegral()
2530 APInt::tcSet(newParts, 0, newPartCount); in convert()
2532 APInt::tcAssign(newParts, significandParts(), oldPartCount); in convert()
2550 APInt::tcShiftLeft(significandParts(), newPartCount, shift); in convert()
2574 APInt::tcSetBit(significandParts(), semantics->precision - 1); in convert()
2633 APInt::tcSet(parts.data(), 0, dstPartsCount); in convertToSignExtendedInteger()
2645 APInt::tcSet(parts.data(), 0, dstPartsCount); in convertToSignExtendedInteger()
2661 APInt::tcExtract(parts.data(), dstPartsCount, src, bits, truncatedBits); in convertToSignExtendedInteger()
2664 APInt::tcExtract(parts.data(), dstPartsCount, src, semantics->precision, in convertToSignExtendedInteger()
2666 APInt::tcShiftLeft(parts.data(), dstPartsCount, in convertToSignExtendedInteger()
2679 if (APInt::tcIncrement(parts.data(), dstPartsCount)) in convertToSignExtendedInteger()
2687 unsigned int omsb = APInt::tcMSB(parts.data(), dstPartsCount) + 1; in convertToSignExtendedInteger()
2699 APInt::tcLSB(parts.data(), dstPartsCount) + 1 != omsb) in convertToSignExtendedInteger()
2707 APInt::tcNegate (parts.data(), dstPartsCount); in convertToSignExtendedInteger()
2753 APInt::tcShiftLeft(parts.data(), dstPartsCount, width - 1); in convertToInteger()
2769 omsb = APInt::tcMSB(src, srcCount) + 1; in convertFromUnsignedParts()
2780 APInt::tcExtract(dst, dstCount, src, precision, omsb - precision); in convertFromUnsignedParts()
2784 APInt::tcExtract(dst, dstCount, src, omsb, 0); in convertFromUnsignedParts()
2790 IEEEFloat::opStatus IEEEFloat::convertFromAPInt(const APInt &Val, bool isSigned, in convertFromAPInt()
2793 APInt api = Val; in convertFromAPInt()
2814 APInt::tcExtractBit(src, srcCount * integerPartWidth - 1)) { in convertFromSignExtendedInteger()
2820 APInt::tcAssign(copy, src, srcCount); in convertFromSignExtendedInteger()
2821 APInt::tcNegate(copy, srcCount); in convertFromSignExtendedInteger()
2838 APInt api = APInt(width, ArrayRef(parts, partCount)); in convertFromZeroExtendedInteger()
2841 if (isSigned && APInt::tcExtractBit(parts, width - 1)) { in convertFromZeroExtendedInteger()
3002 assert(APInt::tcExtractBit in roundSignificandWithExponent()
3012 APInt::tcExtract(significandParts(), partCount(), decSig.significandParts(), in roundSignificandWithExponent()
3132 APInt::tcMultiplyPart(decSignificand, decSignificand, multiplier, val, in convertFromDecimalString()
3211 APInt Payload; in convertFromStringSpecials()
3448 APInt IEEEFloat::convertF80LongDoubleAPFloatToAPInt() const { in convertF80LongDoubleAPFloatToAPInt()
3475 return APInt(80, words); in convertF80LongDoubleAPFloatToAPInt()
3478 APInt IEEEFloat::convertPPCDoubleDoubleAPFloatToAPInt() const { in convertPPCDoubleDoubleAPFloatToAPInt()
3524 return APInt(128, words); in convertPPCDoubleDoubleAPFloatToAPInt()
3528 APInt IEEEFloat::convertIEEEFloatToAPInt() const { in convertIEEEFloatToAPInt()
3586 return APInt(S.sizeInBits, words[0]); in convertIEEEFloatToAPInt()
3588 return APInt(S.sizeInBits, words); in convertIEEEFloatToAPInt()
3591 APInt IEEEFloat::convertQuadrupleAPFloatToAPInt() const { in convertQuadrupleAPFloatToAPInt()
3596 APInt IEEEFloat::convertDoubleAPFloatToAPInt() const { in convertDoubleAPFloatToAPInt()
3601 APInt IEEEFloat::convertFloatAPFloatToAPInt() const { in convertFloatAPFloatToAPInt()
3606 APInt IEEEFloat::convertBFloatAPFloatToAPInt() const { in convertBFloatAPFloatToAPInt()
3611 APInt IEEEFloat::convertHalfAPFloatToAPInt() const { in convertHalfAPFloatToAPInt()
3616 APInt IEEEFloat::convertFloat8E5M2APFloatToAPInt() const { in convertFloat8E5M2APFloatToAPInt()
3621 APInt IEEEFloat::convertFloat8E5M2FNUZAPFloatToAPInt() const { in convertFloat8E5M2FNUZAPFloatToAPInt()
3626 APInt IEEEFloat::convertFloat8E4M3APFloatToAPInt() const { in convertFloat8E4M3APFloatToAPInt()
3631 APInt IEEEFloat::convertFloat8E4M3FNAPFloatToAPInt() const { in convertFloat8E4M3FNAPFloatToAPInt()
3636 APInt IEEEFloat::convertFloat8E4M3FNUZAPFloatToAPInt() const { in convertFloat8E4M3FNUZAPFloatToAPInt()
3641 APInt IEEEFloat::convertFloat8E4M3B11FNUZAPFloatToAPInt() const { in convertFloat8E4M3B11FNUZAPFloatToAPInt()
3646 APInt IEEEFloat::convertFloatTF32APFloatToAPInt() const { in convertFloatTF32APFloatToAPInt()
3651 APInt IEEEFloat::convertFloat6E3M2FNAPFloatToAPInt() const { in convertFloat6E3M2FNAPFloatToAPInt()
3656 APInt IEEEFloat::convertFloat6E2M3FNAPFloatToAPInt() const { in convertFloat6E2M3FNAPFloatToAPInt()
3661 APInt IEEEFloat::convertFloat4E2M1FNAPFloatToAPInt() const { in convertFloat4E2M1FNAPFloatToAPInt()
3670 APInt IEEEFloat::bitcastToAPInt() const { in bitcastToAPInt()
3727 APInt api = bitcastToAPInt(); in convertToFloat()
3734 APInt api = bitcastToAPInt(); in convertToDouble()
3742 APInt api = bitcastToAPInt(); in convertToQuad()
3754 void IEEEFloat::initFromF80LongDoubleAPInt(const APInt &api) { in initFromF80LongDoubleAPInt()
3785 void IEEEFloat::initFromPPCDoubleDoubleAPInt(const APInt &api) { in initFromPPCDoubleDoubleAPInt()
3792 initFromDoubleAPInt(APInt(64, i1)); in initFromPPCDoubleDoubleAPInt()
3799 IEEEFloat v(semIEEEdouble, APInt(64, i2)); in initFromPPCDoubleDoubleAPInt()
3809 void IEEEFloat::initFromIEEEAPInt(const APInt &api) { in initFromIEEEAPInt()
3891 void IEEEFloat::initFromQuadrupleAPInt(const APInt &api) { in initFromQuadrupleAPInt()
3895 void IEEEFloat::initFromDoubleAPInt(const APInt &api) { in initFromDoubleAPInt()
3899 void IEEEFloat::initFromFloatAPInt(const APInt &api) { in initFromFloatAPInt()
3903 void IEEEFloat::initFromBFloatAPInt(const APInt &api) { in initFromBFloatAPInt()
3907 void IEEEFloat::initFromHalfAPInt(const APInt &api) { in initFromHalfAPInt()
3911 void IEEEFloat::initFromFloat8E5M2APInt(const APInt &api) { in initFromFloat8E5M2APInt()
3915 void IEEEFloat::initFromFloat8E5M2FNUZAPInt(const APInt &api) { in initFromFloat8E5M2FNUZAPInt()
3919 void IEEEFloat::initFromFloat8E4M3APInt(const APInt &api) { in initFromFloat8E4M3APInt()
3923 void IEEEFloat::initFromFloat8E4M3FNAPInt(const APInt &api) { in initFromFloat8E4M3FNAPInt()
3927 void IEEEFloat::initFromFloat8E4M3FNUZAPInt(const APInt &api) { in initFromFloat8E4M3FNUZAPInt()
3931 void IEEEFloat::initFromFloat8E4M3B11FNUZAPInt(const APInt &api) { in initFromFloat8E4M3B11FNUZAPInt()
3935 void IEEEFloat::initFromFloatTF32APInt(const APInt &api) { in initFromFloatTF32APInt()
3939 void IEEEFloat::initFromFloat6E3M2FNAPInt(const APInt &api) { in initFromFloat6E3M2FNAPInt()
3943 void IEEEFloat::initFromFloat6E2M3FNAPInt(const APInt &api) { in initFromFloat6E2M3FNAPInt()
3947 void IEEEFloat::initFromFloat4E2M1FNAPInt(const APInt &api) { in initFromFloat4E2M1FNAPInt()
3952 void IEEEFloat::initFromAPInt(const fltSemantics *Sem, const APInt &api) { in initFromAPInt()
4031 APInt::tcSet(significandParts(), 1, partCount()); in makeSmallest()
4044 APInt::tcSetBit(significandParts(), semantics->precision - 1); in makeSmallestNormalized()
4047 IEEEFloat::IEEEFloat(const fltSemantics &Sem, const APInt &API) { in IEEEFloat()
4052 initFromAPInt(&semIEEEsingle, APInt::floatToBits(f)); in IEEEFloat()
4056 initFromAPInt(&semIEEEdouble, APInt::doubleToBits(d)); in IEEEFloat()
4066 void AdjustToPrecision(APInt &significand, in AdjustToPrecision()
4080 APInt divisor(significand.getBitWidth(), 1); in AdjustToPrecision()
4081 APInt powten(significand.getBitWidth(), 10); in AdjustToPrecision()
4143 APInt significand, unsigned FormatPrecision, in toStringImpl()
4193 APInt five_to_the_i(precision, 5); in toStringImpl()
4216 APInt ten(precision, 10); in toStringImpl()
4217 APInt digit(precision, 0); in toStringImpl()
4223 APInt::udivrem(significand, ten, significand, digit); in toStringImpl()
4370 APInt significand( in toString()
4427 ++i, CountrParts += APInt::APINT_BITS_PER_WORD) { in getExactLog2Abs()
4446 return !APInt::tcExtractBit(significandParts(), semantics->precision - 2); in isSignaling()
4487 APInt::tcSet(significandParts(), 0, partCount()); in next()
4506 APInt::tcSet(significandParts(), 0, partCount()); in next()
4539 APInt::tcDecrement(Parts, partCount()); in next()
4545 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
4561 APInt::tcSet(Parts, 0, partCount()); in next()
4562 APInt::tcSetBit(Parts, semantics->precision - 1); in next()
4605 APInt::tcSet(significandParts(), 0, partCount()); in makeInf()
4616 APInt::tcSet(significandParts(), 0, partCount()); in makeZero()
4622 APInt::tcSetBit(significandParts(), semantics->precision - 2); in makeQuiet()
4702 DoubleAPFloat::DoubleAPFloat(const fltSemantics &S, const APInt &I) in DoubleAPFloat()
4705 APFloat(semIEEEdouble, APInt(64, I.getRawData()[0])), in DoubleAPFloat()
4706 APFloat(semIEEEdouble, APInt(64, I.getRawData()[1]))}) { in DoubleAPFloat()
5063 Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x7fefffffffffffffull)); in makeLargest()
5064 Floats[1] = APFloat(semIEEEdouble, APInt(64, 0x7c8ffffffffffffeull)); in makeLargest()
5077 Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x0360000000000000ull)); in makeSmallestNormalized()
5083 void DoubleAPFloat::makeNaN(bool SNaN, bool Neg, const APInt *fill) { in makeNaN()
5107 APInt DoubleAPFloat::bitcastToAPInt() const { in bitcastToAPInt()
5113 return APInt(128, 2, Data); in bitcastToAPInt()
5142 APFloat::opStatus DoubleAPFloat::convertFromAPInt(const APInt &Input, in convertFromAPInt()
5343 return APFloat(Semantics, APInt::getAllOnes(Semantics.sizeInBits)); in getAllOnesValue()
5372 result = APInt(bitWidth, parts); in convertToInteger()