From: Jim Grosbach Date: Thu, 16 Sep 2010 17:37:30 +0000 (+0000) Subject: Make sure to promote single precision floats to double before extracting them X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1d51c41a457b99d646e3a9b9fae1e913f7a60dc0;p=oota-llvm.git Make sure to promote single precision floats to double before extracting them from the APFloat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114096 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/ARMMCInstLower.cpp b/lib/Target/ARM/ARMMCInstLower.cpp index 8774010d89d..404a73b95c7 100644 --- a/lib/Target/ARM/ARMMCInstLower.cpp +++ b/lib/Target/ARM/ARMMCInstLower.cpp @@ -157,8 +157,10 @@ void ARMMCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const { MO.getBlockAddress())); break; case MachineOperand::MO_FPImmediate: - MCOp = - MCOperand::CreateFPImm(MO.getFPImm()->getValueAPF().convertToDouble()); + APFloat Val = MO.getFPImm()->getValueAPF(); + bool ignored; + Val.convert(APFloat::IEEEdouble, APFloat::rmTowardZero, &ignored); + MCOp = MCOperand::CreateFPImm(Val.convertToDouble()); break; }