Lines Matching defs:MulCandidate
54 struct MulCandidate;
57 using MulCandList = SmallVector<std::unique_ptr<MulCandidate>, 8>;
59 using MulPairList = SmallVector<std::pair<MulCandidate*, MulCandidate*>, 8>;
61 // 'MulCandidate' holds the multiplication instructions that are candidates
63 struct MulCandidate {
71 MulCandidate(Instruction *I, Value *lhs, Value *rhs) :
118 Muls.push_back(std::make_unique<MulCandidate>(I, LHS, RHS));
143 void AddMulPair(MulCandidate *Mul0, MulCandidate *Mul1,
168 /// Return the MulCandidate, rooted at mul instruction, that comprise the
172 /// Return the MulCandidate, rooted at mul instructions, that have been
556 auto CanPair = [&](Reduction &R, MulCandidate *PMul0, MulCandidate *PMul1) {
596 MulCandidate *PMul0 = static_cast<MulCandidate*>(Muls[i].get());
604 MulCandidate *PMul1 = static_cast<MulCandidate*>(Muls[j].get());
713 MulCandidate *LHSMul = Pair.first;
714 MulCandidate *RHSMul = Pair.second;