/freebsd/contrib/llvm-project/llvm/lib/Target/X86/ |
H A D | X86PartialReduction.cpp | 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() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/ |
H A D | ARMParallelDSP.cpp | 107 if (I->getOpcode() == Instruction::Mul) in InsertMuls() 110 if (I->getOpcode() == Instruction::Mul) in InsertMuls() 125 if (auto *Mul = GetMulOperand(Add->getOperand(0))) in InsertMuls() local 126 InsertMul(Mul); in InsertMuls() 127 if (auto *Mul = GetMulOperand(Add->getOperand(1))) in InsertMuls() local 128 InsertMul(Mul); in InsertMuls() 186 for (auto &Mul : Muls) in dump() 187 LLVM_DEBUG(dbgs() << *Mul->Root << "\n" in dump() 188 << " " << *Mul->LHS << "\n" in dump() 189 << " " << *Mul->RHS << "\n"); in dump() [all …]
|
H A D | MVELaneInterleavingPass.cpp | 146 cast<Instruction>(*E->user_begin())->getOpcode() != Instruction::Mul) { in isProfitableToInterleave() 236 case Instruction::Mul: in tryInterleave() 333 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); in optimizeDivRem() 370 Mul->setDebugLoc(RemInst->getDebugLoc()); in optimizeDivRem() 371 Sub->insertAfter(Mul); 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() 736 (ExpressionChangedStart->getOpcode() == Instruction::Mul && in RewriteExprTree() 941 for (auto Op : {Instruction::Add, Instruction::Sub, Instruction::Mul, in shouldConvertOrWithNoCommonBitsToAdd() 1037 BinaryOperator *Mul = BinaryOperator::CreateMul(Shl->getOperand(0), MulCst, in ConvertShiftToMul() local 1040 Mul->takeName(Shl); in ConvertShiftToMul() [all …]
|
H A D | StraightLineStrengthReduce.cpp | 137 Mul, // (B + i) * S enumerator 323 if (C.CandidateKind == Candidate::Mul) { in isSimplestForm() 384 case Instruction::Mul: in allocateCandidatesAndFindBasis() 443 allocateCandidatesAndFindBasis(Candidate::Mul, SE->getSCEV(B), Idx, RHS, I); in allocateCandidatesAndFindBasisForMul() 449 allocateCandidatesAndFindBasis(Candidate::Mul, SE->getSCEV(B), Idx, RHS, I); in allocateCandidatesAndFindBasisForMul() 453 allocateCandidatesAndFindBasis(Candidate::Mul, SE->getSCEV(LHS), Zero, RHS, in allocateCandidatesAndFindBasisForMul() 631 case Candidate::Mul: { in rewriteCandidateWithBasis()
|
H A D | NaryReassociate.cpp | 303 case Instruction::Mul: in tryReassociate() 516 case Instruction::Mul: in tryReassociatedBinaryOp() 532 case Instruction::Mul: in matchTernaryOp() 546 case Instruction::Mul: in getBinarySCEV()
|
H A D | LowerMatrixIntrinsics.cpp | 251 case Instruction::Mul: in isUniformShape() 837 auto *Mul = IsFP ? LocalBuilder.CreateFMul(T0, T1, "mmul") in sinkTranspose() local 839 auto *Result = cast<Instruction>(Mul); in sinkTranspose() 1298 Value *Mul = Builder.CreateFMul(A, B); in createMulAdd() local 1299 return Builder.CreateFAdd(Sum, Mul); in createMulAdd() 1303 Value *Mul = Builder.CreateMul(A, B); in createMulAdd() local 1304 return Builder.CreateAdd(Sum, Mul); in createMulAdd() 1442 int MulOpCode = IsIntVec ? Instruction::Mul : Instruction::FMul; in lowerDotProduct() 1494 Value *Mul = in lowerDotProduct() local 1499 Result = Builder.CreateAddReduce(Mul); in lowerDotProduct() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombineMulDivRem.cpp | 145 static Value *foldMulShl1(BinaryOperator &Mul, bool CommuteOperands, in foldMulShl1() argument 147 Value *X = Mul.getOperand(0), *Y = Mul.getOperand(1); in foldMulShl1() 151 const bool HasNSW = Mul.hasNoSignedWrap(); in foldMulShl1() 152 const bool HasNUW = Mul.hasNoUnsignedWrap(); in foldMulShl1() 158 return Builder.CreateShl(X, Z, Mul.getName(), HasNUW, PropagateNSW); in foldMulShl1() 173 return Builder.CreateAdd(Shl, FrX, Mul.getName(), HasNUW, PropagateNSW); in foldMulShl1() 186 return Builder.CreateSub(Shl, FrX, Mul.getName()); in foldMulShl1() 237 BinaryOperator *Mul = cast<BinaryOperator>(I.getOperand(0)); in visitMul() local 239 if (HasNUW && Mul->hasNoUnsignedWrap()) in visitMul() 241 if (HasNSW && Mul->hasNoSignedWrap() && Shl->isNotMinSignedValue()) in visitMul() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | VPlanPatternMatch.h | 272 inline AllBinaryRecipe_match<Op0_t, Op1_t, Instruction::Mul> 274 return m_Binary<Instruction::Mul, Op0_t, Op1_t>(Op0, Op1); 278 inline AllBinaryRecipe_match<Op0_t, Op1_t, Instruction::Mul, 281 return m_Binary<Instruction::Mul, Op0_t, Op1_t, true>(Op0, Op1);
|
H A D | VPlanAnalysis.cpp | 103 case Instruction::Mul: in inferScalarTypeForRecipe() 169 case Instruction::Mul: in inferScalarTypeForRecipe()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/ |
H A D | CombinerHelperVectorOps.cpp | 426 GMul *Mul = cast<GMul>(MRI.getVRegDef(MO.getReg())); in matchMulOfVScale() local 427 GVScale *LHSVScale = cast<GVScale>(MRI.getVRegDef(Mul->getLHSReg())); in matchMulOfVScale() 429 std::optional<APInt> MaybeRHS = getIConstantVRegVal(Mul->getRHSReg(), MRI); in matchMulOfVScale()
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | IVDescriptors.cpp | 45 case RecurKind::Mul: in isIntegerRecurrenceKind() 778 case Instruction::Mul: in isRecurrenceInstr() 779 return InstDesc(Kind == RecurKind::Mul, I); in isRecurrenceInstr() 796 Kind == RecurKind::Add || Kind == RecurKind::Mul) in isRecurrenceInstr() 856 if (AddReductionVar(Phi, RecurKind::Mul, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI() 1045 case RecurKind::Mul: in getRecurrenceIdentity() 1100 case RecurKind::Mul: in getOpcode() 1101 return Instruction::Mul; in getOpcode()
|
H A D | ScalarEvolution.cpp | 461 const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(this); in isNonConstantNegative() local 462 if (!Mul) return false; in isNonConstantNegative() 465 const SCEVConstant *SC = dyn_cast<SCEVConstant>(Mul->getOperand(0)); in isNonConstantNegative() 2257 const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(Ops[i]); in CollectAddOperandsWithScales() local 2258 if (Mul && isa<SCEVConstant>(Mul->getOperand(0))) { in CollectAddOperandsWithScales() 2260 Scale * cast<SCEVConstant>(Mul->getOperand(0))->getAPInt(); in CollectAddOperandsWithScales() 2261 if (Mul->getNumOperands() == 2 && isa<SCEVAddExpr>(Mul->getOperand(1))) { in CollectAddOperandsWithScales() 2263 const SCEVAddExpr *Add = cast<SCEVAddExpr>(Mul->getOperand(1)); in CollectAddOperandsWithScales() 2270 SmallVector<const SCEV *, 4> MulOps(drop_begin(Mul->operands())); in CollectAddOperandsWithScales() 2314 case Instruction::Mul: in willNotOverflow() [all …]
|
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()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
H A D | RISCVGatherScatterLowering.cpp | 141 BO->getOpcode() != Instruction::Mul)) in matchStridedStart() 178 case Instruction::Mul: in matchStridedStart() 260 case Instruction::Mul: in matchStridedRecurrence() 313 case Instruction::Mul: { in matchStridedRecurrence()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/Mips/ |
H A D | Mips16ISelDAGToDAG.cpp | 48 SDNode *Mul = CurDAG->getMachineNode(Opc, DL, MVT::Glue, N->getOperand(0), in selectMULT() local 50 SDValue InGlue = SDValue(Mul, 0); in selectMULT()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/ |
H A D | Operator.h | 129 I->getOpcode() == Instruction::Mul || in classof() 135 CE->getOpcode() == Instruction::Mul || in classof() 387 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {
|
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))
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/AggressiveInstCombine/ |
H A D | TruncInstCombine.cpp | 59 case Instruction::Mul: in getRelevantOperands() 138 case Instruction::Mul: in buildTruncExpressionGraph() 428 case Instruction::Mul: in ReduceExpressionGraph()
|
/freebsd/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ |
H A D | VLASizeChecker.cpp | 117 SVal Mul = SVB.evalBinOpNN(State, BO_Mul, ArrSize, IndexLength, SizeTy); in checkVLA() local 118 if (auto MulNonLoc = Mul.getAs<NonLoc>()) in checkVLA()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | ComplexDeinterleavingPass.cpp | 561 Real->getOpcode() != Instruction::Mul) || in identifyNodeWithImplicitAdd() 563 Imag->getOpcode() != Instruction::Mul)) { in identifyNodeWithImplicitAdd() 844 case Instruction::Mul: in isInstructionPotentiallySymmetric() 1033 case Instruction::Mul: { in identifyReassocNodes() 1208 for (auto *Mul : {&RealMuls[PMI.RealIdx], &RealMuls[PMI.RealIdx]}) in identifyMultiplications() 1209 dbgs().indent(4) << (Mul->IsPositive ? "+" : "-") << *Mul->Multiplier in identifyMultiplications() 1210 << " multiplied by " << *Mul->Multiplicand << "\n"; in identifyMultiplications() 1906 case Instruction::Mul: in replaceSymmetricNode()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/XCore/ |
H A D | XCoreISelLowering.cpp | 626 SDValue Mul; in TryExpandADDWithMul() local 629 Mul = N->getOperand(0); in TryExpandADDWithMul() 632 Mul = N->getOperand(1); in TryExpandADDWithMul() 640 Mul.getOperand(0), DAG.getConstant(0, dl, MVT::i32)); in TryExpandADDWithMul() 642 Mul.getOperand(1), DAG.getConstant(0, dl, MVT::i32)); in TryExpandADDWithMul() 648 unsigned LHSSB = DAG.ComputeNumSignBits(Mul.getOperand(0)); in TryExpandADDWithMul() 649 unsigned RHSSB = DAG.ComputeNumSignBits(Mul.getOperand(1)); in TryExpandADDWithMul() 650 if (DAG.MaskedValueIsZero(Mul.getOperand(0), HighMask) && in TryExpandADDWithMul() 651 DAG.MaskedValueIsZero(Mul.getOperand(1), HighMask)) { in TryExpandADDWithMul() 669 Mul.getOperand(0), DAG.getConstant(1, dl, MVT::i32)); in TryExpandADDWithMul() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/ |
H A D | SPIRVPrepareFunctions.cpp | 357 Value *Mul = IRB.CreateNUWMul(UMulFunc->getArg(0), UMulFunc->getArg(1)); in buildUMulWithOverflowFunc() local 358 Value *Div = IRB.CreateUDiv(Mul, UMulFunc->getArg(0)); in buildUMulWithOverflowFunc() 364 Value *Agg = IRB.CreateInsertValue(PoisonValue::get(StructTy), Mul, {0}); in buildUMulWithOverflowFunc()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/DirectX/ |
H A D | DXILIntrinsicExpansion.cpp | 210 auto *Mul = Builder.CreateFMul(Log2Call, Y); in expandPowIntrinsic() local 212 Builder.CreateIntrinsic(Ty, Intrinsic::exp2, {Mul}, nullptr, "elt.exp2"); in expandPowIntrinsic()
|