diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 3c7592f..8630fd2 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -1252,8 +1252,7 @@ public:
     PtrDiffType = SignedInt;    // for http://llvm.org/bugs/show_bug.cgi?id=15726
     LongLongAlign = 32;
     SuitableAlign = 128;
-    DescriptionString = "E-p:32:32"
-                        "-n32";
+    DescriptionString = "E-p:32:32-f64:32:64-f128:64:128-n32";
   }
   virtual BuiltinVaListKind getBuiltinVaListKind() const {
     return TargetInfo::CharPtrBuiltinVaList;
@@ -1267,8 +1266,7 @@ public:
       : DarwinTargetInfo<PPC64TargetInfo>(Triple) {
     HasAlignMac68kSupport = true;
     SuitableAlign = 128;
-    DescriptionString = "E-"
-                        "i64:64-n32:64";
+    DescriptionString = "E-i64:64-f128:64:128-n32:64";
   }
 };
 } // end anonymous namespace.
diff --git a/test/CodeGen/target-data.c b/test/CodeGen/target-data.c
index 5be5a8c..eb901c3 100644
--- a/test/CodeGen/target-data.c
+++ b/test/CodeGen/target-data.c
@@ -78,11 +78,11 @@
 
 // RUN: %clang_cc1 -triple powerpc-darwin -o - -emit-llvm %s | \
 // RUN: FileCheck %s -check-prefix=PPC32-DARWIN
-// PPC32-DARWIN: target datalayout = "E-p:32:32-n32"
+// PPC32-DARWIN: target datalayout = "E-p:32:32-f64:32:64-f128:64:128-n32"
 
 // RUN: %clang_cc1 -triple powerpc64-darwin -o - -emit-llvm %s | \
 // RUN: FileCheck %s -check-prefix=PPC64-DARWIN
-// PPC64-DARWIN: target datalayout = "E-i64:64-n32:64"
+// PPC64-DARWIN: target datalayout = "E-i64:64-f128:64:128-n32:64"
 
 // RUN: %clang_cc1 -triple nvptx-unknown -o - -emit-llvm %s | \
 // RUN: FileCheck %s -check-prefix=NVPTX
