Lines Matching defs:MulCandidate
52 struct MulCandidate;
55 using MulCandList = SmallVector<std::unique_ptr<MulCandidate>, 8>;
57 using MulPairList = SmallVector<std::pair<MulCandidate*, MulCandidate*>, 8>;
59 // 'MulCandidate' holds the multiplication instructions that are candidates
61 struct MulCandidate {
70 MulCandidate(Instruction *I, Value *lhs, Value *rhs) :
117 Muls.push_back(std::make_unique<MulCandidate>(I, LHS, RHS));
142 void AddMulPair(MulCandidate *Mul0, MulCandidate *Mul1,
171 /// Return the MulCandidate, rooted at mul instruction, that comprise the
175 /// Return the MulCandidate, rooted at mul instructions, that have been
564 auto CanPair = [&](Reduction &R, MulCandidate *PMul0, MulCandidate *PMul1) {
604 MulCandidate *PMul0 = static_cast<MulCandidate*>(Muls[i].get());
612 MulCandidate *PMul1 = static_cast<MulCandidate*>(Muls[j].get());
720 MulCandidate *LHSMul = Pair.first;
721 MulCandidate *RHSMul = Pair.second;