Home
last modified time | relevance | path

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

1234567

/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86PartialReduction.cpp70 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 DARMParallelDSP.cpp107 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 DMVELaneInterleavingPass.cpp146 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 DDivRemPairs.cpp334 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 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()
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 DStraightLineStrengthReduce.cpp137 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 DNaryReassociate.cpp303 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 DLowerMatrixIntrinsics.cpp251 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 DInstCombineMulDivRem.cpp145 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 DVPlanPatternMatch.h272 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 DVPlanAnalysis.cpp103 case Instruction::Mul: in inferScalarTypeForRecipe()
169 case Instruction::Mul: in inferScalarTypeForRecipe()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/
H A DCombinerHelperVectorOps.cpp426 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 DIVDescriptors.cpp45 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 DScalarEvolution.cpp461 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 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()
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVGatherScatterLowering.cpp141 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 DMips16ISelDAGToDAG.cpp48 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 DOperator.h129 I->getOpcode() == Instruction::Mul || in classof()
135 CE->getOpcode() == Instruction::Mul || in classof()
387 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {
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))
/freebsd/contrib/llvm-project/llvm/lib/Transforms/AggressiveInstCombine/
H A DTruncInstCombine.cpp59 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 DVLASizeChecker.cpp117 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 DComplexDeinterleavingPass.cpp561 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 DXCoreISelLowering.cpp626 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 DSPIRVPrepareFunctions.cpp357 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 DDXILIntrinsicExpansion.cpp210 auto *Mul = Builder.CreateFMul(Log2Call, Y); in expandPowIntrinsic() local
212 Builder.CreateIntrinsic(Ty, Intrinsic::exp2, {Mul}, nullptr, "elt.exp2"); in expandPowIntrinsic()

1234567