diff --git a/lib/Support/APFloat.cpp b/lib/Support/APFloat.cpp
index b61e622..a0185ad 100644
--- a/lib/Support/APFloat.cpp
+++ b/lib/Support/APFloat.cpp
@@ -1065,6 +1065,20 @@
   sign = !sign;
 }
 
+void
+APFloat::clearSign()
+{
+  /* So is this one. */
+  sign = 0;
+}
+
+void
+APFloat::copySign(const APFloat &rhs)
+{
+  /* And this one. */
+  sign = rhs.sign;
+}
+
 /* Normalized addition or subtraction.  */
 APFloat::opStatus
 APFloat::addOrSubtract(const APFloat &rhs, roundingMode rounding_mode,
@@ -1148,6 +1162,30 @@
   return fs;
 }
 
+/* Normalized remainder. */
+APFloat::opStatus
+APFloat::mod(const APFloat &rhs, roundingMode rounding_mode)
+{
+  opStatus fs;
+  APFloat V = *this;
+  fs = V.divide(rhs, rmNearestTiesToEven);
+  if (fs == opDivByZero)
+    return fs;
+
+  integerPart x;
+  fs = V.convertToInteger(&x, integerPartWidth, true, rmNearestTiesToEven);
+  if (fs==opInvalidOp)
+    return fs;
+
+  fs = V.convertFromInteger(&x, integerPartWidth, true, rmNearestTiesToEven);
+  assert(fs==opOK);   // should always work
+  fs = V.multiply(rhs, rounding_mode);
+  assert(fs==opOK);   // should not overflow or underflow
+  fs = subtract(V, rounding_mode);
+  assert(fs==opOK);
+  return fs;
+}
+
 /* Normalized fused-multiply-add.  */
 APFloat::opStatus
 APFloat::fusedMultiplyAdd(const APFloat &multiplicand,
