Temporarily revert functionality change from my previous patch;
authorDale Johannesen <dalej@apple.com>
Mon, 6 Oct 2008 20:43:48 +0000 (20:43 +0000)
committerDale Johannesen <dalej@apple.com>
Mon, 6 Oct 2008 20:43:48 +0000 (20:43 +0000)
it is too aggressive.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57203 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/APFloat.cpp

index df65f112af02f1f84f10de52345797032a1b48db..3e37d796b41e9ddc1bc23e784a3a6f8bbe87eff0 100644 (file)
@@ -1727,12 +1727,11 @@ APFloat::convert(const fltSemantics &toSemantics,
       APInt::tcShiftLeft(significandParts(), newPartCount, shift);
     else if (shift < 0)
       APInt::tcShiftRight(significandParts(), newPartCount, -shift);
-    // If the new size is shorter, we lost information.
-    fs = (shift < 0) ? opInexact : opOK;
     // gcc forces the Quiet bit on, which means (float)(double)(float_sNan)
     // does not give you back the same bits.  This is dubious, and we
     // don't currently do it.  You're really supposed to get
     // an invalid operation signal at runtime, but nobody does that.
+    fs = opOK;
   } else {
     semantics = &toSemantics;
     fs = opOK;