We should not use double (or float) in the LLVM, unless it is really needed. x87 FP register doesn't preserve SNaN to move the value.
FIXME: APFloat() may have the constructor by raw bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@277813
91177308-0d34-0410-b5e6-
96231b3b80d8
// HexFPConstant - Floating point constant represented in IEEE format as a
// hexadecimal number for when exponential notation is not precise enough.
// Half, Float, and double only.
- APFloatVal = APFloat(BitsToDouble(HexIntToVal(TokStart + 2, CurPtr)));
+ APFloatVal = APFloat(APFloat::IEEEdouble,
+ APInt(64, HexIntToVal(TokStart + 2, CurPtr)));
return lltok::APFloat;
}