diff --git a/lld/test/COFF/Inputs/pdb-type-server-invalid-path.yaml b/lld/test/COFF/Inputs/pdb-type-server-invalid-path.yaml
--- a/lld/test/COFF/Inputs/pdb-type-server-invalid-path.yaml
+++ b/lld/test/COFF/Inputs/pdb-type-server-invalid-path.yaml
@@ -68,7 +68,7 @@
     Types:
       - Kind:            LF_TYPESERVER2
         TypeServer2:
-          Guid:            '{8DABD2A0-28FF-CB43-9BAF-175B77B76414}'
+          Guid:            '{A0D2AB8D-FF28-43CB-9BAF-175B77B76414}'
           Age:             1
           Name:            'c:\some_invalid_path_AABB98765\pdb-diff-cl.pdb'
   - Name:            '.text$mn'
diff --git a/lld/test/COFF/Inputs/pdb-type-server-missing-2.yaml b/lld/test/COFF/Inputs/pdb-type-server-missing-2.yaml
--- a/lld/test/COFF/Inputs/pdb-type-server-missing-2.yaml
+++ b/lld/test/COFF/Inputs/pdb-type-server-missing-2.yaml
@@ -9,7 +9,7 @@
     Types:
       - Kind:            LF_TYPESERVER2
         TypeServer2:
-          Guid:            '{01DF191B-22BF-6B42-96CE-5258B8329FE5}'
+          Guid:            '{1B19DF01-BF22-426B-96CE-5258B8329FE5}'
           Age:             18
           Name:            'C:\src\llvm-project\build\definitely_not_found_for_sure.pdb'
   - Name:            '.text$mn'
diff --git a/lld/test/COFF/Inputs/pdb-type-server-valid-signature.yaml b/lld/test/COFF/Inputs/pdb-type-server-valid-signature.yaml
--- a/lld/test/COFF/Inputs/pdb-type-server-valid-signature.yaml
+++ b/lld/test/COFF/Inputs/pdb-type-server-valid-signature.yaml
@@ -68,7 +68,7 @@
     Types:
       - Kind:            LF_TYPESERVER2
         TypeServer2:
-          Guid:            '{8DABD2A0-28FF-CB43-9BAF-175B77B76414}'
+          Guid:            '{A0D2AB8D-FF28-43CB-9BAF-175B77B76414}'
           Age:             18
           Name:            'pdb-diff-cl.pdb'
   - Name:            '.text$mn'
diff --git a/lld/test/COFF/pdb-type-server-invalid-signature.yaml b/lld/test/COFF/pdb-type-server-invalid-signature.yaml
--- a/lld/test/COFF/pdb-type-server-invalid-signature.yaml
+++ b/lld/test/COFF/pdb-type-server-invalid-signature.yaml
@@ -95,7 +95,7 @@
     Types:
       - Kind:            LF_TYPESERVER2
         TypeServer2:
-          Guid:            '{01DF191B-22BF-6B42-96CE-5258B8329FE5}'
+          Guid:            '{1B19DF01-BF22-426B-96CE-5258B8329FE5}'
           Age:             18
           Name:            'pdb-diff-cl.pdb'
   - Name:            '.text$mn'
diff --git a/lld/test/COFF/pdb-type-server-missing.yaml b/lld/test/COFF/pdb-type-server-missing.yaml
--- a/lld/test/COFF/pdb-type-server-missing.yaml
+++ b/lld/test/COFF/pdb-type-server-missing.yaml
@@ -92,7 +92,7 @@
     Types:
       - Kind:            LF_TYPESERVER2
         TypeServer2:
-          Guid:            '{01DF191B-22BF-6B42-96CE-5258B8329FE5}'
+          Guid:            '{1B19DF01-BF22-426B-96CE-5258B8329FE5}'
           Age:             18
           Name:            'C:\src\llvm-project\build\definitely_not_found_for_sure.pdb'
   - Name:            '.text$mn'
diff --git a/lld/test/COFF/pdb-type-server-native-errors.yaml b/lld/test/COFF/pdb-type-server-native-errors.yaml
--- a/lld/test/COFF/pdb-type-server-native-errors.yaml
+++ b/lld/test/COFF/pdb-type-server-native-errors.yaml
@@ -77,7 +77,7 @@
     Types:
       - Kind:            LF_TYPESERVER2
         TypeServer2:
