Lines Matching refs:parts
338 static void tcComplement(APInt::WordType *dst, unsigned parts) { in tcComplement() argument
339 for (unsigned i = 0; i < parts; i++) in tcComplement()
2310 void APInt::tcSet(WordType *dst, WordType part, unsigned parts) { in tcSet() argument
2311 assert(parts > 0); in tcSet()
2313 for (unsigned i = 1; i < parts; i++) in tcSet()
2318 void APInt::tcAssign(WordType *dst, const WordType *src, unsigned parts) { in tcAssign() argument
2319 for (unsigned i = 0; i < parts; i++) in tcAssign()
2324 bool APInt::tcIsZero(const WordType *src, unsigned parts) { in tcIsZero() argument
2325 for (unsigned i = 0; i < parts; i++) in tcIsZero()
2333 int APInt::tcExtractBit(const WordType *parts, unsigned bit) { in tcExtractBit() argument
2334 return (parts[whichWord(bit)] & maskBit(bit)) != 0; in tcExtractBit()
2338 void APInt::tcSetBit(WordType *parts, unsigned bit) { in tcSetBit() argument
2339 parts[whichWord(bit)] |= maskBit(bit); in tcSetBit()
2343 void APInt::tcClearBit(WordType *parts, unsigned bit) { in tcClearBit() argument
2344 parts[whichWord(bit)] &= ~maskBit(bit); in tcClearBit()
2349 unsigned APInt::tcLSB(const WordType *parts, unsigned n) { in tcLSB() argument
2351 if (parts[i] != 0) { in tcLSB()
2352 unsigned lsb = llvm::countr_zero(parts[i]); in tcLSB()
2362 unsigned APInt::tcMSB(const WordType *parts, unsigned n) { in tcMSB() argument
2366 if (parts[n] != 0) { in tcMSB()
2367 static_assert(sizeof(parts[n]) <= sizeof(uint64_t)); in tcMSB()
2368 unsigned msb = llvm::Log2_64(parts[n]); in tcMSB()
2413 WordType c, unsigned parts) { in tcAdd() argument
2416 for (unsigned i = 0; i < parts; i++) { in tcAdd()
2435 unsigned parts) { in tcAddPart() argument
2436 for (unsigned i = 0; i < parts; ++i) { in tcAddPart()
2448 WordType c, unsigned parts) { in tcSubtract() argument
2451 for (unsigned i = 0; i < parts; i++) { in tcSubtract()
2473 unsigned parts) { in tcSubtractPart() argument
2474 for (unsigned i = 0; i < parts; ++i) { in tcSubtractPart()
2486 void APInt::tcNegate(WordType *dst, unsigned parts) { in tcNegate() argument
2487 tcComplement(dst, parts); in tcNegate()
2488 tcIncrement(dst, parts); in tcNegate()
2584 const WordType *rhs, unsigned parts) { in tcMultiply() argument
2589 for (unsigned i = 0; i < parts; i++) { in tcMultiply()
2593 tcMultiplyPart(&dst[i], lhs, rhs[i], 0, parts, parts - i, i != 0); in tcMultiply()
2628 unsigned parts) { in tcDivide() argument
2631 unsigned shiftCount = tcMSB(rhs, parts) + 1; in tcDivide()
2635 shiftCount = parts * APINT_BITS_PER_WORD - shiftCount; in tcDivide()
2639 tcAssign(srhs, rhs, parts); in tcDivide()
2640 tcShiftLeft(srhs, parts, shiftCount); in tcDivide()
2641 tcAssign(remainder, lhs, parts); in tcDivide()
2642 tcSet(lhs, 0, parts); in tcDivide()
2647 int compare = tcCompare(remainder, srhs, parts); in tcDivide()
2649 tcSubtract(remainder, srhs, 0, parts); in tcDivide()
2656 tcShiftRight(srhs, parts, 1); in tcDivide()
2722 unsigned parts) { in tcCompare() argument
2723 while (parts) { in tcCompare()
2724 parts--; in tcCompare()
2725 if (lhs[parts] != rhs[parts]) in tcCompare()
2726 return (lhs[parts] > rhs[parts]) ? 1 : -1; in tcCompare()