Lines Matching defs:MulCandidate
55 struct MulCandidate;
58 using MulCandList = SmallVector<std::unique_ptr<MulCandidate>, 8>;
60 using MulPairList = SmallVector<std::pair<MulCandidate*, MulCandidate*>, 8>;
62 // 'MulCandidate' holds the multiplication instructions that are candidates
64 struct MulCandidate {
72 MulCandidate(Instruction *I, Value *lhs, Value *rhs) :
119 Muls.push_back(std::make_unique<MulCandidate>(I, LHS, RHS));
144 void AddMulPair(MulCandidate *Mul0, MulCandidate *Mul1,
169 /// Return the MulCandidate, rooted at mul instruction, that comprise the
173 /// Return the MulCandidate, rooted at mul instructions, that have been
557 auto CanPair = [&](Reduction &R, MulCandidate *PMul0, MulCandidate *PMul1) {
597 MulCandidate *PMul0 = static_cast<MulCandidate*>(Muls[i].get());
605 MulCandidate *PMul1 = static_cast<MulCandidate*>(Muls[j].get());
713 MulCandidate *LHSMul = Pair.first;
714 MulCandidate *RHSMul = Pair.second;