Lines Matching refs:Den
242 Value *Num, Value *Den) const;
244 Value *Num, Value *Den,
249 Value *Num, Value *Den,
253 Value *Num, Value *Den, unsigned NumBits,
258 Value *Num, Value *Den) const;
261 Value *Num, Value *Den) const;
280 Value *optimizeWithRsq(IRBuilder<> &Builder, Value *Num, Value *Den,
284 Value *optimizeWithRcp(IRBuilder<> &Builder, Value *Num, Value *Den,
286 Value *optimizeWithFDivFast(IRBuilder<> &Builder, Value *Num, Value *Den,
289 Value *visitFDivElement(IRBuilder<> &Builder, Value *Num, Value *Den,
901 IRBuilder<> &Builder, Value *Num, Value *Den, const FastMathFlags DivFMF, in optimizeWithRsq() argument
913 assert(Den->getType()->isFloatTy()); in optimizeWithRsq()
924 canIgnoreDenormalInput(Den, CtxI)) { in optimizeWithRsq()
925 Value *Result = Builder.CreateUnaryIntrinsic(Intrinsic::amdgcn_rsq, Den); in optimizeWithRsq()
930 return emitRsqIEEE1ULP(Builder, Den, IsNegative); in optimizeWithRsq()
944 Value *Den, FastMathFlags FMF, in optimizeWithRcp() argument
949 assert(Den->getType()->isFloatTy()); in optimizeWithRcp()
955 Value *Src = Den; in optimizeWithRcp()
988 Value *Recip = Builder.CreateUnaryIntrinsic(Intrinsic::amdgcn_rcp, Den); in optimizeWithRcp()
992 Value *Recip = emitRcpIEEE1ULP(Builder, Den, false); in optimizeWithRcp()
1007 IRBuilder<> &Builder, Value *Num, Value *Den, float ReqdAccuracy) const { in optimizeWithFDivFast() argument
1013 assert(Den->getType()->isFloatTy()); in optimizeWithFDivFast()
1028 return Builder.CreateIntrinsic(Intrinsic::amdgcn_fdiv_fast, {}, {Num, Den}); in optimizeWithFDivFast()
1032 IRBuilder<> &Builder, Value *Num, Value *Den, FastMathFlags DivFMF, in visitFDivElement() argument
1042 Value *Rcp = optimizeWithRcp(Builder, Num, Den, DivFMF, FDivInst); in visitFDivElement()
1050 Value *FDivFast = optimizeWithFDivFast(Builder, Num, Den, ReqdDivAccuracy); in visitFDivElement()
1054 return emitFrexpDiv(Builder, Num, Den, DivFMF); in visitFDivElement()
1090 Value *Den = FDiv.getOperand(1); in visitFDiv() local
1093 auto *DenII = dyn_cast<IntrinsicInst>(Den); in visitFDiv()
1127 extractValues(Builder, DenVals, Den); in visitFDiv()
1192 Value *Den, unsigned AtLeast, in getDivNumBits() argument
1199 unsigned RHSSignBits = ComputeNumSignBits(Den, DL, 0, AC, &I); in getDivNumBits()
1214 Value *Den, bool IsDiv, in expandDivRem24() argument
1216 int DivBits = getDivNumBits(I, Num, Den, 9, IsSigned); in expandDivRem24()
1219 return expandDivRem24Impl(Builder, I, Num, Den, DivBits, IsDiv, IsSigned); in expandDivRem24()
1223 IRBuilder<> &Builder, BinaryOperator &I, Value *Num, Value *Den, in expandDivRem24Impl() argument
1227 Den = Builder.CreateTrunc(Den, I32Ty); in expandDivRem24Impl()
1235 JQ = Builder.CreateXor(Num, Den); in expandDivRem24Impl()
1248 Value *IB = Den; in expandDivRem24Impl()
1299 Value *Rem = Builder.CreateMul(Div, Den); in expandDivRem24Impl()
1326 Value *Den) const { in divHasSpecialOptimization()
1327 if (Constant *C = dyn_cast<Constant>(Den)) { in divHasSpecialOptimization()
1344 if (BinaryOperator *BinOpDen = dyn_cast<BinaryOperator>(Den)) { in divHasSpecialOptimization()
1494 Value *Den) const { in shrinkDivRem64()
1495 if (!ExpandDiv64InIR && divHasSpecialOptimization(I, Num, Den)) in shrinkDivRem64()
1503 int NumDivBits = getDivNumBits(I, Num, Den, 32, IsSigned); in shrinkDivRem64()
1509 Narrowed = expandDivRem24Impl(Builder, I, Num, Den, NumDivBits, in shrinkDivRem64()
1512 Narrowed = expandDivRem32(Builder, I, Num, Den); in shrinkDivRem64()
1563 Value *Den = I.getOperand(1); in visitBinaryOperator() local
1572 Value *DenEltN = Builder.CreateExtractElement(Den, N); in visitBinaryOperator()
1596 NewDiv = expandDivRem32(Builder, I, Num, Den); in visitBinaryOperator()
1598 NewDiv = shrinkDivRem64(Builder, I, Num, Den); in visitBinaryOperator()