Lines Matching defs:Den

256                                  Value *Num, Value *Den) const;
257 unsigned getDivNumBits(BinaryOperator &I, Value *Num, Value *Den,
262 Value *Num, Value *Den,
266 Value *Num, Value *Den, unsigned NumBits,
271 Value *Num, Value *Den) const;
274 Value *Num, Value *Den) const;
293 Value *optimizeWithRsq(IRBuilder<> &Builder, Value *Num, Value *Den,
297 Value *optimizeWithRcp(IRBuilder<> &Builder, Value *Num, Value *Den,
299 Value *optimizeWithFDivFast(IRBuilder<> &Builder, Value *Num, Value *Den,
302 Value *visitFDivElement(IRBuilder<> &Builder, Value *Num, Value *Den,
909 IRBuilder<> &Builder, Value *Num, Value *Den, const FastMathFlags DivFMF,
921 assert(Den->getType()->isFloatTy());
932 canIgnoreDenormalInput(Den, CtxI)) {
933 Value *Result = Builder.CreateUnaryIntrinsic(Intrinsic::amdgcn_rsq, Den);
938 return emitRsqIEEE1ULP(Builder, Den, IsNegative);
952 Value *Den, FastMathFlags FMF,
957 assert(Den->getType()->isFloatTy());
963 Value *Src = Den;
996 Value *Recip = Builder.CreateUnaryIntrinsic(Intrinsic::amdgcn_rcp, Den);
1000 Value *Recip = emitRcpIEEE1ULP(Builder, Den, false);
1015 IRBuilder<> &Builder, Value *Num, Value *Den, float ReqdAccuracy) const {
1021 assert(Den->getType()->isFloatTy());
1036 return Builder.CreateIntrinsic(Intrinsic::amdgcn_fdiv_fast, {}, {Num, Den});
1040 IRBuilder<> &Builder, Value *Num, Value *Den, FastMathFlags DivFMF,
1050 Value *Rcp = optimizeWithRcp(Builder, Num, Den, DivFMF, FDivInst);
1058 Value *FDivFast = optimizeWithFDivFast(Builder, Num, Den, ReqdDivAccuracy);
1062 return emitFrexpDiv(Builder, Num, Den, DivFMF);
1098 Value *Den = FDiv.getOperand(1);
1101 auto *DenII = dyn_cast<IntrinsicInst>(Den);
1135 extractValues(Builder, DenVals, Den);
1196 Value *Den,
1200 Den->getType()->getScalarSizeInBits());
1203 unsigned RHSSignBits = ComputeNumSignBits(Den, DL, 0, AC, &I);
1216 // All bits are used for unsigned division for Num or Den in range
1218 KnownBits Known = computeKnownBits(Den, DL, 0, AC, &I);
1240 Value *Den, bool IsDiv,
1242 unsigned DivBits = getDivNumBits(I, Num, Den, 24, IsSigned);
1245 return expandDivRem24Impl(Builder, I, Num, Den, DivBits, IsDiv, IsSigned);
1249 IRBuilder<> &Builder, BinaryOperator &I, Value *Num, Value *Den,
1253 Den = Builder.CreateTrunc(Den, I32Ty);
1261 JQ = Builder.CreateXor(Num, Den);
1274 Value *IB = Den;
1324 Value *Rem = Builder.CreateMul(Div, Den);
1351 Value *Den) const {
1352 if (Constant *C = dyn_cast<Constant>(Den)) {
1369 if (BinaryOperator *BinOpDen = dyn_cast<BinaryOperator>(Den)) {
1518 Value *Den) const {
1519 if (!ExpandDiv64InIR && divHasSpecialOptimization(I, Num, Den))
1527 unsigned NumDivBits = getDivNumBits(I, Num, Den, 32, IsSigned);
1533 Narrowed = expandDivRem24Impl(Builder, I, Num, Den, NumDivBits,
1536 Narrowed = expandDivRem32(Builder, I, Num, Den);
1587 Value *Den = I.getOperand(1);
1596 Value *DenEltN = Builder.CreateExtractElement(Den, N);
1623 NewDiv = expandDivRem32(Builder, I, Num, Den);
1625 NewDiv = shrinkDivRem64(Builder, I, Num, Den);