In which I discover that zero+zero is zero, d'oh!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124188 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/ValueTracking.cpp b/lib/Analysis/ValueTracking.cpp
index 98b4489..5320fa0 100644
--- a/lib/Analysis/ValueTracking.cpp
+++ b/lib/Analysis/ValueTracking.cpp
@@ -740,10 +740,10 @@
     ComputeSignBit(Y, YKnownNonNegative, YKnownNegative, TD, Depth);
 
     // If X and Y are both non-negative (as signed values) then their sum is not
-    // zero.
+    // zero unless both X and Y are zero.
     if (XKnownNonNegative && YKnownNonNegative)
-      return false;
-//      return true;
+      if (isKnownNonZero(X, TD, Depth) || isKnownNonZero(Y, TD, Depth))
+        return true;
 
     // If X and Y are both negative (as signed values) then their sum is not
     // zero unless both X and Y equal INT_MIN.