@@ -431,13 +431,12 @@ class LLVM_LIBRARY_VISIBILITY X86_32TargetInfo : public X86TargetInfo {
431431    LongDoubleWidth = 96 ;
432432    LongDoubleAlign = 32 ;
433433    SuitableAlign = 128 ;
434-     resetDataLayout (
435-         Triple.isOSBinFormatMachO ()
436-             ? " e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-" 
437-               " f80:32-n8:16:32-S128" 
438-             : " e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-" 
439-               " f80:32-n8:16:32-S128"  ,
440-         Triple.isOSBinFormatMachO () ? " _"   : " "  );
434+     resetDataLayout (Triple.isOSBinFormatMachO ()
435+                         ? " e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:" 
436+                           " 128-f64:32:64-f80:32-n8:16:32-S128" 
437+                         : " e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:" 
438+                           " 128-f64:32:64-f80:32-n8:16:32-S128"  ,
439+                     Triple.isOSBinFormatMachO () ? " _"   : " "  );
441440    SizeType = UnsignedInt;
442441    PtrDiffType = SignedInt;
443442    IntPtrType = SignedInt;
@@ -542,8 +541,9 @@ class LLVM_LIBRARY_VISIBILITY DarwinI386TargetInfo
542541      UseSignedCharForObjCBool = false ;
543542    SizeType = UnsignedLong;
544543    IntPtrType = SignedLong;
545-     resetDataLayout (" e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-" 
546-                     " f80:128-n8:16:32-S128"  , " _"  );
544+     resetDataLayout (" e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-" 
545+                     " f64:32:64-f80:128-n8:16:32-S128"  ,
546+                     " _"  );
547547    HasAlignMac68kSupport = true ;
548548  }
549549
@@ -570,7 +570,7 @@ class LLVM_LIBRARY_VISIBILITY WindowsX86_32TargetInfo
570570        getTriple ().isOSWindows () && getTriple ().isOSBinFormatCOFF ();
571571    bool  IsMSVC = getTriple ().isWindowsMSVCEnvironment ();
572572    std::string Layout = IsWinCOFF ? " e-m:x"   : " e-m:e"  ;
573-     Layout += " -p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-"  ;
573+     Layout += " -p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128- "  ;
574574    Layout += IsMSVC ? " f80:128"   : " f80:32"  ;
575575    Layout += " -n8:16:32-a:0:32-S32"  ;
576576    resetDataLayout (Layout, IsWinCOFF ? " _"   : " "  );
@@ -621,8 +621,8 @@ class LLVM_LIBRARY_VISIBILITY CygwinX86_32TargetInfo : public X86_32TargetInfo {
621621      : X86_32TargetInfo(Triple, Opts) {
622622    this ->WCharType  = TargetInfo::UnsignedShort;
623623    DoubleAlign = LongLongAlign = 64 ;
624-     resetDataLayout (" e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-f80: " 
625-                     " 32-n8:16:32-a:0:32-S32"  ,
624+     resetDataLayout (" e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-" 
625+                     " i128:128-f80: 32-n8:16:32-a:0:32-S32"  ,
626626                    " _"  );
627627  }
628628
@@ -660,8 +660,8 @@ class LLVM_LIBRARY_VISIBILITY MCUX86_32TargetInfo : public X86_32TargetInfo {
660660      : X86_32TargetInfo(Triple, Opts) {
661661    LongDoubleWidth = 64 ;
662662    LongDoubleFormat = &llvm::APFloat::IEEEdouble ();
663-     resetDataLayout (" e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:32-f64: " 
664-                     " 32-f128:32-n8:16:32-a:0:32-S32"  );
663+     resetDataLayout (" e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:32-" 
664+                     " f64: 32-f128:32-n8:16:32-a:0:32-S32"  );
665665    WIntType = UnsignedInt;
666666  }
667667
@@ -721,11 +721,11 @@ class LLVM_LIBRARY_VISIBILITY X86_64TargetInfo : public X86TargetInfo {
721721
722722    //  Pointers are 32-bit in x32.
723723    resetDataLayout (IsX32 ? " e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-" 
724-                             " i64:64-f80:128-n8:16:32:64-S128" 
725-                            : IsWinCOFF ? " e-m:w-p270:32:32-p271:32:32-p272:64:" 
726-                                          " 64-i64:64 -f80:128-n8:16:32:64-S128" 
727-                                        : " e-m:e-p270:32:32-p271:32:32-p272:64:" 
728-                                          " 64-i64:64 -f80:128-n8:16:32:64-S128"  );
724+                             " i64:64-i128:128- f80:128-n8:16:32:64-S128" 
725+                     : IsWinCOFF ? " e-m:w-p270:32:32-p271:32:32-p272:64:64-i64 :" 
726+                                   " 64-i128:128 -f80:128-n8:16:32:64-S128" 
727+                                 : " e-m:e-p270:32:32-p271:32:32-p272:64:64-i64 :" 
728+                                   " 64-i128:128 -f80:128-n8:16:32:64-S128"  );
729729
730730    //  Use fpret only for long double.
731731    RealTypeUsesObjCFPRetMask = (unsigned )FloatModeKind::LongDouble;
@@ -922,8 +922,9 @@ class LLVM_LIBRARY_VISIBILITY DarwinX86_64TargetInfo
922922    llvm::Triple T = llvm::Triple (Triple);
923923    if  (T.isiOS ())
924924      UseSignedCharForObjCBool = false ;
925-     resetDataLayout (" e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:" 
926-                     " 16:32:64-S128"  , " _"  );
925+     resetDataLayout (" e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-" 
926+                     " f80:128-n8:16:32:64-S128"  ,
927+                     " _"  );
927928  }
928929
929930  bool  handleTargetFeatures (std::vector<std::string> &Features,
0 commit comments