Mark negative-zero-to-int conversion as Inexact,
since -0.0 can't be represented as an int.
This prevents llvm from reducing -0.0 to a
load-and-convert of int 0.  Fixes
ieee.exp/mzero[2356].c in gcc testsuite.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57224 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Support/APFloat.cpp b/lib/Support/APFloat.cpp
index b93f1d1..df309d4 100644
--- a/lib/Support/APFloat.cpp
+++ b/lib/Support/APFloat.cpp
@@ -1784,7 +1784,8 @@
 
   if(category == fcZero) {
     APInt::tcSet(parts, 0, dstPartsCount);
-    return opOK;
+    // Negative zero can't be represented as an int.
+    return sign ? opInexact : opOK;
   }
 
   src = significandParts();