Lines Matching refs:Mul
70 static bool matchVPDPBUSDPattern(const X86Subtarget *ST, BinaryOperator *Mul, in matchVPDPBUSDPattern() argument
75 Value *LHS = Mul->getOperand(0); in matchVPDPBUSDPattern()
76 Value *RHS = Mul->getOperand(1); in matchVPDPBUSDPattern()
83 if (Cast->getParent() == Mul->getParent() && in matchVPDPBUSDPattern()
117 auto *Mul = dyn_cast<BinaryOperator>(Op); in tryMAddReplacement() local
118 if (!Mul || Mul->getOpcode() != Instruction::Mul) in tryMAddReplacement()
121 Value *LHS = Mul->getOperand(0); in tryMAddReplacement()
122 Value *RHS = Mul->getOperand(1); in tryMAddReplacement()
128 if (ReduceInOneBB && matchVPDPBUSDPattern(ST, Mul, DL)) in tryMAddReplacement()
150 if (Cast->getParent() == Mul->getParent() && in tryMAddReplacement()
163 ComputeNumSignBits(Op, *DL, 0, nullptr, Mul) > 16) in tryMAddReplacement()
169 if (BO->getParent() == Mul->getParent() && in tryMAddReplacement()
172 ComputeNumSignBits(Op, *DL, 0, nullptr, Mul) > 16) in tryMAddReplacement()
183 IRBuilder<> Builder(Mul); in tryMAddReplacement()
199 Value *NewMul = Builder.CreateMul(Mul->getOperand(0), Mul->getOperand(1)); in tryMAddReplacement()
210 Mul->replaceAllUsesWith(Concat); in tryMAddReplacement()
211 Mul->eraseFromParent(); in tryMAddReplacement()