-          Guid:            '{01DF191B-22BF-6B42-96CE-5258B8329FE5}'
+          Guid:            '{1B19DF01-BF22-426B-96CE-5258B8329FE5}'
           Age:             18
           Name:            'bad-block-size.pdb'
   - Name:            '.text$mn'
diff --git a/llvm/lib/DebugInfo/CodeView/Formatters.cpp b/llvm/lib/DebugInfo/CodeView/Formatters.cpp
--- a/llvm/lib/DebugInfo/CodeView/Formatters.cpp
+++ b/llvm/lib/DebugInfo/CodeView/Formatters.cpp
@@ -24,20 +24,26 @@
     : FormatAdapter(std::move(Guid)) {}
 
 void GuidAdapter::format(raw_ostream &Stream, StringRef Style) {
-  static const char *Lookup = "0123456789ABCDEF";
-
   assert(Item.size() == 16 && "Expected 16-byte GUID");
-  Stream << "{";
-  for (int i = 0; i < 16;) {
-    uint8_t Byte = Item[i];
-    uint8_t HighNibble = (Byte >> 4) & 0xF;
-    uint8_t LowNibble = Byte & 0xF;
-    Stream << Lookup[HighNibble] << Lookup[LowNibble];
-    ++i;
-    if (i >= 4 && i <= 10 && i % 2 == 0)
-      Stream << "-";
-  }
-  Stream << "}";
+  struct _GUID {
+    support::ulittle32_t Data1;
+    support::ulittle16_t Data2;
+    support::ulittle16_t Data3;
+    support::ubig64_t Data4;
+  };
+  const _GUID *G = reinterpret_cast<const _GUID *>(Item.data());
+  Stream
+      << '{'
+      << format_hex_no_prefix(G->Data1, sizeof(G->Data1), /*Upper=*/true)
+      << '-'
+      << format_hex_no_prefix(G->Data2, sizeof(G->Data2), /*Upper=*/true)
+      << '-'
+      << format_hex_no_prefix(G->Data3, sizeof(G->Data3), /*Upper=*/true)
+      << '-'
+      << format_hex_no_prefix(G->Data4 >> 48, 2, /*Upper=*/true)
+      << '-'
+      << format_hex_no_prefix(G->Data4 & ((1ULL << 48) - 1), 6, /*Upper=*/true)
+      << '}';
 }
 
 raw_ostream &llvm::codeview::operator<<(raw_ostream &OS, const GUID &Guid) {
diff --git a/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp b/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
--- a/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
+++ b/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
@@ -153,18 +153,23 @@
   if (Scalar[9] != '-' || Scalar[14] != '-' || Scalar[19] != '-' ||
       Scalar[24] != '-')
     return "GUID sections are not properly delineated with dashes";
-
-  uint8_t *OutBuffer = S.Guid;
-  for (auto Iter = Scalar.begin(); Iter != Scalar.end();) {
-    if (*Iter == '-' || *Iter == '{' || *Iter == '}') {
-      ++Iter;
-      continue;
-    }
-    uint8_t Value = (llvm::hexDigitValue(*Iter++) << 4);
-    Value |= llvm::hexDigitValue(*Iter++);
-    *OutBuffer++ = Value;
-  }
-
+  struct _GUID {
+    support::ulittle32_t Data1;
+    support::ulittle16_t Data2;
+    support::ulittle16_t Data3;
+    support::ubig64_t Data4;
+  };
+  _GUID Guid = {};
+  bool GotHex = to_integer(StringRef(Scalar.data() + 1, 8), Guid.Data1, 16);
+  GotHex &= to_integer(StringRef(Scalar.data() + 10, 4), Guid.Data2, 16);
+  GotHex &= to_integer(StringRef(Scalar.data() + 15, 4), Guid.Data3, 16);
+  uint64_t N;
+  GotHex &= to_integer(StringRef(Scalar.data() + 20, 4), N, 16);
+  Guid.Data4 = N << 48;
+  GotHex &= to_integer(StringRef(Scalar.data() + 25, 12), N, 16);
+  Guid.Data4 |= N;
+  assert(GotHex && "GUID contains non hex digits");
+  ::memcpy(&S, &Guid, sizeof(GUID));
   return "";
 }
 
diff --git a/llvm/test/DebugInfo/PDB/DIA/pdbdump-flags.test b/llvm/test/DebugInfo/PDB/DIA/pdbdump-flags.test
--- a/llvm/test/DebugInfo/PDB/DIA/pdbdump-flags.test
+++ b/llvm/test/DebugInfo/PDB/DIA/pdbdump-flags.test
@@ -5,7 +5,7 @@
 
 ; Check that neither symbols nor compilands are dumped when neither argument specified.
 ; NO_ARGS: empty.pdb
-; NO_ARGS: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
+; NO_ARGS: Guid: {4156350B-A086-49A2-896F-9988FAE52FF0}
 ; NO_ARGS: Attributes: HasPrivateSymbols
 ; NO_ARGS-NOT: ---TYPES---
 ; NO_ARGS-NOT: ---COMPILANDS---
@@ -14,7 +14,7 @@
 
 ; Check that only types are dumped when only -types is specified.
 ; TYPES: empty.pdb
-; TYPES: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
+; TYPES: Guid: {4156350B-A086-49A2-896F-9988FAE52FF0}
 ; TYPES: Attributes: HasPrivateSymbols
 ; TYPES: ---TYPES---
 ; TYPES-NOT: ---COMPILANDS---
@@ -23,7 +23,7 @@
 
 ; Check that only compilands are dumped when only -compilands is specified.
 ; COMPILANDS: empty.pdb
-; COMPILANDS: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
+; COMPILANDS: Guid: {4156350B-A086-49A2-896F-9988FAE52FF0}
 ; COMPILANDS: Attributes: HasPrivateSymbols
 ; COMPILANDS: ---COMPILANDS---
 ; COMPILANDS-NOT: ---TYPES---
@@ -32,7 +32,7 @@
 
 ; Check that types and compilands are dumped when both arguments are specified.
 ; MULTIPLE: empty.pdb
-; MULTIPLE: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
+; MULTIPLE: Guid: {4156350B-A086-49A2-896F-9988FAE52FF0}
 ; MULTIPLE: Attributes: HasPrivateSymbols
 ; MULTIPLE: ---COMPILANDS---
 ; MULTIPLE: ---TYPES---
diff --git a/llvm/test/DebugInfo/PDB/Native/pdb-native-summary.test b/llvm/test/DebugInfo/PDB/Native/pdb-native-summary.test
--- a/llvm/test/DebugInfo/PDB/Native/pdb-native-summary.test
+++ b/llvm/test/DebugInfo/PDB/Native/pdb-native-summary.test
@@ -6,6 +6,6 @@
 ; `-native` option produces identical output.
 
 ; EMPTY:  Size: 102400 bytes
-; EMPTY:  Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
+; EMPTY:  Guid: {4156350B-A086-49A2-896F-9988FAE52FF0}
 ; EMPTY:  Age: 1
 ; EMPTY:  Attributes: HasPrivateSymbols
diff --git a/llvm/test/DebugInfo/PDB/pdbdump-headers.test b/llvm/test/DebugInfo/PDB/pdbdump-headers.test
--- a/llvm/test/DebugInfo/PDB/pdbdump-headers.test
+++ b/llvm/test/DebugInfo/PDB/pdbdump-headers.test
@@ -12,7 +12,7 @@
 ALL-NEXT:   Number of streams: 17
 ALL-NEXT:   Signature: 1424295906
 ALL-NEXT:   Age: 1
-ALL-NEXT:   GUID: {0B355641-86A0-A249-896F-9988FAE52FF0}
+ALL-NEXT:   GUID: {4156350B-A086-49A2-896F-9988FAE52FF0}
 ALL-NEXT:   Features: 0x1
 ALL-NEXT:   Has Debug Info: true
 ALL-NEXT:   Has Types: true
@@ -601,7 +601,7 @@
 BIG-NEXT:   Number of streams: 64
 BIG-NEXT:   Signature: 1461714535
 BIG-NEXT:   Age: 1
-BIG-NEXT:   GUID: {880ECC89-DF81-0B4F-839C-58CBD052E937}
+BIG-NEXT:   GUID: {89CC0E88-81DF-4F0B-839C-58CBD052E937}
 BIG-NEXT:   Features: 0x1
 BIG-NEXT:   Has Debug Info: true
 BIG-NEXT:   Has Types: true
diff --git a/llvm/test/DebugInfo/PDB/pdbdump-readwrite.test b/llvm/test/DebugInfo/PDB/pdbdump-readwrite.test
--- a/llvm/test/DebugInfo/PDB/pdbdump-readwrite.test
+++ b/llvm/test/DebugInfo/PDB/pdbdump-readwrite.test
@@ -14,7 +14,7 @@
 CHECK-NEXT:  Number of streams:
 CHECK-NEXT:  Signature: 1424295906
 CHECK-NEXT:  Age: 1
-CHECK-NEXT:  GUID: {0B355641-86A0-A249-896F-9988FAE52FF0}
+CHECK-NEXT:  GUID: {4156350B-A086-49A2-896F-9988FAE52FF0}
 CHECK-NEXT:  Features: 0x1
 CHECK-NEXT:  Has Debug Info: true
 CHECK-NEXT:  Has Types: true
diff --git a/llvm/test/DebugInfo/PDB/pdbdump-yaml.test b/llvm/test/DebugInfo/PDB/pdbdump-yaml.test
--- a/llvm/test/DebugInfo/PDB/pdbdump-yaml.test
+++ b/llvm/test/DebugInfo/PDB/pdbdump-yaml.test
@@ -42,7 +42,7 @@
 ; YAML-NEXT:   - '$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = '
 ; YAML-NEXT: PdbStream:
 ; YAML-NEXT:   Age:             1
-; YAML-NEXT:   Guid:            '{0B355641-86A0-A249-896F-9988FAE52FF0}'
+; YAML-NEXT:   Guid:            '{4156350B-A086-49A2-896F-9988FAE52FF0}'
 ; YAML-NEXT:   Signature:       1424295906
 ; YAML-NEXT:   Features:        [ VC110 ]
 ; YAML-NEXT:   Version:         VC70
diff --git a/llvm/test/ObjectYAML/CodeView/sections.yaml b/llvm/test/ObjectYAML/CodeView/sections.yaml
--- a/llvm/test/ObjectYAML/CodeView/sections.yaml
+++ b/llvm/test/ObjectYAML/CodeView/sections.yaml
@@ -13,7 +13,7 @@
     Types:
       - Kind:            LF_TYPESERVER2
         TypeServer2:
-          Guid:            '{01DF191B-22BF-6B42-96CE-5258B8329FE5}'
+          Guid:            '{1B19DF01-BF22-426B-96CE-5258B8329FE5}'
           Age:             24
           Name:            'C:\src\llvm-project\build\vc140.pdb'
   - Name:            '.debug$H'
@@ -66,7 +66,7 @@
 # CHECK:     Types:
 # CHECK:       - Kind:            LF_TYPESERVER2
 # CHECK:         TypeServer2:
-# CHECK:           Guid:            '{01DF191B-22BF-6B42-96CE-5258B8329FE5}'
+# CHECK:           Guid:            '{1B19DF01-BF22-426B-96CE-5258B8329FE5}'
 # CHECK:           Age:             24
 # CHECK:           Name:            'C:\src\llvm-project\build\vc140.pdb'
 # CHECK:   - Name:            '.debug$H'
diff --git a/llvm/test/tools/llvm-pdbutil/explain-pdb-stream.test b/llvm/test/tools/llvm-pdbutil/explain-pdb-stream.test
--- a/llvm/test/tools/llvm-pdbutil/explain-pdb-stream.test
+++ b/llvm/test/tools/llvm-pdbutil/explain-pdb-stream.test
@@ -39,7 +39,7 @@
 CHECK-NEXT:   Within the PDB stream:
 CHECK-NEXT:     address is at offset 12/28 of the PDB Stream Header.
 CHECK-NEXT:     which contains the guid of the PDB.
-CHECK-NEXT:     The current value is {826BE46E-02ED-7043-9C27-20CCC07E92A7}.
+CHECK-NEXT:     The current value is {6EE46B82-ED02-4370-9C27-20CCC07E92A7}.
 
 CHECK:      Block:Offset = 11:001C.
 CHECK-NEXT: Address is in block 17 (allocated).
diff --git a/llvm/test/tools/llvm-pdbutil/stripped.test b/llvm/test/tools/llvm-pdbutil/stripped.test
--- a/llvm/test/tools/llvm-pdbutil/stripped.test
+++ b/llvm/test/tools/llvm-pdbutil/stripped.test
@@ -8,7 +8,7 @@
 ; CHECK-NEXT:  Number of streams: 12
 ; CHECK-NEXT:  Signature: 1541179274
 ; CHECK-NEXT:  Age: 2
-; CHECK-NEXT:  GUID: {FF4F9B62-D99A-4647-97A7-22C702B1E053}
+; CHECK-NEXT:  GUID: {629B4FFF-9AD9-4746-97A7-22C702B1E053}
 ; CHECK-NEXT:  Features: 0x1
 ; CHECK-NEXT:  Has Debug Info: true
 ; CHECK-NEXT:  Has Types: true