Home
last modified time | relevance | path

Searched refs:Mul (Results 1 – 25 of 184) sorted by relevance

12345678

/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86PartialReduction.cpp68 static bool matchVPDPBUSDPattern(const X86Subtarget *ST, BinaryOperator *Mul, in matchVPDPBUSDPattern() argument
73 Value *LHS = Mul->getOperand(0); in matchVPDPBUSDPattern()
74 Value *RHS = Mul->getOperand(1); in matchVPDPBUSDPattern()
81 if (Cast->getParent() == Mul->getParent() && in matchVPDPBUSDPattern()
115 auto *Mul = dyn_cast<BinaryOperator>(Op); in tryMAddReplacement() local
116 if (!Mul || Mul->getOpcode() != Instruction::Mul) in tryMAddReplacement()
119 Value *LHS = Mul->getOperand(0); in tryMAddReplacement()
120 Value *RHS = Mul->getOperand(1); in tryMAddReplacement()
126 if (ReduceInOneBB && matchVPDPBUSDPattern(ST, Mul, DL)) in tryMAddReplacement()
148 if (Cast->getParent() == Mul->getParent() && in tryMAddReplacement()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/
H A DARMParallelDSP.cpp106 if (I->getOpcode() == Instruction::Mul) in InsertMuls()
109 if (I->getOpcode() == Instruction::Mul) in InsertMuls()
124 if (auto *Mul = GetMulOperand(Add->getOperand(0))) in InsertMuls() local
125 InsertMul(Mul); in InsertMuls()
126 if (auto *Mul = GetMulOperand(Add->getOperand(1))) in InsertMuls() local
127 InsertMul(Mul); in InsertMuls()
185 for (auto &Mul : Muls) in dump()
186 LLVM_DEBUG(dbgs() << *Mul->Root << "\n" in dump()
187 << " " << *Mul->LHS << "\n" in dump()
188 << " " << *Mul->RHS << "\n"); in dump()
[all …]
H A DMVELaneInterleavingPass.cpp140 cast<Instruction>(*E->user_begin())->getOpcode() != Instruction::Mul) { in isProfitableToInterleave()
230 case Instruction::Mul: in tryInterleave()
327 return I->getOpcode() == Instruction::Mul || in tryInterleave()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DDivRemPairs.cpp334 Instruction *Mul = BinaryOperator::CreateMul(DivInst, Y); in optimizeDivRem() local
335 Instruction *Sub = BinaryOperator::CreateSub(X, Mul); in optimizeDivRem()
369 Mul->insertAfter(RemInst->getIterator()); in optimizeDivRem()
370 Mul->setDebugLoc(RemInst->getDebugLoc()); in optimizeDivRem()
371 Sub->insertAfter(Mul->getIterator()); in optimizeDivRem()
401 Mul->setOperand(1, FrY); in optimizeDivRem()
H A DReassociate.cpp502 if (((Opcode == Instruction::Mul && match(Op, m_Neg(m_Value()))) || in LinearizeExprTree()
507 Instruction *Mul = LowerNegateToMultiply(Neg); in LinearizeExprTree() local
508 LLVM_DEBUG(dbgs() << *Mul << '\n'); in LinearizeExprTree()
509 Worklist.push_back(std::make_pair(Mul, Weight)); in LinearizeExprTree()
510 for (User *U : Mul->users()) { in LinearizeExprTree()
542 else if (Opcode == Instruction::Mul) { in LinearizeExprTree()
934 for (auto Op : {Instruction::Add, Instruction::Sub, Instruction::Mul, in shouldConvertOrWithNoCommonBitsToAdd()
1030 BinaryOperator *Mul = BinaryOperator::CreateMul(Shl->getOperand(0), MulCst, in ConvertShiftToMul() local
1033 Mul->takeName(Shl); in ConvertShiftToMul()
1036 Shl->replaceAllUsesWith(Mul); in ConvertShiftToMul()
[all …]
H A DStraightLineStrengthReduce.cpp141 Mul, // (B + i) * S enumerator
327 if (C.CandidateKind == Candidate::Mul) { in isSimplestForm()
388 case Instruction::Mul: in allocateCandidatesAndFindBasis()
447 allocateCandidatesAndFindBasis(Candidate::Mul, SE->getSCEV(B), Idx, RHS, I); in allocateCandidatesAndFindBasisForMul()
453 allocateCandidatesAndFindBasis(Candidate::Mul, SE->getSCEV(B), Idx, RHS, I); in allocateCandidatesAndFindBasisForMul()
457 allocateCandidatesAndFindBasis(Candidate::Mul, SE->getSCEV(LHS), Zero, RHS, in allocateCandidatesAndFindBasisForMul()
638 case Candidate::Mul: { in rewriteCandidateWithBasis()
H A DNaryReassociate.cpp303 case Instruction::Mul: in tryReassociate()
514 case Instruction::Mul: in tryReassociatedBinaryOp()
530 case Instruction::Mul: in matchTernaryOp()
544 case Instruction::Mul: in getBinarySCEV()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DEVLIndVarSimplify.cpp65 if (const auto *Mul = dyn_cast<SCEVMulExpr>(Step)) { in getVFFromIndVar() local
66 if (Mul->getNumOperands() == 2) { in getVFFromIndVar()
67 const SCEV *LHS = Mul->getOperand(0); in getVFFromIndVar()
68 const SCEV *RHS = Mul->getOperand(1); in getVFFromIndVar()
H A DVPlanTransforms.cpp1748 if (RK != RecurKind::Add && RK != RecurKind::Mul) in clearReductionWrapFlags()
2607 MulOp = Instruction::Mul; in expandVPWidenIntOrFpInduction()
2752 IVTy->isFloatingPointTy() ? Instruction::FMul : Instruction::Mul; in convertToConcreteRecipes()
2753 VPInstruction *Mul = Builder.createNaryOp( in convertToConcreteRecipes() local
2755 VectorStep = Mul; in convertToConcreteRecipes()
2920 [&](bool isZExt, VPWidenRecipe *Mul, VPWidenCastRecipe *Ext0, in tryToMatchAndCreateMulAccumulateReduction()
2930 InstructionCost MulCost = Mul->computeCost(VF, Ctx); in tryToMatchAndCreateMulAccumulateReduction()
2954 auto *Mul = cast<VPWidenRecipe>(VecOp->getDefiningRecipe()); in tryToMatchAndCreateMulAccumulateReduction() local
2963 Mul, RecipeA, RecipeB, nullptr)) { in tryToMatchAndCreateMulAccumulateReduction()
2964 return new VPExpressionRecipe(RecipeA, RecipeB, Mul, Red); in tryToMatchAndCreateMulAccumulateReduction()
[all …]
H A DVPlanPatternMatch.h435 inline AllBinaryRecipe_match<Op0_t, Op1_t, Instruction::Mul>
437 return m_Binary<Instruction::Mul, Op0_t, Op1_t>(Op0, Op1); in m_Mul()
441 inline AllBinaryRecipe_match<Op0_t, Op1_t, Instruction::Mul,
444 return m_Binary<Instruction::Mul, Op0_t, Op1_t, true>(Op0, Op1); in m_c_Mul()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineMulDivRem.cpp142 static Value *foldMulShl1(BinaryOperator &Mul, bool CommuteOperands, in foldMulShl1() argument
144 Value *X = Mul.getOperand(0), *Y = Mul.getOperand(1); in foldMulShl1()
148 const bool HasNSW = Mul.hasNoSignedWrap(); in foldMulShl1()
149 const bool HasNUW = Mul.hasNoUnsignedWrap(); in foldMulShl1()
155 return Builder.CreateShl(X, Z, Mul.getName(), HasNUW, PropagateNSW); in foldMulShl1()
170 return Builder.CreateAdd(Shl, FrX, Mul.getName(), HasNUW, PropagateNSW); in foldMulShl1()
183 return Builder.CreateSub(Shl, FrX, Mul.getName()); in foldMulShl1()
231 BinaryOperator *Mul = cast<BinaryOperator>(I.getOperand(0)); in visitMul() local
233 if (HasNUW && Mul->hasNoUnsignedWrap()) in visitMul()
235 if (HasNSW && Mul->hasNoSignedWrap() && Shl->isNotMinSignedValue()) in visitMul()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVGatherScatterLowering.cpp139 BO->getOpcode() != Instruction::Mul)) in matchStridedStart()
176 case Instruction::Mul: in matchStridedStart()
254 case Instruction::Mul: in matchStridedRecurrence()
308 case Instruction::Mul: { in matchStridedRecurrence()
328 case Instruction::Mul: in matchStridedRecurrence()
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DScalarEvolution.cpp453 const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(this); in isNonConstantNegative() local
454 if (!Mul) return false; in isNonConstantNegative()
457 const SCEVConstant *SC = dyn_cast<SCEVConstant>(Mul->getOperand(0)); in isNonConstantNegative()
2260 const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(Ops[i]); in CollectAddOperandsWithScales() local
2261 if (Mul && isa<SCEVConstant>(Mul->getOperand(0))) { in CollectAddOperandsWithScales()
2263 Scale * cast<SCEVConstant>(Mul->getOperand(0))->getAPInt(); in CollectAddOperandsWithScales()
2264 if (Mul->getNumOperands() == 2 && isa<SCEVAddExpr>(Mul->getOperand(1))) { in CollectAddOperandsWithScales()
2266 const SCEVAddExpr *Add = cast<SCEVAddExpr>(Mul->getOperand(1)); in CollectAddOperandsWithScales()
2273 SmallVector<const SCEV *, 4> MulOps(drop_begin(Mul->operands())); in CollectAddOperandsWithScales()
2317 case Instruction::Mul: in willNotOverflow()
[all …]
H A DIVDescriptors.cpp44 case RecurKind::Mul: in isIntegerRecurrenceKind()
902 case Instruction::Mul: in isRecurrenceInstr()
903 return InstDesc(Kind == RecurKind::Mul, I); in isRecurrenceInstr()
920 Kind == RecurKind::Add || Kind == RecurKind::Mul) in isRecurrenceInstr()
1006 if (AddReductionVar(Phi, RecurKind::Mul, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
1206 case RecurKind::Mul: in getOpcode()
1207 return Instruction::Mul; in getOpcode()
H A DStackSafetyAnalysis.cpp170 APInt Mul = C->getValue(); in getStaticAllocaSizeRange() local
171 if (Mul.isNonPositive()) in getStaticAllocaSizeRange()
173 Mul = Mul.sextOrTrunc(PointerSize); in getStaticAllocaSizeRange()
174 APSize = APSize.smul_ov(Mul, Overflow); in getStaticAllocaSizeRange()
H A DDelinearization.cpp130 if (auto *Mul = dyn_cast<SCEVMulExpr>(S)) { in follow() local
133 for (const SCEV *Op : Mul->operands()) { in follow()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/
H A DCombinerHelperVectorOps.cpp386 GMul *Mul = cast<GMul>(MRI.getVRegDef(MO.getReg())); in matchMulOfVScale() local
387 GVScale *LHSVScale = cast<GVScale>(MRI.getVRegDef(Mul->getLHSReg())); in matchMulOfVScale()
389 std::optional<APInt> MaybeRHS = getIConstantVRegVal(Mul->getRHSReg(), MRI); in matchMulOfVScale()
/freebsd/contrib/llvm-project/llvm/lib/Target/Mips/
H A DMips16ISelDAGToDAG.cpp39 SDNode *Mul = CurDAG->getMachineNode(Opc, DL, MVT::Glue, N->getOperand(0), in selectMULT() local
41 SDValue InGlue = SDValue(Mul, 0); in selectMULT()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/AggressiveInstCombine/
H A DTruncInstCombine.cpp59 case Instruction::Mul: in getRelevantOperands()
137 case Instruction::Mul: in buildTruncExpressionGraph()
427 case Instruction::Mul: in ReduceExpressionGraph()
/freebsd/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/
H A DVLASizeChecker.cpp115 SVal Mul = SVB.evalBinOpNN(State, BO_Mul, ArrSize, IndexLength, SizeTy); in checkVLA() local
116 if (auto MulNonLoc = Mul.getAs<NonLoc>()) in checkVLA()
/freebsd/contrib/llvm-project/llvm/lib/Target/XCore/
H A DXCoreISelLowering.cpp599 SDValue Mul; in TryExpandADDWithMul() local
602 Mul = N->getOperand(0); in TryExpandADDWithMul()
605 Mul = N->getOperand(1); in TryExpandADDWithMul()
613 Mul.getOperand(0), DAG.getConstant(0, dl, MVT::i32)); in TryExpandADDWithMul()
615 Mul.getOperand(1), DAG.getConstant(0, dl, MVT::i32)); in TryExpandADDWithMul()
621 unsigned LHSSB = DAG.ComputeNumSignBits(Mul.getOperand(0)); in TryExpandADDWithMul()
622 unsigned RHSSB = DAG.ComputeNumSignBits(Mul.getOperand(1)); in TryExpandADDWithMul()
623 if (DAG.MaskedValueIsZero(Mul.getOperand(0), HighMask) && in TryExpandADDWithMul()
624 DAG.MaskedValueIsZero(Mul.getOperand(1), HighMask)) { in TryExpandADDWithMul()
642 Mul.getOperand(0), DAG.getConstant(1, dl, MVT::i32)); in TryExpandADDWithMul()
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/
H A DIntrinsicsHexagon.td390 // V6_vmpyss_parts(Vu,Vv) = (MulHS(Vu,Vv), Mul(Vu,Vv))
391 // V6_vmpyuu_parts(Vu,Vv) = (MulHU(Vu,Vv), Mul(Vu,Vv))
392 // V6_vmpyus_parts(Vu,Vv) = (MulHUS(Vu,Vv), Mul(Vu,Vv))
H A DOperator.h133 I->getOpcode() == Instruction::Mul || in classof()
406 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DComplexDeinterleavingPass.cpp577 Real->getOpcode() != Instruction::Mul) || in identifyNodeWithImplicitAdd()
579 Imag->getOpcode() != Instruction::Mul)) { in identifyNodeWithImplicitAdd()
860 case Instruction::Mul: in isInstructionPotentiallySymmetric()
1197 case Instruction::Mul: { in identifyReassocNodes()
1372 for (auto *Mul : {&RealMuls[PMI.RealIdx], &RealMuls[PMI.RealIdx]}) in identifyMultiplications()
1373 dbgs().indent(4) << (Mul->IsPositive ? "+" : "-") << *Mul->Multiplier in identifyMultiplications()
1374 << " multiplied by " << *Mul->Multiplicand << "\n"; in identifyMultiplications()
2131 case Instruction::Mul: in replaceSymmetricNode()
/freebsd/contrib/llvm-project/llvm/include/llvm/MC/
H A DMCExpr.h317 Mul, ///< Multiplication. enumerator
400 return create(Mul, LHS, RHS, Ctx); in createMul()

12345678