Lines Matching defs:Mul
101 /// Create MulCandidates, each rooted at a Mul instruction, that is a part
107 if (I->getOpcode() == Instruction::Mul)
110 if (I->getOpcode() == Instruction::Mul)
125 if (auto *Mul = GetMulOperand(Add->getOperand(0)))
126 InsertMul(Mul);
127 if (auto *Mul = GetMulOperand(Add->getOperand(1)))
128 InsertMul(Mul);
186 for (auto &Mul : Muls)
187 LLVM_DEBUG(dbgs() << *Mul->Root << "\n"
188 << " " << *Mul->LHS << "\n"
189 << " " << *Mul->RHS << "\n");
425 // form a multiply-accumulate chain. The search records the Add and Mul
464 case Instruction::Mul: {
674 Instruction *Mul = cast<Instruction>(MulCand->Root);
675 LLVM_DEBUG(dbgs() << "Accumulating unpaired mul: " << *Mul << "\n");
677 if (R.getType() != Mul->getType()) {
679 Builder.SetInsertPoint(&*++BasicBlock::iterator(Mul));
680 Mul = cast<Instruction>(Builder.CreateSExt(Mul, R.getRoot()->getType()));
684 Acc = Mul;
689 // phi. But the phi will dominate Mul, meaning that Mul will be the
691 Builder.SetInsertPoint(GetInsertPoint(Mul, Acc));
692 Acc = Builder.CreateAdd(Mul, Acc);