| /freebsd/contrib/llvm-project/llvm/lib/Target/X86/ |
| H A D | X86PartialReduction.cpp | 68 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 D | ARMParallelDSP.cpp | 106 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 D | MVELaneInterleavingPass.cpp | 140 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 D | DivRemPairs.cpp | 334 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 D | Reassociate.cpp | 502 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 D | StraightLineStrengthReduce.cpp | 141 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 D | NaryReassociate.cpp | 303 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 D | EVLIndVarSimplify.cpp | 65 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 D | VPlanTransforms.cpp | 1748 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 D | VPlanPatternMatch.h | 435 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 D | InstCombineMulDivRem.cpp | 142 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 D | RISCVGatherScatterLowering.cpp | 139 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 D | ScalarEvolution.cpp | 453 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 D | IVDescriptors.cpp | 44 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 D | StackSafetyAnalysis.cpp | 170 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 D | Delinearization.cpp | 130 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 D | CombinerHelperVectorOps.cpp | 386 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 D | Mips16ISelDAGToDAG.cpp | 39 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 D | TruncInstCombine.cpp | 59 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 D | VLASizeChecker.cpp | 115 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 D | XCoreISelLowering.cpp | 599 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 D | IntrinsicsHexagon.td | 390 // 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 D | Operator.h | 133 I->getOpcode() == Instruction::Mul || in classof() 406 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {
|
| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | ComplexDeinterleavingPass.cpp | 577 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 D | MCExpr.h | 317 Mul, ///< Multiplication. enumerator 400 return create(Mul, LHS, RHS, Ctx); in createMul()
|