reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
 1203   if (Value *V = SimplifyFDivInst(I.getOperand(0), I.getOperand(1),
 1203   if (Value *V = SimplifyFDivInst(I.getOperand(0), I.getOperand(1),
 1204                                   I.getFastMathFlags(),
 1205                                   SQ.getWithInstruction(&I)))
 1206     return replaceInstUsesWith(I, V);
 1208   if (Instruction *X = foldVectorBinop(I))
 1211   if (Instruction *R = foldFDivConstantDivisor(I))
 1214   if (Instruction *R = foldFDivConstantDividend(I))
 1217   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
 1217   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
 1220       if (Instruction *R = FoldOpIntoSelect(I, SI))
 1225       if (Instruction *R = FoldOpIntoSelect(I, SI))
 1228   if (I.hasAllowReassoc() && I.hasAllowReciprocal()) {
 1228   if (I.hasAllowReassoc() && I.hasAllowReciprocal()) {
 1233       Value *YZ = Builder.CreateFMulFMF(Y, Op1, &I);
 1234       return BinaryOperator::CreateFDivFMF(X, YZ, &I);
 1239       Value *YZ = Builder.CreateFMulFMF(Y, Op0, &I);
 1240       return BinaryOperator::CreateFDivFMF(YZ, X, &I);
 1244   if (I.hasAllowReassoc() && Op0->hasOneUse() && Op1->hasOneUse()) {
 1255         hasFloatFn(&TLI, I.getType(), LibFunc_tan, LibFunc_tanf, LibFunc_tanl)) {
 1256       IRBuilder<> B(&I);
 1258       B.setFastMathFlags(I.getFastMathFlags());
 1264         Res = B.CreateFDiv(ConstantFP::get(I.getType(), 1.0), Res);
 1265       return replaceInstUsesWith(I, Res);
 1272     I.setOperand(0, X);
 1273     I.setOperand(1, Y);
 1274     return &I;
 1280   if (I.hasNoNaNs() && I.hasAllowReassoc() &&
 1280   if (I.hasNoNaNs() && I.hasAllowReassoc() &&
 1282     I.setOperand(0, ConstantFP::get(I.getType(), 1.0));
 1282     I.setOperand(0, ConstantFP::get(I.getType(), 1.0));
 1283     I.setOperand(1, Y);
 1284     return &I;
 1289   if (I.hasNoNaNs() && I.hasNoInfs() &&
 1289   if (I.hasNoNaNs() && I.hasNoInfs() &&
 1290       (match(&I,
 1292        match(&I, m_FDiv(m_Intrinsic<Intrinsic::fabs>(m_Value(X)),
 1295         Intrinsic::copysign, ConstantFP::get(I.getType(), 1.0), X, &I);
 1295         Intrinsic::copysign, ConstantFP::get(I.getType(), 1.0), X, &I);
 1296     return replaceInstUsesWith(I, V);