Lines Matching defs:LocalAccum

3923   // Merge the given carries into the 32-bit LocalAccum, which is modified
3928 [&](Register &LocalAccum, const Carry &CarryIn) -> Register {
3935 if (!LocalAccum) {
3936 LocalAccum = B.buildZExt(S32, CarryIn[0]).getReg(0);
3949 if (!LocalAccum) {
3950 LocalAccum = getZero32();
3956 B.buildUAdde(S32, S1, CarryAccum, LocalAccum, CarryIn.back());
3957 LocalAccum = Add.getReg(0);
3963 // LocalAccum + (partial products at DstIndex)
3966 // LocalAccum is an array of one or two 32-bit registers that are updated
3972 [&](MutableArrayRef<Register> LocalAccum, unsigned DstIndex, Carry &CarryIn)
3974 assert((DstIndex + 1 < Accum.size() && LocalAccum.size() == 2) ||
3975 (DstIndex + 1 >= Accum.size() && LocalAccum.size() == 1));
3982 if (LocalAccum.size() == 1 &&
3992 if (!LocalAccum[0] || KB.getKnownBits(LocalAccum[0]).isZero()) {
3993 LocalAccum[0] = Mul.getReg(0);
3996 LocalAccum[0] = B.buildAdd(S32, LocalAccum[0], Mul).getReg(0);
3998 LocalAccum[0] =
3999 B.buildUAdde(S32, S1, LocalAccum[0], Mul, CarryIn.back())
4013 if (LocalAccum[0]) {
4014 if (LocalAccum.size() == 1) {
4015 Tmp = B.buildAnyExt(S64, LocalAccum[0]).getReg(0);
4017 } else if (LocalAccum[1]) {
4018 Tmp = B.buildMergeLikeInstr(S64, LocalAccum).getReg(0);
4021 Tmp = B.buildZExt(S64, LocalAccum[0]).getReg(0);
4025 assert(LocalAccum.size() == 1 || !LocalAccum[1]);
4047 LocalAccum[0] = Unmerge.getReg(0);
4048 if (LocalAccum.size() > 1)
4049 LocalAccum[1] = Unmerge.getReg(1);
4084 auto LocalAccum = Accum.drop_front(2 * i).take_front(2);
4085 EvenCarry = buildMadChain(LocalAccum, 2 * i, EvenCarryIn);
4091 auto LocalAccum = Accum.drop_front(2 * i - 1).take_front(2);
4092 OddCarry = buildMadChain(LocalAccum, 2 * i - 1, OddCarryIn);
4096 auto LocalAccum = MutableArrayRef(SeparateOddOut)
4098 OddCarry = buildMadChain(LocalAccum, 2 * i - 1, OddCarryIn);