80-bit floating point does not have an implicit hidden bit like single and double precision. If this bit is not set we can end up with various weird encodings like pseudo-denormals, pseudo-infinities, and unnormals. The APFloat conversion from APInt turns all of these things into a NAN and loses the original exponent from incoming bit representation. This means if the APFloat gets turned back into an APInt it might not be exactly the original value.
This patch disables the constant folding to avoid hitting this condition. We could maybe be smarter and look at the value we're going to convert and make sure its safe, but that would likely require a new APFloat interface to find that out.
Fixes PR44188. I can put together a test case based on that PR, but wanted to get an opinion on whether this patch was the right thing to do.