diff --git a/lib/VMCore/ConstantFold.cpp b/lib/VMCore/ConstantFold.cpp index 917098d3513..0c1d7f73ae1 100644 --- a/lib/VMCore/ConstantFold.cpp +++ b/lib/VMCore/ConstantFold.cpp @@ -699,23 +699,6 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode, (void)C3V.multiply(C2V, APFloat::rmNearestTiesToEven); return ConstantFP::get(CFP1->getType(), C3V); case Instruction::FDiv: - // FIXME better to look at the return code - if (C2V.isZero()) - if (C1V.isZero()) - // IEEE 754, Section 7.1, #4 - return ConstantFP::get(CFP1->getType(), isDouble ? - APFloat(std::numeric_limits::quiet_NaN()) : - APFloat(std::numeric_limits::quiet_NaN())); - else if (C2V.isNegZero() || C1V.isNegative()) - // IEEE 754, Section 7.2, negative infinity case - return ConstantFP::get(CFP1->getType(), isDouble ? - APFloat(-std::numeric_limits::infinity()) : - APFloat(-std::numeric_limits::infinity())); - else - // IEEE 754, Section 7.2, positive infinity case - return ConstantFP::get(CFP1->getType(), isDouble ? - APFloat(std::numeric_limits::infinity()) : - APFloat(std::numeric_limits::infinity())); (void)C3V.divide(C2V, APFloat::rmNearestTiesToEven); return ConstantFP::get(CFP1->getType(), C3V); case Instruction::FRem: