; LLVM IR from WayneLin92/SSeqCpp :: thirdparty/fmt/test/format-test.ll (ZN34format_test_runtime_precision_Test8TestBodyEv)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.testing::AssertionResult" = type { i8, %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"class.fmt::v10::basic_format_string.148" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_string_view" = type { ptr, i64 }
%"struct.fmt::v10::runtime_format_string" = type { %"class.fmt::v10::basic_string_view" }
%"class.testing::Message" = type { %"class.std::unique_ptr.2" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.fmt::v10::basic_format_string.167" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.140" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.190" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.191" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.192" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.193" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.194" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.173" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.174" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.175" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.176" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.177" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.180" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.195" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.179" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.181" = type { %"class.fmt::v10::basic_string_view" }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZTIN3fmt3v1012format_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.230 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.785 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.918 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.919 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.920 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.1071 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1072 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1073 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.1074 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.1075 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.1076 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1077 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.1078 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.1079 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.1080 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1081 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.1082 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.1083 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.1084 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1085 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.1086 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.1087 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.1088 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1089 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.1090 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.1091 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.1092 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1093 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.1094 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.1095 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.1096 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1097 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1098 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1099 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1100 = external hidden unnamed_addr constant [153 x i8], align 1
@.str.1101 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.1102 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.1103 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1104 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1105 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1106 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.1107 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.1108 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1109 = external hidden unnamed_addr constant [154 x i8], align 1
@.str.1110 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.1111 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.1112 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1113 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1114 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1115 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1116 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1117 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1118 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1119 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.1120 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.1121 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.1122 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1123 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.1124 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.1125 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.1126 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.1127 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.1128 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.1129 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1130 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1131 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1132 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.1133 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.1134 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.1135 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1136 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1137 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1138 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1139 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1140 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1141 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1142 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1143 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1144 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1145 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1146 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1147 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1148 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1149 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1150 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1151 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1152 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1153 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.1154 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.1155 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.1156 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1157 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1158 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1159 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1160 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1161 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1162 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1163 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.1164 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.1165 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.1166 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.1167 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.1168 = external hidden unnamed_addr constant [157 x i8], align 1
@.str.1169 = external hidden unnamed_addr constant [34 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

declare void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

declare void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef, i32 noundef, ptr noundef) unnamed_addr #3

declare void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: nounwind
declare void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z9incrementPc(ptr noundef) #1

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #6

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #7 align 2

declare void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8) #3

declare noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv() #3

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #8

declare ptr @__cxa_begin_catch(ptr)

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA135_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(135)) #2 align 2

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #10

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(11)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA126_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(126)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(122)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA3_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr, i64) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(125)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(123)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(129)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(132)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(89)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(138)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(95)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(134)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(91)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA140_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(140)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA97_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(97)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(131)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(139)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(96)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(130)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA128_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(128)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA136_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(136)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA93_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(93)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA127_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(127)) #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8)) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(88)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA157_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(157)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA144_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(144)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA137_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(137)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA147_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(147)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA104_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(104)) #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJiiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA92_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(92)) #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJjiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJliEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJmiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJxiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJyiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJPviEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJciEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA4_KciEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z12safe_sprintfILm256EEvRAT__cPKcz(ptr noundef nonnull align 1 dereferenceable(256), ptr noundef, ...) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA165_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(165)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA156_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(156)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA153_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(153)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA110_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(110)) #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN34format_test_runtime_precision_Test8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(16) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca [256 x i8], align 16
  %4 = alloca %"class.testing::AssertionResult", align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca i8, align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %12 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %13 = alloca %"class.fmt::v10::basic_string_view", align 8
  %14 = alloca double, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.testing::Message", align 8
  %19 = alloca %"class.testing::internal::AssertHelper", align 8
  %20 = alloca i64, align 8
  %21 = alloca %"class.testing::AssertionResult", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca i8, align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %27 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %28 = alloca %"class.fmt::v10::basic_string_view", align 8
  %29 = alloca double, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"class.testing::Message", align 8
  %33 = alloca %"class.testing::internal::AssertHelper", align 8
  %34 = alloca %"class.testing::AssertionResult", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca i8, align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %40 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %41 = alloca %"class.fmt::v10::basic_string_view", align 8
  %42 = alloca double, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca %"class.testing::Message", align 8
  %46 = alloca %"class.testing::internal::AssertHelper", align 8
  %47 = alloca %"class.testing::AssertionResult", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca i8, align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %53 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %54 = alloca %"class.fmt::v10::basic_string_view", align 8
  %55 = alloca double, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca %"class.testing::Message", align 8
  %59 = alloca %"class.testing::internal::AssertHelper", align 8
  %60 = alloca %"class.testing::AssertionResult", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca i8, align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %66 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %67 = alloca %"class.fmt::v10::basic_string_view", align 8
  %68 = alloca double, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca %"class.testing::Message", align 8
  %72 = alloca %"class.testing::internal::AssertHelper", align 8
  %73 = alloca %"class.testing::AssertionResult", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca i8, align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %79 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %80 = alloca %"class.fmt::v10::basic_string_view", align 8
  %81 = alloca double, align 8
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca %"class.testing::Message", align 8
  %85 = alloca %"class.testing::internal::AssertHelper", align 8
  %86 = alloca %"class.testing::AssertionResult", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::allocator", align 1
  %89 = alloca i8, align 1
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.fmt::v10::basic_format_string.167", align 8
  %92 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %93 = alloca %"class.fmt::v10::basic_string_view", align 8
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca ptr, align 8
  %97 = alloca ptr, align 8
  %98 = alloca %"class.testing::Message", align 8
  %99 = alloca %"class.testing::internal::AssertHelper", align 8
  %100 = alloca %"class.testing::AssertionResult", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::allocator", align 1
  %103 = alloca i8, align 1
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %106 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %107 = alloca %"class.fmt::v10::basic_string_view", align 8
  %108 = alloca double, align 8
  %109 = alloca ptr, align 8
  %110 = alloca ptr, align 8
  %111 = alloca %"class.testing::Message", align 8
  %112 = alloca %"class.testing::internal::AssertHelper", align 8
  %113 = alloca %"class.testing::AssertionResult", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::allocator", align 1
  %116 = alloca i8, align 1
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %119 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %120 = alloca %"class.fmt::v10::basic_string_view", align 8
  %121 = alloca double, align 8
  %122 = alloca ptr, align 8
  %123 = alloca ptr, align 8
  %124 = alloca %"class.testing::Message", align 8
  %125 = alloca %"class.testing::internal::AssertHelper", align 8
  %126 = alloca %"class.testing::AssertionResult", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::allocator", align 1
  %129 = alloca i8, align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %132 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %133 = alloca %"class.fmt::v10::basic_string_view", align 8
  %134 = alloca double, align 8
  %135 = alloca i32, align 4
  %136 = alloca ptr, align 8
  %137 = alloca ptr, align 8
  %138 = alloca %"class.testing::Message", align 8
  %139 = alloca %"class.testing::internal::AssertHelper", align 8
  %140 = alloca %"class.testing::AssertionResult", align 8
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %"class.std::allocator", align 1
  %143 = alloca i8, align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.fmt::v10::basic_format_string.190", align 8
  %146 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %147 = alloca %"class.fmt::v10::basic_string_view", align 8
  %148 = alloca double, align 8
  %149 = alloca i32, align 4
  %150 = alloca ptr, align 8
  %151 = alloca ptr, align 8
  %152 = alloca %"class.testing::Message", align 8
  %153 = alloca %"class.testing::internal::AssertHelper", align 8
  %154 = alloca %"class.testing::AssertionResult", align 8
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::allocator", align 1
  %157 = alloca i8, align 1
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.fmt::v10::basic_format_string.191", align 8
  %160 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %161 = alloca %"class.fmt::v10::basic_string_view", align 8
  %162 = alloca double, align 8
  %163 = alloca i64, align 8
  %164 = alloca ptr, align 8
  %165 = alloca ptr, align 8
  %166 = alloca %"class.testing::Message", align 8
  %167 = alloca %"class.testing::internal::AssertHelper", align 8
  %168 = alloca i64, align 8
  %169 = alloca %"class.testing::AssertionResult", align 8
  %170 = alloca %"class.std::__cxx11::basic_string", align 8
  %171 = alloca %"class.std::allocator", align 1
  %172 = alloca i8, align 1
  %173 = alloca %"class.std::__cxx11::basic_string", align 8
  %174 = alloca %"class.fmt::v10::basic_format_string.191", align 8
  %175 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %176 = alloca %"class.fmt::v10::basic_string_view", align 8
  %177 = alloca double, align 8
  %178 = alloca i64, align 8
  %179 = alloca ptr, align 8
  %180 = alloca ptr, align 8
  %181 = alloca %"class.testing::Message", align 8
  %182 = alloca %"class.testing::internal::AssertHelper", align 8
  %183 = alloca %"class.testing::AssertionResult", align 8
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca %"class.std::allocator", align 1
  %186 = alloca i8, align 1
  %187 = alloca %"class.std::__cxx11::basic_string", align 8
  %188 = alloca %"class.fmt::v10::basic_format_string.192", align 8
  %189 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %190 = alloca %"class.fmt::v10::basic_string_view", align 8
  %191 = alloca double, align 8
  %192 = alloca i64, align 8
  %193 = alloca ptr, align 8
  %194 = alloca ptr, align 8
  %195 = alloca %"class.testing::Message", align 8
  %196 = alloca %"class.testing::internal::AssertHelper", align 8
  %197 = alloca %"class.testing::AssertionResult", align 8
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::allocator", align 1
  %200 = alloca i8, align 1
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.fmt::v10::basic_format_string.193", align 8
  %203 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %204 = alloca %"class.fmt::v10::basic_string_view", align 8
  %205 = alloca double, align 8
  %206 = alloca i8, align 1
  %207 = alloca ptr, align 8
  %208 = alloca ptr, align 8
  %209 = alloca %"class.testing::Message", align 8
  %210 = alloca %"class.testing::internal::AssertHelper", align 8
  %211 = alloca %"class.testing::AssertionResult", align 8
  %212 = alloca %"class.std::__cxx11::basic_string", align 8
  %213 = alloca %"class.std::allocator", align 1
  %214 = alloca i8, align 1
  %215 = alloca %"class.std::__cxx11::basic_string", align 8
  %216 = alloca %"class.fmt::v10::basic_format_string.194", align 8
  %217 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %218 = alloca %"class.fmt::v10::basic_string_view", align 8
  %219 = alloca double, align 8
  %220 = alloca double, align 8
  %221 = alloca ptr, align 8
  %222 = alloca ptr, align 8
  %223 = alloca %"class.testing::Message", align 8
  %224 = alloca %"class.testing::internal::AssertHelper", align 8
  %225 = alloca %"class.testing::AssertionResult", align 8
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::allocator", align 1
  %228 = alloca i8, align 1
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.fmt::v10::basic_format_string.167", align 8
  %231 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %232 = alloca %"class.fmt::v10::basic_string_view", align 8
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca ptr, align 8
  %236 = alloca ptr, align 8
  %237 = alloca %"class.testing::Message", align 8
  %238 = alloca %"class.testing::internal::AssertHelper", align 8
  %239 = alloca %"class.testing::AssertionResult", align 8
  %240 = alloca %"class.std::__cxx11::basic_string", align 8
  %241 = alloca %"class.std::allocator", align 1
  %242 = alloca i8, align 1
  %243 = alloca %"class.std::__cxx11::basic_string", align 8
  %244 = alloca %"class.fmt::v10::basic_format_string.167", align 8
  %245 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %246 = alloca %"class.fmt::v10::basic_string_view", align 8
  %247 = alloca i32, align 4
  %248 = alloca i32, align 4
  %249 = alloca ptr, align 8
  %250 = alloca ptr, align 8
  %251 = alloca %"class.testing::Message", align 8
  %252 = alloca %"class.testing::internal::AssertHelper", align 8
  %253 = alloca %"class.testing::AssertionResult", align 8
  %254 = alloca %"class.std::__cxx11::basic_string", align 8
  %255 = alloca %"class.std::allocator", align 1
  %256 = alloca i8, align 1
  %257 = alloca %"class.std::__cxx11::basic_string", align 8
  %258 = alloca %"class.fmt::v10::basic_format_string.173", align 8
  %259 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %260 = alloca %"class.fmt::v10::basic_string_view", align 8
  %261 = alloca i32, align 4
  %262 = alloca i32, align 4
  %263 = alloca ptr, align 8
  %264 = alloca ptr, align 8
  %265 = alloca %"class.testing::Message", align 8
  %266 = alloca %"class.testing::internal::AssertHelper", align 8
  %267 = alloca %"class.testing::AssertionResult", align 8
  %268 = alloca %"class.std::__cxx11::basic_string", align 8
  %269 = alloca %"class.std::allocator", align 1
  %270 = alloca i8, align 1
  %271 = alloca %"class.std::__cxx11::basic_string", align 8
  %272 = alloca %"class.fmt::v10::basic_format_string.173", align 8
  %273 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %274 = alloca %"class.fmt::v10::basic_string_view", align 8
  %275 = alloca i32, align 4
  %276 = alloca i32, align 4
  %277 = alloca ptr, align 8
  %278 = alloca ptr, align 8
  %279 = alloca %"class.testing::Message", align 8
  %280 = alloca %"class.testing::internal::AssertHelper", align 8
  %281 = alloca %"class.testing::AssertionResult", align 8
  %282 = alloca %"class.std::__cxx11::basic_string", align 8
  %283 = alloca %"class.std::allocator", align 1
  %284 = alloca i8, align 1
  %285 = alloca %"class.std::__cxx11::basic_string", align 8
  %286 = alloca %"class.fmt::v10::basic_format_string.174", align 8
  %287 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %288 = alloca %"class.fmt::v10::basic_string_view", align 8
  %289 = alloca i64, align 8
  %290 = alloca i32, align 4
  %291 = alloca ptr, align 8
  %292 = alloca ptr, align 8
  %293 = alloca %"class.testing::Message", align 8
  %294 = alloca %"class.testing::internal::AssertHelper", align 8
  %295 = alloca %"class.testing::AssertionResult", align 8
  %296 = alloca %"class.std::__cxx11::basic_string", align 8
  %297 = alloca %"class.std::allocator", align 1
  %298 = alloca i8, align 1
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca %"class.fmt::v10::basic_format_string.174", align 8
  %301 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %302 = alloca %"class.fmt::v10::basic_string_view", align 8
  %303 = alloca i64, align 8
  %304 = alloca i32, align 4
  %305 = alloca ptr, align 8
  %306 = alloca ptr, align 8
  %307 = alloca %"class.testing::Message", align 8
  %308 = alloca %"class.testing::internal::AssertHelper", align 8
  %309 = alloca %"class.testing::AssertionResult", align 8
  %310 = alloca %"class.std::__cxx11::basic_string", align 8
  %311 = alloca %"class.std::allocator", align 1
  %312 = alloca i8, align 1
  %313 = alloca %"class.std::__cxx11::basic_string", align 8
  %314 = alloca %"class.fmt::v10::basic_format_string.175", align 8
  %315 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %316 = alloca %"class.fmt::v10::basic_string_view", align 8
  %317 = alloca i64, align 8
  %318 = alloca i32, align 4
  %319 = alloca ptr, align 8
  %320 = alloca ptr, align 8
  %321 = alloca %"class.testing::Message", align 8
  %322 = alloca %"class.testing::internal::AssertHelper", align 8
  %323 = alloca %"class.testing::AssertionResult", align 8
  %324 = alloca %"class.std::__cxx11::basic_string", align 8
  %325 = alloca %"class.std::allocator", align 1
  %326 = alloca i8, align 1
  %327 = alloca %"class.std::__cxx11::basic_string", align 8
  %328 = alloca %"class.fmt::v10::basic_format_string.175", align 8
  %329 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %330 = alloca %"class.fmt::v10::basic_string_view", align 8
  %331 = alloca i64, align 8
  %332 = alloca i32, align 4
  %333 = alloca ptr, align 8
  %334 = alloca ptr, align 8
  %335 = alloca %"class.testing::Message", align 8
  %336 = alloca %"class.testing::internal::AssertHelper", align 8
  %337 = alloca %"class.testing::AssertionResult", align 8
  %338 = alloca %"class.std::__cxx11::basic_string", align 8
  %339 = alloca %"class.std::allocator", align 1
  %340 = alloca i8, align 1
  %341 = alloca %"class.std::__cxx11::basic_string", align 8
  %342 = alloca %"class.fmt::v10::basic_format_string.176", align 8
  %343 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %344 = alloca %"class.fmt::v10::basic_string_view", align 8
  %345 = alloca i64, align 8
  %346 = alloca i32, align 4
  %347 = alloca ptr, align 8
  %348 = alloca ptr, align 8
  %349 = alloca %"class.testing::Message", align 8
  %350 = alloca %"class.testing::internal::AssertHelper", align 8
  %351 = alloca %"class.testing::AssertionResult", align 8
  %352 = alloca %"class.std::__cxx11::basic_string", align 8
  %353 = alloca %"class.std::allocator", align 1
  %354 = alloca i8, align 1
  %355 = alloca %"class.std::__cxx11::basic_string", align 8
  %356 = alloca %"class.fmt::v10::basic_format_string.176", align 8
  %357 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %358 = alloca %"class.fmt::v10::basic_string_view", align 8
  %359 = alloca i64, align 8
  %360 = alloca i32, align 4
  %361 = alloca ptr, align 8
  %362 = alloca ptr, align 8
  %363 = alloca %"class.testing::Message", align 8
  %364 = alloca %"class.testing::internal::AssertHelper", align 8
  %365 = alloca %"class.testing::AssertionResult", align 8
  %366 = alloca %"class.std::__cxx11::basic_string", align 8
  %367 = alloca %"class.std::allocator", align 1
  %368 = alloca i8, align 1
  %369 = alloca %"class.std::__cxx11::basic_string", align 8
  %370 = alloca %"class.fmt::v10::basic_format_string.177", align 8
  %371 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %372 = alloca %"class.fmt::v10::basic_string_view", align 8
  %373 = alloca i64, align 8
  %374 = alloca i32, align 4
  %375 = alloca ptr, align 8
  %376 = alloca ptr, align 8
  %377 = alloca %"class.testing::Message", align 8
  %378 = alloca %"class.testing::internal::AssertHelper", align 8
  %379 = alloca %"class.testing::AssertionResult", align 8
  %380 = alloca %"class.std::__cxx11::basic_string", align 8
  %381 = alloca %"class.std::allocator", align 1
  %382 = alloca i8, align 1
  %383 = alloca %"class.std::__cxx11::basic_string", align 8
  %384 = alloca %"class.fmt::v10::basic_format_string.177", align 8
  %385 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %386 = alloca %"class.fmt::v10::basic_string_view", align 8
  %387 = alloca i64, align 8
  %388 = alloca i32, align 4
  %389 = alloca ptr, align 8
  %390 = alloca ptr, align 8
  %391 = alloca %"class.testing::Message", align 8
  %392 = alloca %"class.testing::internal::AssertHelper", align 8
  %393 = alloca %"class.testing::AssertionResult", align 8
  %394 = alloca %"class.std::__cxx11::basic_string", align 8
  %395 = alloca %"class.std::allocator", align 1
  %396 = alloca i8, align 1
  %397 = alloca %"class.std::__cxx11::basic_string", align 8
  %398 = alloca %"class.fmt::v10::basic_format_string.180", align 8
  %399 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %400 = alloca %"class.fmt::v10::basic_string_view", align 8
  %401 = alloca i8, align 1
  %402 = alloca i32, align 4
  %403 = alloca ptr, align 8
  %404 = alloca ptr, align 8
  %405 = alloca %"class.testing::Message", align 8
  %406 = alloca %"class.testing::internal::AssertHelper", align 8
  %407 = alloca %"class.testing::AssertionResult", align 8
  %408 = alloca %"class.std::__cxx11::basic_string", align 8
  %409 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %410 = alloca double, align 8
  %411 = alloca i32, align 4
  %412 = alloca %"class.testing::Message", align 8
  %413 = alloca %"class.testing::internal::AssertHelper", align 8
  %414 = alloca %"class.testing::AssertionResult", align 8
  %415 = alloca %"class.std::__cxx11::basic_string", align 8
  %416 = alloca %"class.fmt::v10::basic_format_string.195", align 8
  %417 = alloca i32, align 4
  %418 = alloca x86_fp80, align 16
  %419 = alloca %"class.testing::Message", align 8
  %420 = alloca %"class.testing::internal::AssertHelper", align 8
  %421 = alloca %"class.testing::AssertionResult", align 8
  %422 = alloca %"class.std::__cxx11::basic_string", align 8
  %423 = alloca %"class.std::allocator", align 1
  %424 = alloca i8, align 1
  %425 = alloca %"class.std::__cxx11::basic_string", align 8
  %426 = alloca %"class.fmt::v10::basic_format_string.179", align 8
  %427 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %428 = alloca %"class.fmt::v10::basic_string_view", align 8
  %429 = alloca ptr, align 8
  %430 = alloca i32, align 4
  %431 = alloca ptr, align 8
  %432 = alloca ptr, align 8
  %433 = alloca %"class.testing::Message", align 8
  %434 = alloca %"class.testing::internal::AssertHelper", align 8
  %435 = alloca %"class.testing::AssertionResult", align 8
  %436 = alloca %"class.std::__cxx11::basic_string", align 8
  %437 = alloca %"class.std::allocator", align 1
  %438 = alloca i8, align 1
  %439 = alloca %"class.std::__cxx11::basic_string", align 8
  %440 = alloca %"class.fmt::v10::basic_format_string.179", align 8
  %441 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %442 = alloca %"class.fmt::v10::basic_string_view", align 8
  %443 = alloca ptr, align 8
  %444 = alloca i32, align 4
  %445 = alloca ptr, align 8
  %446 = alloca ptr, align 8
  %447 = alloca %"class.testing::Message", align 8
  %448 = alloca %"class.testing::internal::AssertHelper", align 8
  %449 = alloca %"class.testing::AssertionResult", align 8
  %450 = alloca %"class.std::__cxx11::basic_string", align 8
  %451 = alloca %"class.fmt::v10::basic_format_string.181", align 8
  %452 = alloca i32, align 4
  %453 = alloca %"class.testing::Message", align 8
  %454 = alloca %"class.testing::internal::AssertHelper", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %455 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %3) #11
  call void (ptr, ptr, ...) @_Z12safe_sprintfILm256EEvRAT__cPKcz(ptr noundef nonnull align 1 dereferenceable(256) %3, ptr noundef @.str.1071, i32 noundef -1)
  %456 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %457 = getelementptr inbounds i8, ptr %456, i64 5
  call void @_Z9incrementPc(ptr noundef %457)
  call void @llvm.lifetime.start.p0(i64 16, ptr %4) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %4)
  %458 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %459 unwind label %488

459:                                              ; preds = %1
  br i1 %458, label %460, label %585

460:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.230, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %461 unwind label %492

461:                                              ; preds = %460
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #11
  store i8 0, ptr %9, align 1, !tbaa !9
  %462 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %463 unwind label %496

463:                                              ; preds = %461
  br i1 %462, label %464, label %541

464:                                              ; preds = %463
  %465 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef %465)
          to label %466 unwind label %496

466:                                              ; preds = %464
  %467 = getelementptr inbounds { ptr, i64 }, ptr %13, i32 0, i32 0
  %468 = load ptr, ptr %467, align 8
  %469 = getelementptr inbounds { ptr, i64 }, ptr %13, i32 0, i32 1
  %470 = load i64, ptr %469, align 8
  %471 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %468, i64 %470)
          to label %472 unwind label %496

472:                                              ; preds = %466
  %473 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %12, i32 0, i32 0
  %474 = getelementptr inbounds { ptr, i64 }, ptr %473, i32 0, i32 0
  %475 = extractvalue { ptr, i64 } %471, 0
  store ptr %475, ptr %474, align 8
  %476 = getelementptr inbounds { ptr, i64 }, ptr %473, i32 0, i32 1
  %477 = extractvalue { ptr, i64 } %471, 1
  store i64 %477, ptr %476, align 8
  %478 = getelementptr inbounds { ptr, i64 }, ptr %12, i32 0, i32 0
  %479 = load ptr, ptr %478, align 8
  %480 = getelementptr inbounds { ptr, i64 }, ptr %12, i32 0, i32 1
  %481 = load i64, ptr %480, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr %479, i64 %481)
          to label %482 unwind label %496

482:                                              ; preds = %472
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #11
  store double 0.000000e+00, ptr %14, align 8, !tbaa !11
  %483 = getelementptr inbounds { ptr, i64 }, ptr %11, i32 0, i32 0
  %484 = load ptr, ptr %483, align 8
  %485 = getelementptr inbounds { ptr, i64 }, ptr %11, i32 0, i32 1
  %486 = load i64, ptr %485, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr %484, i64 %486, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %487 unwind label %500

487:                                              ; preds = %482
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #11
  br label %542

488:                                              ; preds = %1
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %5, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %6, align 4
  br label %644

492:                                              ; preds = %460
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %5, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #11
  br label %584

496:                                              ; preds = %472, %466, %464, %461
  %497 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %5, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %6, align 4
  br label %504

500:                                              ; preds = %482
  %501 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %5, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #11
  br label %504

504:                                              ; preds = %500, %496
  %505 = load i32, ptr %6, align 4
  %506 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %507 = icmp eq i32 %505, %506
  br i1 %507, label %508, label %536

508:                                              ; preds = %504
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  %509 = load ptr, ptr %5, align 8
  %510 = call ptr @__cxa_begin_catch(ptr %509) #11
  store ptr %510, ptr %16, align 8
  %511 = load ptr, ptr %16, align 8, !tbaa !5
  %512 = load ptr, ptr %511, align 8, !tbaa !13
  %513 = getelementptr inbounds ptr, ptr %512, i64 2
  %514 = load ptr, ptr %513, align 8
  %515 = call noundef ptr %514(ptr noundef nonnull align 8 dereferenceable(16) %511) #11
  %516 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef %515)
          to label %517 unwind label %553

517:                                              ; preds = %508
  br i1 %516, label %518, label %561

518:                                              ; preds = %517
  %519 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 1 dereferenceable(91) @.str.919)
          to label %520 unwind label %553

520:                                              ; preds = %518
  %521 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %519, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %522 unwind label %553

522:                                              ; preds = %520
  %523 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %521, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %524 unwind label %553

524:                                              ; preds = %522
  %525 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %523, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %526 unwind label %553

526:                                              ; preds = %524
  %527 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %525, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %528 unwind label %553

528:                                              ; preds = %526
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #11
  %529 = load ptr, ptr %16, align 8, !tbaa !5
  %530 = load ptr, ptr %529, align 8, !tbaa !13
  %531 = getelementptr inbounds ptr, ptr %530, i64 2
  %532 = load ptr, ptr %531, align 8
  %533 = call noundef ptr %532(ptr noundef nonnull align 8 dereferenceable(16) %529) #11
  store ptr %533, ptr %17, align 8, !tbaa !5
  %534 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %527, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %535 unwind label %557

535:                                              ; preds = %528
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  store i32 2, ptr %15, align 4
  br label %562

536:                                              ; preds = %504
  %537 = load ptr, ptr %5, align 8
  %538 = call ptr @__cxa_begin_catch(ptr %537) #11
  %539 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 1 dereferenceable(134) @.str.918)
          to label %540 unwind label %543

540:                                              ; preds = %536
  store i32 2, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %547 unwind label %548

541:                                              ; preds = %463
  br label %542

542:                                              ; preds = %541, %487
  br label %566

543:                                              ; preds = %536
  %544 = landingpad { ptr, i32 }
          cleanup
  %545 = extractvalue { ptr, i32 } %544, 0
  store ptr %545, ptr %5, align 8
  %546 = extractvalue { ptr, i32 } %544, 1
  store i32 %546, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %552 unwind label %5219

547:                                              ; preds = %540
  br label %580

548:                                              ; preds = %569, %540
  %549 = landingpad { ptr, i32 }
          cleanup
  %550 = extractvalue { ptr, i32 } %549, 0
  store ptr %550, ptr %5, align 8
  %551 = extractvalue { ptr, i32 } %549, 1
  store i32 %551, ptr %6, align 4
  br label %583

552:                                              ; preds = %543
  br label %583

553:                                              ; preds = %526, %524, %522, %520, %518, %508
  %554 = landingpad { ptr, i32 }
          cleanup
  %555 = extractvalue { ptr, i32 } %554, 0
  store ptr %555, ptr %5, align 8
  %556 = extractvalue { ptr, i32 } %554, 1
  store i32 %556, ptr %6, align 4
  br label %576

557:                                              ; preds = %528
  %558 = landingpad { ptr, i32 }
          cleanup
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %5, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  br label %576

561:                                              ; preds = %517
  store i8 1, ptr %9, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %562

562:                                              ; preds = %561, %535
  invoke void @__cxa_end_catch()
          to label %563 unwind label %572

563:                                              ; preds = %562
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  %564 = load i32, ptr %15, align 4
  switch i32 %564, label %580 [
    i32 0, label %565
  ]

565:                                              ; preds = %563
  br label %566

566:                                              ; preds = %565, %542
  %567 = load i8, ptr %9, align 1, !tbaa !9, !range !15, !noundef !16
  %568 = trunc i8 %567 to i1
  br i1 %568, label %579, label %569

569:                                              ; preds = %566
  %570 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 1 dereferenceable(125) @.str.920)
          to label %571 unwind label %548

571:                                              ; preds = %569
  store i32 2, ptr %15, align 4
  br label %580

572:                                              ; preds = %562
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %5, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %6, align 4
  br label %578

576:                                              ; preds = %557, %553
  invoke void @__cxa_end_catch()
          to label %577 unwind label %5219

577:                                              ; preds = %576
  br label %578

578:                                              ; preds = %577, %572
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  br label %583

579:                                              ; preds = %566
  store i32 0, ptr %15, align 4
  br label %580

580:                                              ; preds = %579, %571, %563, %547
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #11
  %581 = load i32, ptr %15, align 4
  switch i32 %581, label %5222 [
    i32 0, label %582
    i32 2, label %586
  ]

582:                                              ; preds = %580
  br label %606

583:                                              ; preds = %578, %552, %548
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  br label %584

584:                                              ; preds = %583, %492
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #11
  br label %644

585:                                              ; preds = %459
  br label %586

586:                                              ; preds = %585, %580
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %587 unwind label %592

587:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #11
  %588 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %589 unwind label %596

589:                                              ; preds = %587
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %19, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1050, ptr noundef %588)
          to label %590 unwind label %596

590:                                              ; preds = %589
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %591 unwind label %600

591:                                              ; preds = %590
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  br label %606

592:                                              ; preds = %586
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %5, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %6, align 4
  br label %605

596:                                              ; preds = %589, %587
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %5, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %6, align 4
  br label %604

600:                                              ; preds = %590
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %5, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #11
  br label %604

604:                                              ; preds = %600, %596
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #11
  br label %605

605:                                              ; preds = %604, %592
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  br label %644

606:                                              ; preds = %591, %582
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %4) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #11
  %607 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %608 = call i64 @strlen(ptr noundef %607) #12
  store i64 %608, ptr %20, align 8, !tbaa !17
  %609 = load i64, ptr %20, align 8, !tbaa !17
  %610 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 %609
  store i8 125, ptr %610, align 1, !tbaa !19
  %611 = load i64, ptr %20, align 8, !tbaa !17
  %612 = add i64 %611, 1
  %613 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 %612
  store i8 0, ptr %613, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %21)
  %614 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %615 unwind label %645

615:                                              ; preds = %606
  br i1 %614, label %616, label %742

616:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.288, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %617 unwind label %649

617:                                              ; preds = %616
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #11
  store i8 0, ptr %24, align 1, !tbaa !9
  %618 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %619 unwind label %653

619:                                              ; preds = %617
  br i1 %618, label %620, label %698

620:                                              ; preds = %619
  %621 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef %621)
          to label %622 unwind label %653

622:                                              ; preds = %620
  %623 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 0
  %624 = load ptr, ptr %623, align 8
  %625 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 1
  %626 = load i64, ptr %625, align 8
  %627 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %624, i64 %626)
          to label %628 unwind label %653

628:                                              ; preds = %622
  %629 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %27, i32 0, i32 0
  %630 = getelementptr inbounds { ptr, i64 }, ptr %629, i32 0, i32 0
  %631 = extractvalue { ptr, i64 } %627, 0
  store ptr %631, ptr %630, align 8
  %632 = getelementptr inbounds { ptr, i64 }, ptr %629, i32 0, i32 1
  %633 = extractvalue { ptr, i64 } %627, 1
  store i64 %633, ptr %632, align 8
  %634 = getelementptr inbounds { ptr, i64 }, ptr %27, i32 0, i32 0
  %635 = load ptr, ptr %634, align 8
  %636 = getelementptr inbounds { ptr, i64 }, ptr %27, i32 0, i32 1
  %637 = load i64, ptr %636, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr %635, i64 %637)
          to label %638 unwind label %653

638:                                              ; preds = %628
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #11
  store double 0.000000e+00, ptr %29, align 8, !tbaa !11
  %639 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 0
  %640 = load ptr, ptr %639, align 8
  %641 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 1
  %642 = load i64, ptr %641, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr %640, i64 %642, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %643 unwind label %657

643:                                              ; preds = %638
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  br label %699

644:                                              ; preds = %605, %584, %488
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %4) #11
  br label %5213

645:                                              ; preds = %606
  %646 = landingpad { ptr, i32 }
          cleanup
  %647 = extractvalue { ptr, i32 } %646, 0
  store ptr %647, ptr %5, align 8
  %648 = extractvalue { ptr, i32 } %646, 1
  store i32 %648, ptr %6, align 4
  br label %800

649:                                              ; preds = %616
  %650 = landingpad { ptr, i32 }
          cleanup
  %651 = extractvalue { ptr, i32 } %650, 0
  store ptr %651, ptr %5, align 8
  %652 = extractvalue { ptr, i32 } %650, 1
  store i32 %652, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #11
  br label %741

653:                                              ; preds = %628, %622, %620, %617
  %654 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %5, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %6, align 4
  br label %661

657:                                              ; preds = %638
  %658 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %5, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  br label %661

661:                                              ; preds = %657, %653
  %662 = load i32, ptr %6, align 4
  %663 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %664 = icmp eq i32 %662, %663
  br i1 %664, label %665, label %693

665:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #11
  %666 = load ptr, ptr %5, align 8
  %667 = call ptr @__cxa_begin_catch(ptr %666) #11
  store ptr %667, ptr %30, align 8
  %668 = load ptr, ptr %30, align 8, !tbaa !5
  %669 = load ptr, ptr %668, align 8, !tbaa !13
  %670 = getelementptr inbounds ptr, ptr %669, i64 2
  %671 = load ptr, ptr %670, align 8
  %672 = call noundef ptr %671(ptr noundef nonnull align 8 dereferenceable(16) %668) #11
  %673 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %672)
          to label %674 unwind label %710

674:                                              ; preds = %665
  br i1 %673, label %675, label %718

675:                                              ; preds = %674
  %676 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 1 dereferenceable(91) @.str.919)
          to label %677 unwind label %710

677:                                              ; preds = %675
  %678 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %676, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %679 unwind label %710

679:                                              ; preds = %677
  %680 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %678, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %681 unwind label %710

681:                                              ; preds = %679
  %682 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %680, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %683 unwind label %710

683:                                              ; preds = %681
  %684 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %682, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %685 unwind label %710

685:                                              ; preds = %683
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  %686 = load ptr, ptr %30, align 8, !tbaa !5
  %687 = load ptr, ptr %686, align 8, !tbaa !13
  %688 = getelementptr inbounds ptr, ptr %687, i64 2
  %689 = load ptr, ptr %688, align 8
  %690 = call noundef ptr %689(ptr noundef nonnull align 8 dereferenceable(16) %686) #11
  store ptr %690, ptr %31, align 8, !tbaa !5
  %691 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %684, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %692 unwind label %714

692:                                              ; preds = %685
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  store i32 3, ptr %15, align 4
  br label %719

693:                                              ; preds = %661
  %694 = load ptr, ptr %5, align 8
  %695 = call ptr @__cxa_begin_catch(ptr %694) #11
  %696 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 1 dereferenceable(134) @.str.918)
          to label %697 unwind label %700

697:                                              ; preds = %693
  store i32 3, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %704 unwind label %705

698:                                              ; preds = %619
  br label %699

699:                                              ; preds = %698, %643
  br label %723

700:                                              ; preds = %693
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %5, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %709 unwind label %5219

704:                                              ; preds = %697
  br label %737

705:                                              ; preds = %726, %697
  %706 = landingpad { ptr, i32 }
          cleanup
  %707 = extractvalue { ptr, i32 } %706, 0
  store ptr %707, ptr %5, align 8
  %708 = extractvalue { ptr, i32 } %706, 1
  store i32 %708, ptr %6, align 4
  br label %740

709:                                              ; preds = %700
  br label %740

710:                                              ; preds = %683, %681, %679, %677, %675, %665
  %711 = landingpad { ptr, i32 }
          cleanup
  %712 = extractvalue { ptr, i32 } %711, 0
  store ptr %712, ptr %5, align 8
  %713 = extractvalue { ptr, i32 } %711, 1
  store i32 %713, ptr %6, align 4
  br label %733

714:                                              ; preds = %685
  %715 = landingpad { ptr, i32 }
          cleanup
  %716 = extractvalue { ptr, i32 } %715, 0
  store ptr %716, ptr %5, align 8
  %717 = extractvalue { ptr, i32 } %715, 1
  store i32 %717, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  br label %733

718:                                              ; preds = %674
  store i8 1, ptr %24, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %719

719:                                              ; preds = %718, %692
  invoke void @__cxa_end_catch()
          to label %720 unwind label %729

720:                                              ; preds = %719
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  %721 = load i32, ptr %15, align 4
  switch i32 %721, label %737 [
    i32 0, label %722
  ]

722:                                              ; preds = %720
  br label %723

723:                                              ; preds = %722, %699
  %724 = load i8, ptr %24, align 1, !tbaa !9, !range !15, !noundef !16
  %725 = trunc i8 %724 to i1
  br i1 %725, label %736, label %726

726:                                              ; preds = %723
  %727 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 1 dereferenceable(125) @.str.920)
          to label %728 unwind label %705

728:                                              ; preds = %726
  store i32 3, ptr %15, align 4
  br label %737

729:                                              ; preds = %719
  %730 = landingpad { ptr, i32 }
          cleanup
  %731 = extractvalue { ptr, i32 } %730, 0
  store ptr %731, ptr %5, align 8
  %732 = extractvalue { ptr, i32 } %730, 1
  store i32 %732, ptr %6, align 4
  br label %735

733:                                              ; preds = %714, %710
  invoke void @__cxa_end_catch()
          to label %734 unwind label %5219

734:                                              ; preds = %733
  br label %735

735:                                              ; preds = %734, %729
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  br label %740

736:                                              ; preds = %723
  store i32 0, ptr %15, align 4
  br label %737

737:                                              ; preds = %736, %728, %720, %704
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #11
  %738 = load i32, ptr %15, align 4
  switch i32 %738, label %5222 [
    i32 0, label %739
    i32 3, label %743
  ]

739:                                              ; preds = %737
  br label %763

740:                                              ; preds = %735, %709, %705
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  br label %741

741:                                              ; preds = %740, %649
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #11
  br label %800

742:                                              ; preds = %615
  br label %743

743:                                              ; preds = %742, %737
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %744 unwind label %749

744:                                              ; preds = %743
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  %745 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %746 unwind label %753

746:                                              ; preds = %744
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %33, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1055, ptr noundef %745)
          to label %747 unwind label %753

747:                                              ; preds = %746
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %748 unwind label %757

748:                                              ; preds = %747
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %763

749:                                              ; preds = %743
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %5, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %6, align 4
  br label %762

753:                                              ; preds = %746, %744
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %5, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %6, align 4
  br label %761

757:                                              ; preds = %747
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %5, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #11
  br label %761

761:                                              ; preds = %757, %753
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  br label %762

762:                                              ; preds = %761, %749
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %800

763:                                              ; preds = %748, %739
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #11
  %764 = load i64, ptr %20, align 8, !tbaa !17
  %765 = add i64 %764, 1
  %766 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 %765
  store i8 125, ptr %766, align 1, !tbaa !19
  %767 = load i64, ptr %20, align 8, !tbaa !17
  %768 = add i64 %767, 2
  %769 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 %768
  store i8 0, ptr %769, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %34)
  %770 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
          to label %771 unwind label %801

771:                                              ; preds = %763
  br i1 %770, label %772, label %898

772:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.288, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %773 unwind label %805

773:                                              ; preds = %772
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #11
  store i8 0, ptr %37, align 1, !tbaa !9
  %774 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %775 unwind label %809

775:                                              ; preds = %773
  br i1 %774, label %776, label %854

776:                                              ; preds = %775
  %777 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef %777)
          to label %778 unwind label %809

778:                                              ; preds = %776
  %779 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 0
  %780 = load ptr, ptr %779, align 8
  %781 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 1
  %782 = load i64, ptr %781, align 8
  %783 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %780, i64 %782)
          to label %784 unwind label %809

784:                                              ; preds = %778
  %785 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %40, i32 0, i32 0
  %786 = getelementptr inbounds { ptr, i64 }, ptr %785, i32 0, i32 0
  %787 = extractvalue { ptr, i64 } %783, 0
  store ptr %787, ptr %786, align 8
  %788 = getelementptr inbounds { ptr, i64 }, ptr %785, i32 0, i32 1
  %789 = extractvalue { ptr, i64 } %783, 1
  store i64 %789, ptr %788, align 8
  %790 = getelementptr inbounds { ptr, i64 }, ptr %40, i32 0, i32 0
  %791 = load ptr, ptr %790, align 8
  %792 = getelementptr inbounds { ptr, i64 }, ptr %40, i32 0, i32 1
  %793 = load i64, ptr %792, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr %791, i64 %793)
          to label %794 unwind label %809

794:                                              ; preds = %784
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  store double 0.000000e+00, ptr %42, align 8, !tbaa !11
  %795 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 0
  %796 = load ptr, ptr %795, align 8
  %797 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 1
  %798 = load i64, ptr %797, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr %796, i64 %798, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %799 unwind label %813

799:                                              ; preds = %794
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %855

800:                                              ; preds = %762, %741, %645
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #11
  br label %5212

801:                                              ; preds = %763
  %802 = landingpad { ptr, i32 }
          cleanup
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %5, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %6, align 4
  br label %949

805:                                              ; preds = %772
  %806 = landingpad { ptr, i32 }
          cleanup
  %807 = extractvalue { ptr, i32 } %806, 0
  store ptr %807, ptr %5, align 8
  %808 = extractvalue { ptr, i32 } %806, 1
  store i32 %808, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #11
  br label %897

809:                                              ; preds = %784, %778, %776, %773
  %810 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %5, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %6, align 4
  br label %817

813:                                              ; preds = %794
  %814 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %5, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %817

817:                                              ; preds = %813, %809
  %818 = load i32, ptr %6, align 4
  %819 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %820 = icmp eq i32 %818, %819
  br i1 %820, label %821, label %849

821:                                              ; preds = %817
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #11
  %822 = load ptr, ptr %5, align 8
  %823 = call ptr @__cxa_begin_catch(ptr %822) #11
  store ptr %823, ptr %43, align 8
  %824 = load ptr, ptr %43, align 8, !tbaa !5
  %825 = load ptr, ptr %824, align 8, !tbaa !13
  %826 = getelementptr inbounds ptr, ptr %825, i64 2
  %827 = load ptr, ptr %826, align 8
  %828 = call noundef ptr %827(ptr noundef nonnull align 8 dereferenceable(16) %824) #11
  %829 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %828)
          to label %830 unwind label %866

830:                                              ; preds = %821
  br i1 %829, label %831, label %874

831:                                              ; preds = %830
  %832 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 1 dereferenceable(91) @.str.919)
          to label %833 unwind label %866

833:                                              ; preds = %831
  %834 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %832, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %835 unwind label %866

835:                                              ; preds = %833
  %836 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %834, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %837 unwind label %866

837:                                              ; preds = %835
  %838 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %836, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %839 unwind label %866

839:                                              ; preds = %837
  %840 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %838, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %841 unwind label %866

841:                                              ; preds = %839
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #11
  %842 = load ptr, ptr %43, align 8, !tbaa !5
  %843 = load ptr, ptr %842, align 8, !tbaa !13
  %844 = getelementptr inbounds ptr, ptr %843, i64 2
  %845 = load ptr, ptr %844, align 8
  %846 = call noundef ptr %845(ptr noundef nonnull align 8 dereferenceable(16) %842) #11
  store ptr %846, ptr %44, align 8, !tbaa !5
  %847 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %840, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %848 unwind label %870

848:                                              ; preds = %841
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  store i32 4, ptr %15, align 4
  br label %875

849:                                              ; preds = %817
  %850 = load ptr, ptr %5, align 8
  %851 = call ptr @__cxa_begin_catch(ptr %850) #11
  %852 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 1 dereferenceable(134) @.str.918)
          to label %853 unwind label %856

853:                                              ; preds = %849
  store i32 4, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %860 unwind label %861

854:                                              ; preds = %775
  br label %855

855:                                              ; preds = %854, %799
  br label %879

856:                                              ; preds = %849
  %857 = landingpad { ptr, i32 }
          cleanup
  %858 = extractvalue { ptr, i32 } %857, 0
  store ptr %858, ptr %5, align 8
  %859 = extractvalue { ptr, i32 } %857, 1
  store i32 %859, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %865 unwind label %5219

860:                                              ; preds = %853
  br label %893

861:                                              ; preds = %882, %853
  %862 = landingpad { ptr, i32 }
          cleanup
  %863 = extractvalue { ptr, i32 } %862, 0
  store ptr %863, ptr %5, align 8
  %864 = extractvalue { ptr, i32 } %862, 1
  store i32 %864, ptr %6, align 4
  br label %896

865:                                              ; preds = %856
  br label %896

866:                                              ; preds = %839, %837, %835, %833, %831, %821
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %5, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %6, align 4
  br label %889

870:                                              ; preds = %841
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %5, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  br label %889

874:                                              ; preds = %830
  store i8 1, ptr %37, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %875

875:                                              ; preds = %874, %848
  invoke void @__cxa_end_catch()
          to label %876 unwind label %885

876:                                              ; preds = %875
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  %877 = load i32, ptr %15, align 4
  switch i32 %877, label %893 [
    i32 0, label %878
  ]

878:                                              ; preds = %876
  br label %879

879:                                              ; preds = %878, %855
  %880 = load i8, ptr %37, align 1, !tbaa !9, !range !15, !noundef !16
  %881 = trunc i8 %880 to i1
  br i1 %881, label %892, label %882

882:                                              ; preds = %879
  %883 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 1 dereferenceable(125) @.str.920)
          to label %884 unwind label %861

884:                                              ; preds = %882
  store i32 4, ptr %15, align 4
  br label %893

885:                                              ; preds = %875
  %886 = landingpad { ptr, i32 }
          cleanup
  %887 = extractvalue { ptr, i32 } %886, 0
  store ptr %887, ptr %5, align 8
  %888 = extractvalue { ptr, i32 } %886, 1
  store i32 %888, ptr %6, align 4
  br label %891

889:                                              ; preds = %870, %866
  invoke void @__cxa_end_catch()
          to label %890 unwind label %5219

890:                                              ; preds = %889
  br label %891

891:                                              ; preds = %890, %885
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  br label %896

892:                                              ; preds = %879
  store i32 0, ptr %15, align 4
  br label %893

893:                                              ; preds = %892, %884, %876, %860
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #11
  %894 = load i32, ptr %15, align 4
  switch i32 %894, label %5222 [
    i32 0, label %895
    i32 4, label %899
  ]

895:                                              ; preds = %893
  br label %919

896:                                              ; preds = %891, %865, %861
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  br label %897

897:                                              ; preds = %896, %805
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #11
  br label %949

898:                                              ; preds = %771
  br label %899

899:                                              ; preds = %898, %893
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %900 unwind label %905

900:                                              ; preds = %899
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  %901 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
          to label %902 unwind label %909

902:                                              ; preds = %900
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %46, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1059, ptr noundef %901)
          to label %903 unwind label %909

903:                                              ; preds = %902
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %904 unwind label %913

904:                                              ; preds = %903
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  br label %919

905:                                              ; preds = %899
  %906 = landingpad { ptr, i32 }
          cleanup
  %907 = extractvalue { ptr, i32 } %906, 0
  store ptr %907, ptr %5, align 8
  %908 = extractvalue { ptr, i32 } %906, 1
  store i32 %908, ptr %6, align 4
  br label %918

909:                                              ; preds = %902, %900
  %910 = landingpad { ptr, i32 }
          cleanup
  %911 = extractvalue { ptr, i32 } %910, 0
  store ptr %911, ptr %5, align 8
  %912 = extractvalue { ptr, i32 } %910, 1
  store i32 %912, ptr %6, align 4
  br label %917

913:                                              ; preds = %903
  %914 = landingpad { ptr, i32 }
          cleanup
  %915 = extractvalue { ptr, i32 } %914, 0
  store ptr %915, ptr %5, align 8
  %916 = extractvalue { ptr, i32 } %914, 1
  store i32 %916, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #11
  br label %917

917:                                              ; preds = %913, %909
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #11
  br label %918

918:                                              ; preds = %917, %905
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  br label %949

919:                                              ; preds = %904, %895
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %47)
  %920 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %921 unwind label %950

921:                                              ; preds = %919
  br i1 %920, label %922, label %1047

922:                                              ; preds = %921
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.230, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %923 unwind label %954

923:                                              ; preds = %922
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #11
  store i8 0, ptr %50, align 1, !tbaa !9
  %924 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %925 unwind label %958

925:                                              ; preds = %923
  br i1 %924, label %926, label %1003

926:                                              ; preds = %925
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef @.str.1072)
          to label %927 unwind label %958

927:                                              ; preds = %926
  %928 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 0
  %929 = load ptr, ptr %928, align 8
  %930 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 1
  %931 = load i64, ptr %930, align 8
  %932 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %929, i64 %931)
          to label %933 unwind label %958

933:                                              ; preds = %927
  %934 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %53, i32 0, i32 0
  %935 = getelementptr inbounds { ptr, i64 }, ptr %934, i32 0, i32 0
  %936 = extractvalue { ptr, i64 } %932, 0
  store ptr %936, ptr %935, align 8
  %937 = getelementptr inbounds { ptr, i64 }, ptr %934, i32 0, i32 1
  %938 = extractvalue { ptr, i64 } %932, 1
  store i64 %938, ptr %937, align 8
  %939 = getelementptr inbounds { ptr, i64 }, ptr %53, i32 0, i32 0
  %940 = load ptr, ptr %939, align 8
  %941 = getelementptr inbounds { ptr, i64 }, ptr %53, i32 0, i32 1
  %942 = load i64, ptr %941, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr %940, i64 %942)
          to label %943 unwind label %958

943:                                              ; preds = %933
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  store double 0.000000e+00, ptr %55, align 8, !tbaa !11
  %944 = getelementptr inbounds { ptr, i64 }, ptr %52, i32 0, i32 0
  %945 = load ptr, ptr %944, align 8
  %946 = getelementptr inbounds { ptr, i64 }, ptr %52, i32 0, i32 1
  %947 = load i64, ptr %946, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr %945, i64 %947, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %948 unwind label %962

948:                                              ; preds = %943
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %1004

949:                                              ; preds = %918, %897, %801
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #11
  br label %5212

950:                                              ; preds = %919
  %951 = landingpad { ptr, i32 }
          cleanup
  %952 = extractvalue { ptr, i32 } %951, 0
  store ptr %952, ptr %5, align 8
  %953 = extractvalue { ptr, i32 } %951, 1
  store i32 %953, ptr %6, align 4
  br label %1098

954:                                              ; preds = %922
  %955 = landingpad { ptr, i32 }
          cleanup
  %956 = extractvalue { ptr, i32 } %955, 0
  store ptr %956, ptr %5, align 8
  %957 = extractvalue { ptr, i32 } %955, 1
  store i32 %957, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #11
  br label %1046

958:                                              ; preds = %933, %927, %926, %923
  %959 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %960 = extractvalue { ptr, i32 } %959, 0
  store ptr %960, ptr %5, align 8
  %961 = extractvalue { ptr, i32 } %959, 1
  store i32 %961, ptr %6, align 4
  br label %966

962:                                              ; preds = %943
  %963 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %964 = extractvalue { ptr, i32 } %963, 0
  store ptr %964, ptr %5, align 8
  %965 = extractvalue { ptr, i32 } %963, 1
  store i32 %965, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %966

966:                                              ; preds = %962, %958
  %967 = load i32, ptr %6, align 4
  %968 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %969 = icmp eq i32 %967, %968
  br i1 %969, label %970, label %998

970:                                              ; preds = %966
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #11
  %971 = load ptr, ptr %5, align 8
  %972 = call ptr @__cxa_begin_catch(ptr %971) #11
  store ptr %972, ptr %56, align 8
  %973 = load ptr, ptr %56, align 8, !tbaa !5
  %974 = load ptr, ptr %973, align 8, !tbaa !13
  %975 = getelementptr inbounds ptr, ptr %974, i64 2
  %976 = load ptr, ptr %975, align 8
  %977 = call noundef ptr %976(ptr noundef nonnull align 8 dereferenceable(16) %973) #11
  %978 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef %977)
          to label %979 unwind label %1015

979:                                              ; preds = %970
  br i1 %978, label %980, label %1023

980:                                              ; preds = %979
  %981 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 1 dereferenceable(88) @.str.1074)
          to label %982 unwind label %1015

982:                                              ; preds = %980
  %983 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %981, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %984 unwind label %1015

984:                                              ; preds = %982
  %985 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %983, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %986 unwind label %1015

986:                                              ; preds = %984
  %987 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %985, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %988 unwind label %1015

988:                                              ; preds = %986
  %989 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %987, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %990 unwind label %1015

990:                                              ; preds = %988
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  %991 = load ptr, ptr %56, align 8, !tbaa !5
  %992 = load ptr, ptr %991, align 8, !tbaa !13
  %993 = getelementptr inbounds ptr, ptr %992, i64 2
  %994 = load ptr, ptr %993, align 8
  %995 = call noundef ptr %994(ptr noundef nonnull align 8 dereferenceable(16) %991) #11
  store ptr %995, ptr %57, align 8, !tbaa !5
  %996 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %989, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %997 unwind label %1019

997:                                              ; preds = %990
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  store i32 5, ptr %15, align 4
  br label %1024

998:                                              ; preds = %966
  %999 = load ptr, ptr %5, align 8
  %1000 = call ptr @__cxa_begin_catch(ptr %999) #11
  %1001 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 1 dereferenceable(131) @.str.1073)
          to label %1002 unwind label %1005

1002:                                             ; preds = %998
  store i32 5, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1009 unwind label %1010

1003:                                             ; preds = %925
  br label %1004

1004:                                             ; preds = %1003, %948
  br label %1028

1005:                                             ; preds = %998
  %1006 = landingpad { ptr, i32 }
          cleanup
  %1007 = extractvalue { ptr, i32 } %1006, 0
  store ptr %1007, ptr %5, align 8
  %1008 = extractvalue { ptr, i32 } %1006, 1
  store i32 %1008, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1014 unwind label %5219

1009:                                             ; preds = %1002
  br label %1042

1010:                                             ; preds = %1031, %1002
  %1011 = landingpad { ptr, i32 }
          cleanup
  %1012 = extractvalue { ptr, i32 } %1011, 0
  store ptr %1012, ptr %5, align 8
  %1013 = extractvalue { ptr, i32 } %1011, 1
  store i32 %1013, ptr %6, align 4
  br label %1045

1014:                                             ; preds = %1005
  br label %1045

1015:                                             ; preds = %988, %986, %984, %982, %980, %970
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %5, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %6, align 4
  br label %1038

1019:                                             ; preds = %990
  %1020 = landingpad { ptr, i32 }
          cleanup
  %1021 = extractvalue { ptr, i32 } %1020, 0
  store ptr %1021, ptr %5, align 8
  %1022 = extractvalue { ptr, i32 } %1020, 1
  store i32 %1022, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %1038

1023:                                             ; preds = %979
  store i8 1, ptr %50, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1024

1024:                                             ; preds = %1023, %997
  invoke void @__cxa_end_catch()
          to label %1025 unwind label %1034

1025:                                             ; preds = %1024
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  %1026 = load i32, ptr %15, align 4
  switch i32 %1026, label %1042 [
    i32 0, label %1027
  ]

1027:                                             ; preds = %1025
  br label %1028

1028:                                             ; preds = %1027, %1004
  %1029 = load i8, ptr %50, align 1, !tbaa !9, !range !15, !noundef !16
  %1030 = trunc i8 %1029 to i1
  br i1 %1030, label %1041, label %1031

1031:                                             ; preds = %1028
  %1032 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 1 dereferenceable(122) @.str.1075)
          to label %1033 unwind label %1010

1033:                                             ; preds = %1031
  store i32 5, ptr %15, align 4
  br label %1042

1034:                                             ; preds = %1024
  %1035 = landingpad { ptr, i32 }
          cleanup
  %1036 = extractvalue { ptr, i32 } %1035, 0
  store ptr %1036, ptr %5, align 8
  %1037 = extractvalue { ptr, i32 } %1035, 1
  store i32 %1037, ptr %6, align 4
  br label %1040

1038:                                             ; preds = %1019, %1015
  invoke void @__cxa_end_catch()
          to label %1039 unwind label %5219

1039:                                             ; preds = %1038
  br label %1040

1040:                                             ; preds = %1039, %1034
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  br label %1045

1041:                                             ; preds = %1028
  store i32 0, ptr %15, align 4
  br label %1042

1042:                                             ; preds = %1041, %1033, %1025, %1009
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #11
  %1043 = load i32, ptr %15, align 4
  switch i32 %1043, label %5222 [
    i32 0, label %1044
    i32 5, label %1048
  ]

1044:                                             ; preds = %1042
  br label %1068

1045:                                             ; preds = %1040, %1014, %1010
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  br label %1046

1046:                                             ; preds = %1045, %954
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #11
  br label %1098

1047:                                             ; preds = %921
  br label %1048

1048:                                             ; preds = %1047, %1042
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %1049 unwind label %1054

1049:                                             ; preds = %1048
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  %1050 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %1051 unwind label %1058

1051:                                             ; preds = %1049
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %59, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1062, ptr noundef %1050)
          to label %1052 unwind label %1058

1052:                                             ; preds = %1051
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %1053 unwind label %1062

1053:                                             ; preds = %1052
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  br label %1068

1054:                                             ; preds = %1048
  %1055 = landingpad { ptr, i32 }
          cleanup
  %1056 = extractvalue { ptr, i32 } %1055, 0
  store ptr %1056, ptr %5, align 8
  %1057 = extractvalue { ptr, i32 } %1055, 1
  store i32 %1057, ptr %6, align 4
  br label %1067

1058:                                             ; preds = %1051, %1049
  %1059 = landingpad { ptr, i32 }
          cleanup
  %1060 = extractvalue { ptr, i32 } %1059, 0
  store ptr %1060, ptr %5, align 8
  %1061 = extractvalue { ptr, i32 } %1059, 1
  store i32 %1061, ptr %6, align 4
  br label %1066

1062:                                             ; preds = %1052
  %1063 = landingpad { ptr, i32 }
          cleanup
  %1064 = extractvalue { ptr, i32 } %1063, 0
  store ptr %1064, ptr %5, align 8
  %1065 = extractvalue { ptr, i32 } %1063, 1
  store i32 %1065, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #11
  br label %1066

1066:                                             ; preds = %1062, %1058
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #11
  br label %1067

1067:                                             ; preds = %1066, %1054
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  br label %1098

1068:                                             ; preds = %1053, %1044
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %60)
  %1069 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %1070 unwind label %1099

1070:                                             ; preds = %1068
  br i1 %1069, label %1071, label %1196

1071:                                             ; preds = %1070
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.381, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %1072 unwind label %1103

1072:                                             ; preds = %1071
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #11
  store i8 0, ptr %63, align 1, !tbaa !9
  %1073 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1074 unwind label %1107

1074:                                             ; preds = %1072
  br i1 %1073, label %1075, label %1152

1075:                                             ; preds = %1074
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef @.str.1076)
          to label %1076 unwind label %1107

1076:                                             ; preds = %1075
  %1077 = getelementptr inbounds { ptr, i64 }, ptr %67, i32 0, i32 0
  %1078 = load ptr, ptr %1077, align 8
  %1079 = getelementptr inbounds { ptr, i64 }, ptr %67, i32 0, i32 1
  %1080 = load i64, ptr %1079, align 8
  %1081 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1078, i64 %1080)
          to label %1082 unwind label %1107

1082:                                             ; preds = %1076
  %1083 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %66, i32 0, i32 0
  %1084 = getelementptr inbounds { ptr, i64 }, ptr %1083, i32 0, i32 0
  %1085 = extractvalue { ptr, i64 } %1081, 0
  store ptr %1085, ptr %1084, align 8
  %1086 = getelementptr inbounds { ptr, i64 }, ptr %1083, i32 0, i32 1
  %1087 = extractvalue { ptr, i64 } %1081, 1
  store i64 %1087, ptr %1086, align 8
  %1088 = getelementptr inbounds { ptr, i64 }, ptr %66, i32 0, i32 0
  %1089 = load ptr, ptr %1088, align 8
  %1090 = getelementptr inbounds { ptr, i64 }, ptr %66, i32 0, i32 1
  %1091 = load i64, ptr %1090, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr %1089, i64 %1091)
          to label %1092 unwind label %1107

1092:                                             ; preds = %1082
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #11
  store double 0.000000e+00, ptr %68, align 8, !tbaa !11
  %1093 = getelementptr inbounds { ptr, i64 }, ptr %65, i32 0, i32 0
  %1094 = load ptr, ptr %1093, align 8
  %1095 = getelementptr inbounds { ptr, i64 }, ptr %65, i32 0, i32 1
  %1096 = load i64, ptr %1095, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr %1094, i64 %1096, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %1097 unwind label %1111

1097:                                             ; preds = %1092
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  br label %1153

1098:                                             ; preds = %1067, %1046, %950
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #11
  br label %5212

1099:                                             ; preds = %1068
  %1100 = landingpad { ptr, i32 }
          cleanup
  %1101 = extractvalue { ptr, i32 } %1100, 0
  store ptr %1101, ptr %5, align 8
  %1102 = extractvalue { ptr, i32 } %1100, 1
  store i32 %1102, ptr %6, align 4
  br label %1247

1103:                                             ; preds = %1071
  %1104 = landingpad { ptr, i32 }
          cleanup
  %1105 = extractvalue { ptr, i32 } %1104, 0
  store ptr %1105, ptr %5, align 8
  %1106 = extractvalue { ptr, i32 } %1104, 1
  store i32 %1106, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #11
  br label %1195

1107:                                             ; preds = %1082, %1076, %1075, %1072
  %1108 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1109 = extractvalue { ptr, i32 } %1108, 0
  store ptr %1109, ptr %5, align 8
  %1110 = extractvalue { ptr, i32 } %1108, 1
  store i32 %1110, ptr %6, align 4
  br label %1115

1111:                                             ; preds = %1092
  %1112 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1113 = extractvalue { ptr, i32 } %1112, 0
  store ptr %1113, ptr %5, align 8
  %1114 = extractvalue { ptr, i32 } %1112, 1
  store i32 %1114, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  br label %1115

1115:                                             ; preds = %1111, %1107
  %1116 = load i32, ptr %6, align 4
  %1117 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1118 = icmp eq i32 %1116, %1117
  br i1 %1118, label %1119, label %1147

1119:                                             ; preds = %1115
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #11
  %1120 = load ptr, ptr %5, align 8
  %1121 = call ptr @__cxa_begin_catch(ptr %1120) #11
  store ptr %1121, ptr %69, align 8
  %1122 = load ptr, ptr %69, align 8, !tbaa !5
  %1123 = load ptr, ptr %1122, align 8, !tbaa !13
  %1124 = getelementptr inbounds ptr, ptr %1123, i64 2
  %1125 = load ptr, ptr %1124, align 8
  %1126 = call noundef ptr %1125(ptr noundef nonnull align 8 dereferenceable(16) %1122) #11
  %1127 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef %1126)
          to label %1128 unwind label %1164

1128:                                             ; preds = %1119
  br i1 %1127, label %1129, label %1172

1129:                                             ; preds = %1128
  %1130 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 1 dereferenceable(89) @.str.1078)
          to label %1131 unwind label %1164

1131:                                             ; preds = %1129
  %1132 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1130, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1133 unwind label %1164

1133:                                             ; preds = %1131
  %1134 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1132, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %1135 unwind label %1164

1135:                                             ; preds = %1133
  %1136 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1134, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1137 unwind label %1164

1137:                                             ; preds = %1135
  %1138 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1136, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1139 unwind label %1164

1139:                                             ; preds = %1137
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #11
  %1140 = load ptr, ptr %69, align 8, !tbaa !5
  %1141 = load ptr, ptr %1140, align 8, !tbaa !13
  %1142 = getelementptr inbounds ptr, ptr %1141, i64 2
  %1143 = load ptr, ptr %1142, align 8
  %1144 = call noundef ptr %1143(ptr noundef nonnull align 8 dereferenceable(16) %1140) #11
  store ptr %1144, ptr %70, align 8, !tbaa !5
  %1145 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1138, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %1146 unwind label %1168

1146:                                             ; preds = %1139
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  store i32 6, ptr %15, align 4
  br label %1173

1147:                                             ; preds = %1115
  %1148 = load ptr, ptr %5, align 8
  %1149 = call ptr @__cxa_begin_catch(ptr %1148) #11
  %1150 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 1 dereferenceable(132) @.str.1077)
          to label %1151 unwind label %1154

1151:                                             ; preds = %1147
  store i32 6, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1158 unwind label %1159

1152:                                             ; preds = %1074
  br label %1153

1153:                                             ; preds = %1152, %1097
  br label %1177

1154:                                             ; preds = %1147
  %1155 = landingpad { ptr, i32 }
          cleanup
  %1156 = extractvalue { ptr, i32 } %1155, 0
  store ptr %1156, ptr %5, align 8
  %1157 = extractvalue { ptr, i32 } %1155, 1
  store i32 %1157, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1163 unwind label %5219

1158:                                             ; preds = %1151
  br label %1191

1159:                                             ; preds = %1180, %1151
  %1160 = landingpad { ptr, i32 }
          cleanup
  %1161 = extractvalue { ptr, i32 } %1160, 0
  store ptr %1161, ptr %5, align 8
  %1162 = extractvalue { ptr, i32 } %1160, 1
  store i32 %1162, ptr %6, align 4
  br label %1194

1163:                                             ; preds = %1154
  br label %1194

1164:                                             ; preds = %1137, %1135, %1133, %1131, %1129, %1119
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %5, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %6, align 4
  br label %1187

1168:                                             ; preds = %1139
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %5, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  br label %1187

1172:                                             ; preds = %1128
  store i8 1, ptr %63, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1173

1173:                                             ; preds = %1172, %1146
  invoke void @__cxa_end_catch()
          to label %1174 unwind label %1183

1174:                                             ; preds = %1173
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  %1175 = load i32, ptr %15, align 4
  switch i32 %1175, label %1191 [
    i32 0, label %1176
  ]

1176:                                             ; preds = %1174
  br label %1177

1177:                                             ; preds = %1176, %1153
  %1178 = load i8, ptr %63, align 1, !tbaa !9, !range !15, !noundef !16
  %1179 = trunc i8 %1178 to i1
  br i1 %1179, label %1190, label %1180

1180:                                             ; preds = %1177
  %1181 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 1 dereferenceable(123) @.str.1079)
          to label %1182 unwind label %1159

1182:                                             ; preds = %1180
  store i32 6, ptr %15, align 4
  br label %1191

1183:                                             ; preds = %1173
  %1184 = landingpad { ptr, i32 }
          cleanup
  %1185 = extractvalue { ptr, i32 } %1184, 0
  store ptr %1185, ptr %5, align 8
  %1186 = extractvalue { ptr, i32 } %1184, 1
  store i32 %1186, ptr %6, align 4
  br label %1189

1187:                                             ; preds = %1168, %1164
  invoke void @__cxa_end_catch()
          to label %1188 unwind label %5219

1188:                                             ; preds = %1187
  br label %1189

1189:                                             ; preds = %1188, %1183
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  br label %1194

1190:                                             ; preds = %1177
  store i32 0, ptr %15, align 4
  br label %1191

1191:                                             ; preds = %1190, %1182, %1174, %1158
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #11
  %1192 = load i32, ptr %15, align 4
  switch i32 %1192, label %5222 [
    i32 0, label %1193
    i32 6, label %1197
  ]

1193:                                             ; preds = %1191
  br label %1217

1194:                                             ; preds = %1189, %1163, %1159
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  br label %1195

1195:                                             ; preds = %1194, %1103
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #11
  br label %1247

1196:                                             ; preds = %1070
  br label %1197

1197:                                             ; preds = %1196, %1191
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %1198 unwind label %1203

1198:                                             ; preds = %1197
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #11
  %1199 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %1200 unwind label %1207

1200:                                             ; preds = %1198
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %72, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1064, ptr noundef %1199)
          to label %1201 unwind label %1207

1201:                                             ; preds = %1200
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %1202 unwind label %1211

1202:                                             ; preds = %1201
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  br label %1217

1203:                                             ; preds = %1197
  %1204 = landingpad { ptr, i32 }
          cleanup
  %1205 = extractvalue { ptr, i32 } %1204, 0
  store ptr %1205, ptr %5, align 8
  %1206 = extractvalue { ptr, i32 } %1204, 1
  store i32 %1206, ptr %6, align 4
  br label %1216

1207:                                             ; preds = %1200, %1198
  %1208 = landingpad { ptr, i32 }
          cleanup
  %1209 = extractvalue { ptr, i32 } %1208, 0
  store ptr %1209, ptr %5, align 8
  %1210 = extractvalue { ptr, i32 } %1208, 1
  store i32 %1210, ptr %6, align 4
  br label %1215

1211:                                             ; preds = %1201
  %1212 = landingpad { ptr, i32 }
          cleanup
  %1213 = extractvalue { ptr, i32 } %1212, 0
  store ptr %1213, ptr %5, align 8
  %1214 = extractvalue { ptr, i32 } %1212, 1
  store i32 %1214, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #11
  br label %1215

1215:                                             ; preds = %1211, %1207
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #11
  br label %1216

1216:                                             ; preds = %1215, %1203
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  br label %1247

1217:                                             ; preds = %1202, %1193
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %73) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %73)
  %1218 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %1219 unwind label %1248

1219:                                             ; preds = %1217
  br i1 %1218, label %1220, label %1345

1220:                                             ; preds = %1219
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef @.str.230, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %1221 unwind label %1252

1221:                                             ; preds = %1220
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #11
  store i8 0, ptr %76, align 1, !tbaa !9
  %1222 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1223 unwind label %1256

1223:                                             ; preds = %1221
  br i1 %1222, label %1224, label %1301

1224:                                             ; preds = %1223
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %80, ptr noundef @.str.1080)
          to label %1225 unwind label %1256

1225:                                             ; preds = %1224
  %1226 = getelementptr inbounds { ptr, i64 }, ptr %80, i32 0, i32 0
  %1227 = load ptr, ptr %1226, align 8
  %1228 = getelementptr inbounds { ptr, i64 }, ptr %80, i32 0, i32 1
  %1229 = load i64, ptr %1228, align 8
  %1230 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1227, i64 %1229)
          to label %1231 unwind label %1256

1231:                                             ; preds = %1225
  %1232 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %79, i32 0, i32 0
  %1233 = getelementptr inbounds { ptr, i64 }, ptr %1232, i32 0, i32 0
  %1234 = extractvalue { ptr, i64 } %1230, 0
  store ptr %1234, ptr %1233, align 8
  %1235 = getelementptr inbounds { ptr, i64 }, ptr %1232, i32 0, i32 1
  %1236 = extractvalue { ptr, i64 } %1230, 1
  store i64 %1236, ptr %1235, align 8
  %1237 = getelementptr inbounds { ptr, i64 }, ptr %79, i32 0, i32 0
  %1238 = load ptr, ptr %1237, align 8
  %1239 = getelementptr inbounds { ptr, i64 }, ptr %79, i32 0, i32 1
  %1240 = load i64, ptr %1239, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr %1238, i64 %1240)
          to label %1241 unwind label %1256

1241:                                             ; preds = %1231
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #11
  store double 0.000000e+00, ptr %81, align 8, !tbaa !11
  %1242 = getelementptr inbounds { ptr, i64 }, ptr %78, i32 0, i32 0
  %1243 = load ptr, ptr %1242, align 8
  %1244 = getelementptr inbounds { ptr, i64 }, ptr %78, i32 0, i32 1
  %1245 = load i64, ptr %1244, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr %1243, i64 %1245, ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %1246 unwind label %1260

1246:                                             ; preds = %1241
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #11
  br label %1302

1247:                                             ; preds = %1216, %1195, %1099
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #11
  br label %5212

1248:                                             ; preds = %1217
  %1249 = landingpad { ptr, i32 }
          cleanup
  %1250 = extractvalue { ptr, i32 } %1249, 0
  store ptr %1250, ptr %5, align 8
  %1251 = extractvalue { ptr, i32 } %1249, 1
  store i32 %1251, ptr %6, align 4
  br label %1396

1252:                                             ; preds = %1220
  %1253 = landingpad { ptr, i32 }
          cleanup
  %1254 = extractvalue { ptr, i32 } %1253, 0
  store ptr %1254, ptr %5, align 8
  %1255 = extractvalue { ptr, i32 } %1253, 1
  store i32 %1255, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #11
  br label %1344

1256:                                             ; preds = %1231, %1225, %1224, %1221
  %1257 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1258 = extractvalue { ptr, i32 } %1257, 0
  store ptr %1258, ptr %5, align 8
  %1259 = extractvalue { ptr, i32 } %1257, 1
  store i32 %1259, ptr %6, align 4
  br label %1264

1260:                                             ; preds = %1241
  %1261 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1262 = extractvalue { ptr, i32 } %1261, 0
  store ptr %1262, ptr %5, align 8
  %1263 = extractvalue { ptr, i32 } %1261, 1
  store i32 %1263, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #11
  br label %1264

1264:                                             ; preds = %1260, %1256
  %1265 = load i32, ptr %6, align 4
  %1266 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1267 = icmp eq i32 %1265, %1266
  br i1 %1267, label %1268, label %1296

1268:                                             ; preds = %1264
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #11
  %1269 = load ptr, ptr %5, align 8
  %1270 = call ptr @__cxa_begin_catch(ptr %1269) #11
  store ptr %1270, ptr %82, align 8
  %1271 = load ptr, ptr %82, align 8, !tbaa !5
  %1272 = load ptr, ptr %1271, align 8, !tbaa !13
  %1273 = getelementptr inbounds ptr, ptr %1272, i64 2
  %1274 = load ptr, ptr %1273, align 8
  %1275 = call noundef ptr %1274(ptr noundef nonnull align 8 dereferenceable(16) %1271) #11
  %1276 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef %1275)
          to label %1277 unwind label %1313

1277:                                             ; preds = %1268
  br i1 %1276, label %1278, label %1321

1278:                                             ; preds = %1277
  %1279 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 1 dereferenceable(91) @.str.1082)
          to label %1280 unwind label %1313

1280:                                             ; preds = %1278
  %1281 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1279, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1282 unwind label %1313

1282:                                             ; preds = %1280
  %1283 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1281, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %1284 unwind label %1313

1284:                                             ; preds = %1282
  %1285 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1283, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1286 unwind label %1313

1286:                                             ; preds = %1284
  %1287 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1285, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1288 unwind label %1313

1288:                                             ; preds = %1286
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #11
  %1289 = load ptr, ptr %82, align 8, !tbaa !5
  %1290 = load ptr, ptr %1289, align 8, !tbaa !13
  %1291 = getelementptr inbounds ptr, ptr %1290, i64 2
  %1292 = load ptr, ptr %1291, align 8
  %1293 = call noundef ptr %1292(ptr noundef nonnull align 8 dereferenceable(16) %1289) #11
  store ptr %1293, ptr %83, align 8, !tbaa !5
  %1294 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1287, ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %1295 unwind label %1317

1295:                                             ; preds = %1288
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  store i32 7, ptr %15, align 4
  br label %1322

1296:                                             ; preds = %1264
  %1297 = load ptr, ptr %5, align 8
  %1298 = call ptr @__cxa_begin_catch(ptr %1297) #11
  %1299 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 1 dereferenceable(134) @.str.1081)
          to label %1300 unwind label %1303

1300:                                             ; preds = %1296
  store i32 7, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1307 unwind label %1308

1301:                                             ; preds = %1223
  br label %1302

1302:                                             ; preds = %1301, %1246
  br label %1326

1303:                                             ; preds = %1296
  %1304 = landingpad { ptr, i32 }
          cleanup
  %1305 = extractvalue { ptr, i32 } %1304, 0
  store ptr %1305, ptr %5, align 8
  %1306 = extractvalue { ptr, i32 } %1304, 1
  store i32 %1306, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1312 unwind label %5219

1307:                                             ; preds = %1300
  br label %1340

1308:                                             ; preds = %1329, %1300
  %1309 = landingpad { ptr, i32 }
          cleanup
  %1310 = extractvalue { ptr, i32 } %1309, 0
  store ptr %1310, ptr %5, align 8
  %1311 = extractvalue { ptr, i32 } %1309, 1
  store i32 %1311, ptr %6, align 4
  br label %1343

1312:                                             ; preds = %1303
  br label %1343

1313:                                             ; preds = %1286, %1284, %1282, %1280, %1278, %1268
  %1314 = landingpad { ptr, i32 }
          cleanup
  %1315 = extractvalue { ptr, i32 } %1314, 0
  store ptr %1315, ptr %5, align 8
  %1316 = extractvalue { ptr, i32 } %1314, 1
  store i32 %1316, ptr %6, align 4
  br label %1336

1317:                                             ; preds = %1288
  %1318 = landingpad { ptr, i32 }
          cleanup
  %1319 = extractvalue { ptr, i32 } %1318, 0
  store ptr %1319, ptr %5, align 8
  %1320 = extractvalue { ptr, i32 } %1318, 1
  store i32 %1320, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  br label %1336

1321:                                             ; preds = %1277
  store i8 1, ptr %76, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1322

1322:                                             ; preds = %1321, %1295
  invoke void @__cxa_end_catch()
          to label %1323 unwind label %1332

1323:                                             ; preds = %1322
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  %1324 = load i32, ptr %15, align 4
  switch i32 %1324, label %1340 [
    i32 0, label %1325
  ]

1325:                                             ; preds = %1323
  br label %1326

1326:                                             ; preds = %1325, %1302
  %1327 = load i8, ptr %76, align 1, !tbaa !9, !range !15, !noundef !16
  %1328 = trunc i8 %1327 to i1
  br i1 %1328, label %1339, label %1329

1329:                                             ; preds = %1326
  %1330 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 1 dereferenceable(125) @.str.1083)
          to label %1331 unwind label %1308

1331:                                             ; preds = %1329
  store i32 7, ptr %15, align 4
  br label %1340

1332:                                             ; preds = %1322
  %1333 = landingpad { ptr, i32 }
          cleanup
  %1334 = extractvalue { ptr, i32 } %1333, 0
  store ptr %1334, ptr %5, align 8
  %1335 = extractvalue { ptr, i32 } %1333, 1
  store i32 %1335, ptr %6, align 4
  br label %1338

1336:                                             ; preds = %1317, %1313
  invoke void @__cxa_end_catch()
          to label %1337 unwind label %5219

1337:                                             ; preds = %1336
  br label %1338

1338:                                             ; preds = %1337, %1332
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  br label %1343

1339:                                             ; preds = %1326
  store i32 0, ptr %15, align 4
  br label %1340

1340:                                             ; preds = %1339, %1331, %1323, %1307
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #11
  %1341 = load i32, ptr %15, align 4
  switch i32 %1341, label %5222 [
    i32 0, label %1342
    i32 7, label %1346
  ]

1342:                                             ; preds = %1340
  br label %1366

1343:                                             ; preds = %1338, %1312, %1308
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  br label %1344

1344:                                             ; preds = %1343, %1252
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #11
  br label %1396

1345:                                             ; preds = %1219
  br label %1346

1346:                                             ; preds = %1345, %1340
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %1347 unwind label %1352

1347:                                             ; preds = %1346
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #11
  %1348 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %1349 unwind label %1356

1349:                                             ; preds = %1347
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %85, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1066, ptr noundef %1348)
          to label %1350 unwind label %1356

1350:                                             ; preds = %1349
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %1351 unwind label %1360

1351:                                             ; preds = %1350
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #11
  br label %1366

1352:                                             ; preds = %1346
  %1353 = landingpad { ptr, i32 }
          cleanup
  %1354 = extractvalue { ptr, i32 } %1353, 0
  store ptr %1354, ptr %5, align 8
  %1355 = extractvalue { ptr, i32 } %1353, 1
  store i32 %1355, ptr %6, align 4
  br label %1365

1356:                                             ; preds = %1349, %1347
  %1357 = landingpad { ptr, i32 }
          cleanup
  %1358 = extractvalue { ptr, i32 } %1357, 0
  store ptr %1358, ptr %5, align 8
  %1359 = extractvalue { ptr, i32 } %1357, 1
  store i32 %1359, ptr %6, align 4
  br label %1364

1360:                                             ; preds = %1350
  %1361 = landingpad { ptr, i32 }
          cleanup
  %1362 = extractvalue { ptr, i32 } %1361, 0
  store ptr %1362, ptr %5, align 8
  %1363 = extractvalue { ptr, i32 } %1361, 1
  store i32 %1363, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #11
  br label %1364

1364:                                             ; preds = %1360, %1356
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #11
  br label %1365

1365:                                             ; preds = %1364, %1352
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #11
  br label %1396

1366:                                             ; preds = %1351, %1342
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %73) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %86)
  %1367 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %1368 unwind label %1397

1368:                                             ; preds = %1366
  br i1 %1367, label %1369, label %1494

1369:                                             ; preds = %1368
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %1370 unwind label %1401

1370:                                             ; preds = %1369
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #11
  store i8 0, ptr %89, align 1, !tbaa !9
  %1371 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1372 unwind label %1405

1372:                                             ; preds = %1370
  br i1 %1371, label %1373, label %1450

1373:                                             ; preds = %1372
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef @.str.1084)
          to label %1374 unwind label %1405

1374:                                             ; preds = %1373
  %1375 = getelementptr inbounds { ptr, i64 }, ptr %93, i32 0, i32 0
  %1376 = load ptr, ptr %1375, align 8
  %1377 = getelementptr inbounds { ptr, i64 }, ptr %93, i32 0, i32 1
  %1378 = load i64, ptr %1377, align 8
  %1379 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1376, i64 %1378)
          to label %1380 unwind label %1405

1380:                                             ; preds = %1374
  %1381 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %92, i32 0, i32 0
  %1382 = getelementptr inbounds { ptr, i64 }, ptr %1381, i32 0, i32 0
  %1383 = extractvalue { ptr, i64 } %1379, 0
  store ptr %1383, ptr %1382, align 8
  %1384 = getelementptr inbounds { ptr, i64 }, ptr %1381, i32 0, i32 1
  %1385 = extractvalue { ptr, i64 } %1379, 1
  store i64 %1385, ptr %1384, align 8
  %1386 = getelementptr inbounds { ptr, i64 }, ptr %92, i32 0, i32 0
  %1387 = load ptr, ptr %1386, align 8
  %1388 = getelementptr inbounds { ptr, i64 }, ptr %92, i32 0, i32 1
  %1389 = load i64, ptr %1388, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %91, ptr %1387, i64 %1389)
          to label %1390 unwind label %1405

1390:                                             ; preds = %1380
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  store i32 0, ptr %94, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  store i32 0, ptr %95, align 4, !tbaa !20
  %1391 = getelementptr inbounds { ptr, i64 }, ptr %91, i32 0, i32 0
  %1392 = load ptr, ptr %1391, align 8
  %1393 = getelementptr inbounds { ptr, i64 }, ptr %91, i32 0, i32 1
  %1394 = load i64, ptr %1393, align 8
  invoke void @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr %1392, i64 %1394, ptr noundef nonnull align 4 dereferenceable(4) %94, ptr noundef nonnull align 4 dereferenceable(4) %95)
          to label %1395 unwind label %1409

1395:                                             ; preds = %1390
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %1451

1396:                                             ; preds = %1365, %1344, %1248
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %73) #11
  br label %5212

1397:                                             ; preds = %1366
  %1398 = landingpad { ptr, i32 }
          cleanup
  %1399 = extractvalue { ptr, i32 } %1398, 0
  store ptr %1399, ptr %5, align 8
  %1400 = extractvalue { ptr, i32 } %1398, 1
  store i32 %1400, ptr %6, align 4
  br label %1545

1401:                                             ; preds = %1369
  %1402 = landingpad { ptr, i32 }
          cleanup
  %1403 = extractvalue { ptr, i32 } %1402, 0
  store ptr %1403, ptr %5, align 8
  %1404 = extractvalue { ptr, i32 } %1402, 1
  store i32 %1404, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #11
  br label %1493

1405:                                             ; preds = %1380, %1374, %1373, %1370
  %1406 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1407 = extractvalue { ptr, i32 } %1406, 0
  store ptr %1407, ptr %5, align 8
  %1408 = extractvalue { ptr, i32 } %1406, 1
  store i32 %1408, ptr %6, align 4
  br label %1413

1409:                                             ; preds = %1390
  %1410 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1411 = extractvalue { ptr, i32 } %1410, 0
  store ptr %1411, ptr %5, align 8
  %1412 = extractvalue { ptr, i32 } %1410, 1
  store i32 %1412, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %1413

1413:                                             ; preds = %1409, %1405
  %1414 = load i32, ptr %6, align 4
  %1415 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1416 = icmp eq i32 %1414, %1415
  br i1 %1416, label %1417, label %1445

1417:                                             ; preds = %1413
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #11
  %1418 = load ptr, ptr %5, align 8
  %1419 = call ptr @__cxa_begin_catch(ptr %1418) #11
  store ptr %1419, ptr %96, align 8
  %1420 = load ptr, ptr %96, align 8, !tbaa !5
  %1421 = load ptr, ptr %1420, align 8, !tbaa !13
  %1422 = getelementptr inbounds ptr, ptr %1421, i64 2
  %1423 = load ptr, ptr %1422, align 8
  %1424 = call noundef ptr %1423(ptr noundef nonnull align 8 dereferenceable(16) %1420) #11
  %1425 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef %1424)
          to label %1426 unwind label %1462

1426:                                             ; preds = %1417
  br i1 %1425, label %1427, label %1470

1427:                                             ; preds = %1426
  %1428 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 1 dereferenceable(91) @.str.1086)
          to label %1429 unwind label %1462

1429:                                             ; preds = %1427
  %1430 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1428, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1431 unwind label %1462

1431:                                             ; preds = %1429
  %1432 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1430, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %1433 unwind label %1462

1433:                                             ; preds = %1431
  %1434 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1432, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1435 unwind label %1462

1435:                                             ; preds = %1433
  %1436 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1434, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1437 unwind label %1462

1437:                                             ; preds = %1435
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  %1438 = load ptr, ptr %96, align 8, !tbaa !5
  %1439 = load ptr, ptr %1438, align 8, !tbaa !13
  %1440 = getelementptr inbounds ptr, ptr %1439, i64 2
  %1441 = load ptr, ptr %1440, align 8
  %1442 = call noundef ptr %1441(ptr noundef nonnull align 8 dereferenceable(16) %1438) #11
  store ptr %1442, ptr %97, align 8, !tbaa !5
  %1443 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1436, ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1444 unwind label %1466

1444:                                             ; preds = %1437
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  store i32 8, ptr %15, align 4
  br label %1471

1445:                                             ; preds = %1413
  %1446 = load ptr, ptr %5, align 8
  %1447 = call ptr @__cxa_begin_catch(ptr %1446) #11
  %1448 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 1 dereferenceable(134) @.str.1085)
          to label %1449 unwind label %1452

1449:                                             ; preds = %1445
  store i32 8, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1456 unwind label %1457

1450:                                             ; preds = %1372
  br label %1451

1451:                                             ; preds = %1450, %1395
  br label %1475

1452:                                             ; preds = %1445
  %1453 = landingpad { ptr, i32 }
          cleanup
  %1454 = extractvalue { ptr, i32 } %1453, 0
  store ptr %1454, ptr %5, align 8
  %1455 = extractvalue { ptr, i32 } %1453, 1
  store i32 %1455, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1461 unwind label %5219

1456:                                             ; preds = %1449
  br label %1489

1457:                                             ; preds = %1478, %1449
  %1458 = landingpad { ptr, i32 }
          cleanup
  %1459 = extractvalue { ptr, i32 } %1458, 0
  store ptr %1459, ptr %5, align 8
  %1460 = extractvalue { ptr, i32 } %1458, 1
  store i32 %1460, ptr %6, align 4
  br label %1492

1461:                                             ; preds = %1452
  br label %1492

1462:                                             ; preds = %1435, %1433, %1431, %1429, %1427, %1417
  %1463 = landingpad { ptr, i32 }
          cleanup
  %1464 = extractvalue { ptr, i32 } %1463, 0
  store ptr %1464, ptr %5, align 8
  %1465 = extractvalue { ptr, i32 } %1463, 1
  store i32 %1465, ptr %6, align 4
  br label %1485

1466:                                             ; preds = %1437
  %1467 = landingpad { ptr, i32 }
          cleanup
  %1468 = extractvalue { ptr, i32 } %1467, 0
  store ptr %1468, ptr %5, align 8
  %1469 = extractvalue { ptr, i32 } %1467, 1
  store i32 %1469, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  br label %1485

1470:                                             ; preds = %1426
  store i8 1, ptr %89, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1471

1471:                                             ; preds = %1470, %1444
  invoke void @__cxa_end_catch()
          to label %1472 unwind label %1481

1472:                                             ; preds = %1471
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #11
  %1473 = load i32, ptr %15, align 4
  switch i32 %1473, label %1489 [
    i32 0, label %1474
  ]

1474:                                             ; preds = %1472
  br label %1475

1475:                                             ; preds = %1474, %1451
  %1476 = load i8, ptr %89, align 1, !tbaa !9, !range !15, !noundef !16
  %1477 = trunc i8 %1476 to i1
  br i1 %1477, label %1488, label %1478

1478:                                             ; preds = %1475
  %1479 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 1 dereferenceable(125) @.str.1087)
          to label %1480 unwind label %1457

1480:                                             ; preds = %1478
  store i32 8, ptr %15, align 4
  br label %1489

1481:                                             ; preds = %1471
  %1482 = landingpad { ptr, i32 }
          cleanup
  %1483 = extractvalue { ptr, i32 } %1482, 0
  store ptr %1483, ptr %5, align 8
  %1484 = extractvalue { ptr, i32 } %1482, 1
  store i32 %1484, ptr %6, align 4
  br label %1487

1485:                                             ; preds = %1466, %1462
  invoke void @__cxa_end_catch()
          to label %1486 unwind label %5219

1486:                                             ; preds = %1485
  br label %1487

1487:                                             ; preds = %1486, %1481
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #11
  br label %1492

1488:                                             ; preds = %1475
  store i32 0, ptr %15, align 4
  br label %1489

1489:                                             ; preds = %1488, %1480, %1472, %1456
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #11
  %1490 = load i32, ptr %15, align 4
  switch i32 %1490, label %5222 [
    i32 0, label %1491
    i32 8, label %1495
  ]

1491:                                             ; preds = %1489
  br label %1515

1492:                                             ; preds = %1487, %1461, %1457
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  br label %1493

1493:                                             ; preds = %1492, %1401
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #11
  br label %1545

1494:                                             ; preds = %1368
  br label %1495

1495:                                             ; preds = %1494, %1489
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %1496 unwind label %1501

1496:                                             ; preds = %1495
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #11
  %1497 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %1498 unwind label %1505

1498:                                             ; preds = %1496
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %99, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1068, ptr noundef %1497)
          to label %1499 unwind label %1505

1499:                                             ; preds = %1498
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %1500 unwind label %1509

1500:                                             ; preds = %1499
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  br label %1515

1501:                                             ; preds = %1495
  %1502 = landingpad { ptr, i32 }
          cleanup
  %1503 = extractvalue { ptr, i32 } %1502, 0
  store ptr %1503, ptr %5, align 8
  %1504 = extractvalue { ptr, i32 } %1502, 1
  store i32 %1504, ptr %6, align 4
  br label %1514

1505:                                             ; preds = %1498, %1496
  %1506 = landingpad { ptr, i32 }
          cleanup
  %1507 = extractvalue { ptr, i32 } %1506, 0
  store ptr %1507, ptr %5, align 8
  %1508 = extractvalue { ptr, i32 } %1506, 1
  store i32 %1508, ptr %6, align 4
  br label %1513

1509:                                             ; preds = %1499
  %1510 = landingpad { ptr, i32 }
          cleanup
  %1511 = extractvalue { ptr, i32 } %1510, 0
  store ptr %1511, ptr %5, align 8
  %1512 = extractvalue { ptr, i32 } %1510, 1
  store i32 %1512, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #11
  br label %1513

1513:                                             ; preds = %1509, %1505
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #11
  br label %1514

1514:                                             ; preds = %1513, %1501
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  br label %1545

1515:                                             ; preds = %1500, %1491
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %100) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %100)
  %1516 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %1517 unwind label %1546

1517:                                             ; preds = %1515
  br i1 %1516, label %1518, label %1643

1518:                                             ; preds = %1517
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %102) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef @.str.288, ptr noundef nonnull align 1 dereferenceable(1) %102)
          to label %1519 unwind label %1550

1519:                                             ; preds = %1518
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #11
  store i8 0, ptr %103, align 1, !tbaa !9
  %1520 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1521 unwind label %1554

1521:                                             ; preds = %1519
  br i1 %1520, label %1522, label %1599

1522:                                             ; preds = %1521
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr noundef @.str.1088)
          to label %1523 unwind label %1554

1523:                                             ; preds = %1522
  %1524 = getelementptr inbounds { ptr, i64 }, ptr %107, i32 0, i32 0
  %1525 = load ptr, ptr %1524, align 8
  %1526 = getelementptr inbounds { ptr, i64 }, ptr %107, i32 0, i32 1
  %1527 = load i64, ptr %1526, align 8
  %1528 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1525, i64 %1527)
          to label %1529 unwind label %1554

1529:                                             ; preds = %1523
  %1530 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %106, i32 0, i32 0
  %1531 = getelementptr inbounds { ptr, i64 }, ptr %1530, i32 0, i32 0
  %1532 = extractvalue { ptr, i64 } %1528, 0
  store ptr %1532, ptr %1531, align 8
  %1533 = getelementptr inbounds { ptr, i64 }, ptr %1530, i32 0, i32 1
  %1534 = extractvalue { ptr, i64 } %1528, 1
  store i64 %1534, ptr %1533, align 8
  %1535 = getelementptr inbounds { ptr, i64 }, ptr %106, i32 0, i32 0
  %1536 = load ptr, ptr %1535, align 8
  %1537 = getelementptr inbounds { ptr, i64 }, ptr %106, i32 0, i32 1
  %1538 = load i64, ptr %1537, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %105, ptr %1536, i64 %1538)
          to label %1539 unwind label %1554

1539:                                             ; preds = %1529
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #11
  store double 0.000000e+00, ptr %108, align 8, !tbaa !11
  %1540 = getelementptr inbounds { ptr, i64 }, ptr %105, i32 0, i32 0
  %1541 = load ptr, ptr %1540, align 8
  %1542 = getelementptr inbounds { ptr, i64 }, ptr %105, i32 0, i32 1
  %1543 = load i64, ptr %1542, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr %1541, i64 %1543, ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %1544 unwind label %1558

1544:                                             ; preds = %1539
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  br label %1600

1545:                                             ; preds = %1514, %1493, %1397
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #11
  br label %5212

1546:                                             ; preds = %1515
  %1547 = landingpad { ptr, i32 }
          cleanup
  %1548 = extractvalue { ptr, i32 } %1547, 0
  store ptr %1548, ptr %5, align 8
  %1549 = extractvalue { ptr, i32 } %1547, 1
  store i32 %1549, ptr %6, align 4
  br label %1694

1550:                                             ; preds = %1518
  %1551 = landingpad { ptr, i32 }
          cleanup
  %1552 = extractvalue { ptr, i32 } %1551, 0
  store ptr %1552, ptr %5, align 8
  %1553 = extractvalue { ptr, i32 } %1551, 1
  store i32 %1553, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #11
  br label %1642

1554:                                             ; preds = %1529, %1523, %1522, %1519
  %1555 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1556 = extractvalue { ptr, i32 } %1555, 0
  store ptr %1556, ptr %5, align 8
  %1557 = extractvalue { ptr, i32 } %1555, 1
  store i32 %1557, ptr %6, align 4
  br label %1562

1558:                                             ; preds = %1539
  %1559 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1560 = extractvalue { ptr, i32 } %1559, 0
  store ptr %1560, ptr %5, align 8
  %1561 = extractvalue { ptr, i32 } %1559, 1
  store i32 %1561, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  br label %1562

1562:                                             ; preds = %1558, %1554
  %1563 = load i32, ptr %6, align 4
  %1564 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1565 = icmp eq i32 %1563, %1564
  br i1 %1565, label %1566, label %1594

1566:                                             ; preds = %1562
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #11
  %1567 = load ptr, ptr %5, align 8
  %1568 = call ptr @__cxa_begin_catch(ptr %1567) #11
  store ptr %1568, ptr %109, align 8
  %1569 = load ptr, ptr %109, align 8, !tbaa !5
  %1570 = load ptr, ptr %1569, align 8, !tbaa !13
  %1571 = getelementptr inbounds ptr, ptr %1570, i64 2
  %1572 = load ptr, ptr %1571, align 8
  %1573 = call noundef ptr %1572(ptr noundef nonnull align 8 dereferenceable(16) %1569) #11
  %1574 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef %1573)
          to label %1575 unwind label %1611

1575:                                             ; preds = %1566
  br i1 %1574, label %1576, label %1619

1576:                                             ; preds = %1575
  %1577 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 1 dereferenceable(91) @.str.1090)
          to label %1578 unwind label %1611

1578:                                             ; preds = %1576
  %1579 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1577, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1580 unwind label %1611

1580:                                             ; preds = %1578
  %1581 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1579, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %1582 unwind label %1611

1582:                                             ; preds = %1580
  %1583 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1581, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1584 unwind label %1611

1584:                                             ; preds = %1582
  %1585 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1583, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1586 unwind label %1611

1586:                                             ; preds = %1584
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #11
  %1587 = load ptr, ptr %109, align 8, !tbaa !5
  %1588 = load ptr, ptr %1587, align 8, !tbaa !13
  %1589 = getelementptr inbounds ptr, ptr %1588, i64 2
  %1590 = load ptr, ptr %1589, align 8
  %1591 = call noundef ptr %1590(ptr noundef nonnull align 8 dereferenceable(16) %1587) #11
  store ptr %1591, ptr %110, align 8, !tbaa !5
  %1592 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1585, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %1593 unwind label %1615

1593:                                             ; preds = %1586
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #11
  store i32 9, ptr %15, align 4
  br label %1620

1594:                                             ; preds = %1562
  %1595 = load ptr, ptr %5, align 8
  %1596 = call ptr @__cxa_begin_catch(ptr %1595) #11
  %1597 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 1 dereferenceable(134) @.str.1089)
          to label %1598 unwind label %1601

1598:                                             ; preds = %1594
  store i32 9, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1605 unwind label %1606

1599:                                             ; preds = %1521
  br label %1600

1600:                                             ; preds = %1599, %1544
  br label %1624

1601:                                             ; preds = %1594
  %1602 = landingpad { ptr, i32 }
          cleanup
  %1603 = extractvalue { ptr, i32 } %1602, 0
  store ptr %1603, ptr %5, align 8
  %1604 = extractvalue { ptr, i32 } %1602, 1
  store i32 %1604, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1610 unwind label %5219

1605:                                             ; preds = %1598
  br label %1638

1606:                                             ; preds = %1627, %1598
  %1607 = landingpad { ptr, i32 }
          cleanup
  %1608 = extractvalue { ptr, i32 } %1607, 0
  store ptr %1608, ptr %5, align 8
  %1609 = extractvalue { ptr, i32 } %1607, 1
  store i32 %1609, ptr %6, align 4
  br label %1641

1610:                                             ; preds = %1601
  br label %1641

1611:                                             ; preds = %1584, %1582, %1580, %1578, %1576, %1566
  %1612 = landingpad { ptr, i32 }
          cleanup
  %1613 = extractvalue { ptr, i32 } %1612, 0
  store ptr %1613, ptr %5, align 8
  %1614 = extractvalue { ptr, i32 } %1612, 1
  store i32 %1614, ptr %6, align 4
  br label %1634

1615:                                             ; preds = %1586
  %1616 = landingpad { ptr, i32 }
          cleanup
  %1617 = extractvalue { ptr, i32 } %1616, 0
  store ptr %1617, ptr %5, align 8
  %1618 = extractvalue { ptr, i32 } %1616, 1
  store i32 %1618, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #11
  br label %1634

1619:                                             ; preds = %1575
  store i8 1, ptr %103, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1620

1620:                                             ; preds = %1619, %1593
  invoke void @__cxa_end_catch()
          to label %1621 unwind label %1630

1621:                                             ; preds = %1620
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  %1622 = load i32, ptr %15, align 4
  switch i32 %1622, label %1638 [
    i32 0, label %1623
  ]

1623:                                             ; preds = %1621
  br label %1624

1624:                                             ; preds = %1623, %1600
  %1625 = load i8, ptr %103, align 1, !tbaa !9, !range !15, !noundef !16
  %1626 = trunc i8 %1625 to i1
  br i1 %1626, label %1637, label %1627

1627:                                             ; preds = %1624
  %1628 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 1 dereferenceable(125) @.str.1091)
          to label %1629 unwind label %1606

1629:                                             ; preds = %1627
  store i32 9, ptr %15, align 4
  br label %1638

1630:                                             ; preds = %1620
  %1631 = landingpad { ptr, i32 }
          cleanup
  %1632 = extractvalue { ptr, i32 } %1631, 0
  store ptr %1632, ptr %5, align 8
  %1633 = extractvalue { ptr, i32 } %1631, 1
  store i32 %1633, ptr %6, align 4
  br label %1636

1634:                                             ; preds = %1615, %1611
  invoke void @__cxa_end_catch()
          to label %1635 unwind label %5219

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635, %1630
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  br label %1641

1637:                                             ; preds = %1624
  store i32 0, ptr %15, align 4
  br label %1638

1638:                                             ; preds = %1637, %1629, %1621, %1605
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #11
  %1639 = load i32, ptr %15, align 4
  switch i32 %1639, label %5222 [
    i32 0, label %1640
    i32 9, label %1644
  ]

1640:                                             ; preds = %1638
  br label %1664

1641:                                             ; preds = %1636, %1610, %1606
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #11
  br label %1642

1642:                                             ; preds = %1641, %1550
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #11
  br label %1694

1643:                                             ; preds = %1517
  br label %1644

1644:                                             ; preds = %1643, %1638
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %111)
          to label %1645 unwind label %1650

1645:                                             ; preds = %1644
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #11
  %1646 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %1647 unwind label %1654

1647:                                             ; preds = %1645
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %112, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1070, ptr noundef %1646)
          to label %1648 unwind label %1654

1648:                                             ; preds = %1647
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(8) %111)
          to label %1649 unwind label %1658

1649:                                             ; preds = %1648
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  br label %1664

1650:                                             ; preds = %1644
  %1651 = landingpad { ptr, i32 }
          cleanup
  %1652 = extractvalue { ptr, i32 } %1651, 0
  store ptr %1652, ptr %5, align 8
  %1653 = extractvalue { ptr, i32 } %1651, 1
  store i32 %1653, ptr %6, align 4
  br label %1663

1654:                                             ; preds = %1647, %1645
  %1655 = landingpad { ptr, i32 }
          cleanup
  %1656 = extractvalue { ptr, i32 } %1655, 0
  store ptr %1656, ptr %5, align 8
  %1657 = extractvalue { ptr, i32 } %1655, 1
  store i32 %1657, ptr %6, align 4
  br label %1662

1658:                                             ; preds = %1648
  %1659 = landingpad { ptr, i32 }
          cleanup
  %1660 = extractvalue { ptr, i32 } %1659, 0
  store ptr %1660, ptr %5, align 8
  %1661 = extractvalue { ptr, i32 } %1659, 1
  store i32 %1661, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #11
  br label %1662

1662:                                             ; preds = %1658, %1654
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #11
  br label %1663

1663:                                             ; preds = %1662, %1650
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  br label %1694

1664:                                             ; preds = %1649, %1640
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %113)
  %1665 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %113)
          to label %1666 unwind label %1695

1666:                                             ; preds = %1664
  br i1 %1665, label %1667, label %1792

1667:                                             ; preds = %1666
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef @.str.230, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %1668 unwind label %1699

1668:                                             ; preds = %1667
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #11
  store i8 0, ptr %116, align 1, !tbaa !9
  %1669 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1670 unwind label %1703

1670:                                             ; preds = %1668
  br i1 %1669, label %1671, label %1748

1671:                                             ; preds = %1670
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %120, ptr noundef @.str.1092)
          to label %1672 unwind label %1703

1672:                                             ; preds = %1671
  %1673 = getelementptr inbounds { ptr, i64 }, ptr %120, i32 0, i32 0
  %1674 = load ptr, ptr %1673, align 8
  %1675 = getelementptr inbounds { ptr, i64 }, ptr %120, i32 0, i32 1
  %1676 = load i64, ptr %1675, align 8
  %1677 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1674, i64 %1676)
          to label %1678 unwind label %1703

1678:                                             ; preds = %1672
  %1679 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %119, i32 0, i32 0
  %1680 = getelementptr inbounds { ptr, i64 }, ptr %1679, i32 0, i32 0
  %1681 = extractvalue { ptr, i64 } %1677, 0
  store ptr %1681, ptr %1680, align 8
  %1682 = getelementptr inbounds { ptr, i64 }, ptr %1679, i32 0, i32 1
  %1683 = extractvalue { ptr, i64 } %1677, 1
  store i64 %1683, ptr %1682, align 8
  %1684 = getelementptr inbounds { ptr, i64 }, ptr %119, i32 0, i32 0
  %1685 = load ptr, ptr %1684, align 8
  %1686 = getelementptr inbounds { ptr, i64 }, ptr %119, i32 0, i32 1
  %1687 = load i64, ptr %1686, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %118, ptr %1685, i64 %1687)
          to label %1688 unwind label %1703

1688:                                             ; preds = %1678
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #11
  store double 0.000000e+00, ptr %121, align 8, !tbaa !11
  %1689 = getelementptr inbounds { ptr, i64 }, ptr %118, i32 0, i32 0
  %1690 = load ptr, ptr %1689, align 8
  %1691 = getelementptr inbounds { ptr, i64 }, ptr %118, i32 0, i32 1
  %1692 = load i64, ptr %1691, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr %1690, i64 %1692, ptr noundef nonnull align 8 dereferenceable(8) %121)
          to label %1693 unwind label %1707

1693:                                             ; preds = %1688
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #11
  br label %1749

1694:                                             ; preds = %1663, %1642, %1546
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #11
  br label %5212

1695:                                             ; preds = %1664
  %1696 = landingpad { ptr, i32 }
          cleanup
  %1697 = extractvalue { ptr, i32 } %1696, 0
  store ptr %1697, ptr %5, align 8
  %1698 = extractvalue { ptr, i32 } %1696, 1
  store i32 %1698, ptr %6, align 4
  br label %1843

1699:                                             ; preds = %1667
  %1700 = landingpad { ptr, i32 }
          cleanup
  %1701 = extractvalue { ptr, i32 } %1700, 0
  store ptr %1701, ptr %5, align 8
  %1702 = extractvalue { ptr, i32 } %1700, 1
  store i32 %1702, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #11
  br label %1791

1703:                                             ; preds = %1678, %1672, %1671, %1668
  %1704 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1705 = extractvalue { ptr, i32 } %1704, 0
  store ptr %1705, ptr %5, align 8
  %1706 = extractvalue { ptr, i32 } %1704, 1
  store i32 %1706, ptr %6, align 4
  br label %1711

1707:                                             ; preds = %1688
  %1708 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1709 = extractvalue { ptr, i32 } %1708, 0
  store ptr %1709, ptr %5, align 8
  %1710 = extractvalue { ptr, i32 } %1708, 1
  store i32 %1710, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #11
  br label %1711

1711:                                             ; preds = %1707, %1703
  %1712 = load i32, ptr %6, align 4
  %1713 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1714 = icmp eq i32 %1712, %1713
  br i1 %1714, label %1715, label %1743

1715:                                             ; preds = %1711
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #11
  %1716 = load ptr, ptr %5, align 8
  %1717 = call ptr @__cxa_begin_catch(ptr %1716) #11
  store ptr %1717, ptr %122, align 8
  %1718 = load ptr, ptr %122, align 8, !tbaa !5
  %1719 = load ptr, ptr %1718, align 8, !tbaa !13
  %1720 = getelementptr inbounds ptr, ptr %1719, i64 2
  %1721 = load ptr, ptr %1720, align 8
  %1722 = call noundef ptr %1721(ptr noundef nonnull align 8 dereferenceable(16) %1718) #11
  %1723 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef %1722)
          to label %1724 unwind label %1760

1724:                                             ; preds = %1715
  br i1 %1723, label %1725, label %1768

1725:                                             ; preds = %1724
  %1726 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA92_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %113, ptr noundef nonnull align 1 dereferenceable(92) @.str.1094)
          to label %1727 unwind label %1760

1727:                                             ; preds = %1725
  %1728 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1726, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1729 unwind label %1760

1729:                                             ; preds = %1727
  %1730 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1728, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %1731 unwind label %1760

1731:                                             ; preds = %1729
  %1732 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1730, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1733 unwind label %1760

1733:                                             ; preds = %1731
  %1734 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1732, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1735 unwind label %1760

1735:                                             ; preds = %1733
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #11
  %1736 = load ptr, ptr %122, align 8, !tbaa !5
  %1737 = load ptr, ptr %1736, align 8, !tbaa !13
  %1738 = getelementptr inbounds ptr, ptr %1737, i64 2
  %1739 = load ptr, ptr %1738, align 8
  %1740 = call noundef ptr %1739(ptr noundef nonnull align 8 dereferenceable(16) %1736) #11
  store ptr %1740, ptr %123, align 8, !tbaa !5
  %1741 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1734, ptr noundef nonnull align 8 dereferenceable(8) %123)
          to label %1742 unwind label %1764

1742:                                             ; preds = %1735
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #11
  store i32 10, ptr %15, align 4
  br label %1769

1743:                                             ; preds = %1711
  %1744 = load ptr, ptr %5, align 8
  %1745 = call ptr @__cxa_begin_catch(ptr %1744) #11
  %1746 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA135_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %113, ptr noundef nonnull align 1 dereferenceable(135) @.str.1093)
          to label %1747 unwind label %1750

1747:                                             ; preds = %1743
  store i32 10, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1754 unwind label %1755

1748:                                             ; preds = %1670
  br label %1749

1749:                                             ; preds = %1748, %1693
  br label %1773

1750:                                             ; preds = %1743
  %1751 = landingpad { ptr, i32 }
          cleanup
  %1752 = extractvalue { ptr, i32 } %1751, 0
  store ptr %1752, ptr %5, align 8
  %1753 = extractvalue { ptr, i32 } %1751, 1
  store i32 %1753, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1759 unwind label %5219

1754:                                             ; preds = %1747
  br label %1787

1755:                                             ; preds = %1776, %1747
  %1756 = landingpad { ptr, i32 }
          cleanup
  %1757 = extractvalue { ptr, i32 } %1756, 0
  store ptr %1757, ptr %5, align 8
  %1758 = extractvalue { ptr, i32 } %1756, 1
  store i32 %1758, ptr %6, align 4
  br label %1790

1759:                                             ; preds = %1750
  br label %1790

1760:                                             ; preds = %1733, %1731, %1729, %1727, %1725, %1715
  %1761 = landingpad { ptr, i32 }
          cleanup
  %1762 = extractvalue { ptr, i32 } %1761, 0
  store ptr %1762, ptr %5, align 8
  %1763 = extractvalue { ptr, i32 } %1761, 1
  store i32 %1763, ptr %6, align 4
  br label %1783

1764:                                             ; preds = %1735
  %1765 = landingpad { ptr, i32 }
          cleanup
  %1766 = extractvalue { ptr, i32 } %1765, 0
  store ptr %1766, ptr %5, align 8
  %1767 = extractvalue { ptr, i32 } %1765, 1
  store i32 %1767, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #11
  br label %1783

1768:                                             ; preds = %1724
  store i8 1, ptr %116, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1769

1769:                                             ; preds = %1768, %1742
  invoke void @__cxa_end_catch()
          to label %1770 unwind label %1779

1770:                                             ; preds = %1769
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #11
  %1771 = load i32, ptr %15, align 4
  switch i32 %1771, label %1787 [
    i32 0, label %1772
  ]

1772:                                             ; preds = %1770
  br label %1773

1773:                                             ; preds = %1772, %1749
  %1774 = load i8, ptr %116, align 1, !tbaa !9, !range !15, !noundef !16
  %1775 = trunc i8 %1774 to i1
  br i1 %1775, label %1786, label %1776

1776:                                             ; preds = %1773
  %1777 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA126_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %113, ptr noundef nonnull align 1 dereferenceable(126) @.str.1095)
          to label %1778 unwind label %1755

1778:                                             ; preds = %1776
  store i32 10, ptr %15, align 4
  br label %1787

1779:                                             ; preds = %1769
  %1780 = landingpad { ptr, i32 }
          cleanup
  %1781 = extractvalue { ptr, i32 } %1780, 0
  store ptr %1781, ptr %5, align 8
  %1782 = extractvalue { ptr, i32 } %1780, 1
  store i32 %1782, ptr %6, align 4
  br label %1785

1783:                                             ; preds = %1764, %1760
  invoke void @__cxa_end_catch()
          to label %1784 unwind label %5219

1784:                                             ; preds = %1783
  br label %1785

1785:                                             ; preds = %1784, %1779
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #11
  br label %1790

1786:                                             ; preds = %1773
  store i32 0, ptr %15, align 4
  br label %1787

1787:                                             ; preds = %1786, %1778, %1770, %1754
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #11
  %1788 = load i32, ptr %15, align 4
  switch i32 %1788, label %5222 [
    i32 0, label %1789
    i32 10, label %1793
  ]

1789:                                             ; preds = %1787
  br label %1813

1790:                                             ; preds = %1785, %1759, %1755
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  br label %1791

1791:                                             ; preds = %1790, %1699
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #11
  br label %1843

1792:                                             ; preds = %1666
  br label %1793

1793:                                             ; preds = %1792, %1787
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124)
          to label %1794 unwind label %1799

1794:                                             ; preds = %1793
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #11
  %1795 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %113)
          to label %1796 unwind label %1803

1796:                                             ; preds = %1794
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %125, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1073, ptr noundef %1795)
          to label %1797 unwind label %1803

1797:                                             ; preds = %1796
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %125, ptr noundef nonnull align 8 dereferenceable(8) %124)
          to label %1798 unwind label %1807

1798:                                             ; preds = %1797
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  br label %1813

1799:                                             ; preds = %1793
  %1800 = landingpad { ptr, i32 }
          cleanup
  %1801 = extractvalue { ptr, i32 } %1800, 0
  store ptr %1801, ptr %5, align 8
  %1802 = extractvalue { ptr, i32 } %1800, 1
  store i32 %1802, ptr %6, align 4
  br label %1812

1803:                                             ; preds = %1796, %1794
  %1804 = landingpad { ptr, i32 }
          cleanup
  %1805 = extractvalue { ptr, i32 } %1804, 0
  store ptr %1805, ptr %5, align 8
  %1806 = extractvalue { ptr, i32 } %1804, 1
  store i32 %1806, ptr %6, align 4
  br label %1811

1807:                                             ; preds = %1797
  %1808 = landingpad { ptr, i32 }
          cleanup
  %1809 = extractvalue { ptr, i32 } %1808, 0
  store ptr %1809, ptr %5, align 8
  %1810 = extractvalue { ptr, i32 } %1808, 1
  store i32 %1810, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #11
  br label %1811

1811:                                             ; preds = %1807, %1803
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #11
  br label %1812

1812:                                             ; preds = %1811, %1799
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  br label %1843

1813:                                             ; preds = %1798, %1789
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %126) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %126)
  %1814 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %126)
          to label %1815 unwind label %1844

1815:                                             ; preds = %1813
  br i1 %1814, label %1816, label %1941

1816:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %128) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.1096, ptr noundef nonnull align 1 dereferenceable(1) %128)
          to label %1817 unwind label %1848

1817:                                             ; preds = %1816
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %129) #11
  store i8 0, ptr %129, align 1, !tbaa !9
  %1818 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1819 unwind label %1852

1819:                                             ; preds = %1817
  br i1 %1818, label %1820, label %1897

1820:                                             ; preds = %1819
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %133, ptr noundef @.str.1088)
          to label %1821 unwind label %1852

1821:                                             ; preds = %1820
  %1822 = getelementptr inbounds { ptr, i64 }, ptr %133, i32 0, i32 0
  %1823 = load ptr, ptr %1822, align 8
  %1824 = getelementptr inbounds { ptr, i64 }, ptr %133, i32 0, i32 1
  %1825 = load i64, ptr %1824, align 8
  %1826 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1823, i64 %1825)
          to label %1827 unwind label %1852

1827:                                             ; preds = %1821
  %1828 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %132, i32 0, i32 0
  %1829 = getelementptr inbounds { ptr, i64 }, ptr %1828, i32 0, i32 0
  %1830 = extractvalue { ptr, i64 } %1826, 0
  store ptr %1830, ptr %1829, align 8
  %1831 = getelementptr inbounds { ptr, i64 }, ptr %1828, i32 0, i32 1
  %1832 = extractvalue { ptr, i64 } %1826, 1
  store i64 %1832, ptr %1831, align 8
  %1833 = getelementptr inbounds { ptr, i64 }, ptr %132, i32 0, i32 0
  %1834 = load ptr, ptr %1833, align 8
  %1835 = getelementptr inbounds { ptr, i64 }, ptr %132, i32 0, i32 1
  %1836 = load i64, ptr %1835, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %131, ptr %1834, i64 %1836)
          to label %1837 unwind label %1852

1837:                                             ; preds = %1827
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #11
  store double 0.000000e+00, ptr %134, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  store i32 -1, ptr %135, align 4, !tbaa !20
  %1838 = getelementptr inbounds { ptr, i64 }, ptr %131, i32 0, i32 0
  %1839 = load ptr, ptr %1838, align 8
  %1840 = getelementptr inbounds { ptr, i64 }, ptr %131, i32 0, i32 1
  %1841 = load i64, ptr %1840, align 8
  invoke void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr %1839, i64 %1841, ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull align 4 dereferenceable(4) %135)
          to label %1842 unwind label %1856

1842:                                             ; preds = %1837
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #11
  br label %1898

1843:                                             ; preds = %1812, %1791, %1695
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #11
  br label %5212

1844:                                             ; preds = %1813
  %1845 = landingpad { ptr, i32 }
          cleanup
  %1846 = extractvalue { ptr, i32 } %1845, 0
  store ptr %1846, ptr %5, align 8
  %1847 = extractvalue { ptr, i32 } %1845, 1
  store i32 %1847, ptr %6, align 4
  br label %1992

1848:                                             ; preds = %1816
  %1849 = landingpad { ptr, i32 }
          cleanup
  %1850 = extractvalue { ptr, i32 } %1849, 0
  store ptr %1850, ptr %5, align 8
  %1851 = extractvalue { ptr, i32 } %1849, 1
  store i32 %1851, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #11
  br label %1940

1852:                                             ; preds = %1827, %1821, %1820, %1817
  %1853 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1854 = extractvalue { ptr, i32 } %1853, 0
  store ptr %1854, ptr %5, align 8
  %1855 = extractvalue { ptr, i32 } %1853, 1
  store i32 %1855, ptr %6, align 4
  br label %1860

1856:                                             ; preds = %1837
  %1857 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1858 = extractvalue { ptr, i32 } %1857, 0
  store ptr %1858, ptr %5, align 8
  %1859 = extractvalue { ptr, i32 } %1857, 1
  store i32 %1859, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #11
  br label %1860

1860:                                             ; preds = %1856, %1852
  %1861 = load i32, ptr %6, align 4
  %1862 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1863 = icmp eq i32 %1861, %1862
  br i1 %1863, label %1864, label %1892

1864:                                             ; preds = %1860
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #11
  %1865 = load ptr, ptr %5, align 8
  %1866 = call ptr @__cxa_begin_catch(ptr %1865) #11
  store ptr %1866, ptr %136, align 8
  %1867 = load ptr, ptr %136, align 8, !tbaa !5
  %1868 = load ptr, ptr %1867, align 8, !tbaa !13
  %1869 = getelementptr inbounds ptr, ptr %1868, i64 2
  %1870 = load ptr, ptr %1869, align 8
  %1871 = call noundef ptr %1870(ptr noundef nonnull align 8 dereferenceable(16) %1867) #11
  %1872 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef %1871)
          to label %1873 unwind label %1909

1873:                                             ; preds = %1864
  br i1 %1872, label %1874, label %1917

1874:                                             ; preds = %1873
  %1875 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %126, ptr noundef nonnull align 1 dereferenceable(95) @.str.1098)
          to label %1876 unwind label %1909

1876:                                             ; preds = %1874
  %1877 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1875, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1878 unwind label %1909

1878:                                             ; preds = %1876
  %1879 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1877, ptr noundef nonnull align 8 dereferenceable(32) %127)
          to label %1880 unwind label %1909

1880:                                             ; preds = %1878
  %1881 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1879, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1882 unwind label %1909

1882:                                             ; preds = %1880
  %1883 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1881, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1884 unwind label %1909

1884:                                             ; preds = %1882
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #11
  %1885 = load ptr, ptr %136, align 8, !tbaa !5
  %1886 = load ptr, ptr %1885, align 8, !tbaa !13
  %1887 = getelementptr inbounds ptr, ptr %1886, i64 2
  %1888 = load ptr, ptr %1887, align 8
  %1889 = call noundef ptr %1888(ptr noundef nonnull align 8 dereferenceable(16) %1885) #11
  store ptr %1889, ptr %137, align 8, !tbaa !5
  %1890 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1883, ptr noundef nonnull align 8 dereferenceable(8) %137)
          to label %1891 unwind label %1913

1891:                                             ; preds = %1884
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  store i32 11, ptr %15, align 4
  br label %1918

1892:                                             ; preds = %1860
  %1893 = load ptr, ptr %5, align 8
  %1894 = call ptr @__cxa_begin_catch(ptr %1893) #11
  %1895 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %126, ptr noundef nonnull align 1 dereferenceable(138) @.str.1097)
          to label %1896 unwind label %1899

1896:                                             ; preds = %1892
  store i32 11, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1903 unwind label %1904

1897:                                             ; preds = %1819
  br label %1898

1898:                                             ; preds = %1897, %1842
  br label %1922

1899:                                             ; preds = %1892
  %1900 = landingpad { ptr, i32 }
          cleanup
  %1901 = extractvalue { ptr, i32 } %1900, 0
  store ptr %1901, ptr %5, align 8
  %1902 = extractvalue { ptr, i32 } %1900, 1
  store i32 %1902, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1908 unwind label %5219

1903:                                             ; preds = %1896
  br label %1936

1904:                                             ; preds = %1925, %1896
  %1905 = landingpad { ptr, i32 }
          cleanup
  %1906 = extractvalue { ptr, i32 } %1905, 0
  store ptr %1906, ptr %5, align 8
  %1907 = extractvalue { ptr, i32 } %1905, 1
  store i32 %1907, ptr %6, align 4
  br label %1939

1908:                                             ; preds = %1899
  br label %1939

1909:                                             ; preds = %1882, %1880, %1878, %1876, %1874, %1864
  %1910 = landingpad { ptr, i32 }
          cleanup
  %1911 = extractvalue { ptr, i32 } %1910, 0
  store ptr %1911, ptr %5, align 8
  %1912 = extractvalue { ptr, i32 } %1910, 1
  store i32 %1912, ptr %6, align 4
  br label %1932

1913:                                             ; preds = %1884
  %1914 = landingpad { ptr, i32 }
          cleanup
  %1915 = extractvalue { ptr, i32 } %1914, 0
  store ptr %1915, ptr %5, align 8
  %1916 = extractvalue { ptr, i32 } %1914, 1
  store i32 %1916, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  br label %1932

1917:                                             ; preds = %1873
  store i8 1, ptr %129, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1918

1918:                                             ; preds = %1917, %1891
  invoke void @__cxa_end_catch()
          to label %1919 unwind label %1928

1919:                                             ; preds = %1918
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #11
  %1920 = load i32, ptr %15, align 4
  switch i32 %1920, label %1936 [
    i32 0, label %1921
  ]

1921:                                             ; preds = %1919
  br label %1922

1922:                                             ; preds = %1921, %1898
  %1923 = load i8, ptr %129, align 1, !tbaa !9, !range !15, !noundef !16
  %1924 = trunc i8 %1923 to i1
  br i1 %1924, label %1935, label %1925

1925:                                             ; preds = %1922
  %1926 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %126, ptr noundef nonnull align 1 dereferenceable(129) @.str.1099)
          to label %1927 unwind label %1904

1927:                                             ; preds = %1925
  store i32 11, ptr %15, align 4
  br label %1936

1928:                                             ; preds = %1918
  %1929 = landingpad { ptr, i32 }
          cleanup
  %1930 = extractvalue { ptr, i32 } %1929, 0
  store ptr %1930, ptr %5, align 8
  %1931 = extractvalue { ptr, i32 } %1929, 1
  store i32 %1931, ptr %6, align 4
  br label %1934

1932:                                             ; preds = %1913, %1909
  invoke void @__cxa_end_catch()
          to label %1933 unwind label %5219

1933:                                             ; preds = %1932
  br label %1934

1934:                                             ; preds = %1933, %1928
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #11
  br label %1939

1935:                                             ; preds = %1922
  store i32 0, ptr %15, align 4
  br label %1936

1936:                                             ; preds = %1935, %1927, %1919, %1903
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #11
  %1937 = load i32, ptr %15, align 4
  switch i32 %1937, label %5222 [
    i32 0, label %1938
    i32 11, label %1942
  ]

1938:                                             ; preds = %1936
  br label %1962

1939:                                             ; preds = %1934, %1908, %1904
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #11
  br label %1940

1940:                                             ; preds = %1939, %1848
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #11
  br label %1992

1941:                                             ; preds = %1815
  br label %1942

1942:                                             ; preds = %1941, %1936
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %1943 unwind label %1948

1943:                                             ; preds = %1942
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #11
  %1944 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %126)
          to label %1945 unwind label %1952

1945:                                             ; preds = %1943
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %139, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1076, ptr noundef %1944)
          to label %1946 unwind label %1952

1946:                                             ; preds = %1945
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %1947 unwind label %1956

1947:                                             ; preds = %1946
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #11
  br label %1962

1948:                                             ; preds = %1942
  %1949 = landingpad { ptr, i32 }
          cleanup
  %1950 = extractvalue { ptr, i32 } %1949, 0
  store ptr %1950, ptr %5, align 8
  %1951 = extractvalue { ptr, i32 } %1949, 1
  store i32 %1951, ptr %6, align 4
  br label %1961

1952:                                             ; preds = %1945, %1943
  %1953 = landingpad { ptr, i32 }
          cleanup
  %1954 = extractvalue { ptr, i32 } %1953, 0
  store ptr %1954, ptr %5, align 8
  %1955 = extractvalue { ptr, i32 } %1953, 1
  store i32 %1955, ptr %6, align 4
  br label %1960

1956:                                             ; preds = %1946
  %1957 = landingpad { ptr, i32 }
          cleanup
  %1958 = extractvalue { ptr, i32 } %1957, 0
  store ptr %1958, ptr %5, align 8
  %1959 = extractvalue { ptr, i32 } %1957, 1
  store i32 %1959, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #11
  br label %1960

1960:                                             ; preds = %1956, %1952
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #11
  br label %1961

1961:                                             ; preds = %1960, %1948
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #11
  br label %1992

1962:                                             ; preds = %1947, %1938
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %126) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %140) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %140)
  %1963 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %140)
          to label %1964 unwind label %1993

1964:                                             ; preds = %1962
  br i1 %1963, label %1965, label %2090

1965:                                             ; preds = %1964
  call void @llvm.lifetime.start.p0(i64 32, ptr %141) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %142) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef @.str.785, ptr noundef nonnull align 1 dereferenceable(1) %142)
          to label %1966 unwind label %1997

1966:                                             ; preds = %1965
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %142) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %143) #11
  store i8 0, ptr %143, align 1, !tbaa !9
  %1967 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1968 unwind label %2001

1968:                                             ; preds = %1966
  br i1 %1967, label %1969, label %2046

1969:                                             ; preds = %1968
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %147, ptr noundef @.str.1088)
          to label %1970 unwind label %2001

1970:                                             ; preds = %1969
  %1971 = getelementptr inbounds { ptr, i64 }, ptr %147, i32 0, i32 0
  %1972 = load ptr, ptr %1971, align 8
  %1973 = getelementptr inbounds { ptr, i64 }, ptr %147, i32 0, i32 1
  %1974 = load i64, ptr %1973, align 8
  %1975 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1972, i64 %1974)
          to label %1976 unwind label %2001

1976:                                             ; preds = %1970
  %1977 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %146, i32 0, i32 0
  %1978 = getelementptr inbounds { ptr, i64 }, ptr %1977, i32 0, i32 0
  %1979 = extractvalue { ptr, i64 } %1975, 0
  store ptr %1979, ptr %1978, align 8
  %1980 = getelementptr inbounds { ptr, i64 }, ptr %1977, i32 0, i32 1
  %1981 = extractvalue { ptr, i64 } %1975, 1
  store i64 %1981, ptr %1980, align 8
  %1982 = getelementptr inbounds { ptr, i64 }, ptr %146, i32 0, i32 0
  %1983 = load ptr, ptr %1982, align 8
  %1984 = getelementptr inbounds { ptr, i64 }, ptr %146, i32 0, i32 1
  %1985 = load i64, ptr %1984, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdjEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %145, ptr %1983, i64 %1985)
          to label %1986 unwind label %2001

1986:                                             ; preds = %1976
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #11
  store double 0.000000e+00, ptr %148, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  store i32 -2147483648, ptr %149, align 4, !tbaa !20
  %1987 = getelementptr inbounds { ptr, i64 }, ptr %145, i32 0, i32 0
  %1988 = load ptr, ptr %1987, align 8
  %1989 = getelementptr inbounds { ptr, i64 }, ptr %145, i32 0, i32 1
  %1990 = load i64, ptr %1989, align 8
  invoke void @_ZN3fmt3v106formatIJdjEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %144, ptr %1988, i64 %1990, ptr noundef nonnull align 8 dereferenceable(8) %148, ptr noundef nonnull align 4 dereferenceable(4) %149)
          to label %1991 unwind label %2005

1991:                                             ; preds = %1986
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  br label %2047

1992:                                             ; preds = %1961, %1940, %1844
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %126) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #11
  br label %5212

1993:                                             ; preds = %1962
  %1994 = landingpad { ptr, i32 }
          cleanup
  %1995 = extractvalue { ptr, i32 } %1994, 0
  store ptr %1995, ptr %5, align 8
  %1996 = extractvalue { ptr, i32 } %1994, 1
  store i32 %1996, ptr %6, align 4
  br label %2141

1997:                                             ; preds = %1965
  %1998 = landingpad { ptr, i32 }
          cleanup
  %1999 = extractvalue { ptr, i32 } %1998, 0
  store ptr %1999, ptr %5, align 8
  %2000 = extractvalue { ptr, i32 } %1998, 1
  store i32 %2000, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %142) #11
  br label %2089

2001:                                             ; preds = %1976, %1970, %1969, %1966
  %2002 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2003 = extractvalue { ptr, i32 } %2002, 0
  store ptr %2003, ptr %5, align 8
  %2004 = extractvalue { ptr, i32 } %2002, 1
  store i32 %2004, ptr %6, align 4
  br label %2009

2005:                                             ; preds = %1986
  %2006 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2007 = extractvalue { ptr, i32 } %2006, 0
  store ptr %2007, ptr %5, align 8
  %2008 = extractvalue { ptr, i32 } %2006, 1
  store i32 %2008, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  br label %2009

2009:                                             ; preds = %2005, %2001
  %2010 = load i32, ptr %6, align 4
  %2011 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2012 = icmp eq i32 %2010, %2011
  br i1 %2012, label %2013, label %2041

2013:                                             ; preds = %2009
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #11
  %2014 = load ptr, ptr %5, align 8
  %2015 = call ptr @__cxa_begin_catch(ptr %2014) #11
  store ptr %2015, ptr %150, align 8
  %2016 = load ptr, ptr %150, align 8, !tbaa !5
  %2017 = load ptr, ptr %2016, align 8, !tbaa !13
  %2018 = getelementptr inbounds ptr, ptr %2017, i64 2
  %2019 = load ptr, ptr %2018, align 8
  %2020 = call noundef ptr %2019(ptr noundef nonnull align 8 dereferenceable(16) %2016) #11
  %2021 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef %2020)
          to label %2022 unwind label %2058

2022:                                             ; preds = %2013
  br i1 %2021, label %2023, label %2066

2023:                                             ; preds = %2022
  %2024 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA110_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %140, ptr noundef nonnull align 1 dereferenceable(110) @.str.1101)
          to label %2025 unwind label %2058

2025:                                             ; preds = %2023
  %2026 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2024, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2027 unwind label %2058

2027:                                             ; preds = %2025
  %2028 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2026, ptr noundef nonnull align 8 dereferenceable(32) %141)
          to label %2029 unwind label %2058

2029:                                             ; preds = %2027
  %2030 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2028, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2031 unwind label %2058

2031:                                             ; preds = %2029
  %2032 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2030, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2033 unwind label %2058

2033:                                             ; preds = %2031
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  %2034 = load ptr, ptr %150, align 8, !tbaa !5
  %2035 = load ptr, ptr %2034, align 8, !tbaa !13
  %2036 = getelementptr inbounds ptr, ptr %2035, i64 2
  %2037 = load ptr, ptr %2036, align 8
  %2038 = call noundef ptr %2037(ptr noundef nonnull align 8 dereferenceable(16) %2034) #11
  store ptr %2038, ptr %151, align 8, !tbaa !5
  %2039 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2032, ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %2040 unwind label %2062

2040:                                             ; preds = %2033
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  store i32 12, ptr %15, align 4
  br label %2067

2041:                                             ; preds = %2009
  %2042 = load ptr, ptr %5, align 8
  %2043 = call ptr @__cxa_begin_catch(ptr %2042) #11
  %2044 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA153_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %140, ptr noundef nonnull align 1 dereferenceable(153) @.str.1100)
          to label %2045 unwind label %2048

2045:                                             ; preds = %2041
  store i32 12, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2052 unwind label %2053

2046:                                             ; preds = %1968
  br label %2047

2047:                                             ; preds = %2046, %1991
  br label %2071

2048:                                             ; preds = %2041
  %2049 = landingpad { ptr, i32 }
          cleanup
  %2050 = extractvalue { ptr, i32 } %2049, 0
  store ptr %2050, ptr %5, align 8
  %2051 = extractvalue { ptr, i32 } %2049, 1
  store i32 %2051, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2057 unwind label %5219

2052:                                             ; preds = %2045
  br label %2085

2053:                                             ; preds = %2074, %2045
  %2054 = landingpad { ptr, i32 }
          cleanup
  %2055 = extractvalue { ptr, i32 } %2054, 0
  store ptr %2055, ptr %5, align 8
  %2056 = extractvalue { ptr, i32 } %2054, 1
  store i32 %2056, ptr %6, align 4
  br label %2088

2057:                                             ; preds = %2048
  br label %2088

2058:                                             ; preds = %2031, %2029, %2027, %2025, %2023, %2013
  %2059 = landingpad { ptr, i32 }
          cleanup
  %2060 = extractvalue { ptr, i32 } %2059, 0
  store ptr %2060, ptr %5, align 8
  %2061 = extractvalue { ptr, i32 } %2059, 1
  store i32 %2061, ptr %6, align 4
  br label %2081

2062:                                             ; preds = %2033
  %2063 = landingpad { ptr, i32 }
          cleanup
  %2064 = extractvalue { ptr, i32 } %2063, 0
  store ptr %2064, ptr %5, align 8
  %2065 = extractvalue { ptr, i32 } %2063, 1
  store i32 %2065, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  br label %2081

2066:                                             ; preds = %2022
  store i8 1, ptr %143, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2067

2067:                                             ; preds = %2066, %2040
  invoke void @__cxa_end_catch()
          to label %2068 unwind label %2077

2068:                                             ; preds = %2067
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #11
  %2069 = load i32, ptr %15, align 4
  switch i32 %2069, label %2085 [
    i32 0, label %2070
  ]

2070:                                             ; preds = %2068
  br label %2071

2071:                                             ; preds = %2070, %2047
  %2072 = load i8, ptr %143, align 1, !tbaa !9, !range !15, !noundef !16
  %2073 = trunc i8 %2072 to i1
  br i1 %2073, label %2084, label %2074

2074:                                             ; preds = %2071
  %2075 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA144_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %140, ptr noundef nonnull align 1 dereferenceable(144) @.str.1102)
          to label %2076 unwind label %2053

2076:                                             ; preds = %2074
  store i32 12, ptr %15, align 4
  br label %2085

2077:                                             ; preds = %2067
  %2078 = landingpad { ptr, i32 }
          cleanup
  %2079 = extractvalue { ptr, i32 } %2078, 0
  store ptr %2079, ptr %5, align 8
  %2080 = extractvalue { ptr, i32 } %2078, 1
  store i32 %2080, ptr %6, align 4
  br label %2083

2081:                                             ; preds = %2062, %2058
  invoke void @__cxa_end_catch()
          to label %2082 unwind label %5219

2082:                                             ; preds = %2081
  br label %2083

2083:                                             ; preds = %2082, %2077
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #11
  br label %2088

2084:                                             ; preds = %2071
  store i32 0, ptr %15, align 4
  br label %2085

2085:                                             ; preds = %2084, %2076, %2068, %2052
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #11
  %2086 = load i32, ptr %15, align 4
  switch i32 %2086, label %5222 [
    i32 0, label %2087
    i32 12, label %2091
  ]

2087:                                             ; preds = %2085
  br label %2111

2088:                                             ; preds = %2083, %2057, %2053
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #11
  br label %2089

2089:                                             ; preds = %2088, %1997
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #11
  br label %2141

2090:                                             ; preds = %1964
  br label %2091

2091:                                             ; preds = %2090, %2085
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %152)
          to label %2092 unwind label %2097

2092:                                             ; preds = %2091
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #11
  %2093 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %140)
          to label %2094 unwind label %2101

2094:                                             ; preds = %2092
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %153, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1078, ptr noundef %2093)
          to label %2095 unwind label %2101

2095:                                             ; preds = %2094
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %153, ptr noundef nonnull align 8 dereferenceable(8) %152)
          to label %2096 unwind label %2105

2096:                                             ; preds = %2095
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %153) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #11
  br label %2111

2097:                                             ; preds = %2091
  %2098 = landingpad { ptr, i32 }
          cleanup
  %2099 = extractvalue { ptr, i32 } %2098, 0
  store ptr %2099, ptr %5, align 8
  %2100 = extractvalue { ptr, i32 } %2098, 1
  store i32 %2100, ptr %6, align 4
  br label %2110

2101:                                             ; preds = %2094, %2092
  %2102 = landingpad { ptr, i32 }
          cleanup
  %2103 = extractvalue { ptr, i32 } %2102, 0
  store ptr %2103, ptr %5, align 8
  %2104 = extractvalue { ptr, i32 } %2102, 1
  store i32 %2104, ptr %6, align 4
  br label %2109

2105:                                             ; preds = %2095
  %2106 = landingpad { ptr, i32 }
          cleanup
  %2107 = extractvalue { ptr, i32 } %2106, 0
  store ptr %2107, ptr %5, align 8
  %2108 = extractvalue { ptr, i32 } %2106, 1
  store i32 %2108, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %153) #11
  br label %2109

2109:                                             ; preds = %2105, %2101
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #11
  br label %2110

2110:                                             ; preds = %2109, %2097
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #11
  br label %2141

2111:                                             ; preds = %2096, %2087
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %140) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %140) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %154) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %154)
  %2112 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %154)
          to label %2113 unwind label %2142

2113:                                             ; preds = %2111
  br i1 %2112, label %2114, label %2239

2114:                                             ; preds = %2113
  call void @llvm.lifetime.start.p0(i64 32, ptr %155) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %156) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef @.str.1096, ptr noundef nonnull align 1 dereferenceable(1) %156)
          to label %2115 unwind label %2146

2115:                                             ; preds = %2114
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %157) #11
  store i8 0, ptr %157, align 1, !tbaa !9
  %2116 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2117 unwind label %2150

2117:                                             ; preds = %2115
  br i1 %2116, label %2118, label %2195

2118:                                             ; preds = %2117
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %161, ptr noundef @.str.1088)
          to label %2119 unwind label %2150

2119:                                             ; preds = %2118
  %2120 = getelementptr inbounds { ptr, i64 }, ptr %161, i32 0, i32 0
  %2121 = load ptr, ptr %2120, align 8
  %2122 = getelementptr inbounds { ptr, i64 }, ptr %161, i32 0, i32 1
  %2123 = load i64, ptr %2122, align 8
  %2124 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2121, i64 %2123)
          to label %2125 unwind label %2150

2125:                                             ; preds = %2119
  %2126 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %160, i32 0, i32 0
  %2127 = getelementptr inbounds { ptr, i64 }, ptr %2126, i32 0, i32 0
  %2128 = extractvalue { ptr, i64 } %2124, 0
  store ptr %2128, ptr %2127, align 8
  %2129 = getelementptr inbounds { ptr, i64 }, ptr %2126, i32 0, i32 1
  %2130 = extractvalue { ptr, i64 } %2124, 1
  store i64 %2130, ptr %2129, align 8
  %2131 = getelementptr inbounds { ptr, i64 }, ptr %160, i32 0, i32 0
  %2132 = load ptr, ptr %2131, align 8
  %2133 = getelementptr inbounds { ptr, i64 }, ptr %160, i32 0, i32 1
  %2134 = load i64, ptr %2133, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdlEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %159, ptr %2132, i64 %2134)
          to label %2135 unwind label %2150

2135:                                             ; preds = %2125
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #11
  store double 0.000000e+00, ptr %162, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #11
  store i64 -1, ptr %163, align 8, !tbaa !17
  %2136 = getelementptr inbounds { ptr, i64 }, ptr %159, i32 0, i32 0
  %2137 = load ptr, ptr %2136, align 8
  %2138 = getelementptr inbounds { ptr, i64 }, ptr %159, i32 0, i32 1
  %2139 = load i64, ptr %2138, align 8
  invoke void @_ZN3fmt3v106formatIJdlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %158, ptr %2137, i64 %2139, ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef nonnull align 8 dereferenceable(8) %163)
          to label %2140 unwind label %2154

2140:                                             ; preds = %2135
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #11
  br label %2196

2141:                                             ; preds = %2110, %2089, %1993
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %140) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %140) #11
  br label %5212

2142:                                             ; preds = %2111
  %2143 = landingpad { ptr, i32 }
          cleanup
  %2144 = extractvalue { ptr, i32 } %2143, 0
  store ptr %2144, ptr %5, align 8
  %2145 = extractvalue { ptr, i32 } %2143, 1
  store i32 %2145, ptr %6, align 4
  br label %2292

2146:                                             ; preds = %2114
  %2147 = landingpad { ptr, i32 }
          cleanup
  %2148 = extractvalue { ptr, i32 } %2147, 0
  store ptr %2148, ptr %5, align 8
  %2149 = extractvalue { ptr, i32 } %2147, 1
  store i32 %2149, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #11
  br label %2238

2150:                                             ; preds = %2125, %2119, %2118, %2115
  %2151 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2152 = extractvalue { ptr, i32 } %2151, 0
  store ptr %2152, ptr %5, align 8
  %2153 = extractvalue { ptr, i32 } %2151, 1
  store i32 %2153, ptr %6, align 4
  br label %2158

2154:                                             ; preds = %2135
  %2155 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2156 = extractvalue { ptr, i32 } %2155, 0
  store ptr %2156, ptr %5, align 8
  %2157 = extractvalue { ptr, i32 } %2155, 1
  store i32 %2157, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #11
  br label %2158

2158:                                             ; preds = %2154, %2150
  %2159 = load i32, ptr %6, align 4
  %2160 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2161 = icmp eq i32 %2159, %2160
  br i1 %2161, label %2162, label %2190

2162:                                             ; preds = %2158
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #11
  %2163 = load ptr, ptr %5, align 8
  %2164 = call ptr @__cxa_begin_catch(ptr %2163) #11
  store ptr %2164, ptr %164, align 8
  %2165 = load ptr, ptr %164, align 8, !tbaa !5
  %2166 = load ptr, ptr %2165, align 8, !tbaa !13
  %2167 = getelementptr inbounds ptr, ptr %2166, i64 2
  %2168 = load ptr, ptr %2167, align 8
  %2169 = call noundef ptr %2168(ptr noundef nonnull align 8 dereferenceable(16) %2165) #11
  %2170 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef %2169)
          to label %2171 unwind label %2207

2171:                                             ; preds = %2162
  br i1 %2170, label %2172, label %2215

2172:                                             ; preds = %2171
  %2173 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 1 dereferenceable(96) @.str.1104)
          to label %2174 unwind label %2207

2174:                                             ; preds = %2172
  %2175 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2173, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2176 unwind label %2207

2176:                                             ; preds = %2174
  %2177 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2175, ptr noundef nonnull align 8 dereferenceable(32) %155)
          to label %2178 unwind label %2207

2178:                                             ; preds = %2176
  %2179 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2177, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2180 unwind label %2207

2180:                                             ; preds = %2178
  %2181 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2179, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2182 unwind label %2207

2182:                                             ; preds = %2180
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #11
  %2183 = load ptr, ptr %164, align 8, !tbaa !5
  %2184 = load ptr, ptr %2183, align 8, !tbaa !13
  %2185 = getelementptr inbounds ptr, ptr %2184, i64 2
  %2186 = load ptr, ptr %2185, align 8
  %2187 = call noundef ptr %2186(ptr noundef nonnull align 8 dereferenceable(16) %2183) #11
  store ptr %2187, ptr %165, align 8, !tbaa !5
  %2188 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2181, ptr noundef nonnull align 8 dereferenceable(8) %165)
          to label %2189 unwind label %2211

2189:                                             ; preds = %2182
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #11
  store i32 13, ptr %15, align 4
  br label %2216

2190:                                             ; preds = %2158
  %2191 = load ptr, ptr %5, align 8
  %2192 = call ptr @__cxa_begin_catch(ptr %2191) #11
  %2193 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 1 dereferenceable(139) @.str.1103)
          to label %2194 unwind label %2197

2194:                                             ; preds = %2190
  store i32 13, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2201 unwind label %2202

2195:                                             ; preds = %2117
  br label %2196

2196:                                             ; preds = %2195, %2140
  br label %2220

2197:                                             ; preds = %2190
  %2198 = landingpad { ptr, i32 }
          cleanup
  %2199 = extractvalue { ptr, i32 } %2198, 0
  store ptr %2199, ptr %5, align 8
  %2200 = extractvalue { ptr, i32 } %2198, 1
  store i32 %2200, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2206 unwind label %5219

2201:                                             ; preds = %2194
  br label %2234

2202:                                             ; preds = %2223, %2194
  %2203 = landingpad { ptr, i32 }
          cleanup
  %2204 = extractvalue { ptr, i32 } %2203, 0
  store ptr %2204, ptr %5, align 8
  %2205 = extractvalue { ptr, i32 } %2203, 1
  store i32 %2205, ptr %6, align 4
  br label %2237

2206:                                             ; preds = %2197
  br label %2237

2207:                                             ; preds = %2180, %2178, %2176, %2174, %2172, %2162
  %2208 = landingpad { ptr, i32 }
          cleanup
  %2209 = extractvalue { ptr, i32 } %2208, 0
  store ptr %2209, ptr %5, align 8
  %2210 = extractvalue { ptr, i32 } %2208, 1
  store i32 %2210, ptr %6, align 4
  br label %2230

2211:                                             ; preds = %2182
  %2212 = landingpad { ptr, i32 }
          cleanup
  %2213 = extractvalue { ptr, i32 } %2212, 0
  store ptr %2213, ptr %5, align 8
  %2214 = extractvalue { ptr, i32 } %2212, 1
  store i32 %2214, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #11
  br label %2230

2215:                                             ; preds = %2171
  store i8 1, ptr %157, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2216

2216:                                             ; preds = %2215, %2189
  invoke void @__cxa_end_catch()
          to label %2217 unwind label %2226

2217:                                             ; preds = %2216
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #11
  %2218 = load i32, ptr %15, align 4
  switch i32 %2218, label %2234 [
    i32 0, label %2219
  ]

2219:                                             ; preds = %2217
  br label %2220

2220:                                             ; preds = %2219, %2196
  %2221 = load i8, ptr %157, align 1, !tbaa !9, !range !15, !noundef !16
  %2222 = trunc i8 %2221 to i1
  br i1 %2222, label %2233, label %2223

2223:                                             ; preds = %2220
  %2224 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 1 dereferenceable(130) @.str.1105)
          to label %2225 unwind label %2202

2225:                                             ; preds = %2223
  store i32 13, ptr %15, align 4
  br label %2234

2226:                                             ; preds = %2216
  %2227 = landingpad { ptr, i32 }
          cleanup
  %2228 = extractvalue { ptr, i32 } %2227, 0
  store ptr %2228, ptr %5, align 8
  %2229 = extractvalue { ptr, i32 } %2227, 1
  store i32 %2229, ptr %6, align 4
  br label %2232

2230:                                             ; preds = %2211, %2207
  invoke void @__cxa_end_catch()
          to label %2231 unwind label %5219

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231, %2226
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #11
  br label %2237

2233:                                             ; preds = %2220
  store i32 0, ptr %15, align 4
  br label %2234

2234:                                             ; preds = %2233, %2225, %2217, %2201
  call void @llvm.lifetime.end.p0(i64 1, ptr %157) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #11
  %2235 = load i32, ptr %15, align 4
  switch i32 %2235, label %5222 [
    i32 0, label %2236
    i32 13, label %2240
  ]

2236:                                             ; preds = %2234
  br label %2260

2237:                                             ; preds = %2232, %2206, %2202
  call void @llvm.lifetime.end.p0(i64 1, ptr %157) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #11
  br label %2238

2238:                                             ; preds = %2237, %2146
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #11
  br label %2292

2239:                                             ; preds = %2113
  br label %2240

2240:                                             ; preds = %2239, %2234
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %166)
          to label %2241 unwind label %2246

2241:                                             ; preds = %2240
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #11
  %2242 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %154)
          to label %2243 unwind label %2250

2243:                                             ; preds = %2241
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %167, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1080, ptr noundef %2242)
          to label %2244 unwind label %2250

2244:                                             ; preds = %2243
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef nonnull align 8 dereferenceable(8) %166)
          to label %2245 unwind label %2254

2245:                                             ; preds = %2244
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #11
  br label %2260

2246:                                             ; preds = %2240
  %2247 = landingpad { ptr, i32 }
          cleanup
  %2248 = extractvalue { ptr, i32 } %2247, 0
  store ptr %2248, ptr %5, align 8
  %2249 = extractvalue { ptr, i32 } %2247, 1
  store i32 %2249, ptr %6, align 4
  br label %2259

2250:                                             ; preds = %2243, %2241
  %2251 = landingpad { ptr, i32 }
          cleanup
  %2252 = extractvalue { ptr, i32 } %2251, 0
  store ptr %2252, ptr %5, align 8
  %2253 = extractvalue { ptr, i32 } %2251, 1
  store i32 %2253, ptr %6, align 4
  br label %2258

2254:                                             ; preds = %2244
  %2255 = landingpad { ptr, i32 }
          cleanup
  %2256 = extractvalue { ptr, i32 } %2255, 0
  store ptr %2256, ptr %5, align 8
  %2257 = extractvalue { ptr, i32 } %2255, 1
  store i32 %2257, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #11
  br label %2258

2258:                                             ; preds = %2254, %2250
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #11
  br label %2259

2259:                                             ; preds = %2258, %2246
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #11
  br label %2292

2260:                                             ; preds = %2245, %2236
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %154) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %154) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #11
  store i64 2147483647, ptr %168, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %169) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %169)
  %2261 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %169)
          to label %2262 unwind label %2293

2262:                                             ; preds = %2260
  br i1 %2261, label %2263, label %2390

2263:                                             ; preds = %2262
  call void @llvm.lifetime.start.p0(i64 32, ptr %170) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %171) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %170, ptr noundef @.str.785, ptr noundef nonnull align 1 dereferenceable(1) %171)
          to label %2264 unwind label %2297

2264:                                             ; preds = %2263
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %172) #11
  store i8 0, ptr %172, align 1, !tbaa !9
  %2265 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2266 unwind label %2301

2266:                                             ; preds = %2264
  br i1 %2265, label %2267, label %2346

2267:                                             ; preds = %2266
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %176, ptr noundef @.str.1088)
          to label %2268 unwind label %2301

2268:                                             ; preds = %2267
  %2269 = getelementptr inbounds { ptr, i64 }, ptr %176, i32 0, i32 0
  %2270 = load ptr, ptr %2269, align 8
  %2271 = getelementptr inbounds { ptr, i64 }, ptr %176, i32 0, i32 1
  %2272 = load i64, ptr %2271, align 8
  %2273 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2270, i64 %2272)
          to label %2274 unwind label %2301

2274:                                             ; preds = %2268
  %2275 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %175, i32 0, i32 0
  %2276 = getelementptr inbounds { ptr, i64 }, ptr %2275, i32 0, i32 0
  %2277 = extractvalue { ptr, i64 } %2273, 0
  store ptr %2277, ptr %2276, align 8
  %2278 = getelementptr inbounds { ptr, i64 }, ptr %2275, i32 0, i32 1
  %2279 = extractvalue { ptr, i64 } %2273, 1
  store i64 %2279, ptr %2278, align 8
  %2280 = getelementptr inbounds { ptr, i64 }, ptr %175, i32 0, i32 0
  %2281 = load ptr, ptr %2280, align 8
  %2282 = getelementptr inbounds { ptr, i64 }, ptr %175, i32 0, i32 1
  %2283 = load i64, ptr %2282, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdlEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %174, ptr %2281, i64 %2283)
          to label %2284 unwind label %2301

2284:                                             ; preds = %2274
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #11
  store double 0.000000e+00, ptr %177, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #11
  %2285 = load i64, ptr %168, align 8, !tbaa !17
  %2286 = add nsw i64 %2285, 1
  store i64 %2286, ptr %178, align 8, !tbaa !17
  %2287 = getelementptr inbounds { ptr, i64 }, ptr %174, i32 0, i32 0
  %2288 = load ptr, ptr %2287, align 8
  %2289 = getelementptr inbounds { ptr, i64 }, ptr %174, i32 0, i32 1
  %2290 = load i64, ptr %2289, align 8
  invoke void @_ZN3fmt3v106formatIJdlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %173, ptr %2288, i64 %2290, ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef nonnull align 8 dereferenceable(8) %178)
          to label %2291 unwind label %2305

2291:                                             ; preds = %2284
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #11
  br label %2347

2292:                                             ; preds = %2259, %2238, %2142
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %154) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %154) #11
  br label %5212

2293:                                             ; preds = %2260
  %2294 = landingpad { ptr, i32 }
          cleanup
  %2295 = extractvalue { ptr, i32 } %2294, 0
  store ptr %2295, ptr %5, align 8
  %2296 = extractvalue { ptr, i32 } %2294, 1
  store i32 %2296, ptr %6, align 4
  br label %2441

2297:                                             ; preds = %2263
  %2298 = landingpad { ptr, i32 }
          cleanup
  %2299 = extractvalue { ptr, i32 } %2298, 0
  store ptr %2299, ptr %5, align 8
  %2300 = extractvalue { ptr, i32 } %2298, 1
  store i32 %2300, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #11
  br label %2389

2301:                                             ; preds = %2274, %2268, %2267, %2264
  %2302 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2303 = extractvalue { ptr, i32 } %2302, 0
  store ptr %2303, ptr %5, align 8
  %2304 = extractvalue { ptr, i32 } %2302, 1
  store i32 %2304, ptr %6, align 4
  br label %2309

2305:                                             ; preds = %2284
  %2306 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2307 = extractvalue { ptr, i32 } %2306, 0
  store ptr %2307, ptr %5, align 8
  %2308 = extractvalue { ptr, i32 } %2306, 1
  store i32 %2308, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #11
  br label %2309

2309:                                             ; preds = %2305, %2301
  %2310 = load i32, ptr %6, align 4
  %2311 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2312 = icmp eq i32 %2310, %2311
  br i1 %2312, label %2313, label %2341

2313:                                             ; preds = %2309
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #11
  %2314 = load ptr, ptr %5, align 8
  %2315 = call ptr @__cxa_begin_catch(ptr %2314) #11
  store ptr %2315, ptr %179, align 8
  %2316 = load ptr, ptr %179, align 8, !tbaa !5
  %2317 = load ptr, ptr %2316, align 8, !tbaa !13
  %2318 = getelementptr inbounds ptr, ptr %2317, i64 2
  %2319 = load ptr, ptr %2318, align 8
  %2320 = call noundef ptr %2319(ptr noundef nonnull align 8 dereferenceable(16) %2316) #11
  %2321 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %170, ptr noundef %2320)
          to label %2322 unwind label %2358

2322:                                             ; preds = %2313
  br i1 %2321, label %2323, label %2366

2323:                                             ; preds = %2322
  %2324 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA104_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %169, ptr noundef nonnull align 1 dereferenceable(104) @.str.1107)
          to label %2325 unwind label %2358

2325:                                             ; preds = %2323
  %2326 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2324, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2327 unwind label %2358

2327:                                             ; preds = %2325
  %2328 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2326, ptr noundef nonnull align 8 dereferenceable(32) %170)
          to label %2329 unwind label %2358

2329:                                             ; preds = %2327
  %2330 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2328, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2331 unwind label %2358

2331:                                             ; preds = %2329
  %2332 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2330, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2333 unwind label %2358

2333:                                             ; preds = %2331
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #11
  %2334 = load ptr, ptr %179, align 8, !tbaa !5
  %2335 = load ptr, ptr %2334, align 8, !tbaa !13
  %2336 = getelementptr inbounds ptr, ptr %2335, i64 2
  %2337 = load ptr, ptr %2336, align 8
  %2338 = call noundef ptr %2337(ptr noundef nonnull align 8 dereferenceable(16) %2334) #11
  store ptr %2338, ptr %180, align 8, !tbaa !5
  %2339 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2332, ptr noundef nonnull align 8 dereferenceable(8) %180)
          to label %2340 unwind label %2362

2340:                                             ; preds = %2333
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #11
  store i32 14, ptr %15, align 4
  br label %2367

2341:                                             ; preds = %2309
  %2342 = load ptr, ptr %5, align 8
  %2343 = call ptr @__cxa_begin_catch(ptr %2342) #11
  %2344 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA147_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %169, ptr noundef nonnull align 1 dereferenceable(147) @.str.1106)
          to label %2345 unwind label %2348

2345:                                             ; preds = %2341
  store i32 14, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2352 unwind label %2353

2346:                                             ; preds = %2266
  br label %2347

2347:                                             ; preds = %2346, %2291
  br label %2371

2348:                                             ; preds = %2341
  %2349 = landingpad { ptr, i32 }
          cleanup
  %2350 = extractvalue { ptr, i32 } %2349, 0
  store ptr %2350, ptr %5, align 8
  %2351 = extractvalue { ptr, i32 } %2349, 1
  store i32 %2351, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2357 unwind label %5219

2352:                                             ; preds = %2345
  br label %2385

2353:                                             ; preds = %2374, %2345
  %2354 = landingpad { ptr, i32 }
          cleanup
  %2355 = extractvalue { ptr, i32 } %2354, 0
  store ptr %2355, ptr %5, align 8
  %2356 = extractvalue { ptr, i32 } %2354, 1
  store i32 %2356, ptr %6, align 4
  br label %2388

2357:                                             ; preds = %2348
  br label %2388

2358:                                             ; preds = %2331, %2329, %2327, %2325, %2323, %2313
  %2359 = landingpad { ptr, i32 }
          cleanup
  %2360 = extractvalue { ptr, i32 } %2359, 0
  store ptr %2360, ptr %5, align 8
  %2361 = extractvalue { ptr, i32 } %2359, 1
  store i32 %2361, ptr %6, align 4
  br label %2381

2362:                                             ; preds = %2333
  %2363 = landingpad { ptr, i32 }
          cleanup
  %2364 = extractvalue { ptr, i32 } %2363, 0
  store ptr %2364, ptr %5, align 8
  %2365 = extractvalue { ptr, i32 } %2363, 1
  store i32 %2365, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #11
  br label %2381

2366:                                             ; preds = %2322
  store i8 1, ptr %172, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2367

2367:                                             ; preds = %2366, %2340
  invoke void @__cxa_end_catch()
          to label %2368 unwind label %2377

2368:                                             ; preds = %2367
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #11
  %2369 = load i32, ptr %15, align 4
  switch i32 %2369, label %2385 [
    i32 0, label %2370
  ]

2370:                                             ; preds = %2368
  br label %2371

2371:                                             ; preds = %2370, %2347
  %2372 = load i8, ptr %172, align 1, !tbaa !9, !range !15, !noundef !16
  %2373 = trunc i8 %2372 to i1
  br i1 %2373, label %2384, label %2374

2374:                                             ; preds = %2371
  %2375 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %169, ptr noundef nonnull align 1 dereferenceable(138) @.str.1108)
          to label %2376 unwind label %2353

2376:                                             ; preds = %2374
  store i32 14, ptr %15, align 4
  br label %2385

2377:                                             ; preds = %2367
  %2378 = landingpad { ptr, i32 }
          cleanup
  %2379 = extractvalue { ptr, i32 } %2378, 0
  store ptr %2379, ptr %5, align 8
  %2380 = extractvalue { ptr, i32 } %2378, 1
  store i32 %2380, ptr %6, align 4
  br label %2383

2381:                                             ; preds = %2362, %2358
  invoke void @__cxa_end_catch()
          to label %2382 unwind label %5219

2382:                                             ; preds = %2381
  br label %2383

2383:                                             ; preds = %2382, %2377
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #11
  br label %2388

2384:                                             ; preds = %2371
  store i32 0, ptr %15, align 4
  br label %2385

2385:                                             ; preds = %2384, %2376, %2368, %2352
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #11
  %2386 = load i32, ptr %15, align 4
  switch i32 %2386, label %5222 [
    i32 0, label %2387
    i32 14, label %2391
  ]

2387:                                             ; preds = %2385
  br label %2411

2388:                                             ; preds = %2383, %2357, %2353
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #11
  br label %2389

2389:                                             ; preds = %2388, %2297
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #11
  br label %2441

2390:                                             ; preds = %2262
  br label %2391

2391:                                             ; preds = %2390, %2385
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %181)
          to label %2392 unwind label %2397

2392:                                             ; preds = %2391
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #11
  %2393 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %169)
          to label %2394 unwind label %2401

2394:                                             ; preds = %2392
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %182, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1084, ptr noundef %2393)
          to label %2395 unwind label %2401

2395:                                             ; preds = %2394
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef nonnull align 8 dereferenceable(8) %181)
          to label %2396 unwind label %2405

2396:                                             ; preds = %2395
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #11
  br label %2411

2397:                                             ; preds = %2391
  %2398 = landingpad { ptr, i32 }
          cleanup
  %2399 = extractvalue { ptr, i32 } %2398, 0
  store ptr %2399, ptr %5, align 8
  %2400 = extractvalue { ptr, i32 } %2398, 1
  store i32 %2400, ptr %6, align 4
  br label %2410

2401:                                             ; preds = %2394, %2392
  %2402 = landingpad { ptr, i32 }
          cleanup
  %2403 = extractvalue { ptr, i32 } %2402, 0
  store ptr %2403, ptr %5, align 8
  %2404 = extractvalue { ptr, i32 } %2402, 1
  store i32 %2404, ptr %6, align 4
  br label %2409

2405:                                             ; preds = %2395
  %2406 = landingpad { ptr, i32 }
          cleanup
  %2407 = extractvalue { ptr, i32 } %2406, 0
  store ptr %2407, ptr %5, align 8
  %2408 = extractvalue { ptr, i32 } %2406, 1
  store i32 %2408, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #11
  br label %2409

2409:                                             ; preds = %2405, %2401
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #11
  br label %2410

2410:                                             ; preds = %2409, %2397
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #11
  br label %2441

2411:                                             ; preds = %2396, %2387
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %169) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %169) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %183) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %183)
  %2412 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %183)
          to label %2413 unwind label %2442

2413:                                             ; preds = %2411
  br i1 %2412, label %2414, label %2539

2414:                                             ; preds = %2413
  call void @llvm.lifetime.start.p0(i64 32, ptr %184) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %185) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef @.str.785, ptr noundef nonnull align 1 dereferenceable(1) %185)
          to label %2415 unwind label %2446

2415:                                             ; preds = %2414
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %185) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %186) #11
  store i8 0, ptr %186, align 1, !tbaa !9
  %2416 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2417 unwind label %2450

2417:                                             ; preds = %2415
  br i1 %2416, label %2418, label %2495

2418:                                             ; preds = %2417
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %190, ptr noundef @.str.1088)
          to label %2419 unwind label %2450

2419:                                             ; preds = %2418
  %2420 = getelementptr inbounds { ptr, i64 }, ptr %190, i32 0, i32 0
  %2421 = load ptr, ptr %2420, align 8
  %2422 = getelementptr inbounds { ptr, i64 }, ptr %190, i32 0, i32 1
  %2423 = load i64, ptr %2422, align 8
  %2424 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2421, i64 %2423)
          to label %2425 unwind label %2450

2425:                                             ; preds = %2419
  %2426 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %189, i32 0, i32 0
  %2427 = getelementptr inbounds { ptr, i64 }, ptr %2426, i32 0, i32 0
  %2428 = extractvalue { ptr, i64 } %2424, 0
  store ptr %2428, ptr %2427, align 8
  %2429 = getelementptr inbounds { ptr, i64 }, ptr %2426, i32 0, i32 1
  %2430 = extractvalue { ptr, i64 } %2424, 1
  store i64 %2430, ptr %2429, align 8
  %2431 = getelementptr inbounds { ptr, i64 }, ptr %189, i32 0, i32 0
  %2432 = load ptr, ptr %2431, align 8
  %2433 = getelementptr inbounds { ptr, i64 }, ptr %189, i32 0, i32 1
  %2434 = load i64, ptr %2433, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdmEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %188, ptr %2432, i64 %2434)
          to label %2435 unwind label %2450

2435:                                             ; preds = %2425
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #11
  store double 0.000000e+00, ptr %191, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %192) #11
  store i64 2147483648, ptr %192, align 8, !tbaa !17
  %2436 = getelementptr inbounds { ptr, i64 }, ptr %188, i32 0, i32 0
  %2437 = load ptr, ptr %2436, align 8
  %2438 = getelementptr inbounds { ptr, i64 }, ptr %188, i32 0, i32 1
  %2439 = load i64, ptr %2438, align 8
  invoke void @_ZN3fmt3v106formatIJdmEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %187, ptr %2437, i64 %2439, ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef nonnull align 8 dereferenceable(8) %192)
          to label %2440 unwind label %2454

2440:                                             ; preds = %2435
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #11
  br label %2496

2441:                                             ; preds = %2410, %2389, %2293
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %169) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %169) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #11
  br label %5212

2442:                                             ; preds = %2411
  %2443 = landingpad { ptr, i32 }
          cleanup
  %2444 = extractvalue { ptr, i32 } %2443, 0
  store ptr %2444, ptr %5, align 8
  %2445 = extractvalue { ptr, i32 } %2443, 1
  store i32 %2445, ptr %6, align 4
  br label %2590

2446:                                             ; preds = %2414
  %2447 = landingpad { ptr, i32 }
          cleanup
  %2448 = extractvalue { ptr, i32 } %2447, 0
  store ptr %2448, ptr %5, align 8
  %2449 = extractvalue { ptr, i32 } %2447, 1
  store i32 %2449, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %185) #11
  br label %2538

2450:                                             ; preds = %2425, %2419, %2418, %2415
  %2451 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2452 = extractvalue { ptr, i32 } %2451, 0
  store ptr %2452, ptr %5, align 8
  %2453 = extractvalue { ptr, i32 } %2451, 1
  store i32 %2453, ptr %6, align 4
  br label %2458

2454:                                             ; preds = %2435
  %2455 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2456 = extractvalue { ptr, i32 } %2455, 0
  store ptr %2456, ptr %5, align 8
  %2457 = extractvalue { ptr, i32 } %2455, 1
  store i32 %2457, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #11
  br label %2458

2458:                                             ; preds = %2454, %2450
  %2459 = load i32, ptr %6, align 4
  %2460 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2461 = icmp eq i32 %2459, %2460
  br i1 %2461, label %2462, label %2490

2462:                                             ; preds = %2458
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #11
  %2463 = load ptr, ptr %5, align 8
  %2464 = call ptr @__cxa_begin_catch(ptr %2463) #11
  store ptr %2464, ptr %193, align 8
  %2465 = load ptr, ptr %193, align 8, !tbaa !5
  %2466 = load ptr, ptr %2465, align 8, !tbaa !13
  %2467 = getelementptr inbounds ptr, ptr %2466, i64 2
  %2468 = load ptr, ptr %2467, align 8
  %2469 = call noundef ptr %2468(ptr noundef nonnull align 8 dereferenceable(16) %2465) #11
  %2470 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef %2469)
          to label %2471 unwind label %2507

2471:                                             ; preds = %2462
  br i1 %2470, label %2472, label %2515

2472:                                             ; preds = %2471
  %2473 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA111_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %183, ptr noundef nonnull align 1 dereferenceable(111) @.str.1110)
          to label %2474 unwind label %2507

2474:                                             ; preds = %2472
  %2475 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2473, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2476 unwind label %2507

2476:                                             ; preds = %2474
  %2477 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2475, ptr noundef nonnull align 8 dereferenceable(32) %184)
          to label %2478 unwind label %2507

2478:                                             ; preds = %2476
  %2479 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2477, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2480 unwind label %2507

2480:                                             ; preds = %2478
  %2481 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2479, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2482 unwind label %2507

2482:                                             ; preds = %2480
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #11
  %2483 = load ptr, ptr %193, align 8, !tbaa !5
  %2484 = load ptr, ptr %2483, align 8, !tbaa !13
  %2485 = getelementptr inbounds ptr, ptr %2484, i64 2
  %2486 = load ptr, ptr %2485, align 8
  %2487 = call noundef ptr %2486(ptr noundef nonnull align 8 dereferenceable(16) %2483) #11
  store ptr %2487, ptr %194, align 8, !tbaa !5
  %2488 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2481, ptr noundef nonnull align 8 dereferenceable(8) %194)
          to label %2489 unwind label %2511

2489:                                             ; preds = %2482
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #11
  store i32 15, ptr %15, align 4
  br label %2516

2490:                                             ; preds = %2458
  %2491 = load ptr, ptr %5, align 8
  %2492 = call ptr @__cxa_begin_catch(ptr %2491) #11
  %2493 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA154_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %183, ptr noundef nonnull align 1 dereferenceable(154) @.str.1109)
          to label %2494 unwind label %2497

2494:                                             ; preds = %2490
  store i32 15, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2501 unwind label %2502

2495:                                             ; preds = %2417
  br label %2496

2496:                                             ; preds = %2495, %2440
  br label %2520

2497:                                             ; preds = %2490
  %2498 = landingpad { ptr, i32 }
          cleanup
  %2499 = extractvalue { ptr, i32 } %2498, 0
  store ptr %2499, ptr %5, align 8
  %2500 = extractvalue { ptr, i32 } %2498, 1
  store i32 %2500, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2506 unwind label %5219

2501:                                             ; preds = %2494
  br label %2534

2502:                                             ; preds = %2523, %2494
  %2503 = landingpad { ptr, i32 }
          cleanup
  %2504 = extractvalue { ptr, i32 } %2503, 0
  store ptr %2504, ptr %5, align 8
  %2505 = extractvalue { ptr, i32 } %2503, 1
  store i32 %2505, ptr %6, align 4
  br label %2537

2506:                                             ; preds = %2497
  br label %2537

2507:                                             ; preds = %2480, %2478, %2476, %2474, %2472, %2462
  %2508 = landingpad { ptr, i32 }
          cleanup
  %2509 = extractvalue { ptr, i32 } %2508, 0
  store ptr %2509, ptr %5, align 8
  %2510 = extractvalue { ptr, i32 } %2508, 1
  store i32 %2510, ptr %6, align 4
  br label %2530

2511:                                             ; preds = %2482
  %2512 = landingpad { ptr, i32 }
          cleanup
  %2513 = extractvalue { ptr, i32 } %2512, 0
  store ptr %2513, ptr %5, align 8
  %2514 = extractvalue { ptr, i32 } %2512, 1
  store i32 %2514, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #11
  br label %2530

2515:                                             ; preds = %2471
  store i8 1, ptr %186, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2516

2516:                                             ; preds = %2515, %2489
  invoke void @__cxa_end_catch()
          to label %2517 unwind label %2526

2517:                                             ; preds = %2516
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #11
  %2518 = load i32, ptr %15, align 4
  switch i32 %2518, label %2534 [
    i32 0, label %2519
  ]

2519:                                             ; preds = %2517
  br label %2520

2520:                                             ; preds = %2519, %2496
  %2521 = load i8, ptr %186, align 1, !tbaa !9, !range !15, !noundef !16
  %2522 = trunc i8 %2521 to i1
  br i1 %2522, label %2533, label %2523

2523:                                             ; preds = %2520
  %2524 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA145_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %183, ptr noundef nonnull align 1 dereferenceable(145) @.str.1111)
          to label %2525 unwind label %2502

2525:                                             ; preds = %2523
  store i32 15, ptr %15, align 4
  br label %2534

2526:                                             ; preds = %2516
  %2527 = landingpad { ptr, i32 }
          cleanup
  %2528 = extractvalue { ptr, i32 } %2527, 0
  store ptr %2528, ptr %5, align 8
  %2529 = extractvalue { ptr, i32 } %2527, 1
  store i32 %2529, ptr %6, align 4
  br label %2532

2530:                                             ; preds = %2511, %2507
  invoke void @__cxa_end_catch()
          to label %2531 unwind label %5219

2531:                                             ; preds = %2530
  br label %2532

2532:                                             ; preds = %2531, %2526
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #11
  br label %2537

2533:                                             ; preds = %2520
  store i32 0, ptr %15, align 4
  br label %2534

2534:                                             ; preds = %2533, %2525, %2517, %2501
  call void @llvm.lifetime.end.p0(i64 1, ptr %186) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #11
  %2535 = load i32, ptr %15, align 4
  switch i32 %2535, label %5222 [
    i32 0, label %2536
    i32 15, label %2540
  ]

2536:                                             ; preds = %2534
  br label %2560

2537:                                             ; preds = %2532, %2506, %2502
  call void @llvm.lifetime.end.p0(i64 1, ptr %186) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #11
  br label %2538

2538:                                             ; preds = %2537, %2446
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #11
  br label %2590

2539:                                             ; preds = %2413
  br label %2540

2540:                                             ; preds = %2539, %2534
  call void @llvm.lifetime.start.p0(i64 8, ptr %195) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %195)
          to label %2541 unwind label %2546

2541:                                             ; preds = %2540
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #11
  %2542 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %183)
          to label %2543 unwind label %2550

2543:                                             ; preds = %2541
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %196, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1087, ptr noundef %2542)
          to label %2544 unwind label %2550

2544:                                             ; preds = %2543
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %196, ptr noundef nonnull align 8 dereferenceable(8) %195)
          to label %2545 unwind label %2554

2545:                                             ; preds = %2544
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %196) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %195) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #11
  br label %2560

2546:                                             ; preds = %2540
  %2547 = landingpad { ptr, i32 }
          cleanup
  %2548 = extractvalue { ptr, i32 } %2547, 0
  store ptr %2548, ptr %5, align 8
  %2549 = extractvalue { ptr, i32 } %2547, 1
  store i32 %2549, ptr %6, align 4
  br label %2559

2550:                                             ; preds = %2543, %2541
  %2551 = landingpad { ptr, i32 }
          cleanup
  %2552 = extractvalue { ptr, i32 } %2551, 0
  store ptr %2552, ptr %5, align 8
  %2553 = extractvalue { ptr, i32 } %2551, 1
  store i32 %2553, ptr %6, align 4
  br label %2558

2554:                                             ; preds = %2544
  %2555 = landingpad { ptr, i32 }
          cleanup
  %2556 = extractvalue { ptr, i32 } %2555, 0
  store ptr %2556, ptr %5, align 8
  %2557 = extractvalue { ptr, i32 } %2555, 1
  store i32 %2557, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %196) #11
  br label %2558

2558:                                             ; preds = %2554, %2550
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %195) #11
  br label %2559

2559:                                             ; preds = %2558, %2546
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #11
  br label %2590

2560:                                             ; preds = %2545, %2536
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %183) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %183) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %197) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %197)
  %2561 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %197)
          to label %2562 unwind label %2591

2562:                                             ; preds = %2560
  br i1 %2561, label %2563, label %2688

2563:                                             ; preds = %2562
  call void @llvm.lifetime.start.p0(i64 32, ptr %198) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %199) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef @.str.1112, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %2564 unwind label %2595

2564:                                             ; preds = %2563
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %199) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %200) #11
  store i8 0, ptr %200, align 1, !tbaa !9
  %2565 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2566 unwind label %2599

2566:                                             ; preds = %2564
  br i1 %2565, label %2567, label %2644

2567:                                             ; preds = %2566
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %204, ptr noundef @.str.1088)
          to label %2568 unwind label %2599

2568:                                             ; preds = %2567
  %2569 = getelementptr inbounds { ptr, i64 }, ptr %204, i32 0, i32 0
  %2570 = load ptr, ptr %2569, align 8
  %2571 = getelementptr inbounds { ptr, i64 }, ptr %204, i32 0, i32 1
  %2572 = load i64, ptr %2571, align 8
  %2573 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2570, i64 %2572)
          to label %2574 unwind label %2599

2574:                                             ; preds = %2568
  %2575 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %203, i32 0, i32 0
  %2576 = getelementptr inbounds { ptr, i64 }, ptr %2575, i32 0, i32 0
  %2577 = extractvalue { ptr, i64 } %2573, 0
  store ptr %2577, ptr %2576, align 8
  %2578 = getelementptr inbounds { ptr, i64 }, ptr %2575, i32 0, i32 1
  %2579 = extractvalue { ptr, i64 } %2573, 1
  store i64 %2579, ptr %2578, align 8
  %2580 = getelementptr inbounds { ptr, i64 }, ptr %203, i32 0, i32 0
  %2581 = load ptr, ptr %2580, align 8
  %2582 = getelementptr inbounds { ptr, i64 }, ptr %203, i32 0, i32 1
  %2583 = load i64, ptr %2582, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %202, ptr %2581, i64 %2583)
          to label %2584 unwind label %2599

2584:                                             ; preds = %2574
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #11
  store double 0.000000e+00, ptr %205, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %206) #11
  store i8 48, ptr %206, align 1, !tbaa !19
  %2585 = getelementptr inbounds { ptr, i64 }, ptr %202, i32 0, i32 0
  %2586 = load ptr, ptr %2585, align 8
  %2587 = getelementptr inbounds { ptr, i64 }, ptr %202, i32 0, i32 1
  %2588 = load i64, ptr %2587, align 8
  invoke void @_ZN3fmt3v106formatIJdcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %201, ptr %2586, i64 %2588, ptr noundef nonnull align 8 dereferenceable(8) %205, ptr noundef nonnull align 1 dereferenceable(1) %206)
          to label %2589 unwind label %2603

2589:                                             ; preds = %2584
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #11
  br label %2645

2590:                                             ; preds = %2559, %2538, %2442
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %183) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %183) #11
  br label %5212

2591:                                             ; preds = %2560
  %2592 = landingpad { ptr, i32 }
          cleanup
  %2593 = extractvalue { ptr, i32 } %2592, 0
  store ptr %2593, ptr %5, align 8
  %2594 = extractvalue { ptr, i32 } %2592, 1
  store i32 %2594, ptr %6, align 4
  br label %2739

2595:                                             ; preds = %2563
  %2596 = landingpad { ptr, i32 }
          cleanup
  %2597 = extractvalue { ptr, i32 } %2596, 0
  store ptr %2597, ptr %5, align 8
  %2598 = extractvalue { ptr, i32 } %2596, 1
  store i32 %2598, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %199) #11
  br label %2687

2599:                                             ; preds = %2574, %2568, %2567, %2564
  %2600 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2601 = extractvalue { ptr, i32 } %2600, 0
  store ptr %2601, ptr %5, align 8
  %2602 = extractvalue { ptr, i32 } %2600, 1
  store i32 %2602, ptr %6, align 4
  br label %2607

2603:                                             ; preds = %2584
  %2604 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2605 = extractvalue { ptr, i32 } %2604, 0
  store ptr %2605, ptr %5, align 8
  %2606 = extractvalue { ptr, i32 } %2604, 1
  store i32 %2606, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #11
  br label %2607

2607:                                             ; preds = %2603, %2599
  %2608 = load i32, ptr %6, align 4
  %2609 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2610 = icmp eq i32 %2608, %2609
  br i1 %2610, label %2611, label %2639

2611:                                             ; preds = %2607
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #11
  %2612 = load ptr, ptr %5, align 8
  %2613 = call ptr @__cxa_begin_catch(ptr %2612) #11
  store ptr %2613, ptr %207, align 8
  %2614 = load ptr, ptr %207, align 8, !tbaa !5
  %2615 = load ptr, ptr %2614, align 8, !tbaa !13
  %2616 = getelementptr inbounds ptr, ptr %2615, i64 2
  %2617 = load ptr, ptr %2616, align 8
  %2618 = call noundef ptr %2617(ptr noundef nonnull align 8 dereferenceable(16) %2614) #11
  %2619 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef %2618)
          to label %2620 unwind label %2656

2620:                                             ; preds = %2611
  br i1 %2619, label %2621, label %2664

2621:                                             ; preds = %2620
  %2622 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr noundef nonnull align 1 dereferenceable(96) @.str.1114)
          to label %2623 unwind label %2656

2623:                                             ; preds = %2621
  %2624 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2622, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2625 unwind label %2656

2625:                                             ; preds = %2623
  %2626 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2624, ptr noundef nonnull align 8 dereferenceable(32) %198)
          to label %2627 unwind label %2656

2627:                                             ; preds = %2625
  %2628 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2626, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2629 unwind label %2656

2629:                                             ; preds = %2627
  %2630 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2628, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2631 unwind label %2656

2631:                                             ; preds = %2629
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #11
  %2632 = load ptr, ptr %207, align 8, !tbaa !5
  %2633 = load ptr, ptr %2632, align 8, !tbaa !13
  %2634 = getelementptr inbounds ptr, ptr %2633, i64 2
  %2635 = load ptr, ptr %2634, align 8
  %2636 = call noundef ptr %2635(ptr noundef nonnull align 8 dereferenceable(16) %2632) #11
  store ptr %2636, ptr %208, align 8, !tbaa !5
  %2637 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2630, ptr noundef nonnull align 8 dereferenceable(8) %208)
          to label %2638 unwind label %2660

2638:                                             ; preds = %2631
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #11
  store i32 16, ptr %15, align 4
  br label %2665

2639:                                             ; preds = %2607
  %2640 = load ptr, ptr %5, align 8
  %2641 = call ptr @__cxa_begin_catch(ptr %2640) #11
  %2642 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr noundef nonnull align 1 dereferenceable(139) @.str.1113)
          to label %2643 unwind label %2646

2643:                                             ; preds = %2639
  store i32 16, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2650 unwind label %2651

2644:                                             ; preds = %2566
  br label %2645

2645:                                             ; preds = %2644, %2589
  br label %2669

2646:                                             ; preds = %2639
  %2647 = landingpad { ptr, i32 }
          cleanup
  %2648 = extractvalue { ptr, i32 } %2647, 0
  store ptr %2648, ptr %5, align 8
  %2649 = extractvalue { ptr, i32 } %2647, 1
  store i32 %2649, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2655 unwind label %5219

2650:                                             ; preds = %2643
  br label %2683

2651:                                             ; preds = %2672, %2643
  %2652 = landingpad { ptr, i32 }
          cleanup
  %2653 = extractvalue { ptr, i32 } %2652, 0
  store ptr %2653, ptr %5, align 8
  %2654 = extractvalue { ptr, i32 } %2652, 1
  store i32 %2654, ptr %6, align 4
  br label %2686

2655:                                             ; preds = %2646
  br label %2686

2656:                                             ; preds = %2629, %2627, %2625, %2623, %2621, %2611
  %2657 = landingpad { ptr, i32 }
          cleanup
  %2658 = extractvalue { ptr, i32 } %2657, 0
  store ptr %2658, ptr %5, align 8
  %2659 = extractvalue { ptr, i32 } %2657, 1
  store i32 %2659, ptr %6, align 4
  br label %2679

2660:                                             ; preds = %2631
  %2661 = landingpad { ptr, i32 }
          cleanup
  %2662 = extractvalue { ptr, i32 } %2661, 0
  store ptr %2662, ptr %5, align 8
  %2663 = extractvalue { ptr, i32 } %2661, 1
  store i32 %2663, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #11
  br label %2679

2664:                                             ; preds = %2620
  store i8 1, ptr %200, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2665

2665:                                             ; preds = %2664, %2638
  invoke void @__cxa_end_catch()
          to label %2666 unwind label %2675

2666:                                             ; preds = %2665
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #11
  %2667 = load i32, ptr %15, align 4
  switch i32 %2667, label %2683 [
    i32 0, label %2668
  ]

2668:                                             ; preds = %2666
  br label %2669

2669:                                             ; preds = %2668, %2645
  %2670 = load i8, ptr %200, align 1, !tbaa !9, !range !15, !noundef !16
  %2671 = trunc i8 %2670 to i1
  br i1 %2671, label %2682, label %2672

2672:                                             ; preds = %2669
  %2673 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr noundef nonnull align 1 dereferenceable(130) @.str.1115)
          to label %2674 unwind label %2651

2674:                                             ; preds = %2672
  store i32 16, ptr %15, align 4
  br label %2683

2675:                                             ; preds = %2665
  %2676 = landingpad { ptr, i32 }
          cleanup
  %2677 = extractvalue { ptr, i32 } %2676, 0
  store ptr %2677, ptr %5, align 8
  %2678 = extractvalue { ptr, i32 } %2676, 1
  store i32 %2678, ptr %6, align 4
  br label %2681

2679:                                             ; preds = %2660, %2656
  invoke void @__cxa_end_catch()
          to label %2680 unwind label %5219

2680:                                             ; preds = %2679
  br label %2681

2681:                                             ; preds = %2680, %2675
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #11
  br label %2686

2682:                                             ; preds = %2669
  store i32 0, ptr %15, align 4
  br label %2683

2683:                                             ; preds = %2682, %2674, %2666, %2650
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #11
  %2684 = load i32, ptr %15, align 4
  switch i32 %2684, label %5222 [
    i32 0, label %2685
    i32 16, label %2689
  ]

2685:                                             ; preds = %2683
  br label %2709

2686:                                             ; preds = %2681, %2655, %2651
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #11
  br label %2687

2687:                                             ; preds = %2686, %2595
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #11
  br label %2739

2688:                                             ; preds = %2562
  br label %2689

2689:                                             ; preds = %2688, %2683
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %209)
          to label %2690 unwind label %2695

2690:                                             ; preds = %2689
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #11
  %2691 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %197)
          to label %2692 unwind label %2699

2692:                                             ; preds = %2690
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %210, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1090, ptr noundef %2691)
          to label %2693 unwind label %2699

2693:                                             ; preds = %2692
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %210, ptr noundef nonnull align 8 dereferenceable(8) %209)
          to label %2694 unwind label %2703

2694:                                             ; preds = %2693
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %210) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %209) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #11
  br label %2709

2695:                                             ; preds = %2689
  %2696 = landingpad { ptr, i32 }
          cleanup
  %2697 = extractvalue { ptr, i32 } %2696, 0
  store ptr %2697, ptr %5, align 8
  %2698 = extractvalue { ptr, i32 } %2696, 1
  store i32 %2698, ptr %6, align 4
  br label %2708

2699:                                             ; preds = %2692, %2690
  %2700 = landingpad { ptr, i32 }
          cleanup
  %2701 = extractvalue { ptr, i32 } %2700, 0
  store ptr %2701, ptr %5, align 8
  %2702 = extractvalue { ptr, i32 } %2700, 1
  store i32 %2702, ptr %6, align 4
  br label %2707

2703:                                             ; preds = %2693
  %2704 = landingpad { ptr, i32 }
          cleanup
  %2705 = extractvalue { ptr, i32 } %2704, 0
  store ptr %2705, ptr %5, align 8
  %2706 = extractvalue { ptr, i32 } %2704, 1
  store i32 %2706, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %210) #11
  br label %2707

2707:                                             ; preds = %2703, %2699
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %209) #11
  br label %2708

2708:                                             ; preds = %2707, %2695
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #11
  br label %2739

2709:                                             ; preds = %2694, %2685
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %197) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %197) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %211) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %211)
  %2710 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %211)
          to label %2711 unwind label %2740

2711:                                             ; preds = %2709
  br i1 %2710, label %2712, label %2837

2712:                                             ; preds = %2711
  call void @llvm.lifetime.start.p0(i64 32, ptr %212) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %213) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef @.str.1112, ptr noundef nonnull align 1 dereferenceable(1) %213)
          to label %2713 unwind label %2744

2713:                                             ; preds = %2712
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %213) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %214) #11
  store i8 0, ptr %214, align 1, !tbaa !9
  %2714 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2715 unwind label %2748

2715:                                             ; preds = %2713
  br i1 %2714, label %2716, label %2793

2716:                                             ; preds = %2715
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %218, ptr noundef @.str.1088)
          to label %2717 unwind label %2748

2717:                                             ; preds = %2716
  %2718 = getelementptr inbounds { ptr, i64 }, ptr %218, i32 0, i32 0
  %2719 = load ptr, ptr %2718, align 8
  %2720 = getelementptr inbounds { ptr, i64 }, ptr %218, i32 0, i32 1
  %2721 = load i64, ptr %2720, align 8
  %2722 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2719, i64 %2721)
          to label %2723 unwind label %2748

2723:                                             ; preds = %2717
  %2724 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %217, i32 0, i32 0
  %2725 = getelementptr inbounds { ptr, i64 }, ptr %2724, i32 0, i32 0
  %2726 = extractvalue { ptr, i64 } %2722, 0
  store ptr %2726, ptr %2725, align 8
  %2727 = getelementptr inbounds { ptr, i64 }, ptr %2724, i32 0, i32 1
  %2728 = extractvalue { ptr, i64 } %2722, 1
  store i64 %2728, ptr %2727, align 8
  %2729 = getelementptr inbounds { ptr, i64 }, ptr %217, i32 0, i32 0
  %2730 = load ptr, ptr %2729, align 8
  %2731 = getelementptr inbounds { ptr, i64 }, ptr %217, i32 0, i32 1
  %2732 = load i64, ptr %2731, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJddEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %216, ptr %2730, i64 %2732)
          to label %2733 unwind label %2748

2733:                                             ; preds = %2723
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #11
  store double 0.000000e+00, ptr %219, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %220) #11
  store double 0.000000e+00, ptr %220, align 8, !tbaa !11
  %2734 = getelementptr inbounds { ptr, i64 }, ptr %216, i32 0, i32 0
  %2735 = load ptr, ptr %2734, align 8
  %2736 = getelementptr inbounds { ptr, i64 }, ptr %216, i32 0, i32 1
  %2737 = load i64, ptr %2736, align 8
  invoke void @_ZN3fmt3v106formatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %215, ptr %2735, i64 %2737, ptr noundef nonnull align 8 dereferenceable(8) %219, ptr noundef nonnull align 8 dereferenceable(8) %220)
          to label %2738 unwind label %2752

2738:                                             ; preds = %2733
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #11
  br label %2794

2739:                                             ; preds = %2708, %2687, %2591
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %197) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %197) #11
  br label %5212

2740:                                             ; preds = %2709
  %2741 = landingpad { ptr, i32 }
          cleanup
  %2742 = extractvalue { ptr, i32 } %2741, 0
  store ptr %2742, ptr %5, align 8
  %2743 = extractvalue { ptr, i32 } %2741, 1
  store i32 %2743, ptr %6, align 4
  br label %2888

2744:                                             ; preds = %2712
  %2745 = landingpad { ptr, i32 }
          cleanup
  %2746 = extractvalue { ptr, i32 } %2745, 0
  store ptr %2746, ptr %5, align 8
  %2747 = extractvalue { ptr, i32 } %2745, 1
  store i32 %2747, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %213) #11
  br label %2836

2748:                                             ; preds = %2723, %2717, %2716, %2713
  %2749 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2750 = extractvalue { ptr, i32 } %2749, 0
  store ptr %2750, ptr %5, align 8
  %2751 = extractvalue { ptr, i32 } %2749, 1
  store i32 %2751, ptr %6, align 4
  br label %2756

2752:                                             ; preds = %2733
  %2753 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2754 = extractvalue { ptr, i32 } %2753, 0
  store ptr %2754, ptr %5, align 8
  %2755 = extractvalue { ptr, i32 } %2753, 1
  store i32 %2755, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #11
  br label %2756

2756:                                             ; preds = %2752, %2748
  %2757 = load i32, ptr %6, align 4
  %2758 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2759 = icmp eq i32 %2757, %2758
  br i1 %2759, label %2760, label %2788

2760:                                             ; preds = %2756
  call void @llvm.lifetime.start.p0(i64 8, ptr %221) #11
  %2761 = load ptr, ptr %5, align 8
  %2762 = call ptr @__cxa_begin_catch(ptr %2761) #11
  store ptr %2762, ptr %221, align 8
  %2763 = load ptr, ptr %221, align 8, !tbaa !5
  %2764 = load ptr, ptr %2763, align 8, !tbaa !13
  %2765 = getelementptr inbounds ptr, ptr %2764, i64 2
  %2766 = load ptr, ptr %2765, align 8
  %2767 = call noundef ptr %2766(ptr noundef nonnull align 8 dereferenceable(16) %2763) #11
  %2768 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef %2767)
          to label %2769 unwind label %2805

2769:                                             ; preds = %2760
  br i1 %2768, label %2770, label %2813

2770:                                             ; preds = %2769
  %2771 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %211, ptr noundef nonnull align 1 dereferenceable(96) @.str.1117)
          to label %2772 unwind label %2805

2772:                                             ; preds = %2770
  %2773 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2771, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2774 unwind label %2805

2774:                                             ; preds = %2772
  %2775 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2773, ptr noundef nonnull align 8 dereferenceable(32) %212)
          to label %2776 unwind label %2805

2776:                                             ; preds = %2774
  %2777 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2775, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2778 unwind label %2805

2778:                                             ; preds = %2776
  %2779 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2777, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2780 unwind label %2805

2780:                                             ; preds = %2778
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #11
  %2781 = load ptr, ptr %221, align 8, !tbaa !5
  %2782 = load ptr, ptr %2781, align 8, !tbaa !13
  %2783 = getelementptr inbounds ptr, ptr %2782, i64 2
  %2784 = load ptr, ptr %2783, align 8
  %2785 = call noundef ptr %2784(ptr noundef nonnull align 8 dereferenceable(16) %2781) #11
  store ptr %2785, ptr %222, align 8, !tbaa !5
  %2786 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2779, ptr noundef nonnull align 8 dereferenceable(8) %222)
          to label %2787 unwind label %2809

2787:                                             ; preds = %2780
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #11
  store i32 17, ptr %15, align 4
  br label %2814

2788:                                             ; preds = %2756
  %2789 = load ptr, ptr %5, align 8
  %2790 = call ptr @__cxa_begin_catch(ptr %2789) #11
  %2791 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %211, ptr noundef nonnull align 1 dereferenceable(139) @.str.1116)
          to label %2792 unwind label %2795

2792:                                             ; preds = %2788
  store i32 17, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2799 unwind label %2800

2793:                                             ; preds = %2715
  br label %2794

2794:                                             ; preds = %2793, %2738
  br label %2818

2795:                                             ; preds = %2788
  %2796 = landingpad { ptr, i32 }
          cleanup
  %2797 = extractvalue { ptr, i32 } %2796, 0
  store ptr %2797, ptr %5, align 8
  %2798 = extractvalue { ptr, i32 } %2796, 1
  store i32 %2798, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2804 unwind label %5219

2799:                                             ; preds = %2792
  br label %2832

2800:                                             ; preds = %2821, %2792
  %2801 = landingpad { ptr, i32 }
          cleanup
  %2802 = extractvalue { ptr, i32 } %2801, 0
  store ptr %2802, ptr %5, align 8
  %2803 = extractvalue { ptr, i32 } %2801, 1
  store i32 %2803, ptr %6, align 4
  br label %2835

2804:                                             ; preds = %2795
  br label %2835

2805:                                             ; preds = %2778, %2776, %2774, %2772, %2770, %2760
  %2806 = landingpad { ptr, i32 }
          cleanup
  %2807 = extractvalue { ptr, i32 } %2806, 0
  store ptr %2807, ptr %5, align 8
  %2808 = extractvalue { ptr, i32 } %2806, 1
  store i32 %2808, ptr %6, align 4
  br label %2828

2809:                                             ; preds = %2780
  %2810 = landingpad { ptr, i32 }
          cleanup
  %2811 = extractvalue { ptr, i32 } %2810, 0
  store ptr %2811, ptr %5, align 8
  %2812 = extractvalue { ptr, i32 } %2810, 1
  store i32 %2812, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #11
  br label %2828

2813:                                             ; preds = %2769
  store i8 1, ptr %214, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2814

2814:                                             ; preds = %2813, %2787
  invoke void @__cxa_end_catch()
          to label %2815 unwind label %2824

2815:                                             ; preds = %2814
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #11
  %2816 = load i32, ptr %15, align 4
  switch i32 %2816, label %2832 [
    i32 0, label %2817
  ]

2817:                                             ; preds = %2815
  br label %2818

2818:                                             ; preds = %2817, %2794
  %2819 = load i8, ptr %214, align 1, !tbaa !9, !range !15, !noundef !16
  %2820 = trunc i8 %2819 to i1
  br i1 %2820, label %2831, label %2821

2821:                                             ; preds = %2818
  %2822 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %211, ptr noundef nonnull align 1 dereferenceable(130) @.str.1118)
          to label %2823 unwind label %2800

2823:                                             ; preds = %2821
  store i32 17, ptr %15, align 4
  br label %2832

2824:                                             ; preds = %2814
  %2825 = landingpad { ptr, i32 }
          cleanup
  %2826 = extractvalue { ptr, i32 } %2825, 0
  store ptr %2826, ptr %5, align 8
  %2827 = extractvalue { ptr, i32 } %2825, 1
  store i32 %2827, ptr %6, align 4
  br label %2830

2828:                                             ; preds = %2809, %2805
  invoke void @__cxa_end_catch()
          to label %2829 unwind label %5219

2829:                                             ; preds = %2828
  br label %2830

2830:                                             ; preds = %2829, %2824
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #11
  br label %2835

2831:                                             ; preds = %2818
  store i32 0, ptr %15, align 4
  br label %2832

2832:                                             ; preds = %2831, %2823, %2815, %2799
  call void @llvm.lifetime.end.p0(i64 1, ptr %214) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #11
  %2833 = load i32, ptr %15, align 4
  switch i32 %2833, label %5222 [
    i32 0, label %2834
    i32 17, label %2838
  ]

2834:                                             ; preds = %2832
  br label %2858

2835:                                             ; preds = %2830, %2804, %2800
  call void @llvm.lifetime.end.p0(i64 1, ptr %214) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #11
  br label %2836

2836:                                             ; preds = %2835, %2744
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #11
  br label %2888

2837:                                             ; preds = %2711
  br label %2838

2838:                                             ; preds = %2837, %2832
  call void @llvm.lifetime.start.p0(i64 8, ptr %223) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %223)
          to label %2839 unwind label %2844

2839:                                             ; preds = %2838
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #11
  %2840 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %211)
          to label %2841 unwind label %2848

2841:                                             ; preds = %2839
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %224, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1092, ptr noundef %2840)
          to label %2842 unwind label %2848

2842:                                             ; preds = %2841
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %224, ptr noundef nonnull align 8 dereferenceable(8) %223)
          to label %2843 unwind label %2852

2843:                                             ; preds = %2842
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %224) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %223) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #11
  br label %2858

2844:                                             ; preds = %2838
  %2845 = landingpad { ptr, i32 }
          cleanup
  %2846 = extractvalue { ptr, i32 } %2845, 0
  store ptr %2846, ptr %5, align 8
  %2847 = extractvalue { ptr, i32 } %2845, 1
  store i32 %2847, ptr %6, align 4
  br label %2857

2848:                                             ; preds = %2841, %2839
  %2849 = landingpad { ptr, i32 }
          cleanup
  %2850 = extractvalue { ptr, i32 } %2849, 0
  store ptr %2850, ptr %5, align 8
  %2851 = extractvalue { ptr, i32 } %2849, 1
  store i32 %2851, ptr %6, align 4
  br label %2856

2852:                                             ; preds = %2842
  %2853 = landingpad { ptr, i32 }
          cleanup
  %2854 = extractvalue { ptr, i32 } %2853, 0
  store ptr %2854, ptr %5, align 8
  %2855 = extractvalue { ptr, i32 } %2853, 1
  store i32 %2855, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %224) #11
  br label %2856

2856:                                             ; preds = %2852, %2848
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %223) #11
  br label %2857

2857:                                             ; preds = %2856, %2844
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #11
  br label %2888

2858:                                             ; preds = %2843, %2834
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %211) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %211) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %225) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %225)
  %2859 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %225)
          to label %2860 unwind label %2889

2860:                                             ; preds = %2858
  br i1 %2859, label %2861, label %2986

2861:                                             ; preds = %2860
  call void @llvm.lifetime.start.p0(i64 32, ptr %226) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %227) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %227)
          to label %2862 unwind label %2893

2862:                                             ; preds = %2861
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %227) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %228) #11
  store i8 0, ptr %228, align 1, !tbaa !9
  %2863 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2864 unwind label %2897

2864:                                             ; preds = %2862
  br i1 %2863, label %2865, label %2942

2865:                                             ; preds = %2864
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %232, ptr noundef @.str.1088)
          to label %2866 unwind label %2897

2866:                                             ; preds = %2865
  %2867 = getelementptr inbounds { ptr, i64 }, ptr %232, i32 0, i32 0
  %2868 = load ptr, ptr %2867, align 8
  %2869 = getelementptr inbounds { ptr, i64 }, ptr %232, i32 0, i32 1
  %2870 = load i64, ptr %2869, align 8
  %2871 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2868, i64 %2870)
          to label %2872 unwind label %2897

2872:                                             ; preds = %2866
  %2873 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %231, i32 0, i32 0
  %2874 = getelementptr inbounds { ptr, i64 }, ptr %2873, i32 0, i32 0
  %2875 = extractvalue { ptr, i64 } %2871, 0
  store ptr %2875, ptr %2874, align 8
  %2876 = getelementptr inbounds { ptr, i64 }, ptr %2873, i32 0, i32 1
  %2877 = extractvalue { ptr, i64 } %2871, 1
  store i64 %2877, ptr %2876, align 8
  %2878 = getelementptr inbounds { ptr, i64 }, ptr %231, i32 0, i32 0
  %2879 = load ptr, ptr %2878, align 8
  %2880 = getelementptr inbounds { ptr, i64 }, ptr %231, i32 0, i32 1
  %2881 = load i64, ptr %2880, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %230, ptr %2879, i64 %2881)
          to label %2882 unwind label %2897

2882:                                             ; preds = %2872
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #11
  store i32 42, ptr %233, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #11
  store i32 2, ptr %234, align 4, !tbaa !20
  %2883 = getelementptr inbounds { ptr, i64 }, ptr %230, i32 0, i32 0
  %2884 = load ptr, ptr %2883, align 8
  %2885 = getelementptr inbounds { ptr, i64 }, ptr %230, i32 0, i32 1
  %2886 = load i64, ptr %2885, align 8
  invoke void @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %229, ptr %2884, i64 %2886, ptr noundef nonnull align 4 dereferenceable(4) %233, ptr noundef nonnull align 4 dereferenceable(4) %234)
          to label %2887 unwind label %2901

2887:                                             ; preds = %2882
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #11
  br label %2943

2888:                                             ; preds = %2857, %2836, %2740
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %211) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %211) #11
  br label %5212

2889:                                             ; preds = %2858
  %2890 = landingpad { ptr, i32 }
          cleanup
  %2891 = extractvalue { ptr, i32 } %2890, 0
  store ptr %2891, ptr %5, align 8
  %2892 = extractvalue { ptr, i32 } %2890, 1
  store i32 %2892, ptr %6, align 4
  br label %3037

2893:                                             ; preds = %2861
  %2894 = landingpad { ptr, i32 }
          cleanup
  %2895 = extractvalue { ptr, i32 } %2894, 0
  store ptr %2895, ptr %5, align 8
  %2896 = extractvalue { ptr, i32 } %2894, 1
  store i32 %2896, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %227) #11
  br label %2985

2897:                                             ; preds = %2872, %2866, %2865, %2862
  %2898 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2899 = extractvalue { ptr, i32 } %2898, 0
  store ptr %2899, ptr %5, align 8
  %2900 = extractvalue { ptr, i32 } %2898, 1
  store i32 %2900, ptr %6, align 4
  br label %2905

2901:                                             ; preds = %2882
  %2902 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2903 = extractvalue { ptr, i32 } %2902, 0
  store ptr %2903, ptr %5, align 8
  %2904 = extractvalue { ptr, i32 } %2902, 1
  store i32 %2904, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #11
  br label %2905

2905:                                             ; preds = %2901, %2897
  %2906 = load i32, ptr %6, align 4
  %2907 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2908 = icmp eq i32 %2906, %2907
  br i1 %2908, label %2909, label %2937

2909:                                             ; preds = %2905
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #11
  %2910 = load ptr, ptr %5, align 8
  %2911 = call ptr @__cxa_begin_catch(ptr %2910) #11
  store ptr %2911, ptr %235, align 8
  %2912 = load ptr, ptr %235, align 8, !tbaa !5
  %2913 = load ptr, ptr %2912, align 8, !tbaa !13
  %2914 = getelementptr inbounds ptr, ptr %2913, i64 2
  %2915 = load ptr, ptr %2914, align 8
  %2916 = call noundef ptr %2915(ptr noundef nonnull align 8 dereferenceable(16) %2912) #11
  %2917 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef %2916)
          to label %2918 unwind label %2954

2918:                                             ; preds = %2909
  br i1 %2917, label %2919, label %2962

2919:                                             ; preds = %2918
  %2920 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA93_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %225, ptr noundef nonnull align 1 dereferenceable(93) @.str.1120)
          to label %2921 unwind label %2954

2921:                                             ; preds = %2919
  %2922 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2920, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2923 unwind label %2954

2923:                                             ; preds = %2921
  %2924 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2922, ptr noundef nonnull align 8 dereferenceable(32) %226)
          to label %2925 unwind label %2954

2925:                                             ; preds = %2923
  %2926 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2924, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2927 unwind label %2954

2927:                                             ; preds = %2925
  %2928 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2926, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2929 unwind label %2954

2929:                                             ; preds = %2927
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #11
  %2930 = load ptr, ptr %235, align 8, !tbaa !5
  %2931 = load ptr, ptr %2930, align 8, !tbaa !13
  %2932 = getelementptr inbounds ptr, ptr %2931, i64 2
  %2933 = load ptr, ptr %2932, align 8
  %2934 = call noundef ptr %2933(ptr noundef nonnull align 8 dereferenceable(16) %2930) #11
  store ptr %2934, ptr %236, align 8, !tbaa !5
  %2935 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2928, ptr noundef nonnull align 8 dereferenceable(8) %236)
          to label %2936 unwind label %2958

2936:                                             ; preds = %2929
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #11
  store i32 18, ptr %15, align 4
  br label %2963

2937:                                             ; preds = %2905
  %2938 = load ptr, ptr %5, align 8
  %2939 = call ptr @__cxa_begin_catch(ptr %2938) #11
  %2940 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA136_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %225, ptr noundef nonnull align 1 dereferenceable(136) @.str.1119)
          to label %2941 unwind label %2944

2941:                                             ; preds = %2937
  store i32 18, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2948 unwind label %2949

2942:                                             ; preds = %2864
  br label %2943

2943:                                             ; preds = %2942, %2887
  br label %2967

2944:                                             ; preds = %2937
  %2945 = landingpad { ptr, i32 }
          cleanup
  %2946 = extractvalue { ptr, i32 } %2945, 0
  store ptr %2946, ptr %5, align 8
  %2947 = extractvalue { ptr, i32 } %2945, 1
  store i32 %2947, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2953 unwind label %5219

2948:                                             ; preds = %2941
  br label %2981

2949:                                             ; preds = %2970, %2941
  %2950 = landingpad { ptr, i32 }
          cleanup
  %2951 = extractvalue { ptr, i32 } %2950, 0
  store ptr %2951, ptr %5, align 8
  %2952 = extractvalue { ptr, i32 } %2950, 1
  store i32 %2952, ptr %6, align 4
  br label %2984

2953:                                             ; preds = %2944
  br label %2984

2954:                                             ; preds = %2927, %2925, %2923, %2921, %2919, %2909
  %2955 = landingpad { ptr, i32 }
          cleanup
  %2956 = extractvalue { ptr, i32 } %2955, 0
  store ptr %2956, ptr %5, align 8
  %2957 = extractvalue { ptr, i32 } %2955, 1
  store i32 %2957, ptr %6, align 4
  br label %2977

2958:                                             ; preds = %2929
  %2959 = landingpad { ptr, i32 }
          cleanup
  %2960 = extractvalue { ptr, i32 } %2959, 0
  store ptr %2960, ptr %5, align 8
  %2961 = extractvalue { ptr, i32 } %2959, 1
  store i32 %2961, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #11
  br label %2977

2962:                                             ; preds = %2918
  store i8 1, ptr %228, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2963

2963:                                             ; preds = %2962, %2936
  invoke void @__cxa_end_catch()
          to label %2964 unwind label %2973

2964:                                             ; preds = %2963
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #11
  %2965 = load i32, ptr %15, align 4
  switch i32 %2965, label %2981 [
    i32 0, label %2966
  ]

2966:                                             ; preds = %2964
  br label %2967

2967:                                             ; preds = %2966, %2943
  %2968 = load i8, ptr %228, align 1, !tbaa !9, !range !15, !noundef !16
  %2969 = trunc i8 %2968 to i1
  br i1 %2969, label %2980, label %2970

2970:                                             ; preds = %2967
  %2971 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA127_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %225, ptr noundef nonnull align 1 dereferenceable(127) @.str.1121)
          to label %2972 unwind label %2949

2972:                                             ; preds = %2970
  store i32 18, ptr %15, align 4
  br label %2981

2973:                                             ; preds = %2963
  %2974 = landingpad { ptr, i32 }
          cleanup
  %2975 = extractvalue { ptr, i32 } %2974, 0
  store ptr %2975, ptr %5, align 8
  %2976 = extractvalue { ptr, i32 } %2974, 1
  store i32 %2976, ptr %6, align 4
  br label %2979

2977:                                             ; preds = %2958, %2954
  invoke void @__cxa_end_catch()
          to label %2978 unwind label %5219

2978:                                             ; preds = %2977
  br label %2979

2979:                                             ; preds = %2978, %2973
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #11
  br label %2984

2980:                                             ; preds = %2967
  store i32 0, ptr %15, align 4
  br label %2981

2981:                                             ; preds = %2980, %2972, %2964, %2948
  call void @llvm.lifetime.end.p0(i64 1, ptr %228) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #11
  %2982 = load i32, ptr %15, align 4
  switch i32 %2982, label %5222 [
    i32 0, label %2983
    i32 18, label %2987
  ]

2983:                                             ; preds = %2981
  br label %3007

2984:                                             ; preds = %2979, %2953, %2949
  call void @llvm.lifetime.end.p0(i64 1, ptr %228) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #11
  br label %2985

2985:                                             ; preds = %2984, %2893
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #11
  br label %3037

2986:                                             ; preds = %2860
  br label %2987

2987:                                             ; preds = %2986, %2981
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %237)
          to label %2988 unwind label %2993

2988:                                             ; preds = %2987
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #11
  %2989 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %225)
          to label %2990 unwind label %2997

2990:                                             ; preds = %2988
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %238, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1095, ptr noundef %2989)
          to label %2991 unwind label %2997

2991:                                             ; preds = %2990
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %238, ptr noundef nonnull align 8 dereferenceable(8) %237)
          to label %2992 unwind label %3001

2992:                                             ; preds = %2991
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %238) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %237) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #11
  br label %3007

2993:                                             ; preds = %2987
  %2994 = landingpad { ptr, i32 }
          cleanup
  %2995 = extractvalue { ptr, i32 } %2994, 0
  store ptr %2995, ptr %5, align 8
  %2996 = extractvalue { ptr, i32 } %2994, 1
  store i32 %2996, ptr %6, align 4
  br label %3006

2997:                                             ; preds = %2990, %2988
  %2998 = landingpad { ptr, i32 }
          cleanup
  %2999 = extractvalue { ptr, i32 } %2998, 0
  store ptr %2999, ptr %5, align 8
  %3000 = extractvalue { ptr, i32 } %2998, 1
  store i32 %3000, ptr %6, align 4
  br label %3005

3001:                                             ; preds = %2991
  %3002 = landingpad { ptr, i32 }
          cleanup
  %3003 = extractvalue { ptr, i32 } %3002, 0
  store ptr %3003, ptr %5, align 8
  %3004 = extractvalue { ptr, i32 } %3002, 1
  store i32 %3004, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %238) #11
  br label %3005

3005:                                             ; preds = %3001, %2997
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %237) #11
  br label %3006

3006:                                             ; preds = %3005, %2993
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #11
  br label %3037

3007:                                             ; preds = %2992, %2983
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %225) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %225) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %239) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %239)
  %3008 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %239)
          to label %3009 unwind label %3038

3009:                                             ; preds = %3007
  br i1 %3008, label %3010, label %3135

3010:                                             ; preds = %3009
  call void @llvm.lifetime.start.p0(i64 32, ptr %240) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %241) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %241)
          to label %3011 unwind label %3042

3011:                                             ; preds = %3010
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %242) #11
  store i8 0, ptr %242, align 1, !tbaa !9
  %3012 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %3013 unwind label %3046

3013:                                             ; preds = %3011
  br i1 %3012, label %3014, label %3091

3014:                                             ; preds = %3013
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %246, ptr noundef @.str.1122)
          to label %3015 unwind label %3046

3015:                                             ; preds = %3014
  %3016 = getelementptr inbounds { ptr, i64 }, ptr %246, i32 0, i32 0
  %3017 = load ptr, ptr %3016, align 8
  %3018 = getelementptr inbounds { ptr, i64 }, ptr %246, i32 0, i32 1
  %3019 = load i64, ptr %3018, align 8
  %3020 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %3017, i64 %3019)
          to label %3021 unwind label %3046

3021:                                             ; preds = %3015
  %3022 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %245, i32 0, i32 0
  %3023 = getelementptr inbounds { ptr, i64 }, ptr %3022, i32 0, i32 0
  %3024 = extractvalue { ptr, i64 } %3020, 0
  store ptr %3024, ptr %3023, align 8
  %3025 = getelementptr inbounds { ptr, i64 }, ptr %3022, i32 0, i32 1
  %3026 = extractvalue { ptr, i64 } %3020, 1
  store i64 %3026, ptr %3025, align 8
  %3027 = getelementptr inbounds { ptr, i64 }, ptr %245, i32 0, i32 0
  %3028 = load ptr, ptr %3027, align 8
  %3029 = getelementptr inbounds { ptr, i64 }, ptr %245, i32 0, i32 1
  %3030 = load i64, ptr %3029, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %244, ptr %3028, i64 %3030)
          to label %3031 unwind label %3046

3031:                                             ; preds = %3021
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #11
  store i32 42, ptr %247, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #11
  store i32 2, ptr %248, align 4, !tbaa !20
  %3032 = getelementptr inbounds { ptr, i64 }, ptr %244, i32 0, i32 0
  %3033 = load ptr, ptr %3032, align 8
  %3034 = getelementptr inbounds { ptr, i64 }, ptr %244, i32 0, i32 1
  %3035 = load i64, ptr %3034, align 8
  invoke void @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %243, ptr %3033, i64 %3035, ptr noundef nonnull align 4 dereferenceable(4) %247, ptr noundef nonnull align 4 dereferenceable(4) %248)
          to label %3036 unwind label %3050

3036:                                             ; preds = %3031
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #11
  br label %3092

3037:                                             ; preds = %3006, %2985, %2889
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %225) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %225) #11
  br label %5212

3038:                                             ; preds = %3007
  %3039 = landingpad { ptr, i32 }
          cleanup
  %3040 = extractvalue { ptr, i32 } %3039, 0
  store ptr %3040, ptr %5, align 8
  %3041 = extractvalue { ptr, i32 } %3039, 1
  store i32 %3041, ptr %6, align 4
  br label %3186

3042:                                             ; preds = %3010
  %3043 = landingpad { ptr, i32 }
          cleanup
  %3044 = extractvalue { ptr, i32 } %3043, 0
  store ptr %3044, ptr %5, align 8
  %3045 = extractvalue { ptr, i32 } %3043, 1
  store i32 %3045, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #11
  br label %3134

3046:                                             ; preds = %3021, %3015, %3014, %3011
  %3047 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3048 = extractvalue { ptr, i32 } %3047, 0
  store ptr %3048, ptr %5, align 8
  %3049 = extractvalue { ptr, i32 } %3047, 1
  store i32 %3049, ptr %6, align 4
  br label %3054

3050:                                             ; preds = %3031
  %3051 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3052 = extractvalue { ptr, i32 } %3051, 0
  store ptr %3052, ptr %5, align 8
  %3053 = extractvalue { ptr, i32 } %3051, 1
  store i32 %3053, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #11
  br label %3054

3054:                                             ; preds = %3050, %3046
  %3055 = load i32, ptr %6, align 4
  %3056 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %3057 = icmp eq i32 %3055, %3056
  br i1 %3057, label %3058, label %3086

3058:                                             ; preds = %3054
  call void @llvm.lifetime.start.p0(i64 8, ptr %249) #11
  %3059 = load ptr, ptr %5, align 8
  %3060 = call ptr @__cxa_begin_catch(ptr %3059) #11
  store ptr %3060, ptr %249, align 8
  %3061 = load ptr, ptr %249, align 8, !tbaa !5
  %3062 = load ptr, ptr %3061, align 8, !tbaa !13
  %3063 = getelementptr inbounds ptr, ptr %3062, i64 2
  %3064 = load ptr, ptr %3063, align 8
  %3065 = call noundef ptr %3064(ptr noundef nonnull align 8 dereferenceable(16) %3061) #11
  %3066 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef %3065)
          to label %3067 unwind label %3103

3067:                                             ; preds = %3058
  br i1 %3066, label %3068, label %3111

3068:                                             ; preds = %3067
  %3069 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA94_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %239, ptr noundef nonnull align 1 dereferenceable(94) @.str.1124)
          to label %3070 unwind label %3103

3070:                                             ; preds = %3068
  %3071 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3069, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %3072 unwind label %3103

3072:                                             ; preds = %3070
  %3073 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3071, ptr noundef nonnull align 8 dereferenceable(32) %240)
          to label %3074 unwind label %3103

3074:                                             ; preds = %3072
  %3075 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3073, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3076 unwind label %3103

3076:                                             ; preds = %3074
  %3077 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3075, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3078 unwind label %3103

3078:                                             ; preds = %3076
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #11
  %3079 = load ptr, ptr %249, align 8, !tbaa !5
  %3080 = load ptr, ptr %3079, align 8, !tbaa !13
  %3081 = getelementptr inbounds ptr, ptr %3080, i64 2
  %3082 = load ptr, ptr %3081, align 8
  %3083 = call noundef ptr %3082(ptr noundef nonnull align 8 dereferenceable(16) %3079) #11
  store ptr %3083, ptr %250, align 8, !tbaa !5
  %3084 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3077, ptr noundef nonnull align 8 dereferenceable(8) %250)
          to label %3085 unwind label %3107

3085:                                             ; preds = %3078
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #11
  store i32 19, ptr %15, align 4
  br label %3112

3086:                                             ; preds = %3054
  %3087 = load ptr, ptr %5, align 8
  %3088 = call ptr @__cxa_begin_catch(ptr %3087) #11
  %3089 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA137_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %239, ptr noundef nonnull align 1 dereferenceable(137) @.str.1123)
          to label %3090 unwind label %3093

3090:                                             ; preds = %3086
  store i32 19, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %3097 unwind label %3098

3091:                                             ; preds = %3013
  br label %3092

3092:                                             ; preds = %3091, %3036
  br label %3116

3093:                                             ; preds = %3086
  %3094 = landingpad { ptr, i32 }
          cleanup
  %3095 = extractvalue { ptr, i32 } %3094, 0
  store ptr %3095, ptr %5, align 8
  %3096 = extractvalue { ptr, i32 } %3094, 1
  store i32 %3096, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %3102 unwind label %5219

3097:                                             ; preds = %3090
  br label %3130

3098:                                             ; preds = %3119, %3090
  %3099 = landingpad { ptr, i32 }
          cleanup
  %3100 = extractvalue { ptr, i32 } %3099, 0
  store ptr %3100, ptr %5, align 8
  %3101 = extractvalue { ptr, i32 } %3099, 1
  store i32 %3101, ptr %6, align 4
  br label %3133

3102:                                             ; preds = %3093
  br label %3133

3103:                                             ; preds = %3076, %3074, %3072, %3070, %3068, %3058
  %3104 = landingpad { ptr, i32 }
          cleanup
  %3105 = extractvalue { ptr, i32 } %3104, 0
  store ptr %3105, ptr %5, align 8
  %3106 = extractvalue { ptr, i32 } %3104, 1
  store i32 %3106, ptr %6, align 4
  br label %3126

3107:                                             ; preds = %3078
  %3108 = landingpad { ptr, i32 }
          cleanup
  %3109 = extractvalue { ptr, i32 } %3108, 0
  store ptr %3109, ptr %5, align 8
  %3110 = extractvalue { ptr, i32 } %3108, 1
  store i32 %3110, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #11
  br label %3126

3111:                                             ; preds = %3067
  store i8 1, ptr %242, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %3112

3112:                                             ; preds = %3111, %3085
  invoke void @__cxa_end_catch()
          to label %3113 unwind label %3122

3113:                                             ; preds = %3112
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #11
  %3114 = load i32, ptr %15, align 4
  switch i32 %3114, label %3130 [
    i32 0, label %3115
  ]

3115:                                             ; preds = %3113
  br label %3116

3116:                                             ; preds = %3115, %3092
  %3117 = load i8, ptr %242, align 1, !tbaa !9, !range !15, !noundef !16
  %3118 = trunc i8 %3117 to i1
  br i1 %3118, label %3129, label %3119

3119:                                             ; preds = %3116
  %3120 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA128_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %239, ptr noundef nonnull align 1 dereferenceable(128) @.str.1125)
          to label %3121 unwind label %3098

3121:                                             ; preds = %3119
  store i32 19, ptr %15, align 4
  br label %3130

3122:                                             ; preds = %3112
  %3123 = landingpad { ptr, i32 }
          cleanup
  %3124 = extractvalue { ptr, i32 } %3123, 0
  store ptr %3124, ptr %5, align 8
  %3125 = extractvalue { ptr, i32 } %3123, 1
  store i32 %3125, ptr %6, align 4
  br label %3128

3126:                                             ; preds = %3107, %3103
  invoke void @__cxa_end_catch()
          to label %3127 unwind label %5219

3127:                                             ; preds = %3126
  br label %3128

3128:                                             ; preds = %3127, %3122
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #11
  br label %3133

3129:                                             ; preds = %3116
  store i32 0, ptr %15, align 4
  br label %3130

3130:                                             ; preds = %3129, %3121, %3113, %3097
  call void @llvm.lifetime.end.p0(i64 1, ptr %242) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #11
  %3131 = load i32, ptr %15, align 4
  switch i32 %3131, label %5222 [
    i32 0, label %3132
    i32 19, label %3136
  ]

3132:                                             ; preds = %3130
  br label %3156

3133:                                             ; preds = %3128, %3102, %3098
  call void @llvm.lifetime.end.p0(i64 1, ptr %242) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #11
  br label %3134

3134:                                             ; preds = %3133, %3042
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #11
  br label %3186

3135:                                             ; preds = %3009
  br label %3136

3136:                                             ; preds = %3135, %3130
  call void @llvm.lifetime.start.p0(i64 8, ptr %251) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %251)
          to label %3137 unwind label %3142

3137:                                             ; preds = %3136
  call void @llvm.lifetime.start.p0(i64 8, ptr %252) #11
  %3138 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %239)
          to label %3139 unwind label %3146

3139:                                             ; preds = %3137
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %252, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1097, ptr noundef %3138)
          to label %3140 unwind label %3146

3140:                                             ; preds = %3139
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %252, ptr noundef nonnull align 8 dereferenceable(8) %251)
          to label %3141 unwind label %3150

3141:                                             ; preds = %3140
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %252) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %252) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %251) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %251) #11
  br label %3156

3142:                                             ; preds = %3136
  %3143 = landingpad { ptr, i32 }
          cleanup
  %3144 = extractvalue { ptr, i32 } %3143, 0
  store ptr %3144, ptr %5, align 8
  %3145 = extractvalue { ptr, i32 } %3143, 1
  store i32 %3145, ptr %6, align 4
  br label %3155

3146:                                             ; preds = %3139, %3137
  %3147 = landingpad { ptr, i32 }
          cleanup
  %3148 = extractvalue { ptr, i32 } %3147, 0
  store ptr %3148, ptr %5, align 8
  %3149 = extractvalue { ptr, i32 } %3147, 1
  store i32 %3149, ptr %6, align 4
  br label %3154

3150:                                             ; preds = %3140
  %3151 = landingpad { ptr, i32 }
          cleanup
  %3152 = extractvalue { ptr, i32 } %3151, 0
  store ptr %3152, ptr %5, align 8
  %3153 = extractvalue { ptr, i32 } %3151, 1
  store i32 %3153, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %252) #11
  br label %3154

3154:                                             ; preds = %3150, %3146
  call void @llvm.lifetime.end.p0(i64 8, ptr %252) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %251) #11
  br label %3155

3155:                                             ; preds = %3154, %3142
  call void @llvm.lifetime.end.p0(i64 8, ptr %251) #11
  br label %3186

3156:                                             ; preds = %3141, %3132
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %239) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %239) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %253) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %253)
  %3157 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %253)
          to label %3158 unwind label %3187

3158:                                             ; preds = %3156
  br i1 %3157, label %3159, label %3284

3159:                                             ; preds = %3158
  call void @llvm.lifetime.start.p0(i64 32, ptr %254) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %255) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %254, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %255)
          to label %3160 unwind label %3191

3160:                                             ; preds = %3159
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %255) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %256) #11
  store i8 0, ptr %256, align 1, !tbaa !9
  %3161 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %3162 unwind label %3195

3162:                                             ; preds = %3160
  br i1 %3161, label %3163, label %3240

3163:                                             ; preds = %3162
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef @.str.1088)
          to label %3164 unwind label %3195

3164:                                             ; preds = %3163
  %3165 = getelementptr inbounds { ptr, i64 }, ptr %260, i32 0, i32 0
  %3166 = load ptr, ptr %3165, align 8
  %3167 = getelementptr inbounds { ptr, i64 }, ptr %260, i32 0, i32 1
  %3168 = load i64, ptr %3167, align 8
  %3169 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %3166, i64 %3168)
          to label %3170 unwind label %3195

3170:                                             ; preds = %3164
  %3171 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %259, i32 0, i32 0
  %3172 = getelementptr inbounds { ptr, i64 }, ptr %3171, i32 0, i32 0
  %3173 = extractvalue { ptr, i64 } %3169, 0
  store ptr %3173, ptr %3172, align 8
  %3174 = getelementptr inbounds { ptr, i64 }, ptr %3171, i32 0, i32 1
  %3175 = extractvalue { ptr, i64 } %3169, 1
  store i64 %3175, ptr %3174, align 8
  %3176 = getelementptr inbounds { ptr, i64 }, ptr %259, i32 0, i32 0
  %3177 = load ptr, ptr %3176, align 8
  %3178 = getelementptr inbounds { ptr, i64 }, ptr %259, i32 0, i32 1
  %3179 = load i64, ptr %3178, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJjiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %258, ptr %3177, i64 %3179)
          to label %3180 unwind label %3195

3180:                                             ; preds = %3170
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #11
  store i32 42, ptr %261, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #11
  store i32 2, ptr %262, align 4, !tbaa !20
  %3181 = getelementptr inbounds { ptr, i64 }, ptr %258, i32 0, i32 0
  %3182 = load ptr, ptr %3181, align 8
  %3183 = getelementptr inbounds { ptr, i64 }, ptr %258, i32 0, i32 1
  %3184 = load i64, ptr %3183, align 8
  invoke void @_ZN3fmt3v106formatIJjiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %257, ptr %3182, i64 %3184, ptr noundef nonnull align 4 dereferenceable(4) %261, ptr noundef nonnull align 4 dereferenceable(4) %262)
          to label %3185 unwind label %3199

3185:                                             ; preds = %3180
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #11
  br label %3241

3186:                                             ; preds = %3155, %3134, %3038
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %239) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %239) #11
  br label %5212

3187:                                             ; preds = %3156
  %3188 = landingpad { ptr, i32 }
          cleanup
  %3189 = extractvalue { ptr, i32 } %3188, 0
  store ptr %3189, ptr %5, align 8
  %3190 = extractvalue { ptr, i32 } %3188, 1
  store i32 %3190, ptr %6, align 4
  br label %3335

3191:                                             ; preds = %3159
  %3192 = landingpad { ptr, i32 }
          cleanup
  %3193 = extractvalue { ptr, i32 } %3192, 0
  store ptr %3193, ptr %5, align 8
  %3194 = extractvalue { ptr, i32 } %3192, 1
  store i32 %3194, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %255) #11
  br label %3283

3195:                                             ; preds = %3170, %3164, %3163, %3160
  %3196 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3197 = extractvalue { ptr, i32 } %3196, 0
  store ptr %3197, ptr %5, align 8
  %3198 = extractvalue { ptr, i32 } %3196, 1
  store i32 %3198, ptr %6, align 4
  br label %3203

3199:                                             ; preds = %3180
  %3200 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3201 = extractvalue { ptr, i32 } %3200, 0
  store ptr %3201, ptr %5, align 8
  %3202 = extractvalue { ptr, i32 } %3200, 1
  store i32 %3202, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #11
  br label %3203

3203:                                             ; preds = %3199, %3195
  %3204 = load i32, ptr %6, align 4
  %3205 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %3206 = icmp eq i32 %3204, %3205
  br i1 %3206, label %3207, label %3235

3207:                                             ; preds = %3203
  call void @llvm.lifetime.start.p0(i64 8, ptr %263) #11
  %3208 = load ptr, ptr %5, align 8
  %3209 = call ptr @__cxa_begin_catch(ptr %3208) #11
  store ptr %3209, ptr %263, align 8
  %3210 = load ptr, ptr %263, align 8, !tbaa !5
  %3211 = load ptr, ptr %3210, align 8, !tbaa !13
  %3212 = getelementptr inbounds ptr, ptr %3211, i64 2
  %3213 = load ptr, ptr %3212, align 8
  %3214 = call noundef ptr %3213(ptr noundef nonnull align 8 dereferenceable(16) %3210) #11
  %3215 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %254, ptr noundef %3214)
          to label %3216 unwind label %3252

3216:                                             ; preds = %3207
  br i1 %3215, label %3217, label %3260

3217:                                             ; preds = %3216
  %3218 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA94_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %253, ptr noundef nonnull align 1 dereferenceable(94) @.str.1127)
          to label %3219 unwind label %3252

3219:                                             ; preds = %3217
  %3220 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3218, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %3221 unwind label %3252

3221:                                             ; preds = %3219
  %3222 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3220, ptr noundef nonnull align 8 dereferenceable(32) %254)
          to label %3223 unwind label %3252

3223:                                             ; preds = %3221
  %3224 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3222, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3225 unwind label %3252

3225:                                             ; preds = %3223
  %3226 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3224, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3227 unwind label %3252

3227:                                             ; preds = %3225
  call void @llvm.lifetime.start.p0(i64 8, ptr %264) #11
  %3228 = load ptr, ptr %263, align 8, !tbaa !5
  %3229 = load ptr, ptr %3228, align 8, !tbaa !13
  %3230 = getelementptr inbounds ptr, ptr %3229, i64 2
  %3231 = load ptr, ptr %3230, align 8
  %3232 = call noundef ptr %3231(ptr noundef nonnull align 8 dereferenceable(16) %3228) #11
  store ptr %3232, ptr %264, align 8, !tbaa !5
  %3233 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3226, ptr noundef nonnull align 8 dereferenceable(8) %264)
          to label %3234 unwind label %3256

3234:                                             ; preds = %3227
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #11
  store i32 20, ptr %15, align 4
  br label %3261

3235:                                             ; preds = %3203
  %3236 = load ptr, ptr %5, align 8
  %3237 = call ptr @__cxa_begin_catch(ptr %3236) #11
  %3238 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA137_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %253, ptr noundef nonnull align 1 dereferenceable(137) @.str.1126)
          to label %3239 unwind label %3242

3239:                                             ; preds = %3235
  store i32 20, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %3246 unwind label %3247

3240:                                             ; preds = %3162
  br label %3241

3241:                                             ; preds = %3240, %3185
  br label %3265

3242:                                             ; preds = %3235
  %3243 = landingpad { ptr, i32 }
          cleanup
  %3244 = extractvalue { ptr, i32 } %3243, 0
  store ptr %3244, ptr %5, align 8
  %3245 = extractvalue { ptr, i32 } %3243, 1
  store i32 %3245, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %3251 unwind label %5219

3246:                                             ; preds = %3239
  br label %3279

3247:                                             ; preds = %3268, %3239
  %3248 = landingpad { ptr, i32 }
          cleanup
  %3249 = extractvalue { ptr, i32 } %3248, 0
  store ptr %3249, ptr %5, align 8
  %3250 = extractvalue { ptr, i32 } %3248, 1
  store i32 %3250, ptr %6, align 4
  br label %3282

3251:                                             ; preds = %3242
  br label %3282

3252:                                             ; preds = %3225, %3223, %3221, %3219, %3217, %3207
  %3253 = landingpad { ptr, i32 }
          cleanup
  %3254 = extractvalue { ptr, i32 } %3253, 0
  store ptr %3254, ptr %5, align 8
  %3255 = extractvalue { ptr, i32 } %3253, 1
  store i32 %3255, ptr %6, align 4
  br label %3275

3256:                                             ; preds = %3227
  %3257 = landingpad { ptr, i32 }
          cleanup
  %3258 = extractvalue { ptr, i32 } %3257, 0
  store ptr %3258, ptr %5, align 8
  %3259 = extractvalue { ptr, i32 } %3257, 1
  store i32 %3259, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #11
  br label %3275

3260:                                             ; preds = %3216
  store i8 1, ptr %256, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %3261

3261:                                             ; preds = %3260, %3234
  invoke void @__cxa_end_catch()
          to label %3262 unwind label %3271

3262:                                             ; preds = %3261
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #11
  %3263 = load i32, ptr %15, align 4
  switch i32 %3263, label %3279 [
    i32 0, label %3264
  ]

3264:                                             ; preds = %3262
  br label %3265

3265:                                             ; preds = %3264, %3241
  %3266 = load i8, ptr %256, align 1, !tbaa !9, !range !15, !noundef !16
  %3267 = trunc i8 %3266 to i1
  br i1 %3267, label %3278, label %3268

3268:                                             ; preds = %3265
  %3269 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA128_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %253, ptr noundef nonnull align 1 dereferenceable(128) @.str.1128)
          to label %3270 unwind label %3247

3270:                                             ; preds = %3268
  store i32 20, ptr %15, align 4
  br label %3279

3271:                                             ; preds = %3261
  %3272 = landingpad { ptr, i32 }
          cleanup
  %3273 = extractvalue { ptr, i32 } %3272, 0
  store ptr %3273, ptr %5, align 8
  %3274 = extractvalue { ptr, i32 } %3272, 1
  store i32 %3274, ptr %6, align 4
  br label %3277

3275:                                             ; preds = %3256, %3252
  invoke void @__cxa_end_catch()
          to label %3276 unwind label %5219

3276:                                             ; preds = %3275
  br label %3277

3277:                                             ; preds = %3276, %3271
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #11
  br label %3282

3278:                                             ; preds = %3265
  store i32 0, ptr %15, align 4
  br label %3279

3279:                                             ; preds = %3278, %3270, %3262, %3246
  call void @llvm.lifetime.end.p0(i64 1, ptr %256) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #11
  %3280 = load i32, ptr %15, align 4
  switch i32 %3280, label %5222 [
    i32 0, label %3281
    i32 20, label %3285
  ]

3281:                                             ; preds = %3279
  br label %3305

3282:                                             ; preds = %3277, %3251, %3247
  call void @llvm.lifetime.end.p0(i64 1, ptr %256) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #11
  br label %3283

3283:                                             ; preds = %3282, %3191
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #11
  br label %3335

3284:                                             ; preds = %3158
  br label %3285

3285:                                             ; preds = %3284, %3279
  call void @llvm.lifetime.start.p0(i64 8, ptr %265) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %265)
          to label %3286 unwind label %3291

3286:                                             ; preds = %3285
  call void @llvm.lifetime.start.p0(i64 8, ptr %266) #11
  %3287 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %253)
          to label %3288 unwind label %3295

3288:                                             ; preds = %3286
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %266, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1099, ptr noundef %3287)
          to label %3289 unwind label %3295

3289:                                             ; preds = %3288
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %266, ptr noundef nonnull align 8 dereferenceable(8) %265)
          to label %3290 unwind label %3299

3290:                                             ; preds = %3289
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %266) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %266) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %265) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #11
  br label %3305

3291:                                             ; preds = %3285
  %3292 = landingpad { ptr, i32 }
          cleanup
  %3293 = extractvalue { ptr, i32 } %3292, 0
  store ptr %3293, ptr %5, align 8
  %3294 = extractvalue { ptr, i32 } %3292, 1
  store i32 %3294, ptr %6, align 4
  br label %3304

3295:                                             ; preds = %3288, %3286
  %3296 = landingpad { ptr, i32 }
          cleanup
  %3297 = extractvalue { ptr, i32 } %3296, 0
  store ptr %3297, ptr %5, align 8
  %3298 = extractvalue { ptr, i32 } %3296, 1
  store i32 %3298, ptr %6, align 4
  br label %3303

3299:                                             ; preds = %3289
  %3300 = landingpad { ptr, i32 }
          cleanup
  %3301 = extractvalue { ptr, i32 } %3300, 0
  store ptr %3301, ptr %5, align 8
  %3302 = extractvalue { ptr, i32 } %3300, 1
  store i32 %3302, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %266) #11
  br label %3303

3303:                                             ; preds = %3299, %3295
  call void @llvm.lifetime.end.p0(i64 8, ptr %266) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %265) #11
  br label %3304

3304:                                             ; preds = %3303, %3291
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #11
  br label %3335

3305:                                             ; preds = %3290, %3281
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %253) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %253) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %267) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %267)
  %3306 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %267)
          to label %3307 unwind label %3336

3307:                                             ; preds = %3305
  br i1 %3306, label %3308, label %3433

3308:                                             ; preds = %3307
  call void @llvm.lifetime.start.p0(i64 32, ptr %268) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %269) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %269)
          to label %3309 unwind label %3340

3309:                                             ; preds = %3308
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %269) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %270) #11
  store i8 0, ptr %270, align 1, !tbaa !9
  %3310 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %3311 unwind label %3344

3311:                                             ; preds = %3309
  br i1 %3310, label %3312, label %3389

3312:                                             ; preds = %3311
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %274, ptr noundef @.str.1122)
          to label %3313 unwind label %3344

3313:                                             ; preds = %3312
  %3314 = getelementptr inbounds { ptr, i64 }, ptr %274, i32 0, i32 0
  %3315 = load ptr, ptr %3314, align 8
  %3316 = getelementptr inbounds { ptr, i64 }, ptr %274, i32 0, i32 1
  %3317 = load i64, ptr %3316, align 8
  %3318 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %3315, i64 %3317)
          to label %3319 unwind label %3344

3319:                                             ; preds = %3313
  %3320 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %273, i32 0, i32 0
  %3321 = getelementptr inbounds { ptr, i64 }, ptr %3320, i32 0, i32 0
  %3322 = extractvalue { ptr, i64 } %3318, 0
  store ptr %3322, ptr %3321, align 8
  %3323 = getelementptr inbounds { ptr, i64 }, ptr %3320, i32 0, i32 1
  %3324 = extractvalue { ptr, i64 } %3318, 1
  store i64 %3324, ptr %3323, align 8
  %3325 = getelementptr inbounds { ptr, i64 }, ptr %273, i32 0, i32 0
  %3326 = load ptr, ptr %3325, align 8
  %3327 = getelementptr inbounds { ptr, i64 }, ptr %273, i32 0, i32 1
  %3328 = load i64, ptr %3327, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJjiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %272, ptr %3326, i64 %3328)
          to label %3329 unwind label %3344

3329:                                             ; preds = %3319
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #11
  store i32 42, ptr %275, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #11
  store i32 2, ptr %276, align 4, !tbaa !20
  %3330 = getelementptr inbounds { ptr, i64 }, ptr %272, i32 0, i32 0
  %3331 = load ptr, ptr %3330, align 8
  %3332 = getelementptr inbounds { ptr, i64 }, ptr %272, i32 0, i32 1
  %3333 = load i64, ptr %3332, align 8
  invoke void @_ZN3fmt3v106formatIJjiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %271, ptr %3331, i64 %3333, ptr noundef nonnull align 4 dereferenceable(4) %275, ptr noundef nonnull align 4 dereferenceable(4) %276)
          to label %3334 unwind label %3348

3334:                                             ; preds = %3329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #11
  br label %3390

3335:                                             ; preds = %3304, %3283, %3187
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %253) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %253) #11
  br label %5212

3336:                                             ; preds = %3305
  %3337 = landingpad { ptr, i32 }
          cleanup
  %3338 = extractvalue { ptr, i32 } %3337, 0
  store ptr %3338, ptr %5, align 8
  %3339 = extractvalue { ptr, i32 } %3337, 1
  store i32 %3339, ptr %6, align 4
  br label %3484

3340:                                             ; preds = %3308
  %3341 = landingpad { ptr, i32 }
          cleanup
  %3342 = extractvalue { ptr, i32 } %3341, 0
  store ptr %3342, ptr %5, align 8
  %3343 = extractvalue { ptr, i32 } %3341, 1
  store i32 %3343, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %269) #11
  br label %3432

3344:                                             ; preds = %3319, %3313, %3312, %3309
  %3345 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3346 = extractvalue { ptr, i32 } %3345, 0
  store ptr %3346, ptr %5, align 8
  %3347 = extractvalue { ptr, i32 } %3345, 1
  store i32 %3347, ptr %6, align 4
  br label %3352

3348:                                             ; preds = %3329
  %3349 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3350 = extractvalue { ptr, i32 } %3349, 0
  store ptr %3350, ptr %5, align 8
  %3351 = extractvalue { ptr, i32 } %3349, 1
  store i32 %3351, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #11
  br label %3352

3352:                                             ; preds = %3348, %3344
  %3353 = load i32, ptr %6, align 4
  %3354 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %3355 = icmp eq i32 %3353, %3354
  br i1 %3355, label %3356, label %3384

3356:                                             ; preds = %3352
  call void @llvm.lifetime.start.p0(i64 8, ptr %277) #11
  %3357 = load ptr, ptr %5, align 8
  %3358 = call ptr @__cxa_begin_catch(ptr %3357) #11
  store ptr %3358, ptr %277, align 8
  %3359 = load ptr, ptr %277, align 8, !tbaa !5
  %3360 = load ptr, ptr %3359, align 8, !tbaa !13
  %3361 = getelementptr inbounds ptr, ptr %3360, i64 2
  %3362 = load ptr, ptr %3361, align 8
  %3363 = call noundef ptr %3362(ptr noundef nonnull align 8 dereferenceable(16) %3359) #11
  %3364 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef %3363)
          to label %3365 unwind label %3401

3365:                                             ; preds = %3356
  br i1 %3364, label %3366, label %3409

3366:                                             ; preds = %3365
  %3367 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %267, ptr noundef nonnull align 1 dereferenceable(95) @.str.1130)
          to label %3368 unwind label %3401

3368:                                             ; preds = %3366
  %3369 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3367, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %3370 unwind label %3401

3370:                                             ; preds = %3368
  %3371 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3369, ptr noundef nonnull align 8 dereferenceable(32) %268)
          to label %3372 unwind label %3401

3372:                                             ; preds = %3370
  %3373 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3371, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3374 unwind label %3401

3374:                                             ; preds = %3372
  %3375 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3373, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3376 unwind label %3401

3376:                                             ; preds = %3374
  call void @llvm.lifetime.start.p0(i64 8, ptr %278) #11
  %3377 = load ptr, ptr %277, align 8, !tbaa !5
  %3378 = load ptr, ptr %3377, align 8, !tbaa !13
  %3379 = getelementptr inbounds ptr, ptr %3378, i64 2
  %3380 = load ptr, ptr %3379, align 8
  %3381 = call noundef ptr %3380(ptr noundef nonnull align 8 dereferenceable(16) %3377) #11
  store ptr %3381, ptr %278, align 8, !tbaa !5
  %3382 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3375, ptr noundef nonnull align 8 dereferenceable(8) %278)
          to label %3383 unwind label %3405

3383:                                             ; preds = %3376
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #11
  store i32 21, ptr %15, align 4
  br label %3410

3384:                                             ; preds = %3352
  %3385 = load ptr, ptr %5, align 8
  %3386 = call ptr @__cxa_begin_catch(ptr %3385) #11
  %3387 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %267, ptr noundef nonnull align 1 dereferenceable(138) @.str.1129)
          to label %3388 unwind label %3391

3388:                                             ; preds = %3384
  store i32 21, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %3395 unwind label %3396

3389:                                             ; preds = %3311
  br label %3390

3390:                                             ; preds = %3389, %3334
  br label %3414

3391:                                             ; preds = %3384
  %3392 = landingpad { ptr, i32 }
          cleanup
  %3393 = extractvalue { ptr, i32 } %3392, 0
  store ptr %3393, ptr %5, align 8
  %3394 = extractvalue { ptr, i32 } %3392, 1
  store i32 %3394, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %3400 unwind label %5219

3395:                                             ; preds = %3388
  br label %3428

3396:                                             ; preds = %3417, %3388
  %3397 = landingpad { ptr, i32 }
          cleanup
  %3398 = extractvalue { ptr, i32 } %3397, 0
  store ptr %3398, ptr %5, align 8
  %3399 = extractvalue { ptr, i32 } %3397, 1
  store i32 %3399, ptr %6, align 4
  br label %3431

3400:                                             ; preds = %3391
  br label %3431

3401:                                             ; preds = %3374, %3372, %3370, %3368, %3366, %3356
  %3402 = landingpad { ptr, i32 }
          cleanup
  %3403 = extractvalue { ptr, i32 } %3402, 0
  store ptr %3403, ptr %5, align 8
  %3404 = extractvalue { ptr, i32 } %3402, 1
  store i32 %3404, ptr %6, align 4
  br label %3424

3405:                                             ; preds = %3376
  %3406 = landingpad { ptr, i32 }
          cleanup
  %3407 = extractvalue { ptr, i32 } %3406, 0
  store ptr %3407, ptr %5, align 8
  %3408 = extractvalue { ptr, i32 } %3406, 1
  store i32 %3408, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #11
  br label %3424

3409:                                             ; preds = %3365
  store i8 1, ptr %270, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %3410

3410:                                             ; preds = %3409, %3383
  invoke void @__cxa_end_catch()
          to label %3411 unwind label %3420

3411:                                             ; preds = %3410
  call void @llvm.lifetime.end.p0(i64 8, ptr %277) #11
  %3412 = load i32, ptr %15, align 4
  switch i32 %3412, label %3428 [
    i32 0, label %3413
  ]

3413:                                             ; preds = %3411
  br label %3414

3414:                                             ; preds = %3413, %3390
  %3415 = load i8, ptr %270, align 1, !tbaa !9, !range !15, !noundef !16
  %3416 = trunc i8 %3415 to i1
  br i1 %3416, label %3427, label %3417

3417:                                             ; preds = %3414
  %3418 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %267, ptr noundef nonnull align 1 dereferenceable(129) @.str.1131)
          to label %3419 unwind label %3396

3419:                                             ; preds = %3417
  store i32 21, ptr %15, align 4
  br label %3428

3420:                                             ; preds = %3410
  %3421 = landingpad { ptr, i32 }
          cleanup
  %3422 = extractvalue { ptr, i32 } %3421, 0
  store ptr %3422, ptr %5, align 8
  %3423 = extractvalue { ptr, i32 } %3421, 1
  store i32 %3423, ptr %6, align 4
  br label %3426

3424:                                             ; preds = %3405, %3401
  invoke void @__cxa_end_catch()
          to label %3425 unwind label %5219

3425:                                             ; preds = %3424
  br label %3426

3426:                                             ; preds = %3425, %3420
  call void @llvm.lifetime.end.p0(i64 8, ptr %277) #11
  br label %3431

3427:                                             ; preds = %3414
  store i32 0, ptr %15, align 4
  br label %3428

3428:                                             ; preds = %3427, %3419, %3411, %3395
  call void @llvm.lifetime.end.p0(i64 1, ptr %270) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %268) #11
  %3429 = load i32, ptr %15, align 4
  switch i32 %3429, label %5222 [
    i32 0, label %3430
    i32 21, label %3434
  ]

3430:                                             ; preds = %3428
  br label %3454

3431:                                             ; preds = %3426, %3400, %3396
  call void @llvm.lifetime.end.p0(i64 1, ptr %270) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #11
  br label %3432

3432:                                             ; preds = %3431, %3340
  call void @llvm.lifetime.end.p0(i64 32, ptr %268) #11
  br label %3484

3433:                                             ; preds = %3307
  br label %3434

3434:                                             ; preds = %3433, %3428
  call void @llvm.lifetime.start.p0(i64 8, ptr %279) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %279)
          to label %3435 unwind label %3440

3435:                                             ; preds = %3434
  call void @llvm.lifetime.start.p0(i64 8, ptr %280) #11
  %3436 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %267)
          to label %3437 unwind label %3444

3437:                                             ; preds = %3435
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %280, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1101, ptr noundef %3436)
          to label %3438 unwind label %3444

3438:                                             ; preds = %3437
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef nonnull align 8 dereferenceable(8) %279)
          to label %3439 unwind label %3448

3439:                                             ; preds = %3438
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %280) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %280) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %279) #11
  br label %3454

3440:                                             ; preds = %3434
  %3441 = landingpad { ptr, i32 }
          cleanup
  %3442 = extractvalue { ptr, i32 } %3441, 0
  store ptr %3442, ptr %5, align 8
  %3443 = extractvalue { ptr, i32 } %3441, 1
  store i32 %3443, ptr %6, align 4
  br label %3453

3444:                                             ; preds = %3437, %3435
  %3445 = landingpad { ptr, i32 }
          cleanup
  %3446 = extractvalue { ptr, i32 } %3445, 0
  store ptr %3446, ptr %5, align 8
  %3447 = extractvalue { ptr, i32 } %3445, 1
  store i32 %3447, ptr %6, align 4
  br label %3452

3448:                                             ; preds = %3438
  %3449 = landingpad { ptr, i32 }
          cleanup
  %3450 = extractvalue { ptr, i32 } %3449, 0
  store ptr %3450, ptr %5, align 8
  %3451 = extractvalue { ptr, i32 } %3449, 1
  store i32 %3451, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %280) #11
  br label %3452

3452:                                             ; preds = %3448, %3444
  call void @llvm.lifetime.end.p0(i64 8, ptr %280) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #11
  br label %3453

3453:                                             ; preds = %3452, %3440
  call void @llvm.lifetime.end.p0(i64 8, ptr %279) #11
  br label %3484

3454:                                             ; preds = %3439, %3430
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %267) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %267) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %281) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %281)
  %3455 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %281)
          to label %3456 unwind label %3485

3456:                                             ; preds = %3454
  br i1 %3455, label %3457, label %3582

3457:                                             ; preds = %3456
  call void @llvm.lifetime.start.p0(i64 32, ptr %282) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %283) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %283)
          to label %3458 unwind label %3489

3458:                                             ; preds = %3457
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %283) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %284) #11
  store i8 0, ptr %284, align 1, !tbaa !9
  %3459 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %3460 unwind label %3493

3460:                                             ; preds = %3458
  br i1 %3459, label %3461, label %3538

3461:                                             ; preds = %3460
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %288, ptr noundef @.str.1088)
          to label %3462 unwind label %3493

3462:                                             ; preds = %3461
  %3463 = getelementptr inbounds { ptr, i64 }, ptr %288, i32 0, i32 0
  %3464 = load ptr, ptr %3463, align 8
  %3465 = getelementptr inbounds { ptr, i64 }, ptr %288, i32 0, i32 1
  %3466 = load i64, ptr %3465, align 8
  %3467 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %3464, i64 %3466)
          to label %3468 unwind label %3493

3468:                                             ; preds = %3462
  %3469 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %287, i32 0, i32 0
  %3470 = getelementptr inbounds { ptr, i64 }, ptr %3469, i32 0, i32 0
  %3471 = extractvalue { ptr, i64 } %3467, 0
  store ptr %3471, ptr %3470, align 8
  %3472 = getelementptr inbounds { ptr, i64 }, ptr %3469, i32 0, i32 1
  %3473 = extractvalue { ptr, i64 } %3467, 1
  store i64 %3473, ptr %3472, align 8
  %3474 = getelementptr inbounds { ptr, i64 }, ptr %287, i32 0, i32 0
  %3475 = load ptr, ptr %3474, align 8
  %3476 = getelementptr inbounds { ptr, i64 }, ptr %287, i32 0, i32 1
  %3477 = load i64, ptr %3476, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJliEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %286, ptr %3475, i64 %3477)
          to label %3478 unwind label %3493

3478:                                             ; preds = %3468
  call void @llvm.lifetime.start.p0(i64 8, ptr %289) #11
  store i64 42, ptr %289, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %290) #11
  store i32 2, ptr %290, align 4, !tbaa !20
  %3479 = getelementptr inbounds { ptr, i64 }, ptr %286, i32 0, i32 0
  %3480 = load ptr, ptr %3479, align 8
  %3481 = getelementptr inbounds { ptr, i64 }, ptr %286, i32 0, i32 1
  %3482 = load i64, ptr %3481, align 8
  invoke void @_ZN3fmt3v106formatIJliEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %285, ptr %3480, i64 %3482, ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef nonnull align 4 dereferenceable(4) %290)
          to label %3483 unwind label %3497

3483:                                             ; preds = %3478
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #11
  br label %3539

3484:                                             ; preds = %3453, %3432, %3336
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %267) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %267) #11
  br label %5212

3485:                                             ; preds = %3454
  %3486 = landingpad { ptr, i32 }
          cleanup
  %3487 = extractvalue { ptr, i32 } %3486, 0
  store ptr %3487, ptr %5, align 8
  %3488 = extractvalue { ptr, i32 } %3486, 1
  store i32 %3488, ptr %6, align 4
  br label %3633

3489:                                             ; preds = %3457
  %3490 = landingpad { ptr, i32 }
          cleanup
  %3491 = extractvalue { ptr, i32 } %3490, 0
  store ptr %3491, ptr %5, align 8
  %3492 = extractvalue { ptr, i32 } %3490, 1
  store i32 %3492, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %283) #11
  br label %3581

3493:                                             ; preds = %3468, %3462, %3461, %3458
  %3494 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3495 = extractvalue { ptr, i32 } %3494, 0
  store ptr %3495, ptr %5, align 8
  %3496 = extractvalue { ptr, i32 } %3494, 1
  store i32 %3496, ptr %6, align 4
  br label %3501

3497:                                             ; preds = %3478
  %3498 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3499 = extractvalue { ptr, i32 } %3498, 0
  store ptr %3499, ptr %5, align 8
  %3500 = extractvalue { ptr, i32 } %3498, 1
  store i32 %3500, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #11
  br label %3501

3501:                                             ; preds = %3497, %3493
  %3502 = load i32, ptr %6, align 4
  %3503 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %3504 = icmp eq i32 %3502, %3503
  br i1 %3504, label %3505, label %3533

3505:                                             ; preds = %3501
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #11
  %3506 = load ptr, ptr %5, align 8
  %3507 = call ptr @__cxa_begin_catch(ptr %3506) #11
  store ptr %3507, ptr %291, align 8
  %3508 = load ptr, ptr %291, align 8, !tbaa !5
  %3509 = load ptr, ptr %3508, align 8, !tbaa !13
  %3510 = getelementptr inbounds ptr, ptr %3509, i64 2
  %3511 = load ptr, ptr %3510, align 8
  %3512 = call noundef ptr %3511(ptr noundef nonnull align 8 dereferenceable(16) %3508) #11
  %3513 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef %3512)
          to label %3514 unwind label %3550

3514:                                             ; preds = %3505
  br i1 %3513, label %3515, label %3558

3515:                                             ; preds = %3514
  %3516 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA94_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %281, ptr noundef nonnull align 1 dereferenceable(94) @.str.1133)
          to label %3517 unwind label %3550

3517:                                             ; preds = %3515
  %3518 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3516, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %3519 unwind label %3550

3519:                                             ; preds = %3517
  %3520 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3518, ptr noundef nonnull align 8 dereferenceable(32) %282)
          to label %3521 unwind label %3550

3521:                                             ; preds = %3519
  %3522 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3520, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3523 unwind label %3550

3523:                                             ; preds = %3521
  %3524 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3522, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3525 unwind label %3550

3525:                                             ; preds = %3523
  call void @llvm.lifetime.start.p0(i64 8, ptr %292) #11
  %3526 = load ptr, ptr %291, align 8, !tbaa !5
  %3527 = load ptr, ptr %3526, align 8, !tbaa !13
  %3528 = getelementptr inbounds ptr, ptr %3527, i64 2
  %3529 = load ptr, ptr %3528, align 8
  %3530 = call noundef ptr %3529(ptr noundef nonnull align 8 dereferenceable(16) %3526) #11
  store ptr %3530, ptr %292, align 8, !tbaa !5
  %3531 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3524, ptr noundef nonnull align 8 dereferenceable(8) %292)
          to label %3532 unwind label %3554

3532:                                             ; preds = %3525
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #11
  store i32 22, ptr %15, align 4
  br label %3559

3533:                                             ; preds = %3501
  %3534 = load ptr, ptr %5, align 8
  %3535 = call ptr @__cxa_begin_catch(ptr %3534) #11
  %3536 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA137_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %281, ptr noundef nonnull align 1 dereferenceable(137) @.str.1132)
          to label %3537 unwind label %3540

3537:                                             ; preds = %3533
  store i32 22, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %3544 unwind label %3545

3538:                                             ; preds = %3460
  br label %3539

3539:                                             ; preds = %3538, %3483
  br label %3563

3540:                                             ; preds = %3533
  %3541 = landingpad { ptr, i32 }
          cleanup
  %3542 = extractvalue { ptr, i32 } %3541, 0
  store ptr %3542, ptr %5, align 8
  %3543 = extractvalue { ptr, i32 } %3541, 1
  store i32 %3543, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %3549 unwind label %5219

3544:                                             ; preds = %3537
  br label %3577

3545:                                             ; preds = %3566, %3537
  %3546 = landingpad { ptr, i32 }
          cleanup
  %3547 = extractvalue { ptr, i32 } %3546, 0
  store ptr %3547, ptr %5, align 8
  %3548 = extractvalue { ptr, i32 } %3546, 1
  store i32 %3548, ptr %6, align 4
  br label %3580

3549:                                             ; preds = %3540
  br label %3580

3550:                                             ; preds = %3523, %3521, %3519, %3517, %3515, %3505
  %3551 = landingpad { ptr, i32 }
          cleanup
  %3552 = extractvalue { ptr, i32 } %3551, 0
  store ptr %3552, ptr %5, align 8
  %3553 = extractvalue { ptr, i32 } %3551, 1
  store i32 %3553, ptr %6, align 4
  br label %3573

3554:                                             ; preds = %3525
  %3555 = landingpad { ptr, i32 }
          cleanup
  %3556 = extractvalue { ptr, i32 } %3555, 0
  store ptr %3556, ptr %5, align 8
  %3557 = extractvalue { ptr, i32 } %3555, 1
  store i32 %3557, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #11
  br label %3573

3558:                                             ; preds = %3514
  store i8 1, ptr %284, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %3559

3559:                                             ; preds = %3558, %3532
  invoke void @__cxa_end_catch()
          to label %3560 unwind label %3569

3560:                                             ; preds = %3559
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #11
  %3561 = load i32, ptr %15, align 4
  switch i32 %3561, label %3577 [
    i32 0, label %3562
  ]

3562:                                             ; preds = %3560
  br label %3563

3563:                                             ; preds = %3562, %3539
  %3564 = load i8, ptr %284, align 1, !tbaa !9, !range !15, !noundef !16
  %3565 = trunc i8 %3564 to i1
  br i1 %3565, label %3576, label %3566

3566:                                             ; preds = %3563
  %3567 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA128_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %281, ptr noundef nonnull align 1 dereferenceable(128) @.str.1134)
          to label %3568 unwind label %3545

3568:                                             ; preds = %3566
  store i32 22, ptr %15, align 4
  br label %3577

3569:                                             ; preds = %3559
  %3570 = landingpad { ptr, i32 }
          cleanup
  %3571 = extractvalue { ptr, i32 } %3570, 0
  store ptr %3571, ptr %5, align 8
  %3572 = extractvalue { ptr, i32 } %3570, 1
  store i32 %3572, ptr %6, align 4
  br label %3575

3573:                                             ; preds = %3554, %3550
  invoke void @__cxa_end_catch()
          to label %3574 unwind label %5219

3574:                                             ; preds = %3573
  br label %3575

3575:                                             ; preds = %3574, %3569
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #11
  br label %3580

3576:                                             ; preds = %3563
  store i32 0, ptr %15, align 4
  br label %3577

3577:                                             ; preds = %3576, %3568, %3560, %3544
  call void @llvm.lifetime.end.p0(i64 1, ptr %284) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %282) #11
  %3578 = load i32, ptr %15, align 4
  switch i32 %3578, label %5222 [
    i32 0, label %3579
    i32 22, label %3583
  ]

3579:                                             ; preds = %3577
  br label %3603

3580:                                             ; preds = %3575, %3549, %3545
  call void @llvm.lifetime.end.p0(i64 1, ptr %284) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #11
  br label %3581

3581:                                             ; preds = %3580, %3489
  call void @llvm.lifetime.end.p0(i64 32, ptr %282) #11
  br label %3633

3582:                                             ; preds = %3456
  br label %3583

3583:                                             ; preds = %3582, %3577
  call void @llvm.lifetime.start.p0(i64 8, ptr %293) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %293)
          to label %3584 unwind label %3589

3584:                                             ; preds = %3583
  call void @llvm.lifetime.start.p0(i64 8, ptr %294) #11
  %3585 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %281)
          to label %3586 unwind label %3593

3586:                                             ; preds = %3584
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %294, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1103, ptr noundef %3585)
          to label %3587 unwind label %3593

3587:                                             ; preds = %3586
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull align 8 dereferenceable(8) %293)
          to label %3588 unwind label %3597

3588:                                             ; preds = %3587
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %294) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %293) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %293) #11
  br label %3603

3589:                                             ; preds = %3583
  %3590 = landingpad { ptr, i32 }
          cleanup
  %3591 = extractvalue { ptr, i32 } %3590, 0
  store ptr %3591, ptr %5, align 8
  %3592 = extractvalue { ptr, i32 } %3590, 1
  store i32 %3592, ptr %6, align 4
  br label %3602

3593:                                             ; preds = %3586, %3584
  %3594 = landingpad { ptr, i32 }
          cleanup
  %3595 = extractvalue { ptr, i32 } %3594, 0
  store ptr %3595, ptr %5, align 8
  %3596 = extractvalue { ptr, i32 } %3594, 1
  store i32 %3596, ptr %6, align 4
  br label %3601

3597:                                             ; preds = %3587
  %3598 = landingpad { ptr, i32 }
          cleanup
  %3599 = extractvalue { ptr, i32 } %3598, 0
  store ptr %3599, ptr %5, align 8
  %3600 = extractvalue { ptr, i32 } %3598, 1
  store i32 %3600, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %294) #11
  br label %3601

3601:                                             ; preds = %3597, %3593
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %293) #11
  br label %3602

3602:                                             ; preds = %3601, %3589
  call void @llvm.lifetime.end.p0(i64 8, ptr %293) #11
  br label %3633

3603:                                             ; preds = %3588, %3579
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %281) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %281) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %295) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %295)
  %3604 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %295)
          to label %3605 unwind label %3634

3605:                                             ; preds = %3603
  br i1 %3604, label %3606, label %3731

3606:                                             ; preds = %3605
  call void @llvm.lifetime.start.p0(i64 32, ptr %296) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %297) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %297)
          to label %3607 unwind label %3638

3607:                                             ; preds = %3606
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %297) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %298) #11
  store i8 0, ptr %298, align 1, !tbaa !9
  %3608 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %3609 unwind label %3642

3609:                                             ; preds = %3607
  br i1 %3608, label %3610, label %3687

3610:                                             ; preds = %3609
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %302, ptr noundef @.str.1122)
          to label %3611 unwind label %3642

3611:                                             ; preds = %3610
  %3612 = getelementptr inbounds { ptr, i64 }, ptr %302, i32 0, i32 0
  %3613 = load ptr, ptr %3612, align 8
  %3614 = getelementptr inbounds { ptr, i64 }, ptr %302, i32 0, i32 1
  %3615 = load i64, ptr %3614, align 8
  %3616 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %3613, i64 %3615)
          to label %3617 unwind label %3642

3617:                                             ; preds = %3611
  %3618 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %301, i32 0, i32 0
  %3619 = getelementptr inbounds { ptr, i64 }, ptr %3618, i32 0, i32 0
  %3620 = extractvalue { ptr, i64 } %3616, 0
  store ptr %3620, ptr %3619, align 8
  %3621 = getelementptr inbounds { ptr, i64 }, ptr %3618, i32 0, i32 1
  %3622 = extractvalue { ptr, i64 } %3616, 1
  store i64 %3622, ptr %3621, align 8
  %3623 = getelementptr inbounds { ptr, i64 }, ptr %301, i32 0, i32 0
  %3624 = load ptr, ptr %3623, align 8
  %3625 = getelementptr inbounds { ptr, i64 }, ptr %301, i32 0, i32 1
  %3626 = load i64, ptr %3625, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJliEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %300, ptr %3624, i64 %3626)
          to label %3627 unwind label %3642

3627:                                             ; preds = %3617
  call void @llvm.lifetime.start.p0(i64 8, ptr %303) #11
  store i64 42, ptr %303, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #11
  store i32 2, ptr %304, align 4, !tbaa !20
  %3628 = getelementptr inbounds { ptr, i64 }, ptr %300, i32 0, i32 0
  %3629 = load ptr, ptr %3628, align 8
  %3630 = getelementptr inbounds { ptr, i64 }, ptr %300, i32 0, i32 1
  %3631 = load i64, ptr %3630, align 8
  invoke void @_ZN3fmt3v106formatIJliEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %299, ptr %3629, i64 %3631, ptr noundef nonnull align 8 dereferenceable(8) %303, ptr noundef nonnull align 4 dereferenceable(4) %304)
          to label %3632 unwind label %3646

3632:                                             ; preds = %3627
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #11
  br label %3688

3633:                                             ; preds = %3602, %3581, %3485
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %281) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %281) #11
  br label %5212

3634:                                             ; preds = %3603
  %3635 = landingpad { ptr, i32 }
          cleanup
  %3636 = extractvalue { ptr, i32 } %3635, 0
  store ptr %3636, ptr %5, align 8
  %3637 = extractvalue { ptr, i32 } %3635, 1
  store i32 %3637, ptr %6, align 4
  br label %3782

3638:                                             ; preds = %3606
  %3639 = landingpad { ptr, i32 }
          cleanup
  %3640 = extractvalue { ptr, i32 } %3639, 0
  store ptr %3640, ptr %5, align 8
  %3641 = extractvalue { ptr, i32 } %3639, 1
  store i32 %3641, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %297) #11
  br label %3730

3642:                                             ; preds = %3617, %3611, %3610, %3607
  %3643 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3644 = extractvalue { ptr, i32 } %3643, 0
  store ptr %3644, ptr %5, align 8
  %3645 = extractvalue { ptr, i32 } %3643, 1
  store i32 %3645, ptr %6, align 4
  br label %3650

3646:                                             ; preds = %3627
  %3647 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3648 = extractvalue { ptr, i32 } %3647, 0
  store ptr %3648, ptr %5, align 8
  %3649 = extractvalue { ptr, i32 } %3647, 1
  store i32 %3649, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #11
  br label %3650

3650:                                             ; preds = %3646, %3642
  %3651 = load i32, ptr %6, align 4
  %3652 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %3653 = icmp eq i32 %3651, %3652
  br i1 %3653, label %3654, label %3682

3654:                                             ; preds = %3650
  call void @llvm.lifetime.start.p0(i64 8, ptr %305) #11
  %3655 = load ptr, ptr %5, align 8
  %3656 = call ptr @__cxa_begin_catch(ptr %3655) #11
  store ptr %3656, ptr %305, align 8
  %3657 = load ptr, ptr %305, align 8, !tbaa !5
  %3658 = load ptr, ptr %3657, align 8, !tbaa !13
  %3659 = getelementptr inbounds ptr, ptr %3658, i64 2
  %3660 = load ptr, ptr %3659, align 8
  %3661 = call noundef ptr %3660(ptr noundef nonnull align 8 dereferenceable(16) %3657) #11
  %3662 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef %3661)
          to label %3663 unwind label %3699

3663:                                             ; preds = %3654
  br i1 %3662, label %3664, label %3707

3664:                                             ; preds = %3663
  %3665 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %295, ptr noundef nonnull align 1 dereferenceable(95) @.str.1136)
          to label %3666 unwind label %3699

3666:                                             ; preds = %3664
  %3667 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3665, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %3668 unwind label %3699

3668:                                             ; preds = %3666
  %3669 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3667, ptr noundef nonnull align 8 dereferenceable(32) %296)
          to label %3670 unwind label %3699

3670:                                             ; preds = %3668
  %3671 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3669, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3672 unwind label %3699

3672:                                             ; preds = %3670
  %3673 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3671, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3674 unwind label %3699

3674:                                             ; preds = %3672
  call void @llvm.lifetime.start.p0(i64 8, ptr %306) #11
  %3675 = load ptr, ptr %305, align 8, !tbaa !5
  %3676 = load ptr, ptr %3675, align 8, !tbaa !13
  %3677 = getelementptr inbounds ptr, ptr %3676, i64 2
  %3678 = load ptr, ptr %3677, align 8
  %3679 = call noundef ptr %3678(ptr noundef nonnull align 8 dereferenceable(16) %3675) #11
  store ptr %3679, ptr %306, align 8, !tbaa !5
  %3680 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3673, ptr noundef nonnull align 8 dereferenceable(8) %306)
          to label %3681 unwind label %3703

3681:                                             ; preds = %3674
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #11
  store i32 23, ptr %15, align 4
  br label %3708

3682:                                             ; preds = %3650
  %3683 = load ptr, ptr %5, align 8
  %3684 = call ptr @__cxa_begin_catch(ptr %3683) #11
  %3685 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %295, ptr noundef nonnull align 1 dereferenceable(138) @.str.1135)
          to label %3686 unwind label %3689

3686:                                             ; preds = %3682
  store i32 23, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %3693 unwind label %3694

3687:                                             ; preds = %3609
  br label %3688

3688:                                             ; preds = %3687, %3632
  br label %3712

3689:                                             ; preds = %3682
  %3690 = landingpad { ptr, i32 }
          cleanup
  %3691 = extractvalue { ptr, i32 } %3690, 0
  store ptr %3691, ptr %5, align 8
  %3692 = extractvalue { ptr, i32 } %3690, 1
  store i32 %3692, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %3698 unwind label %5219

3693:                                             ; preds = %3686
  br label %3726

3694:                                             ; preds = %3715, %3686
  %3695 = landingpad { ptr, i32 }
          cleanup
  %3696 = extractvalue { ptr, i32 } %3695, 0
  store ptr %3696, ptr %5, align 8
  %3697 = extractvalue { ptr, i32 } %3695, 1
  store i32 %3697, ptr %6, align 4
  br label %3729

3698:                                             ; preds = %3689
  br label %3729

3699:                                             ; preds = %3672, %3670, %3668, %3666, %3664, %3654
  %3700 = landingpad { ptr, i32 }
          cleanup
  %3701 = extractvalue { ptr, i32 } %3700, 0
  store ptr %3701, ptr %5, align 8
  %3702 = extractvalue { ptr, i32 } %3700, 1
  store i32 %3702, ptr %6, align 4
  br label %3722

3703:                                             ; preds = %3674
  %3704 = landingpad { ptr, i32 }
          cleanup
  %3705 = extractvalue { ptr, i32 } %3704, 0
  store ptr %3705, ptr %5, align 8
  %3706 = extractvalue { ptr, i32 } %3704, 1
  store i32 %3706, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #11
  br label %3722

3707:                                             ; preds = %3663
  store i8 1, ptr %298, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %3708

3708:                                             ; preds = %3707, %3681
  invoke void @__cxa_end_catch()
          to label %3709 unwind label %3718

3709:                                             ; preds = %3708
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #11
  %3710 = load i32, ptr %15, align 4
  switch i32 %3710, label %3726 [
    i32 0, label %3711
  ]

3711:                                             ; preds = %3709
  br label %3712

3712:                                             ; preds = %3711, %3688
  %3713 = load i8, ptr %298, align 1, !tbaa !9, !range !15, !noundef !16
  %3714 = trunc i8 %3713 to i1
  br i1 %3714, label %3725, label %3715

3715:                                             ; preds = %3712
  %3716 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %295, ptr noundef nonnull align 1 dereferenceable(129) @.str.1137)
          to label %3717 unwind label %3694

3717:                                             ; preds = %3715
  store i32 23, ptr %15, align 4
  br label %3726

3718:                                             ; preds = %3708
  %3719 = landingpad { ptr, i32 }
          cleanup
  %3720 = extractvalue { ptr, i32 } %3719, 0
  store ptr %3720, ptr %5, align 8
  %3721 = extractvalue { ptr, i32 } %3719, 1
  store i32 %3721, ptr %6, align 4
  br label %3724

3722:                                             ; preds = %3703, %3699
  invoke void @__cxa_end_catch()
          to label %3723 unwind label %5219

3723:                                             ; preds = %3722
  br label %3724

3724:                                             ; preds = %3723, %3718
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #11
  br label %3729

3725:                                             ; preds = %3712
  store i32 0, ptr %15, align 4
  br label %3726

3726:                                             ; preds = %3725, %3717, %3709, %3693
  call void @llvm.lifetime.end.p0(i64 1, ptr %298) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %296) #11
  %3727 = load i32, ptr %15, align 4
  switch i32 %3727, label %5222 [
    i32 0, label %3728
    i32 23, label %3732
  ]

3728:                                             ; preds = %3726
  br label %3752

3729:                                             ; preds = %3724, %3698, %3694
  call void @llvm.lifetime.end.p0(i64 1, ptr %298) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #11
  br label %3730

3730:                                             ; preds = %3729, %3638
  call void @llvm.lifetime.end.p0(i64 32, ptr %296) #11
  br label %3782

3731:                                             ; preds = %3605
  br label %3732

3732:                                             ; preds = %3731, %3726
  call void @llvm.lifetime.start.p0(i64 8, ptr %307) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %307)
          to label %3733 unwind label %3738

3733:                                             ; preds = %3732
  call void @llvm.lifetime.start.p0(i64 8, ptr %308) #11
  %3734 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %295)
          to label %3735 unwind label %3742

3735:                                             ; preds = %3733
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %308, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1105, ptr noundef %3734)
          to label %3736 unwind label %3742

3736:                                             ; preds = %3735
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %308, ptr noundef nonnull align 8 dereferenceable(8) %307)
          to label %3737 unwind label %3746

3737:                                             ; preds = %3736
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %308) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %307) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %307) #11
  br label %3752

3738:                                             ; preds = %3732
  %3739 = landingpad { ptr, i32 }
          cleanup
  %3740 = extractvalue { ptr, i32 } %3739, 0
  store ptr %3740, ptr %5, align 8
  %3741 = extractvalue { ptr, i32 } %3739, 1
  store i32 %3741, ptr %6, align 4
  br label %3751

3742:                                             ; preds = %3735, %3733
  %3743 = landingpad { ptr, i32 }
          cleanup
  %3744 = extractvalue { ptr, i32 } %3743, 0
  store ptr %3744, ptr %5, align 8
  %3745 = extractvalue { ptr, i32 } %3743, 1
  store i32 %3745, ptr %6, align 4
  br label %3750

3746:                                             ; preds = %3736
  %3747 = landingpad { ptr, i32 }
          cleanup
  %3748 = extractvalue { ptr, i32 } %3747, 0
  store ptr %3748, ptr %5, align 8
  %3749 = extractvalue { ptr, i32 } %3747, 1
  store i32 %3749, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #11
  br label %3750

3750:                                             ; preds = %3746, %3742
  call void @llvm.lifetime.end.p0(i64 8, ptr %308) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %307) #11
  br label %3751

3751:                                             ; preds = %3750, %3738
  call void @llvm.lifetime.end.p0(i64 8, ptr %307) #11
  br label %3782

3752:                                             ; preds = %3737, %3728
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %295) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %295) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %309) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %309)
  %3753 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %309)
          to label %3754 unwind label %3783

3754:                                             ; preds = %3752
  br i1 %3753, label %3755, label %3880

3755:                                             ; preds = %3754
  call void @llvm.lifetime.start.p0(i64 32, ptr %310) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %311) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %311)
          to label %3756 unwind label %3787

3756:                                             ; preds = %3755
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %311) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %312) #11
  store i8 0, ptr %312, align 1, !tbaa !9
  %3757 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %3758 unwind label %3791

3758:                                             ; preds = %3756
  br i1 %3757, label %3759, label %3836

3759:                                             ; preds = %3758
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %316, ptr noundef @.str.1088)
          to label %3760 unwind label %3791

3760:                                             ; preds = %3759
  %3761 = getelementptr inbounds { ptr, i64 }, ptr %316, i32 0, i32 0
  %3762 = load ptr, ptr %3761, align 8
  %3763 = getelementptr inbounds { ptr, i64 }, ptr %316, i32 0, i32 1
  %3764 = load i64, ptr %3763, align 8
  %3765 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %3762, i64 %3764)
          to label %3766 unwind label %3791

3766:                                             ; preds = %3760
  %3767 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %315, i32 0, i32 0
  %3768 = getelementptr inbounds { ptr, i64 }, ptr %3767, i32 0, i32 0
  %3769 = extractvalue { ptr, i64 } %3765, 0
  store ptr %3769, ptr %3768, align 8
  %3770 = getelementptr inbounds { ptr, i64 }, ptr %3767, i32 0, i32 1
  %3771 = extractvalue { ptr, i64 } %3765, 1
  store i64 %3771, ptr %3770, align 8
  %3772 = getelementptr inbounds { ptr, i64 }, ptr %315, i32 0, i32 0
  %3773 = load ptr, ptr %3772, align 8
  %3774 = getelementptr inbounds { ptr, i64 }, ptr %315, i32 0, i32 1
  %3775 = load i64, ptr %3774, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJmiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %314, ptr %3773, i64 %3775)
          to label %3776 unwind label %3791

3776:                                             ; preds = %3766
  call void @llvm.lifetime.start.p0(i64 8, ptr %317) #11
  store i64 42, ptr %317, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #11
  store i32 2, ptr %318, align 4, !tbaa !20
  %3777 = getelementptr inbounds { ptr, i64 }, ptr %314, i32 0, i32 0
  %3778 = load ptr, ptr %3777, align 8
  %3779 = getelementptr inbounds { ptr, i64 }, ptr %314, i32 0, i32 1
  %3780 = load i64, ptr %3779, align 8
  invoke void @_ZN3fmt3v106formatIJmiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %313, ptr %3778, i64 %3780, ptr noundef nonnull align 8 dereferenceable(8) %317, ptr noundef nonnull align 4 dereferenceable(4) %318)
          to label %3781 unwind label %3795

3781:                                             ; preds = %3776
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %317) #11
  br label %3837

3782:                                             ; preds = %3751, %3730, %3634
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %295) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %295) #11
  br label %5212

3783:                                             ; preds = %3752
  %3784 = landingpad { ptr, i32 }
          cleanup
  %3785 = extractvalue { ptr, i32 } %3784, 0
  store ptr %3785, ptr %5, align 8
  %3786 = extractvalue { ptr, i32 } %3784, 1
  store i32 %3786, ptr %6, align 4
  br label %3931

3787:                                             ; preds = %3755
  %3788 = landingpad { ptr, i32 }
          cleanup
  %3789 = extractvalue { ptr, i32 } %3788, 0
  store ptr %3789, ptr %5, align 8
  %3790 = extractvalue { ptr, i32 } %3788, 1
  store i32 %3790, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %311) #11
  br label %3879

3791:                                             ; preds = %3766, %3760, %3759, %3756
  %3792 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3793 = extractvalue { ptr, i32 } %3792, 0
  store ptr %3793, ptr %5, align 8
  %3794 = extractvalue { ptr, i32 } %3792, 1
  store i32 %3794, ptr %6, align 4
  br label %3799

3795:                                             ; preds = %3776
  %3796 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3797 = extractvalue { ptr, i32 } %3796, 0
  store ptr %3797, ptr %5, align 8
  %3798 = extractvalue { ptr, i32 } %3796, 1
  store i32 %3798, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %317) #11
  br label %3799

3799:                                             ; preds = %3795, %3791
  %3800 = load i32, ptr %6, align 4
  %3801 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %3802 = icmp eq i32 %3800, %3801
  br i1 %3802, label %3803, label %3831

3803:                                             ; preds = %3799
  call void @llvm.lifetime.start.p0(i64 8, ptr %319) #11
  %3804 = load ptr, ptr %5, align 8
  %3805 = call ptr @__cxa_begin_catch(ptr %3804) #11
  store ptr %3805, ptr %319, align 8
  %3806 = load ptr, ptr %319, align 8, !tbaa !5
  %3807 = load ptr, ptr %3806, align 8, !tbaa !13
  %3808 = getelementptr inbounds ptr, ptr %3807, i64 2
  %3809 = load ptr, ptr %3808, align 8
  %3810 = call noundef ptr %3809(ptr noundef nonnull align 8 dereferenceable(16) %3806) #11
  %3811 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef %3810)
          to label %3812 unwind label %3848

3812:                                             ; preds = %3803
  br i1 %3811, label %3813, label %3856

3813:                                             ; preds = %3812
  %3814 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %309, ptr noundef nonnull align 1 dereferenceable(95) @.str.1139)
          to label %3815 unwind label %3848

3815:                                             ; preds = %3813
  %3816 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3814, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %3817 unwind label %3848

3817:                                             ; preds = %3815
  %3818 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3816, ptr noundef nonnull align 8 dereferenceable(32) %310)
          to label %3819 unwind label %3848

3819:                                             ; preds = %3817
  %3820 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3818, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3821 unwind label %3848

3821:                                             ; preds = %3819
  %3822 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3820, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3823 unwind label %3848

3823:                                             ; preds = %3821
  call void @llvm.lifetime.start.p0(i64 8, ptr %320) #11
  %3824 = load ptr, ptr %319, align 8, !tbaa !5
  %3825 = load ptr, ptr %3824, align 8, !tbaa !13
  %3826 = getelementptr inbounds ptr, ptr %3825, i64 2
  %3827 = load ptr, ptr %3826, align 8
  %3828 = call noundef ptr %3827(ptr noundef nonnull align 8 dereferenceable(16) %3824) #11
  store ptr %3828, ptr %320, align 8, !tbaa !5
  %3829 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3822, ptr noundef nonnull align 8 dereferenceable(8) %320)
          to label %3830 unwind label %3852

3830:                                             ; preds = %3823
  call void @llvm.lifetime.end.p0(i64 8, ptr %320) #11
  store i32 24, ptr %15, align 4
  br label %3857

3831:                                             ; preds = %3799
  %3832 = load ptr, ptr %5, align 8
  %3833 = call ptr @__cxa_begin_catch(ptr %3832) #11
  %3834 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %309, ptr noundef nonnull align 1 dereferenceable(138) @.str.1138)
          to label %3835 unwind label %3838

3835:                                             ; preds = %3831
  store i32 24, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %3842 unwind label %3843

3836:                                             ; preds = %3758
  br label %3837

3837:                                             ; preds = %3836, %3781
  br label %3861

3838:                                             ; preds = %3831
  %3839 = landingpad { ptr, i32 }
          cleanup
  %3840 = extractvalue { ptr, i32 } %3839, 0
  store ptr %3840, ptr %5, align 8
  %3841 = extractvalue { ptr, i32 } %3839, 1
  store i32 %3841, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %3847 unwind label %5219

3842:                                             ; preds = %3835
  br label %3875

3843:                                             ; preds = %3864, %3835
  %3844 = landingpad { ptr, i32 }
          cleanup
  %3845 = extractvalue { ptr, i32 } %3844, 0
  store ptr %3845, ptr %5, align 8
  %3846 = extractvalue { ptr, i32 } %3844, 1
  store i32 %3846, ptr %6, align 4
  br label %3878

3847:                                             ; preds = %3838
  br label %3878

3848:                                             ; preds = %3821, %3819, %3817, %3815, %3813, %3803
  %3849 = landingpad { ptr, i32 }
          cleanup
  %3850 = extractvalue { ptr, i32 } %3849, 0
  store ptr %3850, ptr %5, align 8
  %3851 = extractvalue { ptr, i32 } %3849, 1
  store i32 %3851, ptr %6, align 4
  br label %3871

3852:                                             ; preds = %3823
  %3853 = landingpad { ptr, i32 }
          cleanup
  %3854 = extractvalue { ptr, i32 } %3853, 0
  store ptr %3854, ptr %5, align 8
  %3855 = extractvalue { ptr, i32 } %3853, 1
  store i32 %3855, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %320) #11
  br label %3871

3856:                                             ; preds = %3812
  store i8 1, ptr %312, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %3857

3857:                                             ; preds = %3856, %3830
  invoke void @__cxa_end_catch()
          to label %3858 unwind label %3867

3858:                                             ; preds = %3857
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #11
  %3859 = load i32, ptr %15, align 4
  switch i32 %3859, label %3875 [
    i32 0, label %3860
  ]

3860:                                             ; preds = %3858
  br label %3861

3861:                                             ; preds = %3860, %3837
  %3862 = load i8, ptr %312, align 1, !tbaa !9, !range !15, !noundef !16
  %3863 = trunc i8 %3862 to i1
  br i1 %3863, label %3874, label %3864

3864:                                             ; preds = %3861
  %3865 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %309, ptr noundef nonnull align 1 dereferenceable(129) @.str.1140)
          to label %3866 unwind label %3843

3866:                                             ; preds = %3864
  store i32 24, ptr %15, align 4
  br label %3875

3867:                                             ; preds = %3857
  %3868 = landingpad { ptr, i32 }
          cleanup
  %3869 = extractvalue { ptr, i32 } %3868, 0
  store ptr %3869, ptr %5, align 8
  %3870 = extractvalue { ptr, i32 } %3868, 1
  store i32 %3870, ptr %6, align 4
  br label %3873

3871:                                             ; preds = %3852, %3848
  invoke void @__cxa_end_catch()
          to label %3872 unwind label %5219

3872:                                             ; preds = %3871
  br label %3873

3873:                                             ; preds = %3872, %3867
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #11
  br label %3878

3874:                                             ; preds = %3861
  store i32 0, ptr %15, align 4
  br label %3875

3875:                                             ; preds = %3874, %3866, %3858, %3842
  call void @llvm.lifetime.end.p0(i64 1, ptr %312) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #11
  %3876 = load i32, ptr %15, align 4
  switch i32 %3876, label %5222 [
    i32 0, label %3877
    i32 24, label %3881
  ]

3877:                                             ; preds = %3875
  br label %3901

3878:                                             ; preds = %3873, %3847, %3843
  call void @llvm.lifetime.end.p0(i64 1, ptr %312) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #11
  br label %3879

3879:                                             ; preds = %3878, %3787
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #11
  br label %3931

3880:                                             ; preds = %3754
  br label %3881

3881:                                             ; preds = %3880, %3875
  call void @llvm.lifetime.start.p0(i64 8, ptr %321) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %321)
          to label %3882 unwind label %3887

3882:                                             ; preds = %3881
  call void @llvm.lifetime.start.p0(i64 8, ptr %322) #11
  %3883 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %309)
          to label %3884 unwind label %3891

3884:                                             ; preds = %3882
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %322, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1107, ptr noundef %3883)
          to label %3885 unwind label %3891

3885:                                             ; preds = %3884
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %322, ptr noundef nonnull align 8 dereferenceable(8) %321)
          to label %3886 unwind label %3895

3886:                                             ; preds = %3885
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %322) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %322) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %321) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %321) #11
  br label %3901

3887:                                             ; preds = %3881
  %3888 = landingpad { ptr, i32 }
          cleanup
  %3889 = extractvalue { ptr, i32 } %3888, 0
  store ptr %3889, ptr %5, align 8
  %3890 = extractvalue { ptr, i32 } %3888, 1
  store i32 %3890, ptr %6, align 4
  br label %3900

3891:                                             ; preds = %3884, %3882
  %3892 = landingpad { ptr, i32 }
          cleanup
  %3893 = extractvalue { ptr, i32 } %3892, 0
  store ptr %3893, ptr %5, align 8
  %3894 = extractvalue { ptr, i32 } %3892, 1
  store i32 %3894, ptr %6, align 4
  br label %3899

3895:                                             ; preds = %3885
  %3896 = landingpad { ptr, i32 }
          cleanup
  %3897 = extractvalue { ptr, i32 } %3896, 0
  store ptr %3897, ptr %5, align 8
  %3898 = extractvalue { ptr, i32 } %3896, 1
  store i32 %3898, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %322) #11
  br label %3899

3899:                                             ; preds = %3895, %3891
  call void @llvm.lifetime.end.p0(i64 8, ptr %322) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %321) #11
  br label %3900

3900:                                             ; preds = %3899, %3887
  call void @llvm.lifetime.end.p0(i64 8, ptr %321) #11
  br label %3931

3901:                                             ; preds = %3886, %3877
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %309) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %309) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %323) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %323)
  %3902 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %323)
          to label %3903 unwind label %3932

3903:                                             ; preds = %3901
  br i1 %3902, label %3904, label %4029

3904:                                             ; preds = %3903
  call void @llvm.lifetime.start.p0(i64 32, ptr %324) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %325) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %325)
          to label %3905 unwind label %3936

3905:                                             ; preds = %3904
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %325) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %326) #11
  store i8 0, ptr %326, align 1, !tbaa !9
  %3906 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %3907 unwind label %3940

3907:                                             ; preds = %3905
  br i1 %3906, label %3908, label %3985

3908:                                             ; preds = %3907
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %330, ptr noundef @.str.1122)
          to label %3909 unwind label %3940

3909:                                             ; preds = %3908
  %3910 = getelementptr inbounds { ptr, i64 }, ptr %330, i32 0, i32 0
  %3911 = load ptr, ptr %3910, align 8
  %3912 = getelementptr inbounds { ptr, i64 }, ptr %330, i32 0, i32 1
  %3913 = load i64, ptr %3912, align 8
  %3914 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %3911, i64 %3913)
          to label %3915 unwind label %3940

3915:                                             ; preds = %3909
  %3916 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %329, i32 0, i32 0
  %3917 = getelementptr inbounds { ptr, i64 }, ptr %3916, i32 0, i32 0
  %3918 = extractvalue { ptr, i64 } %3914, 0
  store ptr %3918, ptr %3917, align 8
  %3919 = getelementptr inbounds { ptr, i64 }, ptr %3916, i32 0, i32 1
  %3920 = extractvalue { ptr, i64 } %3914, 1
  store i64 %3920, ptr %3919, align 8
  %3921 = getelementptr inbounds { ptr, i64 }, ptr %329, i32 0, i32 0
  %3922 = load ptr, ptr %3921, align 8
  %3923 = getelementptr inbounds { ptr, i64 }, ptr %329, i32 0, i32 1
  %3924 = load i64, ptr %3923, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJmiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %328, ptr %3922, i64 %3924)
          to label %3925 unwind label %3940

3925:                                             ; preds = %3915
  call void @llvm.lifetime.start.p0(i64 8, ptr %331) #11
  store i64 42, ptr %331, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #11
  store i32 2, ptr %332, align 4, !tbaa !20
  %3926 = getelementptr inbounds { ptr, i64 }, ptr %328, i32 0, i32 0
  %3927 = load ptr, ptr %3926, align 8
  %3928 = getelementptr inbounds { ptr, i64 }, ptr %328, i32 0, i32 1
  %3929 = load i64, ptr %3928, align 8
  invoke void @_ZN3fmt3v106formatIJmiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %327, ptr %3927, i64 %3929, ptr noundef nonnull align 8 dereferenceable(8) %331, ptr noundef nonnull align 4 dereferenceable(4) %332)
          to label %3930 unwind label %3944

3930:                                             ; preds = %3925
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %331) #11
  br label %3986

3931:                                             ; preds = %3900, %3879, %3783
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %309) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %309) #11
  br label %5212

3932:                                             ; preds = %3901
  %3933 = landingpad { ptr, i32 }
          cleanup
  %3934 = extractvalue { ptr, i32 } %3933, 0
  store ptr %3934, ptr %5, align 8
  %3935 = extractvalue { ptr, i32 } %3933, 1
  store i32 %3935, ptr %6, align 4
  br label %4080

3936:                                             ; preds = %3904
  %3937 = landingpad { ptr, i32 }
          cleanup
  %3938 = extractvalue { ptr, i32 } %3937, 0
  store ptr %3938, ptr %5, align 8
  %3939 = extractvalue { ptr, i32 } %3937, 1
  store i32 %3939, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %325) #11
  br label %4028

3940:                                             ; preds = %3915, %3909, %3908, %3905
  %3941 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3942 = extractvalue { ptr, i32 } %3941, 0
  store ptr %3942, ptr %5, align 8
  %3943 = extractvalue { ptr, i32 } %3941, 1
  store i32 %3943, ptr %6, align 4
  br label %3948

3944:                                             ; preds = %3925
  %3945 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3946 = extractvalue { ptr, i32 } %3945, 0
  store ptr %3946, ptr %5, align 8
  %3947 = extractvalue { ptr, i32 } %3945, 1
  store i32 %3947, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %331) #11
  br label %3948

3948:                                             ; preds = %3944, %3940
  %3949 = load i32, ptr %6, align 4
  %3950 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %3951 = icmp eq i32 %3949, %3950
  br i1 %3951, label %3952, label %3980

3952:                                             ; preds = %3948
  call void @llvm.lifetime.start.p0(i64 8, ptr %333) #11
  %3953 = load ptr, ptr %5, align 8
  %3954 = call ptr @__cxa_begin_catch(ptr %3953) #11
  store ptr %3954, ptr %333, align 8
  %3955 = load ptr, ptr %333, align 8, !tbaa !5
  %3956 = load ptr, ptr %3955, align 8, !tbaa !13
  %3957 = getelementptr inbounds ptr, ptr %3956, i64 2
  %3958 = load ptr, ptr %3957, align 8
  %3959 = call noundef ptr %3958(ptr noundef nonnull align 8 dereferenceable(16) %3955) #11
  %3960 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef %3959)
          to label %3961 unwind label %3997

3961:                                             ; preds = %3952
  br i1 %3960, label %3962, label %4005

3962:                                             ; preds = %3961
  %3963 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %323, ptr noundef nonnull align 1 dereferenceable(96) @.str.1142)
          to label %3964 unwind label %3997

3964:                                             ; preds = %3962
  %3965 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3963, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %3966 unwind label %3997

3966:                                             ; preds = %3964
  %3967 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3965, ptr noundef nonnull align 8 dereferenceable(32) %324)
          to label %3968 unwind label %3997

3968:                                             ; preds = %3966
  %3969 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3967, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3970 unwind label %3997

3970:                                             ; preds = %3968
  %3971 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3969, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3972 unwind label %3997

3972:                                             ; preds = %3970
  call void @llvm.lifetime.start.p0(i64 8, ptr %334) #11
  %3973 = load ptr, ptr %333, align 8, !tbaa !5
  %3974 = load ptr, ptr %3973, align 8, !tbaa !13
  %3975 = getelementptr inbounds ptr, ptr %3974, i64 2
  %3976 = load ptr, ptr %3975, align 8
  %3977 = call noundef ptr %3976(ptr noundef nonnull align 8 dereferenceable(16) %3973) #11
  store ptr %3977, ptr %334, align 8, !tbaa !5
  %3978 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3971, ptr noundef nonnull align 8 dereferenceable(8) %334)
          to label %3979 unwind label %4001

3979:                                             ; preds = %3972
  call void @llvm.lifetime.end.p0(i64 8, ptr %334) #11
  store i32 25, ptr %15, align 4
  br label %4006

3980:                                             ; preds = %3948
  %3981 = load ptr, ptr %5, align 8
  %3982 = call ptr @__cxa_begin_catch(ptr %3981) #11
  %3983 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %323, ptr noundef nonnull align 1 dereferenceable(139) @.str.1141)
          to label %3984 unwind label %3987

3984:                                             ; preds = %3980
  store i32 25, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %3991 unwind label %3992

3985:                                             ; preds = %3907
  br label %3986

3986:                                             ; preds = %3985, %3930
  br label %4010

3987:                                             ; preds = %3980
  %3988 = landingpad { ptr, i32 }
          cleanup
  %3989 = extractvalue { ptr, i32 } %3988, 0
  store ptr %3989, ptr %5, align 8
  %3990 = extractvalue { ptr, i32 } %3988, 1
  store i32 %3990, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %3996 unwind label %5219

3991:                                             ; preds = %3984
  br label %4024

3992:                                             ; preds = %4013, %3984
  %3993 = landingpad { ptr, i32 }
          cleanup
  %3994 = extractvalue { ptr, i32 } %3993, 0
  store ptr %3994, ptr %5, align 8
  %3995 = extractvalue { ptr, i32 } %3993, 1
  store i32 %3995, ptr %6, align 4
  br label %4027

3996:                                             ; preds = %3987
  br label %4027

3997:                                             ; preds = %3970, %3968, %3966, %3964, %3962, %3952
  %3998 = landingpad { ptr, i32 }
          cleanup
  %3999 = extractvalue { ptr, i32 } %3998, 0
  store ptr %3999, ptr %5, align 8
  %4000 = extractvalue { ptr, i32 } %3998, 1
  store i32 %4000, ptr %6, align 4
  br label %4020

4001:                                             ; preds = %3972
  %4002 = landingpad { ptr, i32 }
          cleanup
  %4003 = extractvalue { ptr, i32 } %4002, 0
  store ptr %4003, ptr %5, align 8
  %4004 = extractvalue { ptr, i32 } %4002, 1
  store i32 %4004, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %334) #11
  br label %4020

4005:                                             ; preds = %3961
  store i8 1, ptr %326, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4006

4006:                                             ; preds = %4005, %3979
  invoke void @__cxa_end_catch()
          to label %4007 unwind label %4016

4007:                                             ; preds = %4006
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #11
  %4008 = load i32, ptr %15, align 4
  switch i32 %4008, label %4024 [
    i32 0, label %4009
  ]

4009:                                             ; preds = %4007
  br label %4010

4010:                                             ; preds = %4009, %3986
  %4011 = load i8, ptr %326, align 1, !tbaa !9, !range !15, !noundef !16
  %4012 = trunc i8 %4011 to i1
  br i1 %4012, label %4023, label %4013

4013:                                             ; preds = %4010
  %4014 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %323, ptr noundef nonnull align 1 dereferenceable(130) @.str.1143)
          to label %4015 unwind label %3992

4015:                                             ; preds = %4013
  store i32 25, ptr %15, align 4
  br label %4024

4016:                                             ; preds = %4006
  %4017 = landingpad { ptr, i32 }
          cleanup
  %4018 = extractvalue { ptr, i32 } %4017, 0
  store ptr %4018, ptr %5, align 8
  %4019 = extractvalue { ptr, i32 } %4017, 1
  store i32 %4019, ptr %6, align 4
  br label %4022

4020:                                             ; preds = %4001, %3997
  invoke void @__cxa_end_catch()
          to label %4021 unwind label %5219

4021:                                             ; preds = %4020
  br label %4022

4022:                                             ; preds = %4021, %4016
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #11
  br label %4027

4023:                                             ; preds = %4010
  store i32 0, ptr %15, align 4
  br label %4024

4024:                                             ; preds = %4023, %4015, %4007, %3991
  call void @llvm.lifetime.end.p0(i64 1, ptr %326) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %324) #11
  %4025 = load i32, ptr %15, align 4
  switch i32 %4025, label %5222 [
    i32 0, label %4026
    i32 25, label %4030
  ]

4026:                                             ; preds = %4024
  br label %4050

4027:                                             ; preds = %4022, %3996, %3992
  call void @llvm.lifetime.end.p0(i64 1, ptr %326) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #11
  br label %4028

4028:                                             ; preds = %4027, %3936
  call void @llvm.lifetime.end.p0(i64 32, ptr %324) #11
  br label %4080

4029:                                             ; preds = %3903
  br label %4030

4030:                                             ; preds = %4029, %4024
  call void @llvm.lifetime.start.p0(i64 8, ptr %335) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %335)
          to label %4031 unwind label %4036

4031:                                             ; preds = %4030
  call void @llvm.lifetime.start.p0(i64 8, ptr %336) #11
  %4032 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %323)
          to label %4033 unwind label %4040

4033:                                             ; preds = %4031
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %336, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1109, ptr noundef %4032)
          to label %4034 unwind label %4040

4034:                                             ; preds = %4033
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %336, ptr noundef nonnull align 8 dereferenceable(8) %335)
          to label %4035 unwind label %4044

4035:                                             ; preds = %4034
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %336) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %336) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %335) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %335) #11
  br label %4050

4036:                                             ; preds = %4030
  %4037 = landingpad { ptr, i32 }
          cleanup
  %4038 = extractvalue { ptr, i32 } %4037, 0
  store ptr %4038, ptr %5, align 8
  %4039 = extractvalue { ptr, i32 } %4037, 1
  store i32 %4039, ptr %6, align 4
  br label %4049

4040:                                             ; preds = %4033, %4031
  %4041 = landingpad { ptr, i32 }
          cleanup
  %4042 = extractvalue { ptr, i32 } %4041, 0
  store ptr %4042, ptr %5, align 8
  %4043 = extractvalue { ptr, i32 } %4041, 1
  store i32 %4043, ptr %6, align 4
  br label %4048

4044:                                             ; preds = %4034
  %4045 = landingpad { ptr, i32 }
          cleanup
  %4046 = extractvalue { ptr, i32 } %4045, 0
  store ptr %4046, ptr %5, align 8
  %4047 = extractvalue { ptr, i32 } %4045, 1
  store i32 %4047, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %336) #11
  br label %4048

4048:                                             ; preds = %4044, %4040
  call void @llvm.lifetime.end.p0(i64 8, ptr %336) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %335) #11
  br label %4049

4049:                                             ; preds = %4048, %4036
  call void @llvm.lifetime.end.p0(i64 8, ptr %335) #11
  br label %4080

4050:                                             ; preds = %4035, %4026
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %323) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %323) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %337) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %337)
  %4051 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %337)
          to label %4052 unwind label %4081

4052:                                             ; preds = %4050
  br i1 %4051, label %4053, label %4178

4053:                                             ; preds = %4052
  call void @llvm.lifetime.start.p0(i64 32, ptr %338) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %339) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %339) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %338, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %339)
          to label %4054 unwind label %4085

4054:                                             ; preds = %4053
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %339) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %339) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %340) #11
  store i8 0, ptr %340, align 1, !tbaa !9
  %4055 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %4056 unwind label %4089

4056:                                             ; preds = %4054
  br i1 %4055, label %4057, label %4134

4057:                                             ; preds = %4056
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %344, ptr noundef @.str.1088)
          to label %4058 unwind label %4089

4058:                                             ; preds = %4057
  %4059 = getelementptr inbounds { ptr, i64 }, ptr %344, i32 0, i32 0
  %4060 = load ptr, ptr %4059, align 8
  %4061 = getelementptr inbounds { ptr, i64 }, ptr %344, i32 0, i32 1
  %4062 = load i64, ptr %4061, align 8
  %4063 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %4060, i64 %4062)
          to label %4064 unwind label %4089

4064:                                             ; preds = %4058
  %4065 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %343, i32 0, i32 0
  %4066 = getelementptr inbounds { ptr, i64 }, ptr %4065, i32 0, i32 0
  %4067 = extractvalue { ptr, i64 } %4063, 0
  store ptr %4067, ptr %4066, align 8
  %4068 = getelementptr inbounds { ptr, i64 }, ptr %4065, i32 0, i32 1
  %4069 = extractvalue { ptr, i64 } %4063, 1
  store i64 %4069, ptr %4068, align 8
  %4070 = getelementptr inbounds { ptr, i64 }, ptr %343, i32 0, i32 0
  %4071 = load ptr, ptr %4070, align 8
  %4072 = getelementptr inbounds { ptr, i64 }, ptr %343, i32 0, i32 1
  %4073 = load i64, ptr %4072, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJxiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %342, ptr %4071, i64 %4073)
          to label %4074 unwind label %4089

4074:                                             ; preds = %4064
  call void @llvm.lifetime.start.p0(i64 8, ptr %345) #11
  store i64 42, ptr %345, align 8, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #11
  store i32 2, ptr %346, align 4, !tbaa !20
  %4075 = getelementptr inbounds { ptr, i64 }, ptr %342, i32 0, i32 0
  %4076 = load ptr, ptr %4075, align 8
  %4077 = getelementptr inbounds { ptr, i64 }, ptr %342, i32 0, i32 1
  %4078 = load i64, ptr %4077, align 8
  invoke void @_ZN3fmt3v106formatIJxiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %341, ptr %4076, i64 %4078, ptr noundef nonnull align 8 dereferenceable(8) %345, ptr noundef nonnull align 4 dereferenceable(4) %346)
          to label %4079 unwind label %4093

4079:                                             ; preds = %4074
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %345) #11
  br label %4135

4080:                                             ; preds = %4049, %4028, %3932
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %323) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %323) #11
  br label %5212

4081:                                             ; preds = %4050
  %4082 = landingpad { ptr, i32 }
          cleanup
  %4083 = extractvalue { ptr, i32 } %4082, 0
  store ptr %4083, ptr %5, align 8
  %4084 = extractvalue { ptr, i32 } %4082, 1
  store i32 %4084, ptr %6, align 4
  br label %4229

4085:                                             ; preds = %4053
  %4086 = landingpad { ptr, i32 }
          cleanup
  %4087 = extractvalue { ptr, i32 } %4086, 0
  store ptr %4087, ptr %5, align 8
  %4088 = extractvalue { ptr, i32 } %4086, 1
  store i32 %4088, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %339) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %339) #11
  br label %4177

4089:                                             ; preds = %4064, %4058, %4057, %4054
  %4090 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4091 = extractvalue { ptr, i32 } %4090, 0
  store ptr %4091, ptr %5, align 8
  %4092 = extractvalue { ptr, i32 } %4090, 1
  store i32 %4092, ptr %6, align 4
  br label %4097

4093:                                             ; preds = %4074
  %4094 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4095 = extractvalue { ptr, i32 } %4094, 0
  store ptr %4095, ptr %5, align 8
  %4096 = extractvalue { ptr, i32 } %4094, 1
  store i32 %4096, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %345) #11
  br label %4097

4097:                                             ; preds = %4093, %4089
  %4098 = load i32, ptr %6, align 4
  %4099 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %4100 = icmp eq i32 %4098, %4099
  br i1 %4100, label %4101, label %4129

4101:                                             ; preds = %4097
  call void @llvm.lifetime.start.p0(i64 8, ptr %347) #11
  %4102 = load ptr, ptr %5, align 8
  %4103 = call ptr @__cxa_begin_catch(ptr %4102) #11
  store ptr %4103, ptr %347, align 8
  %4104 = load ptr, ptr %347, align 8, !tbaa !5
  %4105 = load ptr, ptr %4104, align 8, !tbaa !13
  %4106 = getelementptr inbounds ptr, ptr %4105, i64 2
  %4107 = load ptr, ptr %4106, align 8
  %4108 = call noundef ptr %4107(ptr noundef nonnull align 8 dereferenceable(16) %4104) #11
  %4109 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %338, ptr noundef %4108)
          to label %4110 unwind label %4146

4110:                                             ; preds = %4101
  br i1 %4109, label %4111, label %4154

4111:                                             ; preds = %4110
  %4112 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %337, ptr noundef nonnull align 1 dereferenceable(95) @.str.1145)
          to label %4113 unwind label %4146

4113:                                             ; preds = %4111
  %4114 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4112, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %4115 unwind label %4146

4115:                                             ; preds = %4113
  %4116 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4114, ptr noundef nonnull align 8 dereferenceable(32) %338)
          to label %4117 unwind label %4146

4117:                                             ; preds = %4115
  %4118 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4116, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %4119 unwind label %4146

4119:                                             ; preds = %4117
  %4120 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4118, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %4121 unwind label %4146

4121:                                             ; preds = %4119
  call void @llvm.lifetime.start.p0(i64 8, ptr %348) #11
  %4122 = load ptr, ptr %347, align 8, !tbaa !5
  %4123 = load ptr, ptr %4122, align 8, !tbaa !13
  %4124 = getelementptr inbounds ptr, ptr %4123, i64 2
  %4125 = load ptr, ptr %4124, align 8
  %4126 = call noundef ptr %4125(ptr noundef nonnull align 8 dereferenceable(16) %4122) #11
  store ptr %4126, ptr %348, align 8, !tbaa !5
  %4127 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4120, ptr noundef nonnull align 8 dereferenceable(8) %348)
          to label %4128 unwind label %4150

4128:                                             ; preds = %4121
  call void @llvm.lifetime.end.p0(i64 8, ptr %348) #11
  store i32 26, ptr %15, align 4
  br label %4155

4129:                                             ; preds = %4097
  %4130 = load ptr, ptr %5, align 8
  %4131 = call ptr @__cxa_begin_catch(ptr %4130) #11
  %4132 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %337, ptr noundef nonnull align 1 dereferenceable(138) @.str.1144)
          to label %4133 unwind label %4136

4133:                                             ; preds = %4129
  store i32 26, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %4140 unwind label %4141

4134:                                             ; preds = %4056
  br label %4135

4135:                                             ; preds = %4134, %4079
  br label %4159

4136:                                             ; preds = %4129
  %4137 = landingpad { ptr, i32 }
          cleanup
  %4138 = extractvalue { ptr, i32 } %4137, 0
  store ptr %4138, ptr %5, align 8
  %4139 = extractvalue { ptr, i32 } %4137, 1
  store i32 %4139, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %4145 unwind label %5219

4140:                                             ; preds = %4133
  br label %4173

4141:                                             ; preds = %4162, %4133
  %4142 = landingpad { ptr, i32 }
          cleanup
  %4143 = extractvalue { ptr, i32 } %4142, 0
  store ptr %4143, ptr %5, align 8
  %4144 = extractvalue { ptr, i32 } %4142, 1
  store i32 %4144, ptr %6, align 4
  br label %4176

4145:                                             ; preds = %4136
  br label %4176

4146:                                             ; preds = %4119, %4117, %4115, %4113, %4111, %4101
  %4147 = landingpad { ptr, i32 }
          cleanup
  %4148 = extractvalue { ptr, i32 } %4147, 0
  store ptr %4148, ptr %5, align 8
  %4149 = extractvalue { ptr, i32 } %4147, 1
  store i32 %4149, ptr %6, align 4
  br label %4169

4150:                                             ; preds = %4121
  %4151 = landingpad { ptr, i32 }
          cleanup
  %4152 = extractvalue { ptr, i32 } %4151, 0
  store ptr %4152, ptr %5, align 8
  %4153 = extractvalue { ptr, i32 } %4151, 1
  store i32 %4153, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %348) #11
  br label %4169

4154:                                             ; preds = %4110
  store i8 1, ptr %340, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4155

4155:                                             ; preds = %4154, %4128
  invoke void @__cxa_end_catch()
          to label %4156 unwind label %4165

4156:                                             ; preds = %4155
  call void @llvm.lifetime.end.p0(i64 8, ptr %347) #11
  %4157 = load i32, ptr %15, align 4
  switch i32 %4157, label %4173 [
    i32 0, label %4158
  ]

4158:                                             ; preds = %4156
  br label %4159

4159:                                             ; preds = %4158, %4135
  %4160 = load i8, ptr %340, align 1, !tbaa !9, !range !15, !noundef !16
  %4161 = trunc i8 %4160 to i1
  br i1 %4161, label %4172, label %4162

4162:                                             ; preds = %4159
  %4163 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %337, ptr noundef nonnull align 1 dereferenceable(129) @.str.1146)
          to label %4164 unwind label %4141

4164:                                             ; preds = %4162
  store i32 26, ptr %15, align 4
  br label %4173

4165:                                             ; preds = %4155
  %4166 = landingpad { ptr, i32 }
          cleanup
  %4167 = extractvalue { ptr, i32 } %4166, 0
  store ptr %4167, ptr %5, align 8
  %4168 = extractvalue { ptr, i32 } %4166, 1
  store i32 %4168, ptr %6, align 4
  br label %4171

4169:                                             ; preds = %4150, %4146
  invoke void @__cxa_end_catch()
          to label %4170 unwind label %5219

4170:                                             ; preds = %4169
  br label %4171

4171:                                             ; preds = %4170, %4165
  call void @llvm.lifetime.end.p0(i64 8, ptr %347) #11
  br label %4176

4172:                                             ; preds = %4159
  store i32 0, ptr %15, align 4
  br label %4173

4173:                                             ; preds = %4172, %4164, %4156, %4140
  call void @llvm.lifetime.end.p0(i64 1, ptr %340) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %338) #11
  %4174 = load i32, ptr %15, align 4
  switch i32 %4174, label %5222 [
    i32 0, label %4175
    i32 26, label %4179
  ]

4175:                                             ; preds = %4173
  br label %4199

4176:                                             ; preds = %4171, %4145, %4141
  call void @llvm.lifetime.end.p0(i64 1, ptr %340) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #11
  br label %4177

4177:                                             ; preds = %4176, %4085
  call void @llvm.lifetime.end.p0(i64 32, ptr %338) #11
  br label %4229

4178:                                             ; preds = %4052
  br label %4179

4179:                                             ; preds = %4178, %4173
  call void @llvm.lifetime.start.p0(i64 8, ptr %349) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %349)
          to label %4180 unwind label %4185

4180:                                             ; preds = %4179
  call void @llvm.lifetime.start.p0(i64 8, ptr %350) #11
  %4181 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %337)
          to label %4182 unwind label %4189

4182:                                             ; preds = %4180
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %350, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1111, ptr noundef %4181)
          to label %4183 unwind label %4189

4183:                                             ; preds = %4182
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef nonnull align 8 dereferenceable(8) %349)
          to label %4184 unwind label %4193

4184:                                             ; preds = %4183
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %350) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %350) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %349) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #11
  br label %4199

4185:                                             ; preds = %4179
  %4186 = landingpad { ptr, i32 }
          cleanup
  %4187 = extractvalue { ptr, i32 } %4186, 0
  store ptr %4187, ptr %5, align 8
  %4188 = extractvalue { ptr, i32 } %4186, 1
  store i32 %4188, ptr %6, align 4
  br label %4198

4189:                                             ; preds = %4182, %4180
  %4190 = landingpad { ptr, i32 }
          cleanup
  %4191 = extractvalue { ptr, i32 } %4190, 0
  store ptr %4191, ptr %5, align 8
  %4192 = extractvalue { ptr, i32 } %4190, 1
  store i32 %4192, ptr %6, align 4
  br label %4197

4193:                                             ; preds = %4183
  %4194 = landingpad { ptr, i32 }
          cleanup
  %4195 = extractvalue { ptr, i32 } %4194, 0
  store ptr %4195, ptr %5, align 8
  %4196 = extractvalue { ptr, i32 } %4194, 1
  store i32 %4196, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %350) #11
  br label %4197

4197:                                             ; preds = %4193, %4189
  call void @llvm.lifetime.end.p0(i64 8, ptr %350) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %349) #11
  br label %4198

4198:                                             ; preds = %4197, %4185
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #11
  br label %4229

4199:                                             ; preds = %4184, %4175
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %337) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %337) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %351) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %351)
  %4200 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %351)
          to label %4201 unwind label %4230

4201:                                             ; preds = %4199
  br i1 %4200, label %4202, label %4327

4202:                                             ; preds = %4201
  call void @llvm.lifetime.start.p0(i64 32, ptr %352) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %353) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %353)
          to label %4203 unwind label %4234

4203:                                             ; preds = %4202
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %353) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %354) #11
  store i8 0, ptr %354, align 1, !tbaa !9
  %4204 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %4205 unwind label %4238

4205:                                             ; preds = %4203
  br i1 %4204, label %4206, label %4283

4206:                                             ; preds = %4205
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %358, ptr noundef @.str.1122)
          to label %4207 unwind label %4238

4207:                                             ; preds = %4206
  %4208 = getelementptr inbounds { ptr, i64 }, ptr %358, i32 0, i32 0
  %4209 = load ptr, ptr %4208, align 8
  %4210 = getelementptr inbounds { ptr, i64 }, ptr %358, i32 0, i32 1
  %4211 = load i64, ptr %4210, align 8
  %4212 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %4209, i64 %4211)
          to label %4213 unwind label %4238

4213:                                             ; preds = %4207
  %4214 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %357, i32 0, i32 0
  %4215 = getelementptr inbounds { ptr, i64 }, ptr %4214, i32 0, i32 0
  %4216 = extractvalue { ptr, i64 } %4212, 0
  store ptr %4216, ptr %4215, align 8
  %4217 = getelementptr inbounds { ptr, i64 }, ptr %4214, i32 0, i32 1
  %4218 = extractvalue { ptr, i64 } %4212, 1
  store i64 %4218, ptr %4217, align 8
  %4219 = getelementptr inbounds { ptr, i64 }, ptr %357, i32 0, i32 0
  %4220 = load ptr, ptr %4219, align 8
  %4221 = getelementptr inbounds { ptr, i64 }, ptr %357, i32 0, i32 1
  %4222 = load i64, ptr %4221, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJxiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %356, ptr %4220, i64 %4222)
          to label %4223 unwind label %4238

4223:                                             ; preds = %4213
  call void @llvm.lifetime.start.p0(i64 8, ptr %359) #11
  store i64 42, ptr %359, align 8, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %360) #11
  store i32 2, ptr %360, align 4, !tbaa !20
  %4224 = getelementptr inbounds { ptr, i64 }, ptr %356, i32 0, i32 0
  %4225 = load ptr, ptr %4224, align 8
  %4226 = getelementptr inbounds { ptr, i64 }, ptr %356, i32 0, i32 1
  %4227 = load i64, ptr %4226, align 8
  invoke void @_ZN3fmt3v106formatIJxiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %355, ptr %4225, i64 %4227, ptr noundef nonnull align 8 dereferenceable(8) %359, ptr noundef nonnull align 4 dereferenceable(4) %360)
          to label %4228 unwind label %4242

4228:                                             ; preds = %4223
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %355) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %360) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %359) #11
  br label %4284

4229:                                             ; preds = %4198, %4177, %4081
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %337) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %337) #11
  br label %5212

4230:                                             ; preds = %4199
  %4231 = landingpad { ptr, i32 }
          cleanup
  %4232 = extractvalue { ptr, i32 } %4231, 0
  store ptr %4232, ptr %5, align 8
  %4233 = extractvalue { ptr, i32 } %4231, 1
  store i32 %4233, ptr %6, align 4
  br label %4378

4234:                                             ; preds = %4202
  %4235 = landingpad { ptr, i32 }
          cleanup
  %4236 = extractvalue { ptr, i32 } %4235, 0
  store ptr %4236, ptr %5, align 8
  %4237 = extractvalue { ptr, i32 } %4235, 1
  store i32 %4237, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %353) #11
  br label %4326

4238:                                             ; preds = %4213, %4207, %4206, %4203
  %4239 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4240 = extractvalue { ptr, i32 } %4239, 0
  store ptr %4240, ptr %5, align 8
  %4241 = extractvalue { ptr, i32 } %4239, 1
  store i32 %4241, ptr %6, align 4
  br label %4246

4242:                                             ; preds = %4223
  %4243 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4244 = extractvalue { ptr, i32 } %4243, 0
  store ptr %4244, ptr %5, align 8
  %4245 = extractvalue { ptr, i32 } %4243, 1
  store i32 %4245, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %360) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %359) #11
  br label %4246

4246:                                             ; preds = %4242, %4238
  %4247 = load i32, ptr %6, align 4
  %4248 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %4249 = icmp eq i32 %4247, %4248
  br i1 %4249, label %4250, label %4278

4250:                                             ; preds = %4246
  call void @llvm.lifetime.start.p0(i64 8, ptr %361) #11
  %4251 = load ptr, ptr %5, align 8
  %4252 = call ptr @__cxa_begin_catch(ptr %4251) #11
  store ptr %4252, ptr %361, align 8
  %4253 = load ptr, ptr %361, align 8, !tbaa !5
  %4254 = load ptr, ptr %4253, align 8, !tbaa !13
  %4255 = getelementptr inbounds ptr, ptr %4254, i64 2
  %4256 = load ptr, ptr %4255, align 8
  %4257 = call noundef ptr %4256(ptr noundef nonnull align 8 dereferenceable(16) %4253) #11
  %4258 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef %4257)
          to label %4259 unwind label %4295

4259:                                             ; preds = %4250
  br i1 %4258, label %4260, label %4303

4260:                                             ; preds = %4259
  %4261 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %351, ptr noundef nonnull align 1 dereferenceable(96) @.str.1148)
          to label %4262 unwind label %4295

4262:                                             ; preds = %4260
  %4263 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4261, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %4264 unwind label %4295

4264:                                             ; preds = %4262
  %4265 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4263, ptr noundef nonnull align 8 dereferenceable(32) %352)
          to label %4266 unwind label %4295

4266:                                             ; preds = %4264
  %4267 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4265, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %4268 unwind label %4295

4268:                                             ; preds = %4266
  %4269 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4267, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %4270 unwind label %4295

4270:                                             ; preds = %4268
  call void @llvm.lifetime.start.p0(i64 8, ptr %362) #11
  %4271 = load ptr, ptr %361, align 8, !tbaa !5
  %4272 = load ptr, ptr %4271, align 8, !tbaa !13
  %4273 = getelementptr inbounds ptr, ptr %4272, i64 2
  %4274 = load ptr, ptr %4273, align 8
  %4275 = call noundef ptr %4274(ptr noundef nonnull align 8 dereferenceable(16) %4271) #11
  store ptr %4275, ptr %362, align 8, !tbaa !5
  %4276 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4269, ptr noundef nonnull align 8 dereferenceable(8) %362)
          to label %4277 unwind label %4299

4277:                                             ; preds = %4270
  call void @llvm.lifetime.end.p0(i64 8, ptr %362) #11
  store i32 27, ptr %15, align 4
  br label %4304

4278:                                             ; preds = %4246
  %4279 = load ptr, ptr %5, align 8
  %4280 = call ptr @__cxa_begin_catch(ptr %4279) #11
  %4281 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %351, ptr noundef nonnull align 1 dereferenceable(139) @.str.1147)
          to label %4282 unwind label %4285

4282:                                             ; preds = %4278
  store i32 27, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %4289 unwind label %4290

4283:                                             ; preds = %4205
  br label %4284

4284:                                             ; preds = %4283, %4228
  br label %4308

4285:                                             ; preds = %4278
  %4286 = landingpad { ptr, i32 }
          cleanup
  %4287 = extractvalue { ptr, i32 } %4286, 0
  store ptr %4287, ptr %5, align 8
  %4288 = extractvalue { ptr, i32 } %4286, 1
  store i32 %4288, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %4294 unwind label %5219

4289:                                             ; preds = %4282
  br label %4322

4290:                                             ; preds = %4311, %4282
  %4291 = landingpad { ptr, i32 }
          cleanup
  %4292 = extractvalue { ptr, i32 } %4291, 0
  store ptr %4292, ptr %5, align 8
  %4293 = extractvalue { ptr, i32 } %4291, 1
  store i32 %4293, ptr %6, align 4
  br label %4325

4294:                                             ; preds = %4285
  br label %4325

4295:                                             ; preds = %4268, %4266, %4264, %4262, %4260, %4250
  %4296 = landingpad { ptr, i32 }
          cleanup
  %4297 = extractvalue { ptr, i32 } %4296, 0
  store ptr %4297, ptr %5, align 8
  %4298 = extractvalue { ptr, i32 } %4296, 1
  store i32 %4298, ptr %6, align 4
  br label %4318

4299:                                             ; preds = %4270
  %4300 = landingpad { ptr, i32 }
          cleanup
  %4301 = extractvalue { ptr, i32 } %4300, 0
  store ptr %4301, ptr %5, align 8
  %4302 = extractvalue { ptr, i32 } %4300, 1
  store i32 %4302, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %362) #11
  br label %4318

4303:                                             ; preds = %4259
  store i8 1, ptr %354, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4304

4304:                                             ; preds = %4303, %4277
  invoke void @__cxa_end_catch()
          to label %4305 unwind label %4314

4305:                                             ; preds = %4304
  call void @llvm.lifetime.end.p0(i64 8, ptr %361) #11
  %4306 = load i32, ptr %15, align 4
  switch i32 %4306, label %4322 [
    i32 0, label %4307
  ]

4307:                                             ; preds = %4305
  br label %4308

4308:                                             ; preds = %4307, %4284
  %4309 = load i8, ptr %354, align 1, !tbaa !9, !range !15, !noundef !16
  %4310 = trunc i8 %4309 to i1
  br i1 %4310, label %4321, label %4311

4311:                                             ; preds = %4308
  %4312 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %351, ptr noundef nonnull align 1 dereferenceable(130) @.str.1149)
          to label %4313 unwind label %4290

4313:                                             ; preds = %4311
  store i32 27, ptr %15, align 4
  br label %4322

4314:                                             ; preds = %4304
  %4315 = landingpad { ptr, i32 }
          cleanup
  %4316 = extractvalue { ptr, i32 } %4315, 0
  store ptr %4316, ptr %5, align 8
  %4317 = extractvalue { ptr, i32 } %4315, 1
  store i32 %4317, ptr %6, align 4
  br label %4320

4318:                                             ; preds = %4299, %4295
  invoke void @__cxa_end_catch()
          to label %4319 unwind label %5219

4319:                                             ; preds = %4318
  br label %4320

4320:                                             ; preds = %4319, %4314
  call void @llvm.lifetime.end.p0(i64 8, ptr %361) #11
  br label %4325

4321:                                             ; preds = %4308
  store i32 0, ptr %15, align 4
  br label %4322

4322:                                             ; preds = %4321, %4313, %4305, %4289
  call void @llvm.lifetime.end.p0(i64 1, ptr %354) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %352) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %352) #11
  %4323 = load i32, ptr %15, align 4
  switch i32 %4323, label %5222 [
    i32 0, label %4324
    i32 27, label %4328
  ]

4324:                                             ; preds = %4322
  br label %4348

4325:                                             ; preds = %4320, %4294, %4290
  call void @llvm.lifetime.end.p0(i64 1, ptr %354) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %352) #11
  br label %4326

4326:                                             ; preds = %4325, %4234
  call void @llvm.lifetime.end.p0(i64 32, ptr %352) #11
  br label %4378

4327:                                             ; preds = %4201
  br label %4328

4328:                                             ; preds = %4327, %4322
  call void @llvm.lifetime.start.p0(i64 8, ptr %363) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %363)
          to label %4329 unwind label %4334

4329:                                             ; preds = %4328
  call void @llvm.lifetime.start.p0(i64 8, ptr %364) #11
  %4330 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %351)
          to label %4331 unwind label %4338

4331:                                             ; preds = %4329
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %364, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1113, ptr noundef %4330)
          to label %4332 unwind label %4338

4332:                                             ; preds = %4331
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef nonnull align 8 dereferenceable(8) %363)
          to label %4333 unwind label %4342

4333:                                             ; preds = %4332
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %364) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %364) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %363) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #11
  br label %4348

4334:                                             ; preds = %4328
  %4335 = landingpad { ptr, i32 }
          cleanup
  %4336 = extractvalue { ptr, i32 } %4335, 0
  store ptr %4336, ptr %5, align 8
  %4337 = extractvalue { ptr, i32 } %4335, 1
  store i32 %4337, ptr %6, align 4
  br label %4347

4338:                                             ; preds = %4331, %4329
  %4339 = landingpad { ptr, i32 }
          cleanup
  %4340 = extractvalue { ptr, i32 } %4339, 0
  store ptr %4340, ptr %5, align 8
  %4341 = extractvalue { ptr, i32 } %4339, 1
  store i32 %4341, ptr %6, align 4
  br label %4346

4342:                                             ; preds = %4332
  %4343 = landingpad { ptr, i32 }
          cleanup
  %4344 = extractvalue { ptr, i32 } %4343, 0
  store ptr %4344, ptr %5, align 8
  %4345 = extractvalue { ptr, i32 } %4343, 1
  store i32 %4345, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %364) #11
  br label %4346

4346:                                             ; preds = %4342, %4338
  call void @llvm.lifetime.end.p0(i64 8, ptr %364) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %363) #11
  br label %4347

4347:                                             ; preds = %4346, %4334
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #11
  br label %4378

4348:                                             ; preds = %4333, %4324
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %351) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %351) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %365) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %365)
  %4349 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %365)
          to label %4350 unwind label %4379

4350:                                             ; preds = %4348
  br i1 %4349, label %4351, label %4476

4351:                                             ; preds = %4350
  call void @llvm.lifetime.start.p0(i64 32, ptr %366) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %367) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %367)
          to label %4352 unwind label %4383

4352:                                             ; preds = %4351
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %367) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %368) #11
  store i8 0, ptr %368, align 1, !tbaa !9
  %4353 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %4354 unwind label %4387

4354:                                             ; preds = %4352
  br i1 %4353, label %4355, label %4432

4355:                                             ; preds = %4354
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %372, ptr noundef @.str.1088)
          to label %4356 unwind label %4387

4356:                                             ; preds = %4355
  %4357 = getelementptr inbounds { ptr, i64 }, ptr %372, i32 0, i32 0
  %4358 = load ptr, ptr %4357, align 8
  %4359 = getelementptr inbounds { ptr, i64 }, ptr %372, i32 0, i32 1
  %4360 = load i64, ptr %4359, align 8
  %4361 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %4358, i64 %4360)
          to label %4362 unwind label %4387

4362:                                             ; preds = %4356
  %4363 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %371, i32 0, i32 0
  %4364 = getelementptr inbounds { ptr, i64 }, ptr %4363, i32 0, i32 0
  %4365 = extractvalue { ptr, i64 } %4361, 0
  store ptr %4365, ptr %4364, align 8
  %4366 = getelementptr inbounds { ptr, i64 }, ptr %4363, i32 0, i32 1
  %4367 = extractvalue { ptr, i64 } %4361, 1
  store i64 %4367, ptr %4366, align 8
  %4368 = getelementptr inbounds { ptr, i64 }, ptr %371, i32 0, i32 0
  %4369 = load ptr, ptr %4368, align 8
  %4370 = getelementptr inbounds { ptr, i64 }, ptr %371, i32 0, i32 1
  %4371 = load i64, ptr %4370, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJyiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %370, ptr %4369, i64 %4371)
          to label %4372 unwind label %4387

4372:                                             ; preds = %4362
  call void @llvm.lifetime.start.p0(i64 8, ptr %373) #11
  store i64 42, ptr %373, align 8, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %374) #11
  store i32 2, ptr %374, align 4, !tbaa !20
  %4373 = getelementptr inbounds { ptr, i64 }, ptr %370, i32 0, i32 0
  %4374 = load ptr, ptr %4373, align 8
  %4375 = getelementptr inbounds { ptr, i64 }, ptr %370, i32 0, i32 1
  %4376 = load i64, ptr %4375, align 8
  invoke void @_ZN3fmt3v106formatIJyiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %369, ptr %4374, i64 %4376, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 4 dereferenceable(4) %374)
          to label %4377 unwind label %4391

4377:                                             ; preds = %4372
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %369) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %374) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %373) #11
  br label %4433

4378:                                             ; preds = %4347, %4326, %4230
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %351) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %351) #11
  br label %5212

4379:                                             ; preds = %4348
  %4380 = landingpad { ptr, i32 }
          cleanup
  %4381 = extractvalue { ptr, i32 } %4380, 0
  store ptr %4381, ptr %5, align 8
  %4382 = extractvalue { ptr, i32 } %4380, 1
  store i32 %4382, ptr %6, align 4
  br label %4527

4383:                                             ; preds = %4351
  %4384 = landingpad { ptr, i32 }
          cleanup
  %4385 = extractvalue { ptr, i32 } %4384, 0
  store ptr %4385, ptr %5, align 8
  %4386 = extractvalue { ptr, i32 } %4384, 1
  store i32 %4386, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %367) #11
  br label %4475

4387:                                             ; preds = %4362, %4356, %4355, %4352
  %4388 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4389 = extractvalue { ptr, i32 } %4388, 0
  store ptr %4389, ptr %5, align 8
  %4390 = extractvalue { ptr, i32 } %4388, 1
  store i32 %4390, ptr %6, align 4
  br label %4395

4391:                                             ; preds = %4372
  %4392 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4393 = extractvalue { ptr, i32 } %4392, 0
  store ptr %4393, ptr %5, align 8
  %4394 = extractvalue { ptr, i32 } %4392, 1
  store i32 %4394, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %374) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %373) #11
  br label %4395

4395:                                             ; preds = %4391, %4387
  %4396 = load i32, ptr %6, align 4
  %4397 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %4398 = icmp eq i32 %4396, %4397
  br i1 %4398, label %4399, label %4427

4399:                                             ; preds = %4395
  call void @llvm.lifetime.start.p0(i64 8, ptr %375) #11
  %4400 = load ptr, ptr %5, align 8
  %4401 = call ptr @__cxa_begin_catch(ptr %4400) #11
  store ptr %4401, ptr %375, align 8
  %4402 = load ptr, ptr %375, align 8, !tbaa !5
  %4403 = load ptr, ptr %4402, align 8, !tbaa !13
  %4404 = getelementptr inbounds ptr, ptr %4403, i64 2
  %4405 = load ptr, ptr %4404, align 8
  %4406 = call noundef ptr %4405(ptr noundef nonnull align 8 dereferenceable(16) %4402) #11
  %4407 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef %4406)
          to label %4408 unwind label %4444

4408:                                             ; preds = %4399
  br i1 %4407, label %4409, label %4452

4409:                                             ; preds = %4408
  %4410 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %365, ptr noundef nonnull align 1 dereferenceable(96) @.str.1151)
          to label %4411 unwind label %4444

4411:                                             ; preds = %4409
  %4412 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4410, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %4413 unwind label %4444

4413:                                             ; preds = %4411
  %4414 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4412, ptr noundef nonnull align 8 dereferenceable(32) %366)
          to label %4415 unwind label %4444

4415:                                             ; preds = %4413
  %4416 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4414, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %4417 unwind label %4444

4417:                                             ; preds = %4415
  %4418 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4416, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %4419 unwind label %4444

4419:                                             ; preds = %4417
  call void @llvm.lifetime.start.p0(i64 8, ptr %376) #11
  %4420 = load ptr, ptr %375, align 8, !tbaa !5
  %4421 = load ptr, ptr %4420, align 8, !tbaa !13
  %4422 = getelementptr inbounds ptr, ptr %4421, i64 2
  %4423 = load ptr, ptr %4422, align 8
  %4424 = call noundef ptr %4423(ptr noundef nonnull align 8 dereferenceable(16) %4420) #11
  store ptr %4424, ptr %376, align 8, !tbaa !5
  %4425 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4418, ptr noundef nonnull align 8 dereferenceable(8) %376)
          to label %4426 unwind label %4448

4426:                                             ; preds = %4419
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #11
  store i32 28, ptr %15, align 4
  br label %4453

4427:                                             ; preds = %4395
  %4428 = load ptr, ptr %5, align 8
  %4429 = call ptr @__cxa_begin_catch(ptr %4428) #11
  %4430 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %365, ptr noundef nonnull align 1 dereferenceable(139) @.str.1150)
          to label %4431 unwind label %4434

4431:                                             ; preds = %4427
  store i32 28, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %4438 unwind label %4439

4432:                                             ; preds = %4354
  br label %4433

4433:                                             ; preds = %4432, %4377
  br label %4457

4434:                                             ; preds = %4427
  %4435 = landingpad { ptr, i32 }
          cleanup
  %4436 = extractvalue { ptr, i32 } %4435, 0
  store ptr %4436, ptr %5, align 8
  %4437 = extractvalue { ptr, i32 } %4435, 1
  store i32 %4437, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %4443 unwind label %5219

4438:                                             ; preds = %4431
  br label %4471

4439:                                             ; preds = %4460, %4431
  %4440 = landingpad { ptr, i32 }
          cleanup
  %4441 = extractvalue { ptr, i32 } %4440, 0
  store ptr %4441, ptr %5, align 8
  %4442 = extractvalue { ptr, i32 } %4440, 1
  store i32 %4442, ptr %6, align 4
  br label %4474

4443:                                             ; preds = %4434
  br label %4474

4444:                                             ; preds = %4417, %4415, %4413, %4411, %4409, %4399
  %4445 = landingpad { ptr, i32 }
          cleanup
  %4446 = extractvalue { ptr, i32 } %4445, 0
  store ptr %4446, ptr %5, align 8
  %4447 = extractvalue { ptr, i32 } %4445, 1
  store i32 %4447, ptr %6, align 4
  br label %4467

4448:                                             ; preds = %4419
  %4449 = landingpad { ptr, i32 }
          cleanup
  %4450 = extractvalue { ptr, i32 } %4449, 0
  store ptr %4450, ptr %5, align 8
  %4451 = extractvalue { ptr, i32 } %4449, 1
  store i32 %4451, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #11
  br label %4467

4452:                                             ; preds = %4408
  store i8 1, ptr %368, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4453

4453:                                             ; preds = %4452, %4426
  invoke void @__cxa_end_catch()
          to label %4454 unwind label %4463

4454:                                             ; preds = %4453
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #11
  %4455 = load i32, ptr %15, align 4
  switch i32 %4455, label %4471 [
    i32 0, label %4456
  ]

4456:                                             ; preds = %4454
  br label %4457

4457:                                             ; preds = %4456, %4433
  %4458 = load i8, ptr %368, align 1, !tbaa !9, !range !15, !noundef !16
  %4459 = trunc i8 %4458 to i1
  br i1 %4459, label %4470, label %4460

4460:                                             ; preds = %4457
  %4461 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %365, ptr noundef nonnull align 1 dereferenceable(130) @.str.1152)
          to label %4462 unwind label %4439

4462:                                             ; preds = %4460
  store i32 28, ptr %15, align 4
  br label %4471

4463:                                             ; preds = %4453
  %4464 = landingpad { ptr, i32 }
          cleanup
  %4465 = extractvalue { ptr, i32 } %4464, 0
  store ptr %4465, ptr %5, align 8
  %4466 = extractvalue { ptr, i32 } %4464, 1
  store i32 %4466, ptr %6, align 4
  br label %4469

4467:                                             ; preds = %4448, %4444
  invoke void @__cxa_end_catch()
          to label %4468 unwind label %5219

4468:                                             ; preds = %4467
  br label %4469

4469:                                             ; preds = %4468, %4463
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #11
  br label %4474

4470:                                             ; preds = %4457
  store i32 0, ptr %15, align 4
  br label %4471

4471:                                             ; preds = %4470, %4462, %4454, %4438
  call void @llvm.lifetime.end.p0(i64 1, ptr %368) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #11
  %4472 = load i32, ptr %15, align 4
  switch i32 %4472, label %5222 [
    i32 0, label %4473
    i32 28, label %4477
  ]

4473:                                             ; preds = %4471
  br label %4497

4474:                                             ; preds = %4469, %4443, %4439
  call void @llvm.lifetime.end.p0(i64 1, ptr %368) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #11
  br label %4475

4475:                                             ; preds = %4474, %4383
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #11
  br label %4527

4476:                                             ; preds = %4350
  br label %4477

4477:                                             ; preds = %4476, %4471
  call void @llvm.lifetime.start.p0(i64 8, ptr %377) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %377)
          to label %4478 unwind label %4483

4478:                                             ; preds = %4477
  call void @llvm.lifetime.start.p0(i64 8, ptr %378) #11
  %4479 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %365)
          to label %4480 unwind label %4487

4480:                                             ; preds = %4478
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %378, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1115, ptr noundef %4479)
          to label %4481 unwind label %4487

4481:                                             ; preds = %4480
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %378, ptr noundef nonnull align 8 dereferenceable(8) %377)
          to label %4482 unwind label %4491

4482:                                             ; preds = %4481
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %378) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %378) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %377) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %377) #11
  br label %4497

4483:                                             ; preds = %4477
  %4484 = landingpad { ptr, i32 }
          cleanup
  %4485 = extractvalue { ptr, i32 } %4484, 0
  store ptr %4485, ptr %5, align 8
  %4486 = extractvalue { ptr, i32 } %4484, 1
  store i32 %4486, ptr %6, align 4
  br label %4496

4487:                                             ; preds = %4480, %4478
  %4488 = landingpad { ptr, i32 }
          cleanup
  %4489 = extractvalue { ptr, i32 } %4488, 0
  store ptr %4489, ptr %5, align 8
  %4490 = extractvalue { ptr, i32 } %4488, 1
  store i32 %4490, ptr %6, align 4
  br label %4495

4491:                                             ; preds = %4481
  %4492 = landingpad { ptr, i32 }
          cleanup
  %4493 = extractvalue { ptr, i32 } %4492, 0
  store ptr %4493, ptr %5, align 8
  %4494 = extractvalue { ptr, i32 } %4492, 1
  store i32 %4494, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %378) #11
  br label %4495

4495:                                             ; preds = %4491, %4487
  call void @llvm.lifetime.end.p0(i64 8, ptr %378) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %377) #11
  br label %4496

4496:                                             ; preds = %4495, %4483
  call void @llvm.lifetime.end.p0(i64 8, ptr %377) #11
  br label %4527

4497:                                             ; preds = %4482, %4473
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %365) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %365) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %379) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %379)
  %4498 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %379)
          to label %4499 unwind label %4528

4499:                                             ; preds = %4497
  br i1 %4498, label %4500, label %4625

4500:                                             ; preds = %4499
  call void @llvm.lifetime.start.p0(i64 32, ptr %380) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %381) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %380, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %381)
          to label %4501 unwind label %4532

4501:                                             ; preds = %4500
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %381) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %382) #11
  store i8 0, ptr %382, align 1, !tbaa !9
  %4502 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %4503 unwind label %4536

4503:                                             ; preds = %4501
  br i1 %4502, label %4504, label %4581

4504:                                             ; preds = %4503
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %386, ptr noundef @.str.1122)
          to label %4505 unwind label %4536

4505:                                             ; preds = %4504
  %4506 = getelementptr inbounds { ptr, i64 }, ptr %386, i32 0, i32 0
  %4507 = load ptr, ptr %4506, align 8
  %4508 = getelementptr inbounds { ptr, i64 }, ptr %386, i32 0, i32 1
  %4509 = load i64, ptr %4508, align 8
  %4510 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %4507, i64 %4509)
          to label %4511 unwind label %4536

4511:                                             ; preds = %4505
  %4512 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %385, i32 0, i32 0
  %4513 = getelementptr inbounds { ptr, i64 }, ptr %4512, i32 0, i32 0
  %4514 = extractvalue { ptr, i64 } %4510, 0
  store ptr %4514, ptr %4513, align 8
  %4515 = getelementptr inbounds { ptr, i64 }, ptr %4512, i32 0, i32 1
  %4516 = extractvalue { ptr, i64 } %4510, 1
  store i64 %4516, ptr %4515, align 8
  %4517 = getelementptr inbounds { ptr, i64 }, ptr %385, i32 0, i32 0
  %4518 = load ptr, ptr %4517, align 8
  %4519 = getelementptr inbounds { ptr, i64 }, ptr %385, i32 0, i32 1
  %4520 = load i64, ptr %4519, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJyiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %384, ptr %4518, i64 %4520)
          to label %4521 unwind label %4536

4521:                                             ; preds = %4511
  call void @llvm.lifetime.start.p0(i64 8, ptr %387) #11
  store i64 42, ptr %387, align 8, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %388) #11
  store i32 2, ptr %388, align 4, !tbaa !20
  %4522 = getelementptr inbounds { ptr, i64 }, ptr %384, i32 0, i32 0
  %4523 = load ptr, ptr %4522, align 8
  %4524 = getelementptr inbounds { ptr, i64 }, ptr %384, i32 0, i32 1
  %4525 = load i64, ptr %4524, align 8
  invoke void @_ZN3fmt3v106formatIJyiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %383, ptr %4523, i64 %4525, ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef nonnull align 4 dereferenceable(4) %388)
          to label %4526 unwind label %4540

4526:                                             ; preds = %4521
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %383) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %388) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %387) #11
  br label %4582

4527:                                             ; preds = %4496, %4475, %4379
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %365) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %365) #11
  br label %5212

4528:                                             ; preds = %4497
  %4529 = landingpad { ptr, i32 }
          cleanup
  %4530 = extractvalue { ptr, i32 } %4529, 0
  store ptr %4530, ptr %5, align 8
  %4531 = extractvalue { ptr, i32 } %4529, 1
  store i32 %4531, ptr %6, align 4
  br label %4676

4532:                                             ; preds = %4500
  %4533 = landingpad { ptr, i32 }
          cleanup
  %4534 = extractvalue { ptr, i32 } %4533, 0
  store ptr %4534, ptr %5, align 8
  %4535 = extractvalue { ptr, i32 } %4533, 1
  store i32 %4535, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %381) #11
  br label %4624

4536:                                             ; preds = %4511, %4505, %4504, %4501
  %4537 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4538 = extractvalue { ptr, i32 } %4537, 0
  store ptr %4538, ptr %5, align 8
  %4539 = extractvalue { ptr, i32 } %4537, 1
  store i32 %4539, ptr %6, align 4
  br label %4544

4540:                                             ; preds = %4521
  %4541 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4542 = extractvalue { ptr, i32 } %4541, 0
  store ptr %4542, ptr %5, align 8
  %4543 = extractvalue { ptr, i32 } %4541, 1
  store i32 %4543, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %388) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %387) #11
  br label %4544

4544:                                             ; preds = %4540, %4536
  %4545 = load i32, ptr %6, align 4
  %4546 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %4547 = icmp eq i32 %4545, %4546
  br i1 %4547, label %4548, label %4576

4548:                                             ; preds = %4544
  call void @llvm.lifetime.start.p0(i64 8, ptr %389) #11
  %4549 = load ptr, ptr %5, align 8
  %4550 = call ptr @__cxa_begin_catch(ptr %4549) #11
  store ptr %4550, ptr %389, align 8
  %4551 = load ptr, ptr %389, align 8, !tbaa !5
  %4552 = load ptr, ptr %4551, align 8, !tbaa !13
  %4553 = getelementptr inbounds ptr, ptr %4552, i64 2
  %4554 = load ptr, ptr %4553, align 8
  %4555 = call noundef ptr %4554(ptr noundef nonnull align 8 dereferenceable(16) %4551) #11
  %4556 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %380, ptr noundef %4555)
          to label %4557 unwind label %4593

4557:                                             ; preds = %4548
  br i1 %4556, label %4558, label %4601

4558:                                             ; preds = %4557
  %4559 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA97_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %379, ptr noundef nonnull align 1 dereferenceable(97) @.str.1154)
          to label %4560 unwind label %4593

4560:                                             ; preds = %4558
  %4561 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4559, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %4562 unwind label %4593

4562:                                             ; preds = %4560
  %4563 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4561, ptr noundef nonnull align 8 dereferenceable(32) %380)
          to label %4564 unwind label %4593

4564:                                             ; preds = %4562
  %4565 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4563, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %4566 unwind label %4593

4566:                                             ; preds = %4564
  %4567 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4565, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %4568 unwind label %4593

4568:                                             ; preds = %4566
  call void @llvm.lifetime.start.p0(i64 8, ptr %390) #11
  %4569 = load ptr, ptr %389, align 8, !tbaa !5
  %4570 = load ptr, ptr %4569, align 8, !tbaa !13
  %4571 = getelementptr inbounds ptr, ptr %4570, i64 2
  %4572 = load ptr, ptr %4571, align 8
  %4573 = call noundef ptr %4572(ptr noundef nonnull align 8 dereferenceable(16) %4569) #11
  store ptr %4573, ptr %390, align 8, !tbaa !5
  %4574 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4567, ptr noundef nonnull align 8 dereferenceable(8) %390)
          to label %4575 unwind label %4597

4575:                                             ; preds = %4568
  call void @llvm.lifetime.end.p0(i64 8, ptr %390) #11
  store i32 29, ptr %15, align 4
  br label %4602

4576:                                             ; preds = %4544
  %4577 = load ptr, ptr %5, align 8
  %4578 = call ptr @__cxa_begin_catch(ptr %4577) #11
  %4579 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA140_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %379, ptr noundef nonnull align 1 dereferenceable(140) @.str.1153)
          to label %4580 unwind label %4583

4580:                                             ; preds = %4576
  store i32 29, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %4587 unwind label %4588

4581:                                             ; preds = %4503
  br label %4582

4582:                                             ; preds = %4581, %4526
  br label %4606

4583:                                             ; preds = %4576
  %4584 = landingpad { ptr, i32 }
          cleanup
  %4585 = extractvalue { ptr, i32 } %4584, 0
  store ptr %4585, ptr %5, align 8
  %4586 = extractvalue { ptr, i32 } %4584, 1
  store i32 %4586, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %4592 unwind label %5219

4587:                                             ; preds = %4580
  br label %4620

4588:                                             ; preds = %4609, %4580
  %4589 = landingpad { ptr, i32 }
          cleanup
  %4590 = extractvalue { ptr, i32 } %4589, 0
  store ptr %4590, ptr %5, align 8
  %4591 = extractvalue { ptr, i32 } %4589, 1
  store i32 %4591, ptr %6, align 4
  br label %4623

4592:                                             ; preds = %4583
  br label %4623

4593:                                             ; preds = %4566, %4564, %4562, %4560, %4558, %4548
  %4594 = landingpad { ptr, i32 }
          cleanup
  %4595 = extractvalue { ptr, i32 } %4594, 0
  store ptr %4595, ptr %5, align 8
  %4596 = extractvalue { ptr, i32 } %4594, 1
  store i32 %4596, ptr %6, align 4
  br label %4616

4597:                                             ; preds = %4568
  %4598 = landingpad { ptr, i32 }
          cleanup
  %4599 = extractvalue { ptr, i32 } %4598, 0
  store ptr %4599, ptr %5, align 8
  %4600 = extractvalue { ptr, i32 } %4598, 1
  store i32 %4600, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %390) #11
  br label %4616

4601:                                             ; preds = %4557
  store i8 1, ptr %382, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4602

4602:                                             ; preds = %4601, %4575
  invoke void @__cxa_end_catch()
          to label %4603 unwind label %4612

4603:                                             ; preds = %4602
  call void @llvm.lifetime.end.p0(i64 8, ptr %389) #11
  %4604 = load i32, ptr %15, align 4
  switch i32 %4604, label %4620 [
    i32 0, label %4605
  ]

4605:                                             ; preds = %4603
  br label %4606

4606:                                             ; preds = %4605, %4582
  %4607 = load i8, ptr %382, align 1, !tbaa !9, !range !15, !noundef !16
  %4608 = trunc i8 %4607 to i1
  br i1 %4608, label %4619, label %4609

4609:                                             ; preds = %4606
  %4610 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %379, ptr noundef nonnull align 1 dereferenceable(131) @.str.1155)
          to label %4611 unwind label %4588

4611:                                             ; preds = %4609
  store i32 29, ptr %15, align 4
  br label %4620

4612:                                             ; preds = %4602
  %4613 = landingpad { ptr, i32 }
          cleanup
  %4614 = extractvalue { ptr, i32 } %4613, 0
  store ptr %4614, ptr %5, align 8
  %4615 = extractvalue { ptr, i32 } %4613, 1
  store i32 %4615, ptr %6, align 4
  br label %4618

4616:                                             ; preds = %4597, %4593
  invoke void @__cxa_end_catch()
          to label %4617 unwind label %5219

4617:                                             ; preds = %4616
  br label %4618

4618:                                             ; preds = %4617, %4612
  call void @llvm.lifetime.end.p0(i64 8, ptr %389) #11
  br label %4623

4619:                                             ; preds = %4606
  store i32 0, ptr %15, align 4
  br label %4620

4620:                                             ; preds = %4619, %4611, %4603, %4587
  call void @llvm.lifetime.end.p0(i64 1, ptr %382) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %380) #11
  %4621 = load i32, ptr %15, align 4
  switch i32 %4621, label %5222 [
    i32 0, label %4622
    i32 29, label %4626
  ]

4622:                                             ; preds = %4620
  br label %4646

4623:                                             ; preds = %4618, %4592, %4588
  call void @llvm.lifetime.end.p0(i64 1, ptr %382) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #11
  br label %4624

4624:                                             ; preds = %4623, %4532
  call void @llvm.lifetime.end.p0(i64 32, ptr %380) #11
  br label %4676

4625:                                             ; preds = %4499
  br label %4626

4626:                                             ; preds = %4625, %4620
  call void @llvm.lifetime.start.p0(i64 8, ptr %391) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %391)
          to label %4627 unwind label %4632

4627:                                             ; preds = %4626
  call void @llvm.lifetime.start.p0(i64 8, ptr %392) #11
  %4628 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %379)
          to label %4629 unwind label %4636

4629:                                             ; preds = %4627
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %392, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1117, ptr noundef %4628)
          to label %4630 unwind label %4636

4630:                                             ; preds = %4629
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %392, ptr noundef nonnull align 8 dereferenceable(8) %391)
          to label %4631 unwind label %4640

4631:                                             ; preds = %4630
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %392) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %392) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %391) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %391) #11
  br label %4646

4632:                                             ; preds = %4626
  %4633 = landingpad { ptr, i32 }
          cleanup
  %4634 = extractvalue { ptr, i32 } %4633, 0
  store ptr %4634, ptr %5, align 8
  %4635 = extractvalue { ptr, i32 } %4633, 1
  store i32 %4635, ptr %6, align 4
  br label %4645

4636:                                             ; preds = %4629, %4627
  %4637 = landingpad { ptr, i32 }
          cleanup
  %4638 = extractvalue { ptr, i32 } %4637, 0
  store ptr %4638, ptr %5, align 8
  %4639 = extractvalue { ptr, i32 } %4637, 1
  store i32 %4639, ptr %6, align 4
  br label %4644

4640:                                             ; preds = %4630
  %4641 = landingpad { ptr, i32 }
          cleanup
  %4642 = extractvalue { ptr, i32 } %4641, 0
  store ptr %4642, ptr %5, align 8
  %4643 = extractvalue { ptr, i32 } %4641, 1
  store i32 %4643, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %392) #11
  br label %4644

4644:                                             ; preds = %4640, %4636
  call void @llvm.lifetime.end.p0(i64 8, ptr %392) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %391) #11
  br label %4645

4645:                                             ; preds = %4644, %4632
  call void @llvm.lifetime.end.p0(i64 8, ptr %391) #11
  br label %4676

4646:                                             ; preds = %4631, %4622
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %379) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %379) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %393) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %393)
  %4647 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %393)
          to label %4648 unwind label %4677

4648:                                             ; preds = %4646
  br i1 %4647, label %4649, label %4774

4649:                                             ; preds = %4648
  call void @llvm.lifetime.start.p0(i64 32, ptr %394) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %395) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %395) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %394, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %395)
          to label %4650 unwind label %4681

4650:                                             ; preds = %4649
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %395) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %395) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %396) #11
  store i8 0, ptr %396, align 1, !tbaa !9
  %4651 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %4652 unwind label %4685

4652:                                             ; preds = %4650
  br i1 %4651, label %4653, label %4730

4653:                                             ; preds = %4652
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %400, ptr noundef @.str.1156)
          to label %4654 unwind label %4685

4654:                                             ; preds = %4653
  %4655 = getelementptr inbounds { ptr, i64 }, ptr %400, i32 0, i32 0
  %4656 = load ptr, ptr %4655, align 8
  %4657 = getelementptr inbounds { ptr, i64 }, ptr %400, i32 0, i32 1
  %4658 = load i64, ptr %4657, align 8
  %4659 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %4656, i64 %4658)
          to label %4660 unwind label %4685

4660:                                             ; preds = %4654
  %4661 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %399, i32 0, i32 0
  %4662 = getelementptr inbounds { ptr, i64 }, ptr %4661, i32 0, i32 0
  %4663 = extractvalue { ptr, i64 } %4659, 0
  store ptr %4663, ptr %4662, align 8
  %4664 = getelementptr inbounds { ptr, i64 }, ptr %4661, i32 0, i32 1
  %4665 = extractvalue { ptr, i64 } %4659, 1
  store i64 %4665, ptr %4664, align 8
  %4666 = getelementptr inbounds { ptr, i64 }, ptr %399, i32 0, i32 0
  %4667 = load ptr, ptr %4666, align 8
  %4668 = getelementptr inbounds { ptr, i64 }, ptr %399, i32 0, i32 1
  %4669 = load i64, ptr %4668, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJciEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %398, ptr %4667, i64 %4669)
          to label %4670 unwind label %4685

4670:                                             ; preds = %4660
  call void @llvm.lifetime.start.p0(i64 1, ptr %401) #11
  store i8 120, ptr %401, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %402) #11
  store i32 0, ptr %402, align 4, !tbaa !20
  %4671 = getelementptr inbounds { ptr, i64 }, ptr %398, i32 0, i32 0
  %4672 = load ptr, ptr %4671, align 8
  %4673 = getelementptr inbounds { ptr, i64 }, ptr %398, i32 0, i32 1
  %4674 = load i64, ptr %4673, align 8
  invoke void @_ZN3fmt3v106formatIJciEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %397, ptr %4672, i64 %4674, ptr noundef nonnull align 1 dereferenceable(1) %401, ptr noundef nonnull align 4 dereferenceable(4) %402)
          to label %4675 unwind label %4689

4675:                                             ; preds = %4670
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %397) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %402) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %401) #11
  br label %4731

4676:                                             ; preds = %4645, %4624, %4528
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %379) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %379) #11
  br label %5212

4677:                                             ; preds = %4646
  %4678 = landingpad { ptr, i32 }
          cleanup
  %4679 = extractvalue { ptr, i32 } %4678, 0
  store ptr %4679, ptr %5, align 8
  %4680 = extractvalue { ptr, i32 } %4678, 1
  store i32 %4680, ptr %6, align 4
  br label %4804

4681:                                             ; preds = %4649
  %4682 = landingpad { ptr, i32 }
          cleanup
  %4683 = extractvalue { ptr, i32 } %4682, 0
  store ptr %4683, ptr %5, align 8
  %4684 = extractvalue { ptr, i32 } %4682, 1
  store i32 %4684, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %395) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %395) #11
  br label %4773

4685:                                             ; preds = %4660, %4654, %4653, %4650
  %4686 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4687 = extractvalue { ptr, i32 } %4686, 0
  store ptr %4687, ptr %5, align 8
  %4688 = extractvalue { ptr, i32 } %4686, 1
  store i32 %4688, ptr %6, align 4
  br label %4693

4689:                                             ; preds = %4670
  %4690 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4691 = extractvalue { ptr, i32 } %4690, 0
  store ptr %4691, ptr %5, align 8
  %4692 = extractvalue { ptr, i32 } %4690, 1
  store i32 %4692, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %402) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %401) #11
  br label %4693

4693:                                             ; preds = %4689, %4685
  %4694 = load i32, ptr %6, align 4
  %4695 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %4696 = icmp eq i32 %4694, %4695
  br i1 %4696, label %4697, label %4725

4697:                                             ; preds = %4693
  call void @llvm.lifetime.start.p0(i64 8, ptr %403) #11
  %4698 = load ptr, ptr %5, align 8
  %4699 = call ptr @__cxa_begin_catch(ptr %4698) #11
  store ptr %4699, ptr %403, align 8
  %4700 = load ptr, ptr %403, align 8, !tbaa !5
  %4701 = load ptr, ptr %4700, align 8, !tbaa !13
  %4702 = getelementptr inbounds ptr, ptr %4701, i64 2
  %4703 = load ptr, ptr %4702, align 8
  %4704 = call noundef ptr %4703(ptr noundef nonnull align 8 dereferenceable(16) %4700) #11
  %4705 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %394, ptr noundef %4704)
          to label %4706 unwind label %4742

4706:                                             ; preds = %4697
  br i1 %4705, label %4707, label %4750

4707:                                             ; preds = %4706
  %4708 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %393, ptr noundef nonnull align 1 dereferenceable(95) @.str.1158)
          to label %4709 unwind label %4742

4709:                                             ; preds = %4707
  %4710 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4708, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %4711 unwind label %4742

4711:                                             ; preds = %4709
  %4712 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4710, ptr noundef nonnull align 8 dereferenceable(32) %394)
          to label %4713 unwind label %4742

4713:                                             ; preds = %4711
  %4714 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4712, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %4715 unwind label %4742

4715:                                             ; preds = %4713
  %4716 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4714, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %4717 unwind label %4742

4717:                                             ; preds = %4715
  call void @llvm.lifetime.start.p0(i64 8, ptr %404) #11
  %4718 = load ptr, ptr %403, align 8, !tbaa !5
  %4719 = load ptr, ptr %4718, align 8, !tbaa !13
  %4720 = getelementptr inbounds ptr, ptr %4719, i64 2
  %4721 = load ptr, ptr %4720, align 8
  %4722 = call noundef ptr %4721(ptr noundef nonnull align 8 dereferenceable(16) %4718) #11
  store ptr %4722, ptr %404, align 8, !tbaa !5
  %4723 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4716, ptr noundef nonnull align 8 dereferenceable(8) %404)
          to label %4724 unwind label %4746

4724:                                             ; preds = %4717
  call void @llvm.lifetime.end.p0(i64 8, ptr %404) #11
  store i32 30, ptr %15, align 4
  br label %4751

4725:                                             ; preds = %4693
  %4726 = load ptr, ptr %5, align 8
  %4727 = call ptr @__cxa_begin_catch(ptr %4726) #11
  %4728 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %393, ptr noundef nonnull align 1 dereferenceable(138) @.str.1157)
          to label %4729 unwind label %4732

4729:                                             ; preds = %4725
  store i32 30, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %4736 unwind label %4737

4730:                                             ; preds = %4652
  br label %4731

4731:                                             ; preds = %4730, %4675
  br label %4755

4732:                                             ; preds = %4725
  %4733 = landingpad { ptr, i32 }
          cleanup
  %4734 = extractvalue { ptr, i32 } %4733, 0
  store ptr %4734, ptr %5, align 8
  %4735 = extractvalue { ptr, i32 } %4733, 1
  store i32 %4735, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %4741 unwind label %5219

4736:                                             ; preds = %4729
  br label %4769

4737:                                             ; preds = %4758, %4729
  %4738 = landingpad { ptr, i32 }
          cleanup
  %4739 = extractvalue { ptr, i32 } %4738, 0
  store ptr %4739, ptr %5, align 8
  %4740 = extractvalue { ptr, i32 } %4738, 1
  store i32 %4740, ptr %6, align 4
  br label %4772

4741:                                             ; preds = %4732
  br label %4772

4742:                                             ; preds = %4715, %4713, %4711, %4709, %4707, %4697
  %4743 = landingpad { ptr, i32 }
          cleanup
  %4744 = extractvalue { ptr, i32 } %4743, 0
  store ptr %4744, ptr %5, align 8
  %4745 = extractvalue { ptr, i32 } %4743, 1
  store i32 %4745, ptr %6, align 4
  br label %4765

4746:                                             ; preds = %4717
  %4747 = landingpad { ptr, i32 }
          cleanup
  %4748 = extractvalue { ptr, i32 } %4747, 0
  store ptr %4748, ptr %5, align 8
  %4749 = extractvalue { ptr, i32 } %4747, 1
  store i32 %4749, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %404) #11
  br label %4765

4750:                                             ; preds = %4706
  store i8 1, ptr %396, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4751

4751:                                             ; preds = %4750, %4724
  invoke void @__cxa_end_catch()
          to label %4752 unwind label %4761

4752:                                             ; preds = %4751
  call void @llvm.lifetime.end.p0(i64 8, ptr %403) #11
  %4753 = load i32, ptr %15, align 4
  switch i32 %4753, label %4769 [
    i32 0, label %4754
  ]

4754:                                             ; preds = %4752
  br label %4755

4755:                                             ; preds = %4754, %4731
  %4756 = load i8, ptr %396, align 1, !tbaa !9, !range !15, !noundef !16
  %4757 = trunc i8 %4756 to i1
  br i1 %4757, label %4768, label %4758

4758:                                             ; preds = %4755
  %4759 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %393, ptr noundef nonnull align 1 dereferenceable(129) @.str.1159)
          to label %4760 unwind label %4737

4760:                                             ; preds = %4758
  store i32 30, ptr %15, align 4
  br label %4769

4761:                                             ; preds = %4751
  %4762 = landingpad { ptr, i32 }
          cleanup
  %4763 = extractvalue { ptr, i32 } %4762, 0
  store ptr %4763, ptr %5, align 8
  %4764 = extractvalue { ptr, i32 } %4762, 1
  store i32 %4764, ptr %6, align 4
  br label %4767

4765:                                             ; preds = %4746, %4742
  invoke void @__cxa_end_catch()
          to label %4766 unwind label %5219

4766:                                             ; preds = %4765
  br label %4767

4767:                                             ; preds = %4766, %4761
  call void @llvm.lifetime.end.p0(i64 8, ptr %403) #11
  br label %4772

4768:                                             ; preds = %4755
  store i32 0, ptr %15, align 4
  br label %4769

4769:                                             ; preds = %4768, %4760, %4752, %4736
  call void @llvm.lifetime.end.p0(i64 1, ptr %396) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %394) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %394) #11
  %4770 = load i32, ptr %15, align 4
  switch i32 %4770, label %5222 [
    i32 0, label %4771
    i32 30, label %4775
  ]

4771:                                             ; preds = %4769
  br label %4795

4772:                                             ; preds = %4767, %4741, %4737
  call void @llvm.lifetime.end.p0(i64 1, ptr %396) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %394) #11
  br label %4773

4773:                                             ; preds = %4772, %4681
  call void @llvm.lifetime.end.p0(i64 32, ptr %394) #11
  br label %4804

4774:                                             ; preds = %4648
  br label %4775

4775:                                             ; preds = %4774, %4769
  call void @llvm.lifetime.start.p0(i64 8, ptr %405) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %405)
          to label %4776 unwind label %4781

4776:                                             ; preds = %4775
  call void @llvm.lifetime.start.p0(i64 8, ptr %406) #11
  %4777 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %393)
          to label %4778 unwind label %4785

4778:                                             ; preds = %4776
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %406, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1119, ptr noundef %4777)
          to label %4779 unwind label %4785

4779:                                             ; preds = %4778
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %406, ptr noundef nonnull align 8 dereferenceable(8) %405)
          to label %4780 unwind label %4789

4780:                                             ; preds = %4779
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %406) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %406) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %405) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %405) #11
  br label %4795

4781:                                             ; preds = %4775
  %4782 = landingpad { ptr, i32 }
          cleanup
  %4783 = extractvalue { ptr, i32 } %4782, 0
  store ptr %4783, ptr %5, align 8
  %4784 = extractvalue { ptr, i32 } %4782, 1
  store i32 %4784, ptr %6, align 4
  br label %4794

4785:                                             ; preds = %4778, %4776
  %4786 = landingpad { ptr, i32 }
          cleanup
  %4787 = extractvalue { ptr, i32 } %4786, 0
  store ptr %4787, ptr %5, align 8
  %4788 = extractvalue { ptr, i32 } %4786, 1
  store i32 %4788, ptr %6, align 4
  br label %4793

4789:                                             ; preds = %4779
  %4790 = landingpad { ptr, i32 }
          cleanup
  %4791 = extractvalue { ptr, i32 } %4790, 0
  store ptr %4791, ptr %5, align 8
  %4792 = extractvalue { ptr, i32 } %4790, 1
  store i32 %4792, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %406) #11
  br label %4793

4793:                                             ; preds = %4789, %4785
  call void @llvm.lifetime.end.p0(i64 8, ptr %406) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %405) #11
  br label %4794

4794:                                             ; preds = %4793, %4781
  call void @llvm.lifetime.end.p0(i64 8, ptr %405) #11
  br label %4804

4795:                                             ; preds = %4780, %4771
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %393) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %393) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %407) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %408) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %409, ptr noundef nonnull align 1 dereferenceable(9) @.str.1088)
  call void @llvm.lifetime.start.p0(i64 8, ptr %410) #11
  store double 1.234500e+00, ptr %410, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %411) #11
  store i32 2, ptr %411, align 4, !tbaa !20
  %4796 = getelementptr inbounds { ptr, i64 }, ptr %409, i32 0, i32 0
  %4797 = load ptr, ptr %4796, align 8
  %4798 = getelementptr inbounds { ptr, i64 }, ptr %409, i32 0, i32 1
  %4799 = load i64, ptr %4798, align 8
  call void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %408, ptr %4797, i64 %4799, ptr noundef nonnull align 8 dereferenceable(8) %410, ptr noundef nonnull align 4 dereferenceable(4) %411)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %407, ptr noundef @.str.1160, ptr noundef @.str.392, ptr noundef nonnull align 8 dereferenceable(32) %408, ptr noundef nonnull align 1 dereferenceable(4) @.str.394)
          to label %4800 unwind label %4805

4800:                                             ; preds = %4795
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %411) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %410) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %408) #11
  %4801 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %407)
          to label %4802 unwind label %4809

4802:                                             ; preds = %4800
  br i1 %4801, label %4803, label %4813

4803:                                             ; preds = %4802
  br label %4833

4804:                                             ; preds = %4794, %4773, %4677
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %393) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %393) #11
  br label %5212

4805:                                             ; preds = %4795
  %4806 = landingpad { ptr, i32 }
          cleanup
  %4807 = extractvalue { ptr, i32 } %4806, 0
  store ptr %4807, ptr %5, align 8
  %4808 = extractvalue { ptr, i32 } %4806, 1
  store i32 %4808, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %411) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %410) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %408) #11
  br label %4843

4809:                                             ; preds = %4800
  %4810 = landingpad { ptr, i32 }
          cleanup
  %4811 = extractvalue { ptr, i32 } %4810, 0
  store ptr %4811, ptr %5, align 8
  %4812 = extractvalue { ptr, i32 } %4810, 1
  store i32 %4812, ptr %6, align 4
  br label %4842

4813:                                             ; preds = %4802
  call void @llvm.lifetime.start.p0(i64 8, ptr %412) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %412)
          to label %4814 unwind label %4819

4814:                                             ; preds = %4813
  call void @llvm.lifetime.start.p0(i64 8, ptr %413) #11
  %4815 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %407)
          to label %4816 unwind label %4823

4816:                                             ; preds = %4814
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %413, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1120, ptr noundef %4815)
          to label %4817 unwind label %4823

4817:                                             ; preds = %4816
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %413, ptr noundef nonnull align 8 dereferenceable(8) %412)
          to label %4818 unwind label %4827

4818:                                             ; preds = %4817
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %413) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %413) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %412) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %412) #11
  br label %4833

4819:                                             ; preds = %4813
  %4820 = landingpad { ptr, i32 }
          cleanup
  %4821 = extractvalue { ptr, i32 } %4820, 0
  store ptr %4821, ptr %5, align 8
  %4822 = extractvalue { ptr, i32 } %4820, 1
  store i32 %4822, ptr %6, align 4
  br label %4832

4823:                                             ; preds = %4816, %4814
  %4824 = landingpad { ptr, i32 }
          cleanup
  %4825 = extractvalue { ptr, i32 } %4824, 0
  store ptr %4825, ptr %5, align 8
  %4826 = extractvalue { ptr, i32 } %4824, 1
  store i32 %4826, ptr %6, align 4
  br label %4831

4827:                                             ; preds = %4817
  %4828 = landingpad { ptr, i32 }
          cleanup
  %4829 = extractvalue { ptr, i32 } %4828, 0
  store ptr %4829, ptr %5, align 8
  %4830 = extractvalue { ptr, i32 } %4828, 1
  store i32 %4830, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %413) #11
  br label %4831

4831:                                             ; preds = %4827, %4823
  call void @llvm.lifetime.end.p0(i64 8, ptr %413) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %412) #11
  br label %4832

4832:                                             ; preds = %4831, %4819
  call void @llvm.lifetime.end.p0(i64 8, ptr %412) #11
  br label %4842

4833:                                             ; preds = %4818, %4803
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %407) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %407) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %414) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %415) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJieEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %416, ptr noundef nonnull align 1 dereferenceable(9) @.str.1162)
  call void @llvm.lifetime.start.p0(i64 4, ptr %417) #11
  store i32 2, ptr %417, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 16, ptr %418) #11
  store x86_fp80 0xK3FFF9E04189374BC6A7F, ptr %418, align 16, !tbaa !24
  %4834 = getelementptr inbounds { ptr, i64 }, ptr %416, i32 0, i32 0
  %4835 = load ptr, ptr %4834, align 8
  %4836 = getelementptr inbounds { ptr, i64 }, ptr %416, i32 0, i32 1
  %4837 = load i64, ptr %4836, align 8
  call void @_ZN3fmt3v106formatIJieEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %415, ptr %4835, i64 %4837, ptr noundef nonnull align 4 dereferenceable(4) %417, ptr noundef nonnull align 16 dereferenceable(16) %418)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %414, ptr noundef @.str.1161, ptr noundef @.str.392, ptr noundef nonnull align 8 dereferenceable(32) %415, ptr noundef nonnull align 1 dereferenceable(4) @.str.394)
          to label %4838 unwind label %4844

4838:                                             ; preds = %4833
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %415) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %418) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %417) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #11
  %4839 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %414)
          to label %4840 unwind label %4848

4840:                                             ; preds = %4838
  br i1 %4839, label %4841, label %4852

4841:                                             ; preds = %4840
  br label %4872

4842:                                             ; preds = %4832, %4809
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %407) #11
  br label %4843

4843:                                             ; preds = %4842, %4805
  call void @llvm.lifetime.end.p0(i64 16, ptr %407) #11
  br label %5212

4844:                                             ; preds = %4833
  %4845 = landingpad { ptr, i32 }
          cleanup
  %4846 = extractvalue { ptr, i32 } %4845, 0
  store ptr %4846, ptr %5, align 8
  %4847 = extractvalue { ptr, i32 } %4845, 1
  store i32 %4847, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %415) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %418) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %417) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #11
  br label %4903

4848:                                             ; preds = %4838
  %4849 = landingpad { ptr, i32 }
          cleanup
  %4850 = extractvalue { ptr, i32 } %4849, 0
  store ptr %4850, ptr %5, align 8
  %4851 = extractvalue { ptr, i32 } %4849, 1
  store i32 %4851, ptr %6, align 4
  br label %4902

4852:                                             ; preds = %4840
  call void @llvm.lifetime.start.p0(i64 8, ptr %419) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %419)
          to label %4853 unwind label %4858

4853:                                             ; preds = %4852
  call void @llvm.lifetime.start.p0(i64 8, ptr %420) #11
  %4854 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %414)
          to label %4855 unwind label %4862

4855:                                             ; preds = %4853
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %420, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1121, ptr noundef %4854)
          to label %4856 unwind label %4862

4856:                                             ; preds = %4855
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %420, ptr noundef nonnull align 8 dereferenceable(8) %419)
          to label %4857 unwind label %4866

4857:                                             ; preds = %4856
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %420) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %420) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %419) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %419) #11
  br label %4872

4858:                                             ; preds = %4852
  %4859 = landingpad { ptr, i32 }
          cleanup
  %4860 = extractvalue { ptr, i32 } %4859, 0
  store ptr %4860, ptr %5, align 8
  %4861 = extractvalue { ptr, i32 } %4859, 1
  store i32 %4861, ptr %6, align 4
  br label %4871

4862:                                             ; preds = %4855, %4853
  %4863 = landingpad { ptr, i32 }
          cleanup
  %4864 = extractvalue { ptr, i32 } %4863, 0
  store ptr %4864, ptr %5, align 8
  %4865 = extractvalue { ptr, i32 } %4863, 1
  store i32 %4865, ptr %6, align 4
  br label %4870

4866:                                             ; preds = %4856
  %4867 = landingpad { ptr, i32 }
          cleanup
  %4868 = extractvalue { ptr, i32 } %4867, 0
  store ptr %4868, ptr %5, align 8
  %4869 = extractvalue { ptr, i32 } %4867, 1
  store i32 %4869, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %420) #11
  br label %4870

4870:                                             ; preds = %4866, %4862
  call void @llvm.lifetime.end.p0(i64 8, ptr %420) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %419) #11
  br label %4871

4871:                                             ; preds = %4870, %4858
  call void @llvm.lifetime.end.p0(i64 8, ptr %419) #11
  br label %4902

4872:                                             ; preds = %4857, %4841
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %414) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %414) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %421) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %421)
  %4873 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %421)
          to label %4874 unwind label %4904

4874:                                             ; preds = %4872
  br i1 %4873, label %4875, label %5001

4875:                                             ; preds = %4874
  call void @llvm.lifetime.start.p0(i64 32, ptr %422) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %423) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %422, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %423)
          to label %4876 unwind label %4908

4876:                                             ; preds = %4875
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %423) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %424) #11
  store i8 0, ptr %424, align 1, !tbaa !9
  %4877 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %4878 unwind label %4912

4878:                                             ; preds = %4876
  br i1 %4877, label %4879, label %4957

4879:                                             ; preds = %4878
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %428, ptr noundef @.str.1088)
          to label %4880 unwind label %4912

4880:                                             ; preds = %4879
  %4881 = getelementptr inbounds { ptr, i64 }, ptr %428, i32 0, i32 0
  %4882 = load ptr, ptr %4881, align 8
  %4883 = getelementptr inbounds { ptr, i64 }, ptr %428, i32 0, i32 1
  %4884 = load i64, ptr %4883, align 8
  %4885 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %4882, i64 %4884)
          to label %4886 unwind label %4912

4886:                                             ; preds = %4880
  %4887 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %427, i32 0, i32 0
  %4888 = getelementptr inbounds { ptr, i64 }, ptr %4887, i32 0, i32 0
  %4889 = extractvalue { ptr, i64 } %4885, 0
  store ptr %4889, ptr %4888, align 8
  %4890 = getelementptr inbounds { ptr, i64 }, ptr %4887, i32 0, i32 1
  %4891 = extractvalue { ptr, i64 } %4885, 1
  store i64 %4891, ptr %4890, align 8
  %4892 = getelementptr inbounds { ptr, i64 }, ptr %427, i32 0, i32 0
  %4893 = load ptr, ptr %4892, align 8
  %4894 = getelementptr inbounds { ptr, i64 }, ptr %427, i32 0, i32 1
  %4895 = load i64, ptr %4894, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJPviEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %426, ptr %4893, i64 %4895)
          to label %4896 unwind label %4912

4896:                                             ; preds = %4886
  call void @llvm.lifetime.start.p0(i64 8, ptr %429) #11
  store ptr inttoptr (i64 51966 to ptr), ptr %429, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %430) #11
  store i32 2, ptr %430, align 4, !tbaa !20
  %4897 = getelementptr inbounds { ptr, i64 }, ptr %426, i32 0, i32 0
  %4898 = load ptr, ptr %4897, align 8
  %4899 = getelementptr inbounds { ptr, i64 }, ptr %426, i32 0, i32 1
  %4900 = load i64, ptr %4899, align 8
  invoke void @_ZN3fmt3v106formatIJPviEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %425, ptr %4898, i64 %4900, ptr noundef nonnull align 8 dereferenceable(8) %429, ptr noundef nonnull align 4 dereferenceable(4) %430)
          to label %4901 unwind label %4916

4901:                                             ; preds = %4896
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %430) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %429) #11
  br label %4958

4902:                                             ; preds = %4871, %4848
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %414) #11
  br label %4903

4903:                                             ; preds = %4902, %4844
  call void @llvm.lifetime.end.p0(i64 16, ptr %414) #11
  br label %5212

4904:                                             ; preds = %4872
  %4905 = landingpad { ptr, i32 }
          cleanup
  %4906 = extractvalue { ptr, i32 } %4905, 0
  store ptr %4906, ptr %5, align 8
  %4907 = extractvalue { ptr, i32 } %4905, 1
  store i32 %4907, ptr %6, align 4
  br label %5052

4908:                                             ; preds = %4875
  %4909 = landingpad { ptr, i32 }
          cleanup
  %4910 = extractvalue { ptr, i32 } %4909, 0
  store ptr %4910, ptr %5, align 8
  %4911 = extractvalue { ptr, i32 } %4909, 1
  store i32 %4911, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %423) #11
  br label %5000

4912:                                             ; preds = %4886, %4880, %4879, %4876
  %4913 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4914 = extractvalue { ptr, i32 } %4913, 0
  store ptr %4914, ptr %5, align 8
  %4915 = extractvalue { ptr, i32 } %4913, 1
  store i32 %4915, ptr %6, align 4
  br label %4920

4916:                                             ; preds = %4896
  %4917 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4918 = extractvalue { ptr, i32 } %4917, 0
  store ptr %4918, ptr %5, align 8
  %4919 = extractvalue { ptr, i32 } %4917, 1
  store i32 %4919, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %430) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %429) #11
  br label %4920

4920:                                             ; preds = %4916, %4912
  %4921 = load i32, ptr %6, align 4
  %4922 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %4923 = icmp eq i32 %4921, %4922
  br i1 %4923, label %4924, label %4952

4924:                                             ; preds = %4920
  call void @llvm.lifetime.start.p0(i64 8, ptr %431) #11
  %4925 = load ptr, ptr %5, align 8
  %4926 = call ptr @__cxa_begin_catch(ptr %4925) #11
  store ptr %4926, ptr %431, align 8
  %4927 = load ptr, ptr %431, align 8, !tbaa !5
  %4928 = load ptr, ptr %4927, align 8, !tbaa !13
  %4929 = getelementptr inbounds ptr, ptr %4928, i64 2
  %4930 = load ptr, ptr %4929, align 8
  %4931 = call noundef ptr %4930(ptr noundef nonnull align 8 dereferenceable(16) %4927) #11
  %4932 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %422, ptr noundef %4931)
          to label %4933 unwind label %4969

4933:                                             ; preds = %4924
  br i1 %4932, label %4934, label %4977

4934:                                             ; preds = %4933
  %4935 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %421, ptr noundef nonnull align 1 dereferenceable(122) @.str.1164)
          to label %4936 unwind label %4969

4936:                                             ; preds = %4934
  %4937 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4935, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %4938 unwind label %4969

4938:                                             ; preds = %4936
  %4939 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4937, ptr noundef nonnull align 8 dereferenceable(32) %422)
          to label %4940 unwind label %4969

4940:                                             ; preds = %4938
  %4941 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4939, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %4942 unwind label %4969

4942:                                             ; preds = %4940
  %4943 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4941, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %4944 unwind label %4969

4944:                                             ; preds = %4942
  call void @llvm.lifetime.start.p0(i64 8, ptr %432) #11
  %4945 = load ptr, ptr %431, align 8, !tbaa !5
  %4946 = load ptr, ptr %4945, align 8, !tbaa !13
  %4947 = getelementptr inbounds ptr, ptr %4946, i64 2
  %4948 = load ptr, ptr %4947, align 8
  %4949 = call noundef ptr %4948(ptr noundef nonnull align 8 dereferenceable(16) %4945) #11
  store ptr %4949, ptr %432, align 8, !tbaa !5
  %4950 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4943, ptr noundef nonnull align 8 dereferenceable(8) %432)
          to label %4951 unwind label %4973

4951:                                             ; preds = %4944
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #11
  store i32 31, ptr %15, align 4
  br label %4978

4952:                                             ; preds = %4920
  %4953 = load ptr, ptr %5, align 8
  %4954 = call ptr @__cxa_begin_catch(ptr %4953) #11
  %4955 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA165_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %421, ptr noundef nonnull align 1 dereferenceable(165) @.str.1163)
          to label %4956 unwind label %4959

4956:                                             ; preds = %4952
  store i32 31, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %4963 unwind label %4964

4957:                                             ; preds = %4878
  br label %4958

4958:                                             ; preds = %4957, %4901
  br label %4982

4959:                                             ; preds = %4952
  %4960 = landingpad { ptr, i32 }
          cleanup
  %4961 = extractvalue { ptr, i32 } %4960, 0
  store ptr %4961, ptr %5, align 8
  %4962 = extractvalue { ptr, i32 } %4960, 1
  store i32 %4962, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %4968 unwind label %5219

4963:                                             ; preds = %4956
  br label %4996

4964:                                             ; preds = %4985, %4956
  %4965 = landingpad { ptr, i32 }
          cleanup
  %4966 = extractvalue { ptr, i32 } %4965, 0
  store ptr %4966, ptr %5, align 8
  %4967 = extractvalue { ptr, i32 } %4965, 1
  store i32 %4967, ptr %6, align 4
  br label %4999

4968:                                             ; preds = %4959
  br label %4999

4969:                                             ; preds = %4942, %4940, %4938, %4936, %4934, %4924
  %4970 = landingpad { ptr, i32 }
          cleanup
  %4971 = extractvalue { ptr, i32 } %4970, 0
  store ptr %4971, ptr %5, align 8
  %4972 = extractvalue { ptr, i32 } %4970, 1
  store i32 %4972, ptr %6, align 4
  br label %4992

4973:                                             ; preds = %4944
  %4974 = landingpad { ptr, i32 }
          cleanup
  %4975 = extractvalue { ptr, i32 } %4974, 0
  store ptr %4975, ptr %5, align 8
  %4976 = extractvalue { ptr, i32 } %4974, 1
  store i32 %4976, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #11
  br label %4992

4977:                                             ; preds = %4933
  store i8 1, ptr %424, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4978

4978:                                             ; preds = %4977, %4951
  invoke void @__cxa_end_catch()
          to label %4979 unwind label %4988

4979:                                             ; preds = %4978
  call void @llvm.lifetime.end.p0(i64 8, ptr %431) #11
  %4980 = load i32, ptr %15, align 4
  switch i32 %4980, label %4996 [
    i32 0, label %4981
  ]

4981:                                             ; preds = %4979
  br label %4982

4982:                                             ; preds = %4981, %4958
  %4983 = load i8, ptr %424, align 1, !tbaa !9, !range !15, !noundef !16
  %4984 = trunc i8 %4983 to i1
  br i1 %4984, label %4995, label %4985

4985:                                             ; preds = %4982
  %4986 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA156_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %421, ptr noundef nonnull align 1 dereferenceable(156) @.str.1165)
          to label %4987 unwind label %4964

4987:                                             ; preds = %4985
  store i32 31, ptr %15, align 4
  br label %4996

4988:                                             ; preds = %4978
  %4989 = landingpad { ptr, i32 }
          cleanup
  %4990 = extractvalue { ptr, i32 } %4989, 0
  store ptr %4990, ptr %5, align 8
  %4991 = extractvalue { ptr, i32 } %4989, 1
  store i32 %4991, ptr %6, align 4
  br label %4994

4992:                                             ; preds = %4973, %4969
  invoke void @__cxa_end_catch()
          to label %4993 unwind label %5219

4993:                                             ; preds = %4992
  br label %4994

4994:                                             ; preds = %4993, %4988
  call void @llvm.lifetime.end.p0(i64 8, ptr %431) #11
  br label %4999

4995:                                             ; preds = %4982
  store i32 0, ptr %15, align 4
  br label %4996

4996:                                             ; preds = %4995, %4987, %4979, %4963
  call void @llvm.lifetime.end.p0(i64 1, ptr %424) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %422) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %422) #11
  %4997 = load i32, ptr %15, align 4
  switch i32 %4997, label %5222 [
    i32 0, label %4998
    i32 31, label %5002
  ]

4998:                                             ; preds = %4996
  br label %5022

4999:                                             ; preds = %4994, %4968, %4964
  call void @llvm.lifetime.end.p0(i64 1, ptr %424) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %422) #11
  br label %5000

5000:                                             ; preds = %4999, %4908
  call void @llvm.lifetime.end.p0(i64 32, ptr %422) #11
  br label %5052

5001:                                             ; preds = %4874
  br label %5002

5002:                                             ; preds = %5001, %4996
  call void @llvm.lifetime.start.p0(i64 8, ptr %433) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %433)
          to label %5003 unwind label %5008

5003:                                             ; preds = %5002
  call void @llvm.lifetime.start.p0(i64 8, ptr %434) #11
  %5004 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %421)
          to label %5005 unwind label %5012

5005:                                             ; preds = %5003
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %434, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1125, ptr noundef %5004)
          to label %5006 unwind label %5012

5006:                                             ; preds = %5005
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef nonnull align 8 dereferenceable(8) %433)
          to label %5007 unwind label %5016

5007:                                             ; preds = %5006
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %434) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %434) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %433) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %433) #11
  br label %5022

5008:                                             ; preds = %5002
  %5009 = landingpad { ptr, i32 }
          cleanup
  %5010 = extractvalue { ptr, i32 } %5009, 0
  store ptr %5010, ptr %5, align 8
  %5011 = extractvalue { ptr, i32 } %5009, 1
  store i32 %5011, ptr %6, align 4
  br label %5021

5012:                                             ; preds = %5005, %5003
  %5013 = landingpad { ptr, i32 }
          cleanup
  %5014 = extractvalue { ptr, i32 } %5013, 0
  store ptr %5014, ptr %5, align 8
  %5015 = extractvalue { ptr, i32 } %5013, 1
  store i32 %5015, ptr %6, align 4
  br label %5020

5016:                                             ; preds = %5006
  %5017 = landingpad { ptr, i32 }
          cleanup
  %5018 = extractvalue { ptr, i32 } %5017, 0
  store ptr %5018, ptr %5, align 8
  %5019 = extractvalue { ptr, i32 } %5017, 1
  store i32 %5019, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %434) #11
  br label %5020

5020:                                             ; preds = %5016, %5012
  call void @llvm.lifetime.end.p0(i64 8, ptr %434) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %433) #11
  br label %5021

5021:                                             ; preds = %5020, %5008
  call void @llvm.lifetime.end.p0(i64 8, ptr %433) #11
  br label %5052

5022:                                             ; preds = %5007, %4998
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %421) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %421) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %435) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %435)
  %5023 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %435)
          to label %5024 unwind label %5053

5024:                                             ; preds = %5022
  br i1 %5023, label %5025, label %5150

5025:                                             ; preds = %5024
  call void @llvm.lifetime.start.p0(i64 32, ptr %436) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %437) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %437) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %436, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %437)
          to label %5026 unwind label %5057

5026:                                             ; preds = %5025
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %437) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %437) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %438) #11
  store i8 0, ptr %438, align 1, !tbaa !9
  %5027 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %5028 unwind label %5061

5028:                                             ; preds = %5026
  br i1 %5027, label %5029, label %5106

5029:                                             ; preds = %5028
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %442, ptr noundef @.str.1122)
          to label %5030 unwind label %5061

5030:                                             ; preds = %5029
  %5031 = getelementptr inbounds { ptr, i64 }, ptr %442, i32 0, i32 0
  %5032 = load ptr, ptr %5031, align 8
  %5033 = getelementptr inbounds { ptr, i64 }, ptr %442, i32 0, i32 1
  %5034 = load i64, ptr %5033, align 8
  %5035 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %5032, i64 %5034)
          to label %5036 unwind label %5061

5036:                                             ; preds = %5030
  %5037 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %441, i32 0, i32 0
  %5038 = getelementptr inbounds { ptr, i64 }, ptr %5037, i32 0, i32 0
  %5039 = extractvalue { ptr, i64 } %5035, 0
  store ptr %5039, ptr %5038, align 8
  %5040 = getelementptr inbounds { ptr, i64 }, ptr %5037, i32 0, i32 1
  %5041 = extractvalue { ptr, i64 } %5035, 1
  store i64 %5041, ptr %5040, align 8
  %5042 = getelementptr inbounds { ptr, i64 }, ptr %441, i32 0, i32 0
  %5043 = load ptr, ptr %5042, align 8
  %5044 = getelementptr inbounds { ptr, i64 }, ptr %441, i32 0, i32 1
  %5045 = load i64, ptr %5044, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJPviEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %440, ptr %5043, i64 %5045)
          to label %5046 unwind label %5061

5046:                                             ; preds = %5036
  call void @llvm.lifetime.start.p0(i64 8, ptr %443) #11
  store ptr inttoptr (i64 51966 to ptr), ptr %443, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %444) #11
  store i32 2, ptr %444, align 4, !tbaa !20
  %5047 = getelementptr inbounds { ptr, i64 }, ptr %440, i32 0, i32 0
  %5048 = load ptr, ptr %5047, align 8
  %5049 = getelementptr inbounds { ptr, i64 }, ptr %440, i32 0, i32 1
  %5050 = load i64, ptr %5049, align 8
  invoke void @_ZN3fmt3v106formatIJPviEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %439, ptr %5048, i64 %5050, ptr noundef nonnull align 8 dereferenceable(8) %443, ptr noundef nonnull align 4 dereferenceable(4) %444)
          to label %5051 unwind label %5065

5051:                                             ; preds = %5046
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %444) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %443) #11
  br label %5107

5052:                                             ; preds = %5021, %5000, %4904
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %421) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %421) #11
  br label %5212

5053:                                             ; preds = %5022
  %5054 = landingpad { ptr, i32 }
          cleanup
  %5055 = extractvalue { ptr, i32 } %5054, 0
  store ptr %5055, ptr %5, align 8
  %5056 = extractvalue { ptr, i32 } %5054, 1
  store i32 %5056, ptr %6, align 4
  br label %5180

5057:                                             ; preds = %5025
  %5058 = landingpad { ptr, i32 }
          cleanup
  %5059 = extractvalue { ptr, i32 } %5058, 0
  store ptr %5059, ptr %5, align 8
  %5060 = extractvalue { ptr, i32 } %5058, 1
  store i32 %5060, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %437) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %437) #11
  br label %5149

5061:                                             ; preds = %5036, %5030, %5029, %5026
  %5062 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %5063 = extractvalue { ptr, i32 } %5062, 0
  store ptr %5063, ptr %5, align 8
  %5064 = extractvalue { ptr, i32 } %5062, 1
  store i32 %5064, ptr %6, align 4
  br label %5069

5065:                                             ; preds = %5046
  %5066 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %5067 = extractvalue { ptr, i32 } %5066, 0
  store ptr %5067, ptr %5, align 8
  %5068 = extractvalue { ptr, i32 } %5066, 1
  store i32 %5068, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %444) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %443) #11
  br label %5069

5069:                                             ; preds = %5065, %5061
  %5070 = load i32, ptr %6, align 4
  %5071 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %5072 = icmp eq i32 %5070, %5071
  br i1 %5072, label %5073, label %5101

5073:                                             ; preds = %5069
  call void @llvm.lifetime.start.p0(i64 8, ptr %445) #11
  %5074 = load ptr, ptr %5, align 8
  %5075 = call ptr @__cxa_begin_catch(ptr %5074) #11
  store ptr %5075, ptr %445, align 8
  %5076 = load ptr, ptr %445, align 8, !tbaa !5
  %5077 = load ptr, ptr %5076, align 8, !tbaa !13
  %5078 = getelementptr inbounds ptr, ptr %5077, i64 2
  %5079 = load ptr, ptr %5078, align 8
  %5080 = call noundef ptr %5079(ptr noundef nonnull align 8 dereferenceable(16) %5076) #11
  %5081 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %436, ptr noundef %5080)
          to label %5082 unwind label %5118

5082:                                             ; preds = %5073
  br i1 %5081, label %5083, label %5126

5083:                                             ; preds = %5082
  %5084 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %435, ptr noundef nonnull align 1 dereferenceable(123) @.str.1167)
          to label %5085 unwind label %5118

5085:                                             ; preds = %5083
  %5086 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %5084, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %5087 unwind label %5118

5087:                                             ; preds = %5085
  %5088 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %5086, ptr noundef nonnull align 8 dereferenceable(32) %436)
          to label %5089 unwind label %5118

5089:                                             ; preds = %5087
  %5090 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %5088, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %5091 unwind label %5118

5091:                                             ; preds = %5089
  %5092 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %5090, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %5093 unwind label %5118

5093:                                             ; preds = %5091
  call void @llvm.lifetime.start.p0(i64 8, ptr %446) #11
  %5094 = load ptr, ptr %445, align 8, !tbaa !5
  %5095 = load ptr, ptr %5094, align 8, !tbaa !13
  %5096 = getelementptr inbounds ptr, ptr %5095, i64 2
  %5097 = load ptr, ptr %5096, align 8
  %5098 = call noundef ptr %5097(ptr noundef nonnull align 8 dereferenceable(16) %5094) #11
  store ptr %5098, ptr %446, align 8, !tbaa !5
  %5099 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %5092, ptr noundef nonnull align 8 dereferenceable(8) %446)
          to label %5100 unwind label %5122

5100:                                             ; preds = %5093
  call void @llvm.lifetime.end.p0(i64 8, ptr %446) #11
  store i32 32, ptr %15, align 4
  br label %5127

5101:                                             ; preds = %5069
  %5102 = load ptr, ptr %5, align 8
  %5103 = call ptr @__cxa_begin_catch(ptr %5102) #11
  %5104 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA166_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %435, ptr noundef nonnull align 1 dereferenceable(166) @.str.1166)
          to label %5105 unwind label %5108

5105:                                             ; preds = %5101
  store i32 32, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %5112 unwind label %5113

5106:                                             ; preds = %5028
  br label %5107

5107:                                             ; preds = %5106, %5051
  br label %5131

5108:                                             ; preds = %5101
  %5109 = landingpad { ptr, i32 }
          cleanup
  %5110 = extractvalue { ptr, i32 } %5109, 0
  store ptr %5110, ptr %5, align 8
  %5111 = extractvalue { ptr, i32 } %5109, 1
  store i32 %5111, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %5117 unwind label %5219

5112:                                             ; preds = %5105
  br label %5145

5113:                                             ; preds = %5134, %5105
  %5114 = landingpad { ptr, i32 }
          cleanup
  %5115 = extractvalue { ptr, i32 } %5114, 0
  store ptr %5115, ptr %5, align 8
  %5116 = extractvalue { ptr, i32 } %5114, 1
  store i32 %5116, ptr %6, align 4
  br label %5148

5117:                                             ; preds = %5108
  br label %5148

5118:                                             ; preds = %5091, %5089, %5087, %5085, %5083, %5073
  %5119 = landingpad { ptr, i32 }
          cleanup
  %5120 = extractvalue { ptr, i32 } %5119, 0
  store ptr %5120, ptr %5, align 8
  %5121 = extractvalue { ptr, i32 } %5119, 1
  store i32 %5121, ptr %6, align 4
  br label %5141

5122:                                             ; preds = %5093
  %5123 = landingpad { ptr, i32 }
          cleanup
  %5124 = extractvalue { ptr, i32 } %5123, 0
  store ptr %5124, ptr %5, align 8
  %5125 = extractvalue { ptr, i32 } %5123, 1
  store i32 %5125, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %446) #11
  br label %5141

5126:                                             ; preds = %5082
  store i8 1, ptr %438, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %5127

5127:                                             ; preds = %5126, %5100
  invoke void @__cxa_end_catch()
          to label %5128 unwind label %5137

5128:                                             ; preds = %5127
  call void @llvm.lifetime.end.p0(i64 8, ptr %445) #11
  %5129 = load i32, ptr %15, align 4
  switch i32 %5129, label %5145 [
    i32 0, label %5130
  ]

5130:                                             ; preds = %5128
  br label %5131

5131:                                             ; preds = %5130, %5107
  %5132 = load i8, ptr %438, align 1, !tbaa !9, !range !15, !noundef !16
  %5133 = trunc i8 %5132 to i1
  br i1 %5133, label %5144, label %5134

5134:                                             ; preds = %5131
  %5135 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA157_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %435, ptr noundef nonnull align 1 dereferenceable(157) @.str.1168)
          to label %5136 unwind label %5113

5136:                                             ; preds = %5134
  store i32 32, ptr %15, align 4
  br label %5145

5137:                                             ; preds = %5127
  %5138 = landingpad { ptr, i32 }
          cleanup
  %5139 = extractvalue { ptr, i32 } %5138, 0
  store ptr %5139, ptr %5, align 8
  %5140 = extractvalue { ptr, i32 } %5138, 1
  store i32 %5140, ptr %6, align 4
  br label %5143

5141:                                             ; preds = %5122, %5118
  invoke void @__cxa_end_catch()
          to label %5142 unwind label %5219

5142:                                             ; preds = %5141
  br label %5143

5143:                                             ; preds = %5142, %5137
  call void @llvm.lifetime.end.p0(i64 8, ptr %445) #11
  br label %5148

5144:                                             ; preds = %5131
  store i32 0, ptr %15, align 4
  br label %5145

5145:                                             ; preds = %5144, %5136, %5128, %5112
  call void @llvm.lifetime.end.p0(i64 1, ptr %438) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #11
  %5146 = load i32, ptr %15, align 4
  switch i32 %5146, label %5222 [
    i32 0, label %5147
    i32 32, label %5151
  ]

5147:                                             ; preds = %5145
  br label %5171

5148:                                             ; preds = %5143, %5117, %5113
  call void @llvm.lifetime.end.p0(i64 1, ptr %438) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #11
  br label %5149

5149:                                             ; preds = %5148, %5057
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #11
  br label %5180

5150:                                             ; preds = %5024
  br label %5151

5151:                                             ; preds = %5150, %5145
  call void @llvm.lifetime.start.p0(i64 8, ptr %447) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %447)
          to label %5152 unwind label %5157

5152:                                             ; preds = %5151
  call void @llvm.lifetime.start.p0(i64 8, ptr %448) #11
  %5153 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %435)
          to label %5154 unwind label %5161

5154:                                             ; preds = %5152
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %448, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1128, ptr noundef %5153)
          to label %5155 unwind label %5161

5155:                                             ; preds = %5154
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %448, ptr noundef nonnull align 8 dereferenceable(8) %447)
          to label %5156 unwind label %5165

5156:                                             ; preds = %5155
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %448) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %448) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %447) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %447) #11
  br label %5171

5157:                                             ; preds = %5151
  %5158 = landingpad { ptr, i32 }
          cleanup
  %5159 = extractvalue { ptr, i32 } %5158, 0
  store ptr %5159, ptr %5, align 8
  %5160 = extractvalue { ptr, i32 } %5158, 1
  store i32 %5160, ptr %6, align 4
  br label %5170

5161:                                             ; preds = %5154, %5152
  %5162 = landingpad { ptr, i32 }
          cleanup
  %5163 = extractvalue { ptr, i32 } %5162, 0
  store ptr %5163, ptr %5, align 8
  %5164 = extractvalue { ptr, i32 } %5162, 1
  store i32 %5164, ptr %6, align 4
  br label %5169

5165:                                             ; preds = %5155
  %5166 = landingpad { ptr, i32 }
          cleanup
  %5167 = extractvalue { ptr, i32 } %5166, 0
  store ptr %5167, ptr %5, align 8
  %5168 = extractvalue { ptr, i32 } %5166, 1
  store i32 %5168, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %448) #11
  br label %5169

5169:                                             ; preds = %5165, %5161
  call void @llvm.lifetime.end.p0(i64 8, ptr %448) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %447) #11
  br label %5170

5170:                                             ; preds = %5169, %5157
  call void @llvm.lifetime.end.p0(i64 8, ptr %447) #11
  br label %5180

5171:                                             ; preds = %5156, %5147
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %435) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %435) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %449) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %450) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJRA4_KciEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %451, ptr noundef nonnull align 1 dereferenceable(9) @.str.1088)
  call void @llvm.lifetime.start.p0(i64 4, ptr %452) #11
  store i32 2, ptr %452, align 4, !tbaa !20
  %5172 = getelementptr inbounds { ptr, i64 }, ptr %451, i32 0, i32 0
  %5173 = load ptr, ptr %5172, align 8
  %5174 = getelementptr inbounds { ptr, i64 }, ptr %451, i32 0, i32 1
  %5175 = load i64, ptr %5174, align 8
  call void @_ZN3fmt3v106formatIJRA4_KciEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %450, ptr %5173, i64 %5175, ptr noundef nonnull align 1 dereferenceable(4) @.str.135, ptr noundef nonnull align 4 dereferenceable(4) %452)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA3_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %449, ptr noundef @.str.1169, ptr noundef @.str.341, ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull align 1 dereferenceable(3) @.str.343)
          to label %5176 unwind label %5181

5176:                                             ; preds = %5171
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %452) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %450) #11
  %5177 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %449)
          to label %5178 unwind label %5185

5178:                                             ; preds = %5176
  br i1 %5177, label %5179, label %5189

5179:                                             ; preds = %5178
  br label %5209

5180:                                             ; preds = %5170, %5149, %5053
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %435) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %435) #11
  br label %5212

5181:                                             ; preds = %5171
  %5182 = landingpad { ptr, i32 }
          cleanup
  %5183 = extractvalue { ptr, i32 } %5182, 0
  store ptr %5183, ptr %5, align 8
  %5184 = extractvalue { ptr, i32 } %5182, 1
  store i32 %5184, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %452) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %450) #11
  br label %5211

5185:                                             ; preds = %5176
  %5186 = landingpad { ptr, i32 }
          cleanup
  %5187 = extractvalue { ptr, i32 } %5186, 0
  store ptr %5187, ptr %5, align 8
  %5188 = extractvalue { ptr, i32 } %5186, 1
  store i32 %5188, ptr %6, align 4
  br label %5210

5189:                                             ; preds = %5178
  call void @llvm.lifetime.start.p0(i64 8, ptr %453) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %453)
          to label %5190 unwind label %5195

5190:                                             ; preds = %5189
  call void @llvm.lifetime.start.p0(i64 8, ptr %454) #11
  %5191 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %449)
          to label %5192 unwind label %5199

5192:                                             ; preds = %5190
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %454, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1130, ptr noundef %5191)
          to label %5193 unwind label %5199

5193:                                             ; preds = %5192
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %454, ptr noundef nonnull align 8 dereferenceable(8) %453)
          to label %5194 unwind label %5203

5194:                                             ; preds = %5193
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %454) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %454) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %453) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %453) #11
  br label %5209

5195:                                             ; preds = %5189
  %5196 = landingpad { ptr, i32 }
          cleanup
  %5197 = extractvalue { ptr, i32 } %5196, 0
  store ptr %5197, ptr %5, align 8
  %5198 = extractvalue { ptr, i32 } %5196, 1
  store i32 %5198, ptr %6, align 4
  br label %5208

5199:                                             ; preds = %5192, %5190
  %5200 = landingpad { ptr, i32 }
          cleanup
  %5201 = extractvalue { ptr, i32 } %5200, 0
  store ptr %5201, ptr %5, align 8
  %5202 = extractvalue { ptr, i32 } %5200, 1
  store i32 %5202, ptr %6, align 4
  br label %5207

5203:                                             ; preds = %5193
  %5204 = landingpad { ptr, i32 }
          cleanup
  %5205 = extractvalue { ptr, i32 } %5204, 0
  store ptr %5205, ptr %5, align 8
  %5206 = extractvalue { ptr, i32 } %5204, 1
  store i32 %5206, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %454) #11
  br label %5207

5207:                                             ; preds = %5203, %5199
  call void @llvm.lifetime.end.p0(i64 8, ptr %454) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %453) #11
  br label %5208

5208:                                             ; preds = %5207, %5195
  call void @llvm.lifetime.end.p0(i64 8, ptr %453) #11
  br label %5210

5209:                                             ; preds = %5194, %5179
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %449) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %449) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %3) #11
  ret void

5210:                                             ; preds = %5208, %5185
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %449) #11
  br label %5211

5211:                                             ; preds = %5210, %5181
  call void @llvm.lifetime.end.p0(i64 16, ptr %449) #11
  br label %5212

5212:                                             ; preds = %5211, %5180, %5052, %4903, %4843, %4804, %4676, %4527, %4378, %4229, %4080, %3931, %3782, %3633, %3484, %3335, %3186, %3037, %2888, %2739, %2590, %2441, %2292, %2141, %1992, %1843, %1694, %1545, %1396, %1247, %1098, %949, %800
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #11
  br label %5213

5213:                                             ; preds = %5212, %644
  call void @llvm.lifetime.end.p0(i64 256, ptr %3) #11
  br label %5214

5214:                                             ; preds = %5213
  %5215 = load ptr, ptr %5, align 8
  %5216 = load i32, ptr %6, align 4
  %5217 = insertvalue { ptr, i32 } poison, ptr %5215, 0
  %5218 = insertvalue { ptr, i32 } %5217, i32 %5216, 1
  resume { ptr, i32 } %5218

5219:                                             ; preds = %5141, %5108, %4992, %4959, %4765, %4732, %4616, %4583, %4467, %4434, %4318, %4285, %4169, %4136, %4020, %3987, %3871, %3838, %3722, %3689, %3573, %3540, %3424, %3391, %3275, %3242, %3126, %3093, %2977, %2944, %2828, %2795, %2679, %2646, %2530, %2497, %2381, %2348, %2230, %2197, %2081, %2048, %1932, %1899, %1783, %1750, %1634, %1601, %1485, %1452, %1336, %1303, %1187, %1154, %1038, %1005, %889, %856, %733, %700, %576, %543
  %5220 = landingpad { ptr, i32 }
          catch ptr null
  %5221 = extractvalue { ptr, i32 } %5220, 0
  call void @__clang_call_terminate(ptr %5221) #13
  unreachable

5222:                                             ; preds = %5145, %4996, %4769, %4620, %4471, %4322, %4173, %4024, %3875, %3726, %3577, %3428, %3279, %3130, %2981, %2832, %2683, %2534, %2385, %2234, %2085, %1936, %1787, %1638, %1489, %1340, %1191, %1042, %893, %737, %580
  unreachable
}

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdjEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdjEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdlEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdmEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdmEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA154_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(154)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA111_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(111)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA145_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(145)) #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJddEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA94_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(94)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJjiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJliEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJmiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJxiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJyiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJciEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9)) unnamed_addr #7 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJieEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 16 dereferenceable(16)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJieEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJPviEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA166_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(166)) #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJRA4_KciEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind memory(none) }
attributes #9 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(read) }
attributes #13 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!18, !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!7, !7, i64 0}
!20 = !{!21, !21, i64 0}
!21 = !{!"int", !7, i64 0}
!22 = !{!23, !23, i64 0}
!23 = !{!"long long", !7, i64 0}
!24 = !{!25, !25, i64 0}
!25 = !{!"long double", !7, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.testing::AssertionResult" = type { i8, %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"class.fmt::v10::basic_format_string.148" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_string_view" = type { ptr, i64 }
%"class.testing::Message" = type { %"class.std::unique_ptr.2" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.fmt::v10::basic_format_string.167" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.140" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.190" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.191" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.192" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.193" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.194" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.173" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.174" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.175" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.176" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.177" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.180" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.195" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.179" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.181" = type { %"class.fmt::v10::basic_string_view" }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZTIN3fmt3v1012format_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.230 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.785 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.918 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.919 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.920 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.1071 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1072 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1073 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.1074 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.1075 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.1076 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1077 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.1078 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.1079 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.1080 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1081 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.1082 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.1083 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.1084 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1085 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.1086 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.1087 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.1088 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1089 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.1090 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.1091 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.1092 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1093 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.1094 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.1095 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.1096 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1097 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1098 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1099 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1100 = external hidden unnamed_addr constant [153 x i8], align 1
@.str.1101 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.1102 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.1103 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1104 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1105 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1106 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.1107 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.1108 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1109 = external hidden unnamed_addr constant [154 x i8], align 1
@.str.1110 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.1111 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.1112 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1113 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1114 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1115 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1116 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1117 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1118 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1119 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.1120 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.1121 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.1122 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1123 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.1124 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.1125 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.1126 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.1127 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.1128 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.1129 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1130 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1131 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1132 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.1133 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.1134 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.1135 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1136 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1137 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1138 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1139 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1140 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1141 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1142 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1143 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1144 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1145 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1146 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1147 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1148 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1149 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1150 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.1151 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.1152 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.1153 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.1154 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.1155 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.1156 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1157 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.1158 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.1159 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.1160 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1161 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1162 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1163 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.1164 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.1165 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.1166 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.1167 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.1168 = external hidden unnamed_addr constant [157 x i8], align 1
@.str.1169 = external hidden unnamed_addr constant [34 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

declare void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

declare void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef, i32 noundef, ptr noundef) unnamed_addr #3

declare void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z9incrementPc(ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #6

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #7 align 2

declare void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8) local_unnamed_addr #3

declare noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv() local_unnamed_addr #3

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #8

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA135_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(135)) local_unnamed_addr #2 align 2

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #10

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(11)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA126_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(126)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(122)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA3_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr, i64) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(125)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(123)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(129)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(132)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(89)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(138)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(95)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(134)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(91)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA140_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(140)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA97_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(97)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(131)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(139)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(96)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(130)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA128_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(128)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA136_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(136)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA93_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(93)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA127_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(127)) local_unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(88)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA157_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(157)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA144_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(144)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA137_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(137)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA147_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(147)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA104_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(104)) local_unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJiiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA92_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(92)) local_unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJjiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJliEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJmiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJxiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJyiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJPviEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJciEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA4_KciEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z12safe_sprintfILm256EEvRAT__cPKcz(ptr noundef nonnull align 1 dereferenceable(256), ptr noundef, ...) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA165_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(165)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA156_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(156)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA153_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(153)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA110_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(110)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN34format_test_runtime_precision_Test8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca [256 x i8], align 16
  %3 = alloca %"class.testing::AssertionResult", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %8 = alloca %"class.fmt::v10::basic_string_view", align 8
  %9 = alloca double, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %"class.testing::Message", align 8
  %12 = alloca %"class.testing::internal::AssertHelper", align 8
  %13 = alloca %"class.testing::AssertionResult", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %18 = alloca %"class.fmt::v10::basic_string_view", align 8
  %19 = alloca double, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %"class.testing::Message", align 8
  %22 = alloca %"class.testing::internal::AssertHelper", align 8
  %23 = alloca %"class.testing::AssertionResult", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %28 = alloca %"class.fmt::v10::basic_string_view", align 8
  %29 = alloca double, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %"class.testing::Message", align 8
  %32 = alloca %"class.testing::internal::AssertHelper", align 8
  %33 = alloca %"class.testing::AssertionResult", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %38 = alloca %"class.fmt::v10::basic_string_view", align 8
  %39 = alloca double, align 8
  %40 = alloca ptr, align 8
  %41 = alloca %"class.testing::Message", align 8
  %42 = alloca %"class.testing::internal::AssertHelper", align 8
  %43 = alloca %"class.testing::AssertionResult", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %48 = alloca %"class.fmt::v10::basic_string_view", align 8
  %49 = alloca double, align 8
  %50 = alloca ptr, align 8
  %51 = alloca %"class.testing::Message", align 8
  %52 = alloca %"class.testing::internal::AssertHelper", align 8
  %53 = alloca %"class.testing::AssertionResult", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %58 = alloca %"class.fmt::v10::basic_string_view", align 8
  %59 = alloca double, align 8
  %60 = alloca ptr, align 8
  %61 = alloca %"class.testing::Message", align 8
  %62 = alloca %"class.testing::internal::AssertHelper", align 8
  %63 = alloca %"class.testing::AssertionResult", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.fmt::v10::basic_format_string.167", align 8
  %68 = alloca %"class.fmt::v10::basic_string_view", align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca ptr, align 8
  %72 = alloca %"class.testing::Message", align 8
  %73 = alloca %"class.testing::internal::AssertHelper", align 8
  %74 = alloca %"class.testing::AssertionResult", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %79 = alloca %"class.fmt::v10::basic_string_view", align 8
  %80 = alloca double, align 8
  %81 = alloca ptr, align 8
  %82 = alloca %"class.testing::Message", align 8
  %83 = alloca %"class.testing::internal::AssertHelper", align 8
  %84 = alloca %"class.testing::AssertionResult", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %89 = alloca %"class.fmt::v10::basic_string_view", align 8
  %90 = alloca double, align 8
  %91 = alloca ptr, align 8
  %92 = alloca %"class.testing::Message", align 8
  %93 = alloca %"class.testing::internal::AssertHelper", align 8
  %94 = alloca %"class.testing::AssertionResult", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator", align 1
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %99 = alloca %"class.fmt::v10::basic_string_view", align 8
  %100 = alloca double, align 8
  %101 = alloca i32, align 4
  %102 = alloca ptr, align 8
  %103 = alloca %"class.testing::Message", align 8
  %104 = alloca %"class.testing::internal::AssertHelper", align 8
  %105 = alloca %"class.testing::AssertionResult", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::allocator", align 1
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.fmt::v10::basic_format_string.190", align 8
  %110 = alloca %"class.fmt::v10::basic_string_view", align 8
  %111 = alloca double, align 8
  %112 = alloca i32, align 4
  %113 = alloca ptr, align 8
  %114 = alloca %"class.testing::Message", align 8
  %115 = alloca %"class.testing::internal::AssertHelper", align 8
  %116 = alloca %"class.testing::AssertionResult", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::allocator", align 1
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.fmt::v10::basic_format_string.191", align 8
  %121 = alloca %"class.fmt::v10::basic_string_view", align 8
  %122 = alloca double, align 8
  %123 = alloca i64, align 8
  %124 = alloca ptr, align 8
  %125 = alloca %"class.testing::Message", align 8
  %126 = alloca %"class.testing::internal::AssertHelper", align 8
  %127 = alloca %"class.testing::AssertionResult", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator", align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.fmt::v10::basic_format_string.191", align 8
  %132 = alloca %"class.fmt::v10::basic_string_view", align 8
  %133 = alloca double, align 8
  %134 = alloca i64, align 8
  %135 = alloca ptr, align 8
  %136 = alloca %"class.testing::Message", align 8
  %137 = alloca %"class.testing::internal::AssertHelper", align 8
  %138 = alloca %"class.testing::AssertionResult", align 8
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca %"class.std::allocator", align 1
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %"class.fmt::v10::basic_format_string.192", align 8
  %143 = alloca %"class.fmt::v10::basic_string_view", align 8
  %144 = alloca double, align 8
  %145 = alloca i64, align 8
  %146 = alloca ptr, align 8
  %147 = alloca %"class.testing::Message", align 8
  %148 = alloca %"class.testing::internal::AssertHelper", align 8
  %149 = alloca %"class.testing::AssertionResult", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::allocator", align 1
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.fmt::v10::basic_format_string.193", align 8
  %154 = alloca %"class.fmt::v10::basic_string_view", align 8
  %155 = alloca double, align 8
  %156 = alloca i8, align 1
  %157 = alloca ptr, align 8
  %158 = alloca %"class.testing::Message", align 8
  %159 = alloca %"class.testing::internal::AssertHelper", align 8
  %160 = alloca %"class.testing::AssertionResult", align 8
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::allocator", align 1
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.fmt::v10::basic_format_string.194", align 8
  %165 = alloca %"class.fmt::v10::basic_string_view", align 8
  %166 = alloca double, align 8
  %167 = alloca double, align 8
  %168 = alloca ptr, align 8
  %169 = alloca %"class.testing::Message", align 8
  %170 = alloca %"class.testing::internal::AssertHelper", align 8
  %171 = alloca %"class.testing::AssertionResult", align 8
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::allocator", align 1
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.fmt::v10::basic_format_string.167", align 8
  %176 = alloca %"class.fmt::v10::basic_string_view", align 8
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca ptr, align 8
  %180 = alloca %"class.testing::Message", align 8
  %181 = alloca %"class.testing::internal::AssertHelper", align 8
  %182 = alloca %"class.testing::AssertionResult", align 8
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::allocator", align 1
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.fmt::v10::basic_format_string.167", align 8
  %187 = alloca %"class.fmt::v10::basic_string_view", align 8
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca ptr, align 8
  %191 = alloca %"class.testing::Message", align 8
  %192 = alloca %"class.testing::internal::AssertHelper", align 8
  %193 = alloca %"class.testing::AssertionResult", align 8
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::allocator", align 1
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.fmt::v10::basic_format_string.173", align 8
  %198 = alloca %"class.fmt::v10::basic_string_view", align 8
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca ptr, align 8
  %202 = alloca %"class.testing::Message", align 8
  %203 = alloca %"class.testing::internal::AssertHelper", align 8
  %204 = alloca %"class.testing::AssertionResult", align 8
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::allocator", align 1
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.fmt::v10::basic_format_string.173", align 8
  %209 = alloca %"class.fmt::v10::basic_string_view", align 8
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca ptr, align 8
  %213 = alloca %"class.testing::Message", align 8
  %214 = alloca %"class.testing::internal::AssertHelper", align 8
  %215 = alloca %"class.testing::AssertionResult", align 8
  %216 = alloca %"class.std::__cxx11::basic_string", align 8
  %217 = alloca %"class.std::allocator", align 1
  %218 = alloca %"class.std::__cxx11::basic_string", align 8
  %219 = alloca %"class.fmt::v10::basic_format_string.174", align 8
  %220 = alloca %"class.fmt::v10::basic_string_view", align 8
  %221 = alloca i64, align 8
  %222 = alloca i32, align 4
  %223 = alloca ptr, align 8
  %224 = alloca %"class.testing::Message", align 8
  %225 = alloca %"class.testing::internal::AssertHelper", align 8
  %226 = alloca %"class.testing::AssertionResult", align 8
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca %"class.std::allocator", align 1
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.fmt::v10::basic_format_string.174", align 8
  %231 = alloca %"class.fmt::v10::basic_string_view", align 8
  %232 = alloca i64, align 8
  %233 = alloca i32, align 4
  %234 = alloca ptr, align 8
  %235 = alloca %"class.testing::Message", align 8
  %236 = alloca %"class.testing::internal::AssertHelper", align 8
  %237 = alloca %"class.testing::AssertionResult", align 8
  %238 = alloca %"class.std::__cxx11::basic_string", align 8
  %239 = alloca %"class.std::allocator", align 1
  %240 = alloca %"class.std::__cxx11::basic_string", align 8
  %241 = alloca %"class.fmt::v10::basic_format_string.175", align 8
  %242 = alloca %"class.fmt::v10::basic_string_view", align 8
  %243 = alloca i64, align 8
  %244 = alloca i32, align 4
  %245 = alloca ptr, align 8
  %246 = alloca %"class.testing::Message", align 8
  %247 = alloca %"class.testing::internal::AssertHelper", align 8
  %248 = alloca %"class.testing::AssertionResult", align 8
  %249 = alloca %"class.std::__cxx11::basic_string", align 8
  %250 = alloca %"class.std::allocator", align 1
  %251 = alloca %"class.std::__cxx11::basic_string", align 8
  %252 = alloca %"class.fmt::v10::basic_format_string.175", align 8
  %253 = alloca %"class.fmt::v10::basic_string_view", align 8
  %254 = alloca i64, align 8
  %255 = alloca i32, align 4
  %256 = alloca ptr, align 8
  %257 = alloca %"class.testing::Message", align 8
  %258 = alloca %"class.testing::internal::AssertHelper", align 8
  %259 = alloca %"class.testing::AssertionResult", align 8
  %260 = alloca %"class.std::__cxx11::basic_string", align 8
  %261 = alloca %"class.std::allocator", align 1
  %262 = alloca %"class.std::__cxx11::basic_string", align 8
  %263 = alloca %"class.fmt::v10::basic_format_string.176", align 8
  %264 = alloca %"class.fmt::v10::basic_string_view", align 8
  %265 = alloca i64, align 8
  %266 = alloca i32, align 4
  %267 = alloca ptr, align 8
  %268 = alloca %"class.testing::Message", align 8
  %269 = alloca %"class.testing::internal::AssertHelper", align 8
  %270 = alloca %"class.testing::AssertionResult", align 8
  %271 = alloca %"class.std::__cxx11::basic_string", align 8
  %272 = alloca %"class.std::allocator", align 1
  %273 = alloca %"class.std::__cxx11::basic_string", align 8
  %274 = alloca %"class.fmt::v10::basic_format_string.176", align 8
  %275 = alloca %"class.fmt::v10::basic_string_view", align 8
  %276 = alloca i64, align 8
  %277 = alloca i32, align 4
  %278 = alloca ptr, align 8
  %279 = alloca %"class.testing::Message", align 8
  %280 = alloca %"class.testing::internal::AssertHelper", align 8
  %281 = alloca %"class.testing::AssertionResult", align 8
  %282 = alloca %"class.std::__cxx11::basic_string", align 8
  %283 = alloca %"class.std::allocator", align 1
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"class.fmt::v10::basic_format_string.177", align 8
  %286 = alloca %"class.fmt::v10::basic_string_view", align 8
  %287 = alloca i64, align 8
  %288 = alloca i32, align 4
  %289 = alloca ptr, align 8
  %290 = alloca %"class.testing::Message", align 8
  %291 = alloca %"class.testing::internal::AssertHelper", align 8
  %292 = alloca %"class.testing::AssertionResult", align 8
  %293 = alloca %"class.std::__cxx11::basic_string", align 8
  %294 = alloca %"class.std::allocator", align 1
  %295 = alloca %"class.std::__cxx11::basic_string", align 8
  %296 = alloca %"class.fmt::v10::basic_format_string.177", align 8
  %297 = alloca %"class.fmt::v10::basic_string_view", align 8
  %298 = alloca i64, align 8
  %299 = alloca i32, align 4
  %300 = alloca ptr, align 8
  %301 = alloca %"class.testing::Message", align 8
  %302 = alloca %"class.testing::internal::AssertHelper", align 8
  %303 = alloca %"class.testing::AssertionResult", align 8
  %304 = alloca %"class.std::__cxx11::basic_string", align 8
  %305 = alloca %"class.std::allocator", align 1
  %306 = alloca %"class.std::__cxx11::basic_string", align 8
  %307 = alloca %"class.fmt::v10::basic_format_string.180", align 8
  %308 = alloca %"class.fmt::v10::basic_string_view", align 8
  %309 = alloca i8, align 1
  %310 = alloca i32, align 4
  %311 = alloca ptr, align 8
  %312 = alloca %"class.testing::Message", align 8
  %313 = alloca %"class.testing::internal::AssertHelper", align 8
  %314 = alloca %"class.testing::AssertionResult", align 8
  %315 = alloca %"class.std::__cxx11::basic_string", align 8
  %316 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %317 = alloca double, align 8
  %318 = alloca i32, align 4
  %319 = alloca %"class.testing::Message", align 8
  %320 = alloca %"class.testing::internal::AssertHelper", align 8
  %321 = alloca %"class.testing::AssertionResult", align 8
  %322 = alloca %"class.std::__cxx11::basic_string", align 8
  %323 = alloca %"class.fmt::v10::basic_format_string.195", align 8
  %324 = alloca i32, align 4
  %325 = alloca x86_fp80, align 16
  %326 = alloca %"class.testing::Message", align 8
  %327 = alloca %"class.testing::internal::AssertHelper", align 8
  %328 = alloca %"class.testing::AssertionResult", align 8
  %329 = alloca %"class.std::__cxx11::basic_string", align 8
  %330 = alloca %"class.std::allocator", align 1
  %331 = alloca %"class.std::__cxx11::basic_string", align 8
  %332 = alloca %"class.fmt::v10::basic_format_string.179", align 8
  %333 = alloca %"class.fmt::v10::basic_string_view", align 8
  %334 = alloca ptr, align 8
  %335 = alloca i32, align 4
  %336 = alloca ptr, align 8
  %337 = alloca %"class.testing::Message", align 8
  %338 = alloca %"class.testing::internal::AssertHelper", align 8
  %339 = alloca %"class.testing::AssertionResult", align 8
  %340 = alloca %"class.std::__cxx11::basic_string", align 8
  %341 = alloca %"class.std::allocator", align 1
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.fmt::v10::basic_format_string.179", align 8
  %344 = alloca %"class.fmt::v10::basic_string_view", align 8
  %345 = alloca ptr, align 8
  %346 = alloca i32, align 4
  %347 = alloca ptr, align 8
  %348 = alloca %"class.testing::Message", align 8
  %349 = alloca %"class.testing::internal::AssertHelper", align 8
  %350 = alloca %"class.testing::AssertionResult", align 8
  %351 = alloca %"class.std::__cxx11::basic_string", align 8
  %352 = alloca %"class.fmt::v10::basic_format_string.181", align 8
  %353 = alloca i32, align 4
  %354 = alloca %"class.testing::Message", align 8
  %355 = alloca %"class.testing::internal::AssertHelper", align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %2) #11
  call void (ptr, ptr, ...) @_Z12safe_sprintfILm256EEvRAT__cPKcz(ptr noundef nonnull align 1 dereferenceable(256) %2, ptr noundef nonnull @.str.1071, i32 noundef -1)
  %356 = getelementptr inbounds i8, ptr %2, i64 5
  call void @_Z9incrementPc(ptr noundef nonnull %356)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %3)
  %357 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
  br i1 %357, label %358, label %427

358:                                              ; preds = %1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.230, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %359 unwind label %374

359:                                              ; preds = %358
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #11
  %360 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %361 unwind label %376

361:                                              ; preds = %359
  br i1 %360, label %362, label %.critedge

362:                                              ; preds = %361
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull %2)
          to label %363 unwind label %376

363:                                              ; preds = %362
  %364 = load ptr, ptr %8, align 8
  %365 = getelementptr inbounds i8, ptr %8, i64 8
  %366 = load i64, ptr %365, align 8
  %367 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %364, i64 %366)
  %368 = extractvalue { ptr, i64 } %367, 0
  %369 = extractvalue { ptr, i64 } %367, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr %368, i64 %369)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #11
  store double 0.000000e+00, ptr %9, align 8, !tbaa !5
  %370 = load ptr, ptr %7, align 8
  %371 = getelementptr inbounds i8, ptr %7, i64 8
  %372 = load i64, ptr %371, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr %370, i64 %372, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %373 unwind label %378

373:                                              ; preds = %363
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  br label %.critedge

374:                                              ; preds = %358
  %375 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #11
  br label %426

376:                                              ; preds = %362, %359
  %377 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %380

378:                                              ; preds = %363
  %379 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  br label %380

380:                                              ; preds = %378, %376
  %.pn = phi { ptr, i32 } [ %379, %378 ], [ %377, %376 ]
  %.0 = extractvalue { ptr, i32 } %.pn, 0
  %.0345 = extractvalue { ptr, i32 } %.pn, 1
  %381 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %382 = icmp eq i32 %.0345, %381
  %383 = call ptr @__cxa_begin_catch(ptr %.0) #11
  br i1 %382, label %384, label %408

384:                                              ; preds = %380
  %385 = load ptr, ptr %383, align 8, !tbaa !9
  %386 = getelementptr inbounds i8, ptr %385, i64 16
  %387 = load ptr, ptr %386, align 8
  %388 = call noundef ptr %387(ptr noundef nonnull align 8 dereferenceable(16) %383) #11
  %389 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef %388)
          to label %390 unwind label %415

390:                                              ; preds = %384
  br i1 %389, label %391, label %419

391:                                              ; preds = %390
  %392 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 1 dereferenceable(91) @.str.919)
          to label %393 unwind label %415

393:                                              ; preds = %391
  %394 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %392, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %395 unwind label %415

395:                                              ; preds = %393
  %396 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %394, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %397 unwind label %415

397:                                              ; preds = %395
  %398 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %396, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %399 unwind label %415

399:                                              ; preds = %397
  %400 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %398, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %401 unwind label %415

401:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  %402 = load ptr, ptr %383, align 8, !tbaa !9
  %403 = getelementptr inbounds i8, ptr %402, i64 16
  %404 = load ptr, ptr %403, align 8
  %405 = call noundef ptr %404(ptr noundef nonnull align 8 dereferenceable(16) %383) #11
  store ptr %405, ptr %10, align 8, !tbaa !11
  %406 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %400, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %407 unwind label %417

407:                                              ; preds = %401
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  br label %419

408:                                              ; preds = %380
  %409 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 1 dereferenceable(134) @.str.918)
          to label %410 unwind label %411

410:                                              ; preds = %408
  invoke void @__cxa_end_catch()
          to label %.thread unwind label %413

411:                                              ; preds = %408
  %412 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %425 unwind label %3068

413:                                              ; preds = %.critedge, %410
  %414 = landingpad { ptr, i32 }
          cleanup
  br label %425

415:                                              ; preds = %399, %397, %395, %393, %391, %384
  %416 = landingpad { ptr, i32 }
          cleanup
  br label %424

417:                                              ; preds = %401
  %418 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  br label %424

419:                                              ; preds = %390, %407
  invoke void @__cxa_end_catch()
          to label %420 unwind label %422

420:                                              ; preds = %419
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  br i1 %389, label %427, label %.thread1296

.critedge:                                        ; preds = %361, %373
  %421 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 1 dereferenceable(125) @.str.920)
          to label %.thread unwind label %413

422:                                              ; preds = %419
  %423 = landingpad { ptr, i32 }
          cleanup
  br label %425

424:                                              ; preds = %417, %415
  %.pn729 = phi { ptr, i32 } [ %418, %417 ], [ %416, %415 ]
  invoke void @__cxa_end_catch()
          to label %425 unwind label %3068

.thread:                                          ; preds = %410, %.critedge
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  br label %427

425:                                              ; preds = %422, %424, %411, %413
  %.pn733 = phi { ptr, i32 } [ %414, %413 ], [ %412, %411 ], [ %423, %422 ], [ %.pn729, %424 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  br label %426

426:                                              ; preds = %425, %374
  %.pn733.pn = phi { ptr, i32 } [ %.pn733, %425 ], [ %375, %374 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  br label %462

427:                                              ; preds = %420, %.thread, %1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %428 unwind label %433

428:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #11
  %429 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
          to label %430 unwind label %435

430:                                              ; preds = %428
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %12, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1050, ptr noundef %429)
          to label %431 unwind label %435

431:                                              ; preds = %430
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %432 unwind label %437

432:                                              ; preds = %431
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  br label %.thread1296

433:                                              ; preds = %427
  %434 = landingpad { ptr, i32 }
          cleanup
  br label %440

435:                                              ; preds = %430, %428
  %436 = landingpad { ptr, i32 }
          cleanup
  br label %439

437:                                              ; preds = %431
  %438 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #11
  br label %439

439:                                              ; preds = %437, %435
  %.pn736 = phi { ptr, i32 } [ %438, %437 ], [ %436, %435 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #11
  br label %440

440:                                              ; preds = %439, %433
  %.pn736.pn = phi { ptr, i32 } [ %.pn736, %439 ], [ %434, %433 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  br label %462

.thread1296:                                      ; preds = %420, %432
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #11
  %441 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #12
  %442 = getelementptr inbounds [256 x i8], ptr %2, i64 0, i64 %441
  store i8 125, ptr %442, align 1, !tbaa !13
  %443 = add i64 %441, 1
  %444 = getelementptr inbounds [256 x i8], ptr %2, i64 0, i64 %443
  store i8 0, ptr %444, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %13)
  %445 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
  br i1 %445, label %446, label %516

446:                                              ; preds = %.thread1296
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.288, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %447 unwind label %463

447:                                              ; preds = %446
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #11
  %448 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %449 unwind label %465

449:                                              ; preds = %447
  br i1 %448, label %450, label %.critedge1145

450:                                              ; preds = %449
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull %2)
          to label %451 unwind label %465

451:                                              ; preds = %450
  %452 = load ptr, ptr %18, align 8
  %453 = getelementptr inbounds i8, ptr %18, i64 8
  %454 = load i64, ptr %453, align 8
  %455 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %452, i64 %454)
  %456 = extractvalue { ptr, i64 } %455, 0
  %457 = extractvalue { ptr, i64 } %455, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr %456, i64 %457)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #11
  store double 0.000000e+00, ptr %19, align 8, !tbaa !5
  %458 = load ptr, ptr %17, align 8
  %459 = getelementptr inbounds i8, ptr %17, i64 8
  %460 = load i64, ptr %459, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr %458, i64 %460, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %461 unwind label %467

461:                                              ; preds = %451
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  br label %.critedge1145

462:                                              ; preds = %440, %426
  %.pn736.pn.pn = phi { ptr, i32 } [ %.pn736.pn, %440 ], [ %.pn733.pn, %426 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #11
  br label %3067

463:                                              ; preds = %446
  %464 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #11
  br label %515

465:                                              ; preds = %450, %447
  %466 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %469

467:                                              ; preds = %451
  %468 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  br label %469

469:                                              ; preds = %467, %465
  %.pn740 = phi { ptr, i32 } [ %468, %467 ], [ %466, %465 ]
  %.8 = extractvalue { ptr, i32 } %.pn740, 0
  %.8353 = extractvalue { ptr, i32 } %.pn740, 1
  %470 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %471 = icmp eq i32 %.8353, %470
  %472 = call ptr @__cxa_begin_catch(ptr %.8) #11
  br i1 %471, label %473, label %497

473:                                              ; preds = %469
  %474 = load ptr, ptr %472, align 8, !tbaa !9
  %475 = getelementptr inbounds i8, ptr %474, i64 16
  %476 = load ptr, ptr %475, align 8
  %477 = call noundef ptr %476(ptr noundef nonnull align 8 dereferenceable(16) %472) #11
  %478 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %477)
          to label %479 unwind label %504

479:                                              ; preds = %473
  br i1 %478, label %480, label %508

480:                                              ; preds = %479
  %481 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 1 dereferenceable(91) @.str.919)
          to label %482 unwind label %504

482:                                              ; preds = %480
  %483 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %481, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %484 unwind label %504

484:                                              ; preds = %482
  %485 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %483, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %486 unwind label %504

486:                                              ; preds = %484
  %487 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %485, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %488 unwind label %504

488:                                              ; preds = %486
  %489 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %487, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %490 unwind label %504

490:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  %491 = load ptr, ptr %472, align 8, !tbaa !9
  %492 = getelementptr inbounds i8, ptr %491, i64 16
  %493 = load ptr, ptr %492, align 8
  %494 = call noundef ptr %493(ptr noundef nonnull align 8 dereferenceable(16) %472) #11
  store ptr %494, ptr %20, align 8, !tbaa !11
  %495 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %489, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %496 unwind label %506

496:                                              ; preds = %490
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  br label %508

497:                                              ; preds = %469
  %498 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 1 dereferenceable(134) @.str.918)
          to label %499 unwind label %500

499:                                              ; preds = %497
  invoke void @__cxa_end_catch()
          to label %.thread1301 unwind label %502

500:                                              ; preds = %497
  %501 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %514 unwind label %3068

502:                                              ; preds = %.critedge1145, %499
  %503 = landingpad { ptr, i32 }
          cleanup
  br label %514

504:                                              ; preds = %488, %486, %484, %482, %480, %473
  %505 = landingpad { ptr, i32 }
          cleanup
  br label %513

506:                                              ; preds = %490
  %507 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  br label %513

508:                                              ; preds = %479, %496
  invoke void @__cxa_end_catch()
          to label %509 unwind label %511

509:                                              ; preds = %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  br i1 %478, label %516, label %.thread1304

.critedge1145:                                    ; preds = %449, %461
  %510 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 1 dereferenceable(125) @.str.920)
          to label %.thread1301 unwind label %502

511:                                              ; preds = %508
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %514

513:                                              ; preds = %506, %504
  %.pn742 = phi { ptr, i32 } [ %507, %506 ], [ %505, %504 ]
  invoke void @__cxa_end_catch()
          to label %514 unwind label %3068

.thread1301:                                      ; preds = %499, %.critedge1145
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  br label %516

514:                                              ; preds = %511, %513, %500, %502
  %.pn746 = phi { ptr, i32 } [ %503, %502 ], [ %501, %500 ], [ %512, %511 ], [ %.pn742, %513 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  br label %515

515:                                              ; preds = %514, %463
  %.pn746.pn = phi { ptr, i32 } [ %.pn746, %514 ], [ %464, %463 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  br label %549

516:                                              ; preds = %509, %.thread1301, %.thread1296
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %517 unwind label %522

517:                                              ; preds = %516
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %518 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %519 unwind label %524

519:                                              ; preds = %517
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %22, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1055, ptr noundef %518)
          to label %520 unwind label %524

520:                                              ; preds = %519
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %521 unwind label %526

521:                                              ; preds = %520
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  br label %.thread1304

522:                                              ; preds = %516
  %523 = landingpad { ptr, i32 }
          cleanup
  br label %529

524:                                              ; preds = %519, %517
  %525 = landingpad { ptr, i32 }
          cleanup
  br label %528

526:                                              ; preds = %520
  %527 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #11
  br label %528

528:                                              ; preds = %526, %524
  %.pn749 = phi { ptr, i32 } [ %527, %526 ], [ %525, %524 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #11
  br label %529

529:                                              ; preds = %528, %522
  %.pn749.pn = phi { ptr, i32 } [ %.pn749, %528 ], [ %523, %522 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  br label %549

.thread1304:                                      ; preds = %509, %521
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #11
  store i8 125, ptr %444, align 1, !tbaa !13
  %530 = add i64 %441, 2
  %531 = getelementptr inbounds [256 x i8], ptr %2, i64 0, i64 %530
  store i8 0, ptr %531, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %23)
  %532 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
  br i1 %532, label %533, label %603

533:                                              ; preds = %.thread1304
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.288, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %534 unwind label %550

534:                                              ; preds = %533
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #11
  %535 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %536 unwind label %552

536:                                              ; preds = %534
  br i1 %535, label %537, label %.critedge1149

537:                                              ; preds = %536
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull %2)
          to label %538 unwind label %552

538:                                              ; preds = %537
  %539 = load ptr, ptr %28, align 8
  %540 = getelementptr inbounds i8, ptr %28, i64 8
  %541 = load i64, ptr %540, align 8
  %542 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %539, i64 %541)
  %543 = extractvalue { ptr, i64 } %542, 0
  %544 = extractvalue { ptr, i64 } %542, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr %543, i64 %544)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #11
  store double 0.000000e+00, ptr %29, align 8, !tbaa !5
  %545 = load ptr, ptr %27, align 8
  %546 = getelementptr inbounds i8, ptr %27, i64 8
  %547 = load i64, ptr %546, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr %545, i64 %547, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %548 unwind label %554

548:                                              ; preds = %538
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  br label %.critedge1149

549:                                              ; preds = %529, %515
  %.pn749.pn.pn = phi { ptr, i32 } [ %.pn749.pn, %529 ], [ %.pn746.pn, %515 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #11
  br label %3067

550:                                              ; preds = %533
  %551 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #11
  br label %602

552:                                              ; preds = %537, %534
  %553 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %556

554:                                              ; preds = %538
  %555 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  br label %556

556:                                              ; preds = %554, %552
  %.pn753 = phi { ptr, i32 } [ %555, %554 ], [ %553, %552 ]
  %.16 = extractvalue { ptr, i32 } %.pn753, 0
  %.16361 = extractvalue { ptr, i32 } %.pn753, 1
  %557 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %558 = icmp eq i32 %.16361, %557
  %559 = call ptr @__cxa_begin_catch(ptr %.16) #11
  br i1 %558, label %560, label %584

560:                                              ; preds = %556
  %561 = load ptr, ptr %559, align 8, !tbaa !9
  %562 = getelementptr inbounds i8, ptr %561, i64 16
  %563 = load ptr, ptr %562, align 8
  %564 = call noundef ptr %563(ptr noundef nonnull align 8 dereferenceable(16) %559) #11
  %565 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef %564)
          to label %566 unwind label %591

566:                                              ; preds = %560
  br i1 %565, label %567, label %595

567:                                              ; preds = %566
  %568 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 1 dereferenceable(91) @.str.919)
          to label %569 unwind label %591

569:                                              ; preds = %567
  %570 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %568, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %571 unwind label %591

571:                                              ; preds = %569
  %572 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %570, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %573 unwind label %591

573:                                              ; preds = %571
  %574 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %572, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %575 unwind label %591

575:                                              ; preds = %573
  %576 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %574, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %577 unwind label %591

577:                                              ; preds = %575
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #11
  %578 = load ptr, ptr %559, align 8, !tbaa !9
  %579 = getelementptr inbounds i8, ptr %578, i64 16
  %580 = load ptr, ptr %579, align 8
  %581 = call noundef ptr %580(ptr noundef nonnull align 8 dereferenceable(16) %559) #11
  store ptr %581, ptr %30, align 8, !tbaa !11
  %582 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %576, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %583 unwind label %593

583:                                              ; preds = %577
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  br label %595

584:                                              ; preds = %556
  %585 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 1 dereferenceable(134) @.str.918)
          to label %586 unwind label %587

586:                                              ; preds = %584
  invoke void @__cxa_end_catch()
          to label %.thread1309 unwind label %589

587:                                              ; preds = %584
  %588 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %601 unwind label %3068

589:                                              ; preds = %.critedge1149, %586
  %590 = landingpad { ptr, i32 }
          cleanup
  br label %601

591:                                              ; preds = %575, %573, %571, %569, %567, %560
  %592 = landingpad { ptr, i32 }
          cleanup
  br label %600

593:                                              ; preds = %577
  %594 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  br label %600

595:                                              ; preds = %566, %583
  invoke void @__cxa_end_catch()
          to label %596 unwind label %598

596:                                              ; preds = %595
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #11
  br i1 %565, label %603, label %.thread1312

.critedge1149:                                    ; preds = %536, %548
  %597 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 1 dereferenceable(125) @.str.920)
          to label %.thread1309 unwind label %589

598:                                              ; preds = %595
  %599 = landingpad { ptr, i32 }
          cleanup
  br label %601

600:                                              ; preds = %593, %591
  %.pn755 = phi { ptr, i32 } [ %594, %593 ], [ %592, %591 ]
  invoke void @__cxa_end_catch()
          to label %601 unwind label %3068

.thread1309:                                      ; preds = %586, %.critedge1149
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #11
  br label %603

601:                                              ; preds = %598, %600, %587, %589
  %.pn759 = phi { ptr, i32 } [ %590, %589 ], [ %588, %587 ], [ %599, %598 ], [ %.pn755, %600 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  br label %602

602:                                              ; preds = %601, %550
  %.pn759.pn = phi { ptr, i32 } [ %.pn759, %601 ], [ %551, %550 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #11
  br label %634

603:                                              ; preds = %596, %.thread1309, %.thread1304
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %604 unwind label %609

604:                                              ; preds = %603
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #11
  %605 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %606 unwind label %611

606:                                              ; preds = %604
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %32, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1059, ptr noundef %605)
          to label %607 unwind label %611

607:                                              ; preds = %606
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %608 unwind label %613

608:                                              ; preds = %607
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #11
  br label %.thread1312

609:                                              ; preds = %603
  %610 = landingpad { ptr, i32 }
          cleanup
  br label %616

611:                                              ; preds = %606, %604
  %612 = landingpad { ptr, i32 }
          cleanup
  br label %615

613:                                              ; preds = %607
  %614 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  br label %615

615:                                              ; preds = %613, %611
  %.pn762 = phi { ptr, i32 } [ %614, %613 ], [ %612, %611 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #11
  br label %616

616:                                              ; preds = %615, %609
  %.pn762.pn = phi { ptr, i32 } [ %.pn762, %615 ], [ %610, %609 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #11
  br label %634

.thread1312:                                      ; preds = %596, %608
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %33)
  %617 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
  br i1 %617, label %618, label %688

618:                                              ; preds = %.thread1312
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.230, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %619 unwind label %635

619:                                              ; preds = %618
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #11
  %620 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %621 unwind label %637

621:                                              ; preds = %619
  br i1 %620, label %622, label %.critedge1153

622:                                              ; preds = %621
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull @.str.1072)
          to label %623 unwind label %637

623:                                              ; preds = %622
  %624 = load ptr, ptr %38, align 8
  %625 = getelementptr inbounds i8, ptr %38, i64 8
  %626 = load i64, ptr %625, align 8
  %627 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %624, i64 %626)
  %628 = extractvalue { ptr, i64 } %627, 0
  %629 = extractvalue { ptr, i64 } %627, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr %628, i64 %629)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #11
  store double 0.000000e+00, ptr %39, align 8, !tbaa !5
  %630 = load ptr, ptr %37, align 8
  %631 = getelementptr inbounds i8, ptr %37, i64 8
  %632 = load i64, ptr %631, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr %630, i64 %632, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %633 unwind label %639

633:                                              ; preds = %623
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #11
  br label %.critedge1153

634:                                              ; preds = %616, %602
  %.pn762.pn.pn = phi { ptr, i32 } [ %.pn762.pn, %616 ], [ %.pn759.pn, %602 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #11
  br label %3067

635:                                              ; preds = %618
  %636 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #11
  br label %687

637:                                              ; preds = %622, %619
  %638 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %641

639:                                              ; preds = %623
  %640 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #11
  br label %641

641:                                              ; preds = %639, %637
  %.pn766 = phi { ptr, i32 } [ %640, %639 ], [ %638, %637 ]
  %.24 = extractvalue { ptr, i32 } %.pn766, 0
  %.24369 = extractvalue { ptr, i32 } %.pn766, 1
  %642 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %643 = icmp eq i32 %.24369, %642
  %644 = call ptr @__cxa_begin_catch(ptr %.24) #11
  br i1 %643, label %645, label %669

645:                                              ; preds = %641
  %646 = load ptr, ptr %644, align 8, !tbaa !9
  %647 = getelementptr inbounds i8, ptr %646, i64 16
  %648 = load ptr, ptr %647, align 8
  %649 = call noundef ptr %648(ptr noundef nonnull align 8 dereferenceable(16) %644) #11
  %650 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef %649)
          to label %651 unwind label %676

651:                                              ; preds = %645
  br i1 %650, label %652, label %680

652:                                              ; preds = %651
  %653 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 1 dereferenceable(88) @.str.1074)
          to label %654 unwind label %676

654:                                              ; preds = %652
  %655 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %653, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %656 unwind label %676

656:                                              ; preds = %654
  %657 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %655, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %658 unwind label %676

658:                                              ; preds = %656
  %659 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %657, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %660 unwind label %676

660:                                              ; preds = %658
  %661 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %659, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %662 unwind label %676

662:                                              ; preds = %660
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #11
  %663 = load ptr, ptr %644, align 8, !tbaa !9
  %664 = getelementptr inbounds i8, ptr %663, i64 16
  %665 = load ptr, ptr %664, align 8
  %666 = call noundef ptr %665(ptr noundef nonnull align 8 dereferenceable(16) %644) #11
  store ptr %666, ptr %40, align 8, !tbaa !11
  %667 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %661, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %668 unwind label %678

668:                                              ; preds = %662
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  br label %680

669:                                              ; preds = %641
  %670 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 1 dereferenceable(131) @.str.1073)
          to label %671 unwind label %672

671:                                              ; preds = %669
  invoke void @__cxa_end_catch()
          to label %.thread1317 unwind label %674

672:                                              ; preds = %669
  %673 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %686 unwind label %3068

674:                                              ; preds = %.critedge1153, %671
  %675 = landingpad { ptr, i32 }
          cleanup
  br label %686

676:                                              ; preds = %660, %658, %656, %654, %652, %645
  %677 = landingpad { ptr, i32 }
          cleanup
  br label %685

678:                                              ; preds = %662
  %679 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  br label %685

680:                                              ; preds = %651, %668
  invoke void @__cxa_end_catch()
          to label %681 unwind label %683

681:                                              ; preds = %680
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #11
  br i1 %650, label %688, label %.thread1320

.critedge1153:                                    ; preds = %621, %633
  %682 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 1 dereferenceable(122) @.str.1075)
          to label %.thread1317 unwind label %674

683:                                              ; preds = %680
  %684 = landingpad { ptr, i32 }
          cleanup
  br label %686

685:                                              ; preds = %678, %676
  %.pn768 = phi { ptr, i32 } [ %679, %678 ], [ %677, %676 ]
  invoke void @__cxa_end_catch()
          to label %686 unwind label %3068

.thread1317:                                      ; preds = %671, %.critedge1153
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #11
  br label %688

686:                                              ; preds = %683, %685, %672, %674
  %.pn772 = phi { ptr, i32 } [ %675, %674 ], [ %673, %672 ], [ %684, %683 ], [ %.pn768, %685 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  br label %687

687:                                              ; preds = %686, %635
  %.pn772.pn = phi { ptr, i32 } [ %.pn772, %686 ], [ %636, %635 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #11
  br label %719

688:                                              ; preds = %681, %.thread1317, %.thread1312
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %689 unwind label %694

689:                                              ; preds = %688
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #11
  %690 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %691 unwind label %696

691:                                              ; preds = %689
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %42, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1062, ptr noundef %690)
          to label %692 unwind label %696

692:                                              ; preds = %691
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %693 unwind label %698

693:                                              ; preds = %692
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #11
  br label %.thread1320

694:                                              ; preds = %688
  %695 = landingpad { ptr, i32 }
          cleanup
  br label %701

696:                                              ; preds = %691, %689
  %697 = landingpad { ptr, i32 }
          cleanup
  br label %700

698:                                              ; preds = %692
  %699 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #11
  br label %700

700:                                              ; preds = %698, %696
  %.pn775 = phi { ptr, i32 } [ %699, %698 ], [ %697, %696 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #11
  br label %701

701:                                              ; preds = %700, %694
  %.pn775.pn = phi { ptr, i32 } [ %.pn775, %700 ], [ %695, %694 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #11
  br label %719

.thread1320:                                      ; preds = %681, %693
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %43) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %43)
  %702 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
  br i1 %702, label %703, label %773

703:                                              ; preds = %.thread1320
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.381, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %704 unwind label %720

704:                                              ; preds = %703
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #11
  %705 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %706 unwind label %722

706:                                              ; preds = %704
  br i1 %705, label %707, label %.critedge1157

707:                                              ; preds = %706
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull @.str.1076)
          to label %708 unwind label %722

708:                                              ; preds = %707
  %709 = load ptr, ptr %48, align 8
  %710 = getelementptr inbounds i8, ptr %48, i64 8
  %711 = load i64, ptr %710, align 8
  %712 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %709, i64 %711)
  %713 = extractvalue { ptr, i64 } %712, 0
  %714 = extractvalue { ptr, i64 } %712, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr %713, i64 %714)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #11
  store double 0.000000e+00, ptr %49, align 8, !tbaa !5
  %715 = load ptr, ptr %47, align 8
  %716 = getelementptr inbounds i8, ptr %47, i64 8
  %717 = load i64, ptr %716, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr %715, i64 %717, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %718 unwind label %724

718:                                              ; preds = %708
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #11
  br label %.critedge1157

719:                                              ; preds = %701, %687
  %.pn775.pn.pn = phi { ptr, i32 } [ %.pn775.pn, %701 ], [ %.pn772.pn, %687 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #11
  br label %3067

720:                                              ; preds = %703
  %721 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #11
  br label %772

722:                                              ; preds = %707, %704
  %723 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %726

724:                                              ; preds = %708
  %725 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #11
  br label %726

726:                                              ; preds = %724, %722
  %.pn779 = phi { ptr, i32 } [ %725, %724 ], [ %723, %722 ]
  %.32 = extractvalue { ptr, i32 } %.pn779, 0
  %.32377 = extractvalue { ptr, i32 } %.pn779, 1
  %727 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %728 = icmp eq i32 %.32377, %727
  %729 = call ptr @__cxa_begin_catch(ptr %.32) #11
  br i1 %728, label %730, label %754

730:                                              ; preds = %726
  %731 = load ptr, ptr %729, align 8, !tbaa !9
  %732 = getelementptr inbounds i8, ptr %731, i64 16
  %733 = load ptr, ptr %732, align 8
  %734 = call noundef ptr %733(ptr noundef nonnull align 8 dereferenceable(16) %729) #11
  %735 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef %734)
          to label %736 unwind label %761

736:                                              ; preds = %730
  br i1 %735, label %737, label %765

737:                                              ; preds = %736
  %738 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 1 dereferenceable(89) @.str.1078)
          to label %739 unwind label %761

739:                                              ; preds = %737
  %740 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %738, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %741 unwind label %761

741:                                              ; preds = %739
  %742 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %740, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %743 unwind label %761

743:                                              ; preds = %741
  %744 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %742, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %745 unwind label %761

745:                                              ; preds = %743
  %746 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %744, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %747 unwind label %761

747:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #11
  %748 = load ptr, ptr %729, align 8, !tbaa !9
  %749 = getelementptr inbounds i8, ptr %748, i64 16
  %750 = load ptr, ptr %749, align 8
  %751 = call noundef ptr %750(ptr noundef nonnull align 8 dereferenceable(16) %729) #11
  store ptr %751, ptr %50, align 8, !tbaa !11
  %752 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %746, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %753 unwind label %763

753:                                              ; preds = %747
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #11
  br label %765

754:                                              ; preds = %726
  %755 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 1 dereferenceable(132) @.str.1077)
          to label %756 unwind label %757

756:                                              ; preds = %754
  invoke void @__cxa_end_catch()
          to label %.thread1325 unwind label %759

757:                                              ; preds = %754
  %758 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %771 unwind label %3068

759:                                              ; preds = %.critedge1157, %756
  %760 = landingpad { ptr, i32 }
          cleanup
  br label %771

761:                                              ; preds = %745, %743, %741, %739, %737, %730
  %762 = landingpad { ptr, i32 }
          cleanup
  br label %770

763:                                              ; preds = %747
  %764 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #11
  br label %770

765:                                              ; preds = %736, %753
  invoke void @__cxa_end_catch()
          to label %766 unwind label %768

766:                                              ; preds = %765
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #11
  br i1 %735, label %773, label %.thread1328

.critedge1157:                                    ; preds = %706, %718
  %767 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 1 dereferenceable(123) @.str.1079)
          to label %.thread1325 unwind label %759

768:                                              ; preds = %765
  %769 = landingpad { ptr, i32 }
          cleanup
  br label %771

770:                                              ; preds = %763, %761
  %.pn781 = phi { ptr, i32 } [ %764, %763 ], [ %762, %761 ]
  invoke void @__cxa_end_catch()
          to label %771 unwind label %3068

.thread1325:                                      ; preds = %756, %.critedge1157
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #11
  br label %773

771:                                              ; preds = %768, %770, %757, %759
  %.pn785 = phi { ptr, i32 } [ %760, %759 ], [ %758, %757 ], [ %769, %768 ], [ %.pn781, %770 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #11
  br label %772

772:                                              ; preds = %771, %720
  %.pn785.pn = phi { ptr, i32 } [ %.pn785, %771 ], [ %721, %720 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #11
  br label %804

773:                                              ; preds = %766, %.thread1325, %.thread1320
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %774 unwind label %779

774:                                              ; preds = %773
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #11
  %775 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %776 unwind label %781

776:                                              ; preds = %774
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %52, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1064, ptr noundef %775)
          to label %777 unwind label %781

777:                                              ; preds = %776
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %778 unwind label %783

778:                                              ; preds = %777
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #11
  br label %.thread1328

779:                                              ; preds = %773
  %780 = landingpad { ptr, i32 }
          cleanup
  br label %786

781:                                              ; preds = %776, %774
  %782 = landingpad { ptr, i32 }
          cleanup
  br label %785

783:                                              ; preds = %777
  %784 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #11
  br label %785

785:                                              ; preds = %783, %781
  %.pn788 = phi { ptr, i32 } [ %784, %783 ], [ %782, %781 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #11
  br label %786

786:                                              ; preds = %785, %779
  %.pn788.pn = phi { ptr, i32 } [ %.pn788, %785 ], [ %780, %779 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #11
  br label %804

.thread1328:                                      ; preds = %766, %778
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %53)
  %787 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %53)
  br i1 %787, label %788, label %858

788:                                              ; preds = %.thread1328
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %55) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.230, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %789 unwind label %805

789:                                              ; preds = %788
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #11
  %790 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %791 unwind label %807

791:                                              ; preds = %789
  br i1 %790, label %792, label %.critedge1161

792:                                              ; preds = %791
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull @.str.1080)
          to label %793 unwind label %807

793:                                              ; preds = %792
  %794 = load ptr, ptr %58, align 8
  %795 = getelementptr inbounds i8, ptr %58, i64 8
  %796 = load i64, ptr %795, align 8
  %797 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %794, i64 %796)
  %798 = extractvalue { ptr, i64 } %797, 0
  %799 = extractvalue { ptr, i64 } %797, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr %798, i64 %799)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #11
  store double 0.000000e+00, ptr %59, align 8, !tbaa !5
  %800 = load ptr, ptr %57, align 8
  %801 = getelementptr inbounds i8, ptr %57, i64 8
  %802 = load i64, ptr %801, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr %800, i64 %802, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %803 unwind label %809

803:                                              ; preds = %793
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #11
  br label %.critedge1161

804:                                              ; preds = %786, %772
  %.pn788.pn.pn = phi { ptr, i32 } [ %.pn788.pn, %786 ], [ %.pn785.pn, %772 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #11
  br label %3067

805:                                              ; preds = %788
  %806 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #11
  br label %857

807:                                              ; preds = %792, %789
  %808 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %811

809:                                              ; preds = %793
  %810 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #11
  br label %811

811:                                              ; preds = %809, %807
  %.pn792 = phi { ptr, i32 } [ %810, %809 ], [ %808, %807 ]
  %.40 = extractvalue { ptr, i32 } %.pn792, 0
  %.40385 = extractvalue { ptr, i32 } %.pn792, 1
  %812 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %813 = icmp eq i32 %.40385, %812
  %814 = call ptr @__cxa_begin_catch(ptr %.40) #11
  br i1 %813, label %815, label %839

815:                                              ; preds = %811
  %816 = load ptr, ptr %814, align 8, !tbaa !9
  %817 = getelementptr inbounds i8, ptr %816, i64 16
  %818 = load ptr, ptr %817, align 8
  %819 = call noundef ptr %818(ptr noundef nonnull align 8 dereferenceable(16) %814) #11
  %820 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef %819)
          to label %821 unwind label %846

821:                                              ; preds = %815
  br i1 %820, label %822, label %850

822:                                              ; preds = %821
  %823 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 1 dereferenceable(91) @.str.1082)
          to label %824 unwind label %846

824:                                              ; preds = %822
  %825 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %823, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %826 unwind label %846

826:                                              ; preds = %824
  %827 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %825, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %828 unwind label %846

828:                                              ; preds = %826
  %829 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %827, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %830 unwind label %846

830:                                              ; preds = %828
  %831 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %829, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %832 unwind label %846

832:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #11
  %833 = load ptr, ptr %814, align 8, !tbaa !9
  %834 = getelementptr inbounds i8, ptr %833, i64 16
  %835 = load ptr, ptr %834, align 8
  %836 = call noundef ptr %835(ptr noundef nonnull align 8 dereferenceable(16) %814) #11
  store ptr %836, ptr %60, align 8, !tbaa !11
  %837 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %831, ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %838 unwind label %848

838:                                              ; preds = %832
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #11
  br label %850

839:                                              ; preds = %811
  %840 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 1 dereferenceable(134) @.str.1081)
          to label %841 unwind label %842

841:                                              ; preds = %839
  invoke void @__cxa_end_catch()
          to label %.thread1333 unwind label %844

842:                                              ; preds = %839
  %843 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %856 unwind label %3068

844:                                              ; preds = %.critedge1161, %841
  %845 = landingpad { ptr, i32 }
          cleanup
  br label %856

846:                                              ; preds = %830, %828, %826, %824, %822, %815
  %847 = landingpad { ptr, i32 }
          cleanup
  br label %855

848:                                              ; preds = %832
  %849 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #11
  br label %855

850:                                              ; preds = %821, %838
  invoke void @__cxa_end_catch()
          to label %851 unwind label %853

851:                                              ; preds = %850
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #11
  br i1 %820, label %858, label %.thread1336

.critedge1161:                                    ; preds = %791, %803
  %852 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 1 dereferenceable(125) @.str.1083)
          to label %.thread1333 unwind label %844

853:                                              ; preds = %850
  %854 = landingpad { ptr, i32 }
          cleanup
  br label %856

855:                                              ; preds = %848, %846
  %.pn794 = phi { ptr, i32 } [ %849, %848 ], [ %847, %846 ]
  invoke void @__cxa_end_catch()
          to label %856 unwind label %3068

.thread1333:                                      ; preds = %841, %.critedge1161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #11
  br label %858

856:                                              ; preds = %853, %855, %842, %844
  %.pn798 = phi { ptr, i32 } [ %845, %844 ], [ %843, %842 ], [ %854, %853 ], [ %.pn794, %855 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  br label %857

857:                                              ; preds = %856, %805
  %.pn798.pn = phi { ptr, i32 } [ %.pn798, %856 ], [ %806, %805 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #11
  br label %889

858:                                              ; preds = %851, %.thread1333, %.thread1328
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %859 unwind label %864

859:                                              ; preds = %858
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #11
  %860 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %53)
          to label %861 unwind label %866

861:                                              ; preds = %859
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %62, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1066, ptr noundef %860)
          to label %862 unwind label %866

862:                                              ; preds = %861
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %863 unwind label %868

863:                                              ; preds = %862
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #11
  br label %.thread1336

864:                                              ; preds = %858
  %865 = landingpad { ptr, i32 }
          cleanup
  br label %871

866:                                              ; preds = %861, %859
  %867 = landingpad { ptr, i32 }
          cleanup
  br label %870

868:                                              ; preds = %862
  %869 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #11
  br label %870

870:                                              ; preds = %868, %866
  %.pn801 = phi { ptr, i32 } [ %869, %868 ], [ %867, %866 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #11
  br label %871

871:                                              ; preds = %870, %864
  %.pn801.pn = phi { ptr, i32 } [ %.pn801, %870 ], [ %865, %864 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #11
  br label %889

.thread1336:                                      ; preds = %851, %863
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %63) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %63)
  %872 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %63)
  br i1 %872, label %873, label %943

873:                                              ; preds = %.thread1336
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %874 unwind label %890

874:                                              ; preds = %873
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #11
  %875 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %876 unwind label %892

876:                                              ; preds = %874
  br i1 %875, label %877, label %.critedge1165

877:                                              ; preds = %876
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef nonnull @.str.1084)
          to label %878 unwind label %892

878:                                              ; preds = %877
  %879 = load ptr, ptr %68, align 8
  %880 = getelementptr inbounds i8, ptr %68, i64 8
  %881 = load i64, ptr %880, align 8
  %882 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %879, i64 %881)
  %883 = extractvalue { ptr, i64 } %882, 0
  %884 = extractvalue { ptr, i64 } %882, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJiiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr %883, i64 %884)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %69) #11
  store i32 0, ptr %69, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %70) #11
  store i32 0, ptr %70, align 4, !tbaa !14
  %885 = load ptr, ptr %67, align 8
  %886 = getelementptr inbounds i8, ptr %67, i64 8
  %887 = load i64, ptr %886, align 8
  invoke void @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr %885, i64 %887, ptr noundef nonnull align 4 dereferenceable(4) %69, ptr noundef nonnull align 4 dereferenceable(4) %70)
          to label %888 unwind label %894

888:                                              ; preds = %878
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %69) #11
  br label %.critedge1165

889:                                              ; preds = %871, %857
  %.pn801.pn.pn = phi { ptr, i32 } [ %.pn801.pn, %871 ], [ %.pn798.pn, %857 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #11
  br label %3067

890:                                              ; preds = %873
  %891 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #11
  br label %942

892:                                              ; preds = %877, %874
  %893 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %896

894:                                              ; preds = %878
  %895 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %69) #11
  br label %896

896:                                              ; preds = %894, %892
  %.pn805 = phi { ptr, i32 } [ %895, %894 ], [ %893, %892 ]
  %.48 = extractvalue { ptr, i32 } %.pn805, 0
  %.48393 = extractvalue { ptr, i32 } %.pn805, 1
  %897 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %898 = icmp eq i32 %.48393, %897
  %899 = call ptr @__cxa_begin_catch(ptr %.48) #11
  br i1 %898, label %900, label %924

900:                                              ; preds = %896
  %901 = load ptr, ptr %899, align 8, !tbaa !9
  %902 = getelementptr inbounds i8, ptr %901, i64 16
  %903 = load ptr, ptr %902, align 8
  %904 = call noundef ptr %903(ptr noundef nonnull align 8 dereferenceable(16) %899) #11
  %905 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef %904)
          to label %906 unwind label %931

906:                                              ; preds = %900
  br i1 %905, label %907, label %935

907:                                              ; preds = %906
  %908 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 1 dereferenceable(91) @.str.1086)
          to label %909 unwind label %931

909:                                              ; preds = %907
  %910 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %908, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %911 unwind label %931

911:                                              ; preds = %909
  %912 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %910, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %913 unwind label %931

913:                                              ; preds = %911
  %914 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %912, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %915 unwind label %931

915:                                              ; preds = %913
  %916 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %914, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %917 unwind label %931

917:                                              ; preds = %915
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #11
  %918 = load ptr, ptr %899, align 8, !tbaa !9
  %919 = getelementptr inbounds i8, ptr %918, i64 16
  %920 = load ptr, ptr %919, align 8
  %921 = call noundef ptr %920(ptr noundef nonnull align 8 dereferenceable(16) %899) #11
  store ptr %921, ptr %71, align 8, !tbaa !11
  %922 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %916, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %923 unwind label %933

923:                                              ; preds = %917
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #11
  br label %935

924:                                              ; preds = %896
  %925 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 1 dereferenceable(134) @.str.1085)
          to label %926 unwind label %927

926:                                              ; preds = %924
  invoke void @__cxa_end_catch()
          to label %.thread1341 unwind label %929

927:                                              ; preds = %924
  %928 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %941 unwind label %3068

929:                                              ; preds = %.critedge1165, %926
  %930 = landingpad { ptr, i32 }
          cleanup
  br label %941

931:                                              ; preds = %915, %913, %911, %909, %907, %900
  %932 = landingpad { ptr, i32 }
          cleanup
  br label %940

933:                                              ; preds = %917
  %934 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #11
  br label %940

935:                                              ; preds = %906, %923
  invoke void @__cxa_end_catch()
          to label %936 unwind label %938

936:                                              ; preds = %935
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #11
  br i1 %905, label %943, label %.thread1344

.critedge1165:                                    ; preds = %876, %888
  %937 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 1 dereferenceable(125) @.str.1087)
          to label %.thread1341 unwind label %929

938:                                              ; preds = %935
  %939 = landingpad { ptr, i32 }
          cleanup
  br label %941

940:                                              ; preds = %933, %931
  %.pn807 = phi { ptr, i32 } [ %934, %933 ], [ %932, %931 ]
  invoke void @__cxa_end_catch()
          to label %941 unwind label %3068

.thread1341:                                      ; preds = %926, %.critedge1165
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #11
  br label %943

941:                                              ; preds = %938, %940, %927, %929
  %.pn811 = phi { ptr, i32 } [ %930, %929 ], [ %928, %927 ], [ %939, %938 ], [ %.pn807, %940 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  br label %942

942:                                              ; preds = %941, %890
  %.pn811.pn = phi { ptr, i32 } [ %.pn811, %941 ], [ %891, %890 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #11
  br label %974

943:                                              ; preds = %936, %.thread1341, %.thread1336
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %944 unwind label %949

944:                                              ; preds = %943
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #11
  %945 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %63)
          to label %946 unwind label %951

946:                                              ; preds = %944
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %73, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1068, ptr noundef %945)
          to label %947 unwind label %951

947:                                              ; preds = %946
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %948 unwind label %953

948:                                              ; preds = %947
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #11
  br label %.thread1344

949:                                              ; preds = %943
  %950 = landingpad { ptr, i32 }
          cleanup
  br label %956

951:                                              ; preds = %946, %944
  %952 = landingpad { ptr, i32 }
          cleanup
  br label %955

953:                                              ; preds = %947
  %954 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #11
  br label %955

955:                                              ; preds = %953, %951
  %.pn814 = phi { ptr, i32 } [ %954, %953 ], [ %952, %951 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #11
  br label %956

956:                                              ; preds = %955, %949
  %.pn814.pn = phi { ptr, i32 } [ %.pn814, %955 ], [ %950, %949 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #11
  br label %974

.thread1344:                                      ; preds = %936, %948
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %74) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %74)
  %957 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %74)
  br i1 %957, label %958, label %1028

958:                                              ; preds = %.thread1344
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.288, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %959 unwind label %975

959:                                              ; preds = %958
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #11
  %960 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %961 unwind label %977

961:                                              ; preds = %959
  br i1 %960, label %962, label %.critedge1169

962:                                              ; preds = %961
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull @.str.1088)
          to label %963 unwind label %977

963:                                              ; preds = %962
  %964 = load ptr, ptr %79, align 8
  %965 = getelementptr inbounds i8, ptr %79, i64 8
  %966 = load i64, ptr %965, align 8
  %967 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %964, i64 %966)
  %968 = extractvalue { ptr, i64 } %967, 0
  %969 = extractvalue { ptr, i64 } %967, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr %968, i64 %969)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #11
  store double 0.000000e+00, ptr %80, align 8, !tbaa !5
  %970 = load ptr, ptr %78, align 8
  %971 = getelementptr inbounds i8, ptr %78, i64 8
  %972 = load i64, ptr %971, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr %970, i64 %972, ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %973 unwind label %979

973:                                              ; preds = %963
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #11
  br label %.critedge1169

974:                                              ; preds = %956, %942
  %.pn814.pn.pn = phi { ptr, i32 } [ %.pn814.pn, %956 ], [ %.pn811.pn, %942 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #11
  br label %3067

975:                                              ; preds = %958
  %976 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #11
  br label %1027

977:                                              ; preds = %962, %959
  %978 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %981

979:                                              ; preds = %963
  %980 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #11
  br label %981

981:                                              ; preds = %979, %977
  %.pn818 = phi { ptr, i32 } [ %980, %979 ], [ %978, %977 ]
  %.56 = extractvalue { ptr, i32 } %.pn818, 0
  %.56401 = extractvalue { ptr, i32 } %.pn818, 1
  %982 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %983 = icmp eq i32 %.56401, %982
  %984 = call ptr @__cxa_begin_catch(ptr %.56) #11
  br i1 %983, label %985, label %1009

985:                                              ; preds = %981
  %986 = load ptr, ptr %984, align 8, !tbaa !9
  %987 = getelementptr inbounds i8, ptr %986, i64 16
  %988 = load ptr, ptr %987, align 8
  %989 = call noundef ptr %988(ptr noundef nonnull align 8 dereferenceable(16) %984) #11
  %990 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef %989)
          to label %991 unwind label %1016

991:                                              ; preds = %985
  br i1 %990, label %992, label %1020

992:                                              ; preds = %991
  %993 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 1 dereferenceable(91) @.str.1090)
          to label %994 unwind label %1016

994:                                              ; preds = %992
  %995 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %993, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %996 unwind label %1016

996:                                              ; preds = %994
  %997 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %995, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %998 unwind label %1016

998:                                              ; preds = %996
  %999 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %997, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1000 unwind label %1016

1000:                                             ; preds = %998
  %1001 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %999, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1002 unwind label %1016

1002:                                             ; preds = %1000
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #11
  %1003 = load ptr, ptr %984, align 8, !tbaa !9
  %1004 = getelementptr inbounds i8, ptr %1003, i64 16
  %1005 = load ptr, ptr %1004, align 8
  %1006 = call noundef ptr %1005(ptr noundef nonnull align 8 dereferenceable(16) %984) #11
  store ptr %1006, ptr %81, align 8, !tbaa !11
  %1007 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1001, ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %1008 unwind label %1018

1008:                                             ; preds = %1002
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #11
  br label %1020

1009:                                             ; preds = %981
  %1010 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 1 dereferenceable(134) @.str.1089)
          to label %1011 unwind label %1012

1011:                                             ; preds = %1009
  invoke void @__cxa_end_catch()
          to label %.thread1349 unwind label %1014

1012:                                             ; preds = %1009
  %1013 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1026 unwind label %3068

1014:                                             ; preds = %.critedge1169, %1011
  %1015 = landingpad { ptr, i32 }
          cleanup
  br label %1026

1016:                                             ; preds = %1000, %998, %996, %994, %992, %985
  %1017 = landingpad { ptr, i32 }
          cleanup
  br label %1025

1018:                                             ; preds = %1002
  %1019 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #11
  br label %1025

1020:                                             ; preds = %991, %1008
  invoke void @__cxa_end_catch()
          to label %1021 unwind label %1023

1021:                                             ; preds = %1020
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #11
  br i1 %990, label %1028, label %.thread1352

.critedge1169:                                    ; preds = %961, %973
  %1022 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 1 dereferenceable(125) @.str.1091)
          to label %.thread1349 unwind label %1014

1023:                                             ; preds = %1020
  %1024 = landingpad { ptr, i32 }
          cleanup
  br label %1026

1025:                                             ; preds = %1018, %1016
  %.pn820 = phi { ptr, i32 } [ %1019, %1018 ], [ %1017, %1016 ]
  invoke void @__cxa_end_catch()
          to label %1026 unwind label %3068

.thread1349:                                      ; preds = %1011, %.critedge1169
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #11
  br label %1028

1026:                                             ; preds = %1023, %1025, %1012, %1014
  %.pn824 = phi { ptr, i32 } [ %1015, %1014 ], [ %1013, %1012 ], [ %1024, %1023 ], [ %.pn820, %1025 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  br label %1027

1027:                                             ; preds = %1026, %975
  %.pn824.pn = phi { ptr, i32 } [ %.pn824, %1026 ], [ %976, %975 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #11
  br label %1059

1028:                                             ; preds = %1021, %.thread1349, %.thread1344
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %1029 unwind label %1034

1029:                                             ; preds = %1028
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %83) #11
  %1030 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %74)
          to label %1031 unwind label %1036

1031:                                             ; preds = %1029
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %83, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1070, ptr noundef %1030)
          to label %1032 unwind label %1036

1032:                                             ; preds = %1031
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %1033 unwind label %1038

1033:                                             ; preds = %1032
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #11
  br label %.thread1352

1034:                                             ; preds = %1028
  %1035 = landingpad { ptr, i32 }
          cleanup
  br label %1041

1036:                                             ; preds = %1031, %1029
  %1037 = landingpad { ptr, i32 }
          cleanup
  br label %1040

1038:                                             ; preds = %1032
  %1039 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #11
  br label %1040

1040:                                             ; preds = %1038, %1036
  %.pn827 = phi { ptr, i32 } [ %1039, %1038 ], [ %1037, %1036 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #11
  br label %1041

1041:                                             ; preds = %1040, %1034
  %.pn827.pn = phi { ptr, i32 } [ %.pn827, %1040 ], [ %1035, %1034 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #11
  br label %1059

.thread1352:                                      ; preds = %1021, %1033
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %84) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %84)
  %1042 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %84)
  br i1 %1042, label %1043, label %1113

1043:                                             ; preds = %.thread1352
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.230, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %1044 unwind label %1060

1044:                                             ; preds = %1043
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #11
  %1045 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1046 unwind label %1062

1046:                                             ; preds = %1044
  br i1 %1045, label %1047, label %.critedge1173

1047:                                             ; preds = %1046
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %89, ptr noundef nonnull @.str.1092)
          to label %1048 unwind label %1062

1048:                                             ; preds = %1047
  %1049 = load ptr, ptr %89, align 8
  %1050 = getelementptr inbounds i8, ptr %89, i64 8
  %1051 = load i64, ptr %1050, align 8
  %1052 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1049, i64 %1051)
  %1053 = extractvalue { ptr, i64 } %1052, 0
  %1054 = extractvalue { ptr, i64 } %1052, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %88, ptr %1053, i64 %1054)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #11
  store double 0.000000e+00, ptr %90, align 8, !tbaa !5
  %1055 = load ptr, ptr %88, align 8
  %1056 = getelementptr inbounds i8, ptr %88, i64 8
  %1057 = load i64, ptr %1056, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr %1055, i64 %1057, ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %1058 unwind label %1064

1058:                                             ; preds = %1048
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #11
  br label %.critedge1173

1059:                                             ; preds = %1041, %1027
  %.pn827.pn.pn = phi { ptr, i32 } [ %.pn827.pn, %1041 ], [ %.pn824.pn, %1027 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #11
  br label %3067

1060:                                             ; preds = %1043
  %1061 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #11
  br label %1112

1062:                                             ; preds = %1047, %1044
  %1063 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1066

1064:                                             ; preds = %1048
  %1065 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #11
  br label %1066

1066:                                             ; preds = %1064, %1062
  %.pn831 = phi { ptr, i32 } [ %1065, %1064 ], [ %1063, %1062 ]
  %.64 = extractvalue { ptr, i32 } %.pn831, 0
  %.64409 = extractvalue { ptr, i32 } %.pn831, 1
  %1067 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1068 = icmp eq i32 %.64409, %1067
  %1069 = call ptr @__cxa_begin_catch(ptr %.64) #11
  br i1 %1068, label %1070, label %1094

1070:                                             ; preds = %1066
  %1071 = load ptr, ptr %1069, align 8, !tbaa !9
  %1072 = getelementptr inbounds i8, ptr %1071, i64 16
  %1073 = load ptr, ptr %1072, align 8
  %1074 = call noundef ptr %1073(ptr noundef nonnull align 8 dereferenceable(16) %1069) #11
  %1075 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef %1074)
          to label %1076 unwind label %1101

1076:                                             ; preds = %1070
  br i1 %1075, label %1077, label %1105

1077:                                             ; preds = %1076
  %1078 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA92_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef nonnull align 1 dereferenceable(92) @.str.1094)
          to label %1079 unwind label %1101

1079:                                             ; preds = %1077
  %1080 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1078, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1081 unwind label %1101

1081:                                             ; preds = %1079
  %1082 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1080, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %1083 unwind label %1101

1083:                                             ; preds = %1081
  %1084 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1082, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1085 unwind label %1101

1085:                                             ; preds = %1083
  %1086 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1084, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1087 unwind label %1101

1087:                                             ; preds = %1085
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #11
  %1088 = load ptr, ptr %1069, align 8, !tbaa !9
  %1089 = getelementptr inbounds i8, ptr %1088, i64 16
  %1090 = load ptr, ptr %1089, align 8
  %1091 = call noundef ptr %1090(ptr noundef nonnull align 8 dereferenceable(16) %1069) #11
  store ptr %1091, ptr %91, align 8, !tbaa !11
  %1092 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1086, ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %1093 unwind label %1103

1093:                                             ; preds = %1087
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #11
  br label %1105

1094:                                             ; preds = %1066
  %1095 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA135_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef nonnull align 1 dereferenceable(135) @.str.1093)
          to label %1096 unwind label %1097

1096:                                             ; preds = %1094
  invoke void @__cxa_end_catch()
          to label %.thread1357 unwind label %1099

1097:                                             ; preds = %1094
  %1098 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1111 unwind label %3068

1099:                                             ; preds = %.critedge1173, %1096
  %1100 = landingpad { ptr, i32 }
          cleanup
  br label %1111

1101:                                             ; preds = %1085, %1083, %1081, %1079, %1077, %1070
  %1102 = landingpad { ptr, i32 }
          cleanup
  br label %1110

1103:                                             ; preds = %1087
  %1104 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #11
  br label %1110

1105:                                             ; preds = %1076, %1093
  invoke void @__cxa_end_catch()
          to label %1106 unwind label %1108

1106:                                             ; preds = %1105
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #11
  br i1 %1075, label %1113, label %.thread1360

.critedge1173:                                    ; preds = %1046, %1058
  %1107 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA126_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef nonnull align 1 dereferenceable(126) @.str.1095)
          to label %.thread1357 unwind label %1099

1108:                                             ; preds = %1105
  %1109 = landingpad { ptr, i32 }
          cleanup
  br label %1111

1110:                                             ; preds = %1103, %1101
  %.pn833 = phi { ptr, i32 } [ %1104, %1103 ], [ %1102, %1101 ]
  invoke void @__cxa_end_catch()
          to label %1111 unwind label %3068

.thread1357:                                      ; preds = %1096, %.critedge1173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #11
  br label %1113

1111:                                             ; preds = %1108, %1110, %1097, %1099
  %.pn837 = phi { ptr, i32 } [ %1100, %1099 ], [ %1098, %1097 ], [ %1109, %1108 ], [ %.pn833, %1110 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #11
  br label %1112

1112:                                             ; preds = %1111, %1060
  %.pn837.pn = phi { ptr, i32 } [ %.pn837, %1111 ], [ %1061, %1060 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #11
  br label %1144

1113:                                             ; preds = %1106, %.thread1357, %.thread1352
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %1114 unwind label %1119

1114:                                             ; preds = %1113
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #11
  %1115 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %84)
          to label %1116 unwind label %1121

1116:                                             ; preds = %1114
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %93, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1073, ptr noundef %1115)
          to label %1117 unwind label %1121

1117:                                             ; preds = %1116
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %1118 unwind label %1123

1118:                                             ; preds = %1117
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #11
  br label %.thread1360

1119:                                             ; preds = %1113
  %1120 = landingpad { ptr, i32 }
          cleanup
  br label %1126

1121:                                             ; preds = %1116, %1114
  %1122 = landingpad { ptr, i32 }
          cleanup
  br label %1125

1123:                                             ; preds = %1117
  %1124 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #11
  br label %1125

1125:                                             ; preds = %1123, %1121
  %.pn840 = phi { ptr, i32 } [ %1124, %1123 ], [ %1122, %1121 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #11
  br label %1126

1126:                                             ; preds = %1125, %1119
  %.pn840.pn = phi { ptr, i32 } [ %.pn840, %1125 ], [ %1120, %1119 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #11
  br label %1144

.thread1360:                                      ; preds = %1106, %1118
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %94) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %94)
  %1127 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %94)
  br i1 %1127, label %1128, label %1198

1128:                                             ; preds = %.thread1360
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.1096, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %1129 unwind label %1145

1129:                                             ; preds = %1128
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #11
  %1130 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1131 unwind label %1147

1131:                                             ; preds = %1129
  br i1 %1130, label %1132, label %.critedge1177

1132:                                             ; preds = %1131
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %99, ptr noundef nonnull @.str.1088)
          to label %1133 unwind label %1147

1133:                                             ; preds = %1132
  %1134 = load ptr, ptr %99, align 8
  %1135 = getelementptr inbounds i8, ptr %99, i64 8
  %1136 = load i64, ptr %1135, align 8
  %1137 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1134, i64 %1136)
  %1138 = extractvalue { ptr, i64 } %1137, 0
  %1139 = extractvalue { ptr, i64 } %1137, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %98, ptr %1138, i64 %1139)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %100) #11
  store double 0.000000e+00, ptr %100, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %101) #11
  store i32 -1, ptr %101, align 4, !tbaa !14
  %1140 = load ptr, ptr %98, align 8
  %1141 = getelementptr inbounds i8, ptr %98, i64 8
  %1142 = load i64, ptr %1141, align 8
  invoke void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr %1140, i64 %1142, ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 4 dereferenceable(4) %101)
          to label %1143 unwind label %1149

1143:                                             ; preds = %1133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %101) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #11
  br label %.critedge1177

1144:                                             ; preds = %1126, %1112
  %.pn840.pn.pn = phi { ptr, i32 } [ %.pn840.pn, %1126 ], [ %.pn837.pn, %1112 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #11
  br label %3067

1145:                                             ; preds = %1128
  %1146 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #11
  br label %1197

1147:                                             ; preds = %1132, %1129
  %1148 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1151

1149:                                             ; preds = %1133
  %1150 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %101) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #11
  br label %1151

1151:                                             ; preds = %1149, %1147
  %.pn844 = phi { ptr, i32 } [ %1150, %1149 ], [ %1148, %1147 ]
  %.72 = extractvalue { ptr, i32 } %.pn844, 0
  %.72417 = extractvalue { ptr, i32 } %.pn844, 1
  %1152 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1153 = icmp eq i32 %.72417, %1152
  %1154 = call ptr @__cxa_begin_catch(ptr %.72) #11
  br i1 %1153, label %1155, label %1179

1155:                                             ; preds = %1151
  %1156 = load ptr, ptr %1154, align 8, !tbaa !9
  %1157 = getelementptr inbounds i8, ptr %1156, i64 16
  %1158 = load ptr, ptr %1157, align 8
  %1159 = call noundef ptr %1158(ptr noundef nonnull align 8 dereferenceable(16) %1154) #11
  %1160 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef %1159)
          to label %1161 unwind label %1186

1161:                                             ; preds = %1155
  br i1 %1160, label %1162, label %1190

1162:                                             ; preds = %1161
  %1163 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef nonnull align 1 dereferenceable(95) @.str.1098)
          to label %1164 unwind label %1186

1164:                                             ; preds = %1162
  %1165 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1163, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1166 unwind label %1186

1166:                                             ; preds = %1164
  %1167 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1165, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %1168 unwind label %1186

1168:                                             ; preds = %1166
  %1169 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1167, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1170 unwind label %1186

1170:                                             ; preds = %1168
  %1171 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1169, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1172 unwind label %1186

1172:                                             ; preds = %1170
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #11
  %1173 = load ptr, ptr %1154, align 8, !tbaa !9
  %1174 = getelementptr inbounds i8, ptr %1173, i64 16
  %1175 = load ptr, ptr %1174, align 8
  %1176 = call noundef ptr %1175(ptr noundef nonnull align 8 dereferenceable(16) %1154) #11
  store ptr %1176, ptr %102, align 8, !tbaa !11
  %1177 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1171, ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %1178 unwind label %1188

1178:                                             ; preds = %1172
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #11
  br label %1190

1179:                                             ; preds = %1151
  %1180 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef nonnull align 1 dereferenceable(138) @.str.1097)
          to label %1181 unwind label %1182

1181:                                             ; preds = %1179
  invoke void @__cxa_end_catch()
          to label %.thread1365 unwind label %1184

1182:                                             ; preds = %1179
  %1183 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1196 unwind label %3068

1184:                                             ; preds = %.critedge1177, %1181
  %1185 = landingpad { ptr, i32 }
          cleanup
  br label %1196

1186:                                             ; preds = %1170, %1168, %1166, %1164, %1162, %1155
  %1187 = landingpad { ptr, i32 }
          cleanup
  br label %1195

1188:                                             ; preds = %1172
  %1189 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #11
  br label %1195

1190:                                             ; preds = %1161, %1178
  invoke void @__cxa_end_catch()
          to label %1191 unwind label %1193

1191:                                             ; preds = %1190
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #11
  br i1 %1160, label %1198, label %.thread1368

.critedge1177:                                    ; preds = %1131, %1143
  %1192 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef nonnull align 1 dereferenceable(129) @.str.1099)
          to label %.thread1365 unwind label %1184

1193:                                             ; preds = %1190
  %1194 = landingpad { ptr, i32 }
          cleanup
  br label %1196

1195:                                             ; preds = %1188, %1186
  %.pn846 = phi { ptr, i32 } [ %1189, %1188 ], [ %1187, %1186 ]
  invoke void @__cxa_end_catch()
          to label %1196 unwind label %3068

.thread1365:                                      ; preds = %1181, %.critedge1177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #11
  br label %1198

1196:                                             ; preds = %1193, %1195, %1182, %1184
  %.pn850 = phi { ptr, i32 } [ %1185, %1184 ], [ %1183, %1182 ], [ %1194, %1193 ], [ %.pn846, %1195 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  br label %1197

1197:                                             ; preds = %1196, %1145
  %.pn850.pn = phi { ptr, i32 } [ %.pn850, %1196 ], [ %1146, %1145 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #11
  br label %1229

1198:                                             ; preds = %1191, %.thread1365, %.thread1360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %103) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %1199 unwind label %1204

1199:                                             ; preds = %1198
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %104) #11
  %1200 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %94)
          to label %1201 unwind label %1206

1201:                                             ; preds = %1199
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %104, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1076, ptr noundef %1200)
          to label %1202 unwind label %1206

1202:                                             ; preds = %1201
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %1203 unwind label %1208

1203:                                             ; preds = %1202
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #11
  br label %.thread1368

1204:                                             ; preds = %1198
  %1205 = landingpad { ptr, i32 }
          cleanup
  br label %1211

1206:                                             ; preds = %1201, %1199
  %1207 = landingpad { ptr, i32 }
          cleanup
  br label %1210

1208:                                             ; preds = %1202
  %1209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #11
  br label %1210

1210:                                             ; preds = %1208, %1206
  %.pn853 = phi { ptr, i32 } [ %1209, %1208 ], [ %1207, %1206 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #11
  br label %1211

1211:                                             ; preds = %1210, %1204
  %.pn853.pn = phi { ptr, i32 } [ %.pn853, %1210 ], [ %1205, %1204 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #11
  br label %1229

.thread1368:                                      ; preds = %1191, %1203
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %94) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %105) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %105)
  %1212 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %105)
  br i1 %1212, label %1213, label %1283

1213:                                             ; preds = %.thread1368
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %107) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull @.str.785, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %1214 unwind label %1230

1214:                                             ; preds = %1213
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %107) #11
  %1215 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1216 unwind label %1232

1216:                                             ; preds = %1214
  br i1 %1215, label %1217, label %.critedge1181

1217:                                             ; preds = %1216
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %110, ptr noundef nonnull @.str.1088)
          to label %1218 unwind label %1232

1218:                                             ; preds = %1217
  %1219 = load ptr, ptr %110, align 8
  %1220 = getelementptr inbounds i8, ptr %110, i64 8
  %1221 = load i64, ptr %1220, align 8
  %1222 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1219, i64 %1221)
  %1223 = extractvalue { ptr, i64 } %1222, 0
  %1224 = extractvalue { ptr, i64 } %1222, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdjEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %109, ptr %1223, i64 %1224)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %111) #11
  store double 0.000000e+00, ptr %111, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %112) #11
  store i32 -2147483648, ptr %112, align 4, !tbaa !14
  %1225 = load ptr, ptr %109, align 8
  %1226 = getelementptr inbounds i8, ptr %109, i64 8
  %1227 = load i64, ptr %1226, align 8
  invoke void @_ZN3fmt3v106formatIJdjEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr %1225, i64 %1227, ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 4 dereferenceable(4) %112)
          to label %1228 unwind label %1234

1228:                                             ; preds = %1218
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %112) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #11
  br label %.critedge1181

1229:                                             ; preds = %1211, %1197
  %.pn853.pn.pn = phi { ptr, i32 } [ %.pn853.pn, %1211 ], [ %.pn850.pn, %1197 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %94) #11
  br label %3067

1230:                                             ; preds = %1213
  %1231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %107) #11
  br label %1282

1232:                                             ; preds = %1217, %1214
  %1233 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1236

1234:                                             ; preds = %1218
  %1235 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %112) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #11
  br label %1236

1236:                                             ; preds = %1234, %1232
  %.pn857 = phi { ptr, i32 } [ %1235, %1234 ], [ %1233, %1232 ]
  %.80 = extractvalue { ptr, i32 } %.pn857, 0
  %.80425 = extractvalue { ptr, i32 } %.pn857, 1
  %1237 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1238 = icmp eq i32 %.80425, %1237
  %1239 = call ptr @__cxa_begin_catch(ptr %.80) #11
  br i1 %1238, label %1240, label %1264

1240:                                             ; preds = %1236
  %1241 = load ptr, ptr %1239, align 8, !tbaa !9
  %1242 = getelementptr inbounds i8, ptr %1241, i64 16
  %1243 = load ptr, ptr %1242, align 8
  %1244 = call noundef ptr %1243(ptr noundef nonnull align 8 dereferenceable(16) %1239) #11
  %1245 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef %1244)
          to label %1246 unwind label %1271

1246:                                             ; preds = %1240
  br i1 %1245, label %1247, label %1275

1247:                                             ; preds = %1246
  %1248 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA110_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %105, ptr noundef nonnull align 1 dereferenceable(110) @.str.1101)
          to label %1249 unwind label %1271

1249:                                             ; preds = %1247
  %1250 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1248, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1251 unwind label %1271

1251:                                             ; preds = %1249
  %1252 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1250, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %1253 unwind label %1271

1253:                                             ; preds = %1251
  %1254 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1252, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1255 unwind label %1271

1255:                                             ; preds = %1253
  %1256 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1254, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1257 unwind label %1271

1257:                                             ; preds = %1255
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %113) #11
  %1258 = load ptr, ptr %1239, align 8, !tbaa !9
  %1259 = getelementptr inbounds i8, ptr %1258, i64 16
  %1260 = load ptr, ptr %1259, align 8
  %1261 = call noundef ptr %1260(ptr noundef nonnull align 8 dereferenceable(16) %1239) #11
  store ptr %1261, ptr %113, align 8, !tbaa !11
  %1262 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1256, ptr noundef nonnull align 8 dereferenceable(8) %113)
          to label %1263 unwind label %1273

1263:                                             ; preds = %1257
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #11
  br label %1275

1264:                                             ; preds = %1236
  %1265 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA153_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %105, ptr noundef nonnull align 1 dereferenceable(153) @.str.1100)
          to label %1266 unwind label %1267

1266:                                             ; preds = %1264
  invoke void @__cxa_end_catch()
          to label %.thread1373 unwind label %1269

1267:                                             ; preds = %1264
  %1268 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1281 unwind label %3068

1269:                                             ; preds = %.critedge1181, %1266
  %1270 = landingpad { ptr, i32 }
          cleanup
  br label %1281

1271:                                             ; preds = %1255, %1253, %1251, %1249, %1247, %1240
  %1272 = landingpad { ptr, i32 }
          cleanup
  br label %1280

1273:                                             ; preds = %1257
  %1274 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #11
  br label %1280

1275:                                             ; preds = %1246, %1263
  invoke void @__cxa_end_catch()
          to label %1276 unwind label %1278

1276:                                             ; preds = %1275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #11
  br i1 %1245, label %1283, label %.thread1376

.critedge1181:                                    ; preds = %1216, %1228
  %1277 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA144_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %105, ptr noundef nonnull align 1 dereferenceable(144) @.str.1102)
          to label %.thread1373 unwind label %1269

1278:                                             ; preds = %1275
  %1279 = landingpad { ptr, i32 }
          cleanup
  br label %1281

1280:                                             ; preds = %1273, %1271
  %.pn859 = phi { ptr, i32 } [ %1274, %1273 ], [ %1272, %1271 ]
  invoke void @__cxa_end_catch()
          to label %1281 unwind label %3068

.thread1373:                                      ; preds = %1266, %.critedge1181
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #11
  br label %1283

1281:                                             ; preds = %1278, %1280, %1267, %1269
  %.pn863 = phi { ptr, i32 } [ %1270, %1269 ], [ %1268, %1267 ], [ %1279, %1278 ], [ %.pn859, %1280 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #11
  br label %1282

1282:                                             ; preds = %1281, %1230
  %.pn863.pn = phi { ptr, i32 } [ %.pn863, %1281 ], [ %1231, %1230 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #11
  br label %1314

1283:                                             ; preds = %1276, %.thread1373, %.thread1368
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %114) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %1284 unwind label %1289

1284:                                             ; preds = %1283
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %115) #11
  %1285 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %105)
          to label %1286 unwind label %1291

1286:                                             ; preds = %1284
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %115, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1078, ptr noundef %1285)
          to label %1287 unwind label %1291

1287:                                             ; preds = %1286
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %1288 unwind label %1293

1288:                                             ; preds = %1287
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #11
  br label %.thread1376

1289:                                             ; preds = %1283
  %1290 = landingpad { ptr, i32 }
          cleanup
  br label %1296

1291:                                             ; preds = %1286, %1284
  %1292 = landingpad { ptr, i32 }
          cleanup
  br label %1295

1293:                                             ; preds = %1287
  %1294 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #11
  br label %1295

1295:                                             ; preds = %1293, %1291
  %.pn866 = phi { ptr, i32 } [ %1294, %1293 ], [ %1292, %1291 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #11
  br label %1296

1296:                                             ; preds = %1295, %1289
  %.pn866.pn = phi { ptr, i32 } [ %.pn866, %1295 ], [ %1290, %1289 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #11
  br label %1314

.thread1376:                                      ; preds = %1276, %1288
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %105) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %105) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %116) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %116)
  %1297 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %116)
  br i1 %1297, label %1298, label %1368

1298:                                             ; preds = %.thread1376
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %117) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %118) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull @.str.1096, ptr noundef nonnull align 1 dereferenceable(1) %118)
          to label %1299 unwind label %1315

1299:                                             ; preds = %1298
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %118) #11
  %1300 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1301 unwind label %1317

1301:                                             ; preds = %1299
  br i1 %1300, label %1302, label %.critedge1185

1302:                                             ; preds = %1301
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %121, ptr noundef nonnull @.str.1088)
          to label %1303 unwind label %1317

1303:                                             ; preds = %1302
  %1304 = load ptr, ptr %121, align 8
  %1305 = getelementptr inbounds i8, ptr %121, i64 8
  %1306 = load i64, ptr %1305, align 8
  %1307 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1304, i64 %1306)
  %1308 = extractvalue { ptr, i64 } %1307, 0
  %1309 = extractvalue { ptr, i64 } %1307, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdlEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %120, ptr %1308, i64 %1309)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %122) #11
  store double 0.000000e+00, ptr %122, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %123) #11
  store i64 -1, ptr %123, align 8, !tbaa !16
  %1310 = load ptr, ptr %120, align 8
  %1311 = getelementptr inbounds i8, ptr %120, i64 8
  %1312 = load i64, ptr %1311, align 8
  invoke void @_ZN3fmt3v106formatIJdlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %119, ptr %1310, i64 %1312, ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 8 dereferenceable(8) %123)
          to label %1313 unwind label %1319

1313:                                             ; preds = %1303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #11
  br label %.critedge1185

1314:                                             ; preds = %1296, %1282
  %.pn866.pn.pn = phi { ptr, i32 } [ %.pn866.pn, %1296 ], [ %.pn863.pn, %1282 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %105) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %105) #11
  br label %3067

1315:                                             ; preds = %1298
  %1316 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %118) #11
  br label %1367

1317:                                             ; preds = %1302, %1299
  %1318 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1321

1319:                                             ; preds = %1303
  %1320 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #11
  br label %1321

1321:                                             ; preds = %1319, %1317
  %.pn870 = phi { ptr, i32 } [ %1320, %1319 ], [ %1318, %1317 ]
  %.88 = extractvalue { ptr, i32 } %.pn870, 0
  %.88433 = extractvalue { ptr, i32 } %.pn870, 1
  %1322 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1323 = icmp eq i32 %.88433, %1322
  %1324 = call ptr @__cxa_begin_catch(ptr %.88) #11
  br i1 %1323, label %1325, label %1349

1325:                                             ; preds = %1321
  %1326 = load ptr, ptr %1324, align 8, !tbaa !9
  %1327 = getelementptr inbounds i8, ptr %1326, i64 16
  %1328 = load ptr, ptr %1327, align 8
  %1329 = call noundef ptr %1328(ptr noundef nonnull align 8 dereferenceable(16) %1324) #11
  %1330 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef %1329)
          to label %1331 unwind label %1356

1331:                                             ; preds = %1325
  br i1 %1330, label %1332, label %1360

1332:                                             ; preds = %1331
  %1333 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %116, ptr noundef nonnull align 1 dereferenceable(96) @.str.1104)
          to label %1334 unwind label %1356

1334:                                             ; preds = %1332
  %1335 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1333, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1336 unwind label %1356

1336:                                             ; preds = %1334
  %1337 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1335, ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %1338 unwind label %1356

1338:                                             ; preds = %1336
  %1339 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1337, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1340 unwind label %1356

1340:                                             ; preds = %1338
  %1341 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1339, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1342 unwind label %1356

1342:                                             ; preds = %1340
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %124) #11
  %1343 = load ptr, ptr %1324, align 8, !tbaa !9
  %1344 = getelementptr inbounds i8, ptr %1343, i64 16
  %1345 = load ptr, ptr %1344, align 8
  %1346 = call noundef ptr %1345(ptr noundef nonnull align 8 dereferenceable(16) %1324) #11
  store ptr %1346, ptr %124, align 8, !tbaa !11
  %1347 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1341, ptr noundef nonnull align 8 dereferenceable(8) %124)
          to label %1348 unwind label %1358

1348:                                             ; preds = %1342
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #11
  br label %1360

1349:                                             ; preds = %1321
  %1350 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %116, ptr noundef nonnull align 1 dereferenceable(139) @.str.1103)
          to label %1351 unwind label %1352

1351:                                             ; preds = %1349
  invoke void @__cxa_end_catch()
          to label %.thread1381 unwind label %1354

1352:                                             ; preds = %1349
  %1353 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1366 unwind label %3068

1354:                                             ; preds = %.critedge1185, %1351
  %1355 = landingpad { ptr, i32 }
          cleanup
  br label %1366

1356:                                             ; preds = %1340, %1338, %1336, %1334, %1332, %1325
  %1357 = landingpad { ptr, i32 }
          cleanup
  br label %1365

1358:                                             ; preds = %1342
  %1359 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #11
  br label %1365

1360:                                             ; preds = %1331, %1348
  invoke void @__cxa_end_catch()
          to label %1361 unwind label %1363

1361:                                             ; preds = %1360
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #11
  br i1 %1330, label %1368, label %.thread1384

.critedge1185:                                    ; preds = %1301, %1313
  %1362 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %116, ptr noundef nonnull align 1 dereferenceable(130) @.str.1105)
          to label %.thread1381 unwind label %1354

1363:                                             ; preds = %1360
  %1364 = landingpad { ptr, i32 }
          cleanup
  br label %1366

1365:                                             ; preds = %1358, %1356
  %.pn872 = phi { ptr, i32 } [ %1359, %1358 ], [ %1357, %1356 ]
  invoke void @__cxa_end_catch()
          to label %1366 unwind label %3068

.thread1381:                                      ; preds = %1351, %.critedge1185
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #11
  br label %1368

1366:                                             ; preds = %1363, %1365, %1352, %1354
  %.pn876 = phi { ptr, i32 } [ %1355, %1354 ], [ %1353, %1352 ], [ %1364, %1363 ], [ %.pn872, %1365 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  br label %1367

1367:                                             ; preds = %1366, %1315
  %.pn876.pn = phi { ptr, i32 } [ %.pn876, %1366 ], [ %1316, %1315 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #11
  br label %1399

1368:                                             ; preds = %1361, %.thread1381, %.thread1376
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %125) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %1369 unwind label %1374

1369:                                             ; preds = %1368
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %126) #11
  %1370 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %116)
          to label %1371 unwind label %1376

1371:                                             ; preds = %1369
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %126, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1080, ptr noundef %1370)
          to label %1372 unwind label %1376

1372:                                             ; preds = %1371
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %1373 unwind label %1378

1373:                                             ; preds = %1372
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #11
  br label %.thread1384

1374:                                             ; preds = %1368
  %1375 = landingpad { ptr, i32 }
          cleanup
  br label %1381

1376:                                             ; preds = %1371, %1369
  %1377 = landingpad { ptr, i32 }
          cleanup
  br label %1380

1378:                                             ; preds = %1372
  %1379 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #11
  br label %1380

1380:                                             ; preds = %1378, %1376
  %.pn879 = phi { ptr, i32 } [ %1379, %1378 ], [ %1377, %1376 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #11
  br label %1381

1381:                                             ; preds = %1380, %1374
  %.pn879.pn = phi { ptr, i32 } [ %.pn879, %1380 ], [ %1375, %1374 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #11
  br label %1399

.thread1384:                                      ; preds = %1361, %1373
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %116) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %127) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %127)
  %1382 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %127)
  br i1 %1382, label %1383, label %1453

1383:                                             ; preds = %.thread1384
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %129) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull @.str.785, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %1384 unwind label %1400

1384:                                             ; preds = %1383
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #11
  %1385 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1386 unwind label %1402

1386:                                             ; preds = %1384
  br i1 %1385, label %1387, label %.critedge1189

1387:                                             ; preds = %1386
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %132, ptr noundef nonnull @.str.1088)
          to label %1388 unwind label %1402

1388:                                             ; preds = %1387
  %1389 = load ptr, ptr %132, align 8
  %1390 = getelementptr inbounds i8, ptr %132, i64 8
  %1391 = load i64, ptr %1390, align 8
  %1392 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1389, i64 %1391)
  %1393 = extractvalue { ptr, i64 } %1392, 0
  %1394 = extractvalue { ptr, i64 } %1392, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdlEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %131, ptr %1393, i64 %1394)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %133) #11
  store double 0.000000e+00, ptr %133, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %134) #11
  store i64 2147483648, ptr %134, align 8, !tbaa !16
  %1395 = load ptr, ptr %131, align 8
  %1396 = getelementptr inbounds i8, ptr %131, i64 8
  %1397 = load i64, ptr %1396, align 8
  invoke void @_ZN3fmt3v106formatIJdlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr %1395, i64 %1397, ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef nonnull align 8 dereferenceable(8) %134)
          to label %1398 unwind label %1404

1398:                                             ; preds = %1388
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %134) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %133) #11
  br label %.critedge1189

1399:                                             ; preds = %1381, %1367
  %.pn879.pn.pn = phi { ptr, i32 } [ %.pn879.pn, %1381 ], [ %.pn876.pn, %1367 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %116) #11
  br label %3067

1400:                                             ; preds = %1383
  %1401 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #11
  br label %1452

1402:                                             ; preds = %1387, %1384
  %1403 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1406

1404:                                             ; preds = %1388
  %1405 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %134) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %133) #11
  br label %1406

1406:                                             ; preds = %1404, %1402
  %.pn883 = phi { ptr, i32 } [ %1405, %1404 ], [ %1403, %1402 ]
  %.96 = extractvalue { ptr, i32 } %.pn883, 0
  %.96441 = extractvalue { ptr, i32 } %.pn883, 1
  %1407 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1408 = icmp eq i32 %.96441, %1407
  %1409 = call ptr @__cxa_begin_catch(ptr %.96) #11
  br i1 %1408, label %1410, label %1434

1410:                                             ; preds = %1406
  %1411 = load ptr, ptr %1409, align 8, !tbaa !9
  %1412 = getelementptr inbounds i8, ptr %1411, i64 16
  %1413 = load ptr, ptr %1412, align 8
  %1414 = call noundef ptr %1413(ptr noundef nonnull align 8 dereferenceable(16) %1409) #11
  %1415 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef %1414)
          to label %1416 unwind label %1441

1416:                                             ; preds = %1410
  br i1 %1415, label %1417, label %1445

1417:                                             ; preds = %1416
  %1418 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA104_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull align 1 dereferenceable(104) @.str.1107)
          to label %1419 unwind label %1441

1419:                                             ; preds = %1417
  %1420 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1418, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1421 unwind label %1441

1421:                                             ; preds = %1419
  %1422 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1420, ptr noundef nonnull align 8 dereferenceable(32) %128)
          to label %1423 unwind label %1441

1423:                                             ; preds = %1421
  %1424 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1422, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1425 unwind label %1441

1425:                                             ; preds = %1423
  %1426 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1424, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1427 unwind label %1441

1427:                                             ; preds = %1425
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %135) #11
  %1428 = load ptr, ptr %1409, align 8, !tbaa !9
  %1429 = getelementptr inbounds i8, ptr %1428, i64 16
  %1430 = load ptr, ptr %1429, align 8
  %1431 = call noundef ptr %1430(ptr noundef nonnull align 8 dereferenceable(16) %1409) #11
  store ptr %1431, ptr %135, align 8, !tbaa !11
  %1432 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1426, ptr noundef nonnull align 8 dereferenceable(8) %135)
          to label %1433 unwind label %1443

1433:                                             ; preds = %1427
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #11
  br label %1445

1434:                                             ; preds = %1406
  %1435 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA147_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull align 1 dereferenceable(147) @.str.1106)
          to label %1436 unwind label %1437

1436:                                             ; preds = %1434
  invoke void @__cxa_end_catch()
          to label %.thread1389 unwind label %1439

1437:                                             ; preds = %1434
  %1438 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1451 unwind label %3068

1439:                                             ; preds = %.critedge1189, %1436
  %1440 = landingpad { ptr, i32 }
          cleanup
  br label %1451

1441:                                             ; preds = %1425, %1423, %1421, %1419, %1417, %1410
  %1442 = landingpad { ptr, i32 }
          cleanup
  br label %1450

1443:                                             ; preds = %1427
  %1444 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #11
  br label %1450

1445:                                             ; preds = %1416, %1433
  invoke void @__cxa_end_catch()
          to label %1446 unwind label %1448

1446:                                             ; preds = %1445
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #11
  br i1 %1415, label %1453, label %.thread1392

.critedge1189:                                    ; preds = %1386, %1398
  %1447 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull align 1 dereferenceable(138) @.str.1108)
          to label %.thread1389 unwind label %1439

1448:                                             ; preds = %1445
  %1449 = landingpad { ptr, i32 }
          cleanup
  br label %1451

1450:                                             ; preds = %1443, %1441
  %.pn885 = phi { ptr, i32 } [ %1444, %1443 ], [ %1442, %1441 ]
  invoke void @__cxa_end_catch()
          to label %1451 unwind label %3068

.thread1389:                                      ; preds = %1436, %.critedge1189
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #11
  br label %1453

1451:                                             ; preds = %1448, %1450, %1437, %1439
  %.pn889 = phi { ptr, i32 } [ %1440, %1439 ], [ %1438, %1437 ], [ %1449, %1448 ], [ %.pn885, %1450 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #11
  br label %1452

1452:                                             ; preds = %1451, %1400
  %.pn889.pn = phi { ptr, i32 } [ %.pn889, %1451 ], [ %1401, %1400 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #11
  br label %1484

1453:                                             ; preds = %1446, %.thread1389, %.thread1384
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %136) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %136)
          to label %1454 unwind label %1459

1454:                                             ; preds = %1453
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %137) #11
  %1455 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %127)
          to label %1456 unwind label %1461

1456:                                             ; preds = %1454
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %137, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1084, ptr noundef %1455)
          to label %1457 unwind label %1461

1457:                                             ; preds = %1456
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull align 8 dereferenceable(8) %136)
          to label %1458 unwind label %1463

1458:                                             ; preds = %1457
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %136) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %136) #11
  br label %.thread1392

1459:                                             ; preds = %1453
  %1460 = landingpad { ptr, i32 }
          cleanup
  br label %1466

1461:                                             ; preds = %1456, %1454
  %1462 = landingpad { ptr, i32 }
          cleanup
  br label %1465

1463:                                             ; preds = %1457
  %1464 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #11
  br label %1465

1465:                                             ; preds = %1463, %1461
  %.pn892 = phi { ptr, i32 } [ %1464, %1463 ], [ %1462, %1461 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %136) #11
  br label %1466

1466:                                             ; preds = %1465, %1459
  %.pn892.pn = phi { ptr, i32 } [ %.pn892, %1465 ], [ %1460, %1459 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %136) #11
  br label %1484

.thread1392:                                      ; preds = %1446, %1458
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %127) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %127) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %138) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %138)
  %1467 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %138)
  br i1 %1467, label %1468, label %1538

1468:                                             ; preds = %.thread1392
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %139) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %140) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef nonnull @.str.785, ptr noundef nonnull align 1 dereferenceable(1) %140)
          to label %1469 unwind label %1485

1469:                                             ; preds = %1468
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %140) #11
  %1470 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1471 unwind label %1487

1471:                                             ; preds = %1469
  br i1 %1470, label %1472, label %.critedge1193

1472:                                             ; preds = %1471
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %143, ptr noundef nonnull @.str.1088)
          to label %1473 unwind label %1487

1473:                                             ; preds = %1472
  %1474 = load ptr, ptr %143, align 8
  %1475 = getelementptr inbounds i8, ptr %143, i64 8
  %1476 = load i64, ptr %1475, align 8
  %1477 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1474, i64 %1476)
  %1478 = extractvalue { ptr, i64 } %1477, 0
  %1479 = extractvalue { ptr, i64 } %1477, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdmEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %142, ptr %1478, i64 %1479)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %144) #11
  store double 0.000000e+00, ptr %144, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %145) #11
  store i64 2147483648, ptr %145, align 8, !tbaa !16
  %1480 = load ptr, ptr %142, align 8
  %1481 = getelementptr inbounds i8, ptr %142, i64 8
  %1482 = load i64, ptr %1481, align 8
  invoke void @_ZN3fmt3v106formatIJdmEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %141, ptr %1480, i64 %1482, ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull align 8 dereferenceable(8) %145)
          to label %1483 unwind label %1489

1483:                                             ; preds = %1473
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %145) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #11
  br label %.critedge1193

1484:                                             ; preds = %1466, %1452
  %.pn892.pn.pn = phi { ptr, i32 } [ %.pn892.pn, %1466 ], [ %.pn889.pn, %1452 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %127) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %127) #11
  br label %3067

1485:                                             ; preds = %1468
  %1486 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %140) #11
  br label %1537

1487:                                             ; preds = %1472, %1469
  %1488 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1491

1489:                                             ; preds = %1473
  %1490 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %145) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #11
  br label %1491

1491:                                             ; preds = %1489, %1487
  %.pn896 = phi { ptr, i32 } [ %1490, %1489 ], [ %1488, %1487 ]
  %.104 = extractvalue { ptr, i32 } %.pn896, 0
  %.104449 = extractvalue { ptr, i32 } %.pn896, 1
  %1492 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1493 = icmp eq i32 %.104449, %1492
  %1494 = call ptr @__cxa_begin_catch(ptr %.104) #11
  br i1 %1493, label %1495, label %1519

1495:                                             ; preds = %1491
  %1496 = load ptr, ptr %1494, align 8, !tbaa !9
  %1497 = getelementptr inbounds i8, ptr %1496, i64 16
  %1498 = load ptr, ptr %1497, align 8
  %1499 = call noundef ptr %1498(ptr noundef nonnull align 8 dereferenceable(16) %1494) #11
  %1500 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef %1499)
          to label %1501 unwind label %1526

1501:                                             ; preds = %1495
  br i1 %1500, label %1502, label %1530

1502:                                             ; preds = %1501
  %1503 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA111_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 1 dereferenceable(111) @.str.1110)
          to label %1504 unwind label %1526

1504:                                             ; preds = %1502
  %1505 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1503, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1506 unwind label %1526

1506:                                             ; preds = %1504
  %1507 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1505, ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %1508 unwind label %1526

1508:                                             ; preds = %1506
  %1509 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1507, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1510 unwind label %1526

1510:                                             ; preds = %1508
  %1511 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1509, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1512 unwind label %1526

1512:                                             ; preds = %1510
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %146) #11
  %1513 = load ptr, ptr %1494, align 8, !tbaa !9
  %1514 = getelementptr inbounds i8, ptr %1513, i64 16
  %1515 = load ptr, ptr %1514, align 8
  %1516 = call noundef ptr %1515(ptr noundef nonnull align 8 dereferenceable(16) %1494) #11
  store ptr %1516, ptr %146, align 8, !tbaa !11
  %1517 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1511, ptr noundef nonnull align 8 dereferenceable(8) %146)
          to label %1518 unwind label %1528

1518:                                             ; preds = %1512
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %146) #11
  br label %1530

1519:                                             ; preds = %1491
  %1520 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA154_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 1 dereferenceable(154) @.str.1109)
          to label %1521 unwind label %1522

1521:                                             ; preds = %1519
  invoke void @__cxa_end_catch()
          to label %.thread1397 unwind label %1524

1522:                                             ; preds = %1519
  %1523 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1536 unwind label %3068

1524:                                             ; preds = %.critedge1193, %1521
  %1525 = landingpad { ptr, i32 }
          cleanup
  br label %1536

1526:                                             ; preds = %1510, %1508, %1506, %1504, %1502, %1495
  %1527 = landingpad { ptr, i32 }
          cleanup
  br label %1535

1528:                                             ; preds = %1512
  %1529 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %146) #11
  br label %1535

1530:                                             ; preds = %1501, %1518
  invoke void @__cxa_end_catch()
          to label %1531 unwind label %1533

1531:                                             ; preds = %1530
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #11
  br i1 %1500, label %1538, label %.thread1400

.critedge1193:                                    ; preds = %1471, %1483
  %1532 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA145_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 1 dereferenceable(145) @.str.1111)
          to label %.thread1397 unwind label %1524

1533:                                             ; preds = %1530
  %1534 = landingpad { ptr, i32 }
          cleanup
  br label %1536

1535:                                             ; preds = %1528, %1526
  %.pn898 = phi { ptr, i32 } [ %1529, %1528 ], [ %1527, %1526 ]
  invoke void @__cxa_end_catch()
          to label %1536 unwind label %3068

.thread1397:                                      ; preds = %1521, %.critedge1193
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #11
  br label %1538

1536:                                             ; preds = %1533, %1535, %1522, %1524
  %.pn902 = phi { ptr, i32 } [ %1525, %1524 ], [ %1523, %1522 ], [ %1534, %1533 ], [ %.pn898, %1535 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #11
  br label %1537

1537:                                             ; preds = %1536, %1485
  %.pn902.pn = phi { ptr, i32 } [ %.pn902, %1536 ], [ %1486, %1485 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #11
  br label %1569

1538:                                             ; preds = %1531, %.thread1397, %.thread1392
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %147) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %147)
          to label %1539 unwind label %1544

1539:                                             ; preds = %1538
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %148) #11
  %1540 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %138)
          to label %1541 unwind label %1546

1541:                                             ; preds = %1539
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %148, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1087, ptr noundef %1540)
          to label %1542 unwind label %1546

1542:                                             ; preds = %1541
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %148, ptr noundef nonnull align 8 dereferenceable(8) %147)
          to label %1543 unwind label %1548

1543:                                             ; preds = %1542
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %148) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %147) #11
  br label %.thread1400

1544:                                             ; preds = %1538
  %1545 = landingpad { ptr, i32 }
          cleanup
  br label %1551

1546:                                             ; preds = %1541, %1539
  %1547 = landingpad { ptr, i32 }
          cleanup
  br label %1550

1548:                                             ; preds = %1542
  %1549 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #11
  br label %1550

1550:                                             ; preds = %1548, %1546
  %.pn905 = phi { ptr, i32 } [ %1549, %1548 ], [ %1547, %1546 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %148) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #11
  br label %1551

1551:                                             ; preds = %1550, %1544
  %.pn905.pn = phi { ptr, i32 } [ %.pn905, %1550 ], [ %1545, %1544 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %147) #11
  br label %1569

.thread1400:                                      ; preds = %1531, %1543
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %138) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %138) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %149) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %149)
  %1552 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %149)
  br i1 %1552, label %1553, label %1623

1553:                                             ; preds = %.thread1400
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %151) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull @.str.1112, ptr noundef nonnull align 1 dereferenceable(1) %151)
          to label %1554 unwind label %1570

1554:                                             ; preds = %1553
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %151) #11
  %1555 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1556 unwind label %1572

1556:                                             ; preds = %1554
  br i1 %1555, label %1557, label %.critedge1197

1557:                                             ; preds = %1556
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull @.str.1088)
          to label %1558 unwind label %1572

1558:                                             ; preds = %1557
  %1559 = load ptr, ptr %154, align 8
  %1560 = getelementptr inbounds i8, ptr %154, i64 8
  %1561 = load i64, ptr %1560, align 8
  %1562 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1559, i64 %1561)
  %1563 = extractvalue { ptr, i64 } %1562, 0
  %1564 = extractvalue { ptr, i64 } %1562, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %153, ptr %1563, i64 %1564)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %155) #11
  store double 0.000000e+00, ptr %155, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %156) #11
  store i8 48, ptr %156, align 1, !tbaa !13
  %1565 = load ptr, ptr %153, align 8
  %1566 = getelementptr inbounds i8, ptr %153, i64 8
  %1567 = load i64, ptr %1566, align 8
  invoke void @_ZN3fmt3v106formatIJdcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %152, ptr %1565, i64 %1567, ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull align 1 dereferenceable(1) %156)
          to label %1568 unwind label %1574

1568:                                             ; preds = %1558
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %156) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %155) #11
  br label %.critedge1197

1569:                                             ; preds = %1551, %1537
  %.pn905.pn.pn = phi { ptr, i32 } [ %.pn905.pn, %1551 ], [ %.pn902.pn, %1537 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %138) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %138) #11
  br label %3067

1570:                                             ; preds = %1553
  %1571 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %151) #11
  br label %1622

1572:                                             ; preds = %1557, %1554
  %1573 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1576

1574:                                             ; preds = %1558
  %1575 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %156) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %155) #11
  br label %1576

1576:                                             ; preds = %1574, %1572
  %.pn909 = phi { ptr, i32 } [ %1575, %1574 ], [ %1573, %1572 ]
  %.112 = extractvalue { ptr, i32 } %.pn909, 0
  %.112457 = extractvalue { ptr, i32 } %.pn909, 1
  %1577 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1578 = icmp eq i32 %.112457, %1577
  %1579 = call ptr @__cxa_begin_catch(ptr %.112) #11
  br i1 %1578, label %1580, label %1604

1580:                                             ; preds = %1576
  %1581 = load ptr, ptr %1579, align 8, !tbaa !9
  %1582 = getelementptr inbounds i8, ptr %1581, i64 16
  %1583 = load ptr, ptr %1582, align 8
  %1584 = call noundef ptr %1583(ptr noundef nonnull align 8 dereferenceable(16) %1579) #11
  %1585 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef %1584)
          to label %1586 unwind label %1611

1586:                                             ; preds = %1580
  br i1 %1585, label %1587, label %1615

1587:                                             ; preds = %1586
  %1588 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %149, ptr noundef nonnull align 1 dereferenceable(96) @.str.1114)
          to label %1589 unwind label %1611

1589:                                             ; preds = %1587
  %1590 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1588, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1591 unwind label %1611

1591:                                             ; preds = %1589
  %1592 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1590, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %1593 unwind label %1611

1593:                                             ; preds = %1591
  %1594 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1592, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1595 unwind label %1611

1595:                                             ; preds = %1593
  %1596 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1594, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1597 unwind label %1611

1597:                                             ; preds = %1595
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %157) #11
  %1598 = load ptr, ptr %1579, align 8, !tbaa !9
  %1599 = getelementptr inbounds i8, ptr %1598, i64 16
  %1600 = load ptr, ptr %1599, align 8
  %1601 = call noundef ptr %1600(ptr noundef nonnull align 8 dereferenceable(16) %1579) #11
  store ptr %1601, ptr %157, align 8, !tbaa !11
  %1602 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1596, ptr noundef nonnull align 8 dereferenceable(8) %157)
          to label %1603 unwind label %1613

1603:                                             ; preds = %1597
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %157) #11
  br label %1615

1604:                                             ; preds = %1576
  %1605 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %149, ptr noundef nonnull align 1 dereferenceable(139) @.str.1113)
          to label %1606 unwind label %1607

1606:                                             ; preds = %1604
  invoke void @__cxa_end_catch()
          to label %.thread1405 unwind label %1609

1607:                                             ; preds = %1604
  %1608 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1621 unwind label %3068

1609:                                             ; preds = %.critedge1197, %1606
  %1610 = landingpad { ptr, i32 }
          cleanup
  br label %1621

1611:                                             ; preds = %1595, %1593, %1591, %1589, %1587, %1580
  %1612 = landingpad { ptr, i32 }
          cleanup
  br label %1620

1613:                                             ; preds = %1597
  %1614 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %157) #11
  br label %1620

1615:                                             ; preds = %1586, %1603
  invoke void @__cxa_end_catch()
          to label %1616 unwind label %1618

1616:                                             ; preds = %1615
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #11
  br i1 %1585, label %1623, label %.thread1408

.critedge1197:                                    ; preds = %1556, %1568
  %1617 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %149, ptr noundef nonnull align 1 dereferenceable(130) @.str.1115)
          to label %.thread1405 unwind label %1609

1618:                                             ; preds = %1615
  %1619 = landingpad { ptr, i32 }
          cleanup
  br label %1621

1620:                                             ; preds = %1613, %1611
  %.pn911 = phi { ptr, i32 } [ %1614, %1613 ], [ %1612, %1611 ]
  invoke void @__cxa_end_catch()
          to label %1621 unwind label %3068

.thread1405:                                      ; preds = %1606, %.critedge1197
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #11
  br label %1623

1621:                                             ; preds = %1618, %1620, %1607, %1609
  %.pn915 = phi { ptr, i32 } [ %1610, %1609 ], [ %1608, %1607 ], [ %1619, %1618 ], [ %.pn911, %1620 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #11
  br label %1622

1622:                                             ; preds = %1621, %1570
  %.pn915.pn = phi { ptr, i32 } [ %.pn915, %1621 ], [ %1571, %1570 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #11
  br label %1654

1623:                                             ; preds = %1616, %.thread1405, %.thread1400
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %158) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %158)
          to label %1624 unwind label %1629

1624:                                             ; preds = %1623
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %159) #11
  %1625 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %149)
          to label %1626 unwind label %1631

1626:                                             ; preds = %1624
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %159, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1090, ptr noundef %1625)
          to label %1627 unwind label %1631

1627:                                             ; preds = %1626
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %159, ptr noundef nonnull align 8 dereferenceable(8) %158)
          to label %1628 unwind label %1633

1628:                                             ; preds = %1627
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %159) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %159) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %158) #11
  br label %.thread1408

1629:                                             ; preds = %1623
  %1630 = landingpad { ptr, i32 }
          cleanup
  br label %1636

1631:                                             ; preds = %1626, %1624
  %1632 = landingpad { ptr, i32 }
          cleanup
  br label %1635

1633:                                             ; preds = %1627
  %1634 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %159) #11
  br label %1635

1635:                                             ; preds = %1633, %1631
  %.pn918 = phi { ptr, i32 } [ %1634, %1633 ], [ %1632, %1631 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %159) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #11
  br label %1636

1636:                                             ; preds = %1635, %1629
  %.pn918.pn = phi { ptr, i32 } [ %.pn918, %1635 ], [ %1630, %1629 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %158) #11
  br label %1654

.thread1408:                                      ; preds = %1616, %1628
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %149) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %149) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %160) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %160)
  %1637 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %160)
  br i1 %1637, label %1638, label %1708

1638:                                             ; preds = %.thread1408
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %161) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %162) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef nonnull @.str.1112, ptr noundef nonnull align 1 dereferenceable(1) %162)
          to label %1639 unwind label %1655

1639:                                             ; preds = %1638
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #11
  %1640 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1641 unwind label %1657

1641:                                             ; preds = %1639
  br i1 %1640, label %1642, label %.critedge1201

1642:                                             ; preds = %1641
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %165, ptr noundef nonnull @.str.1088)
          to label %1643 unwind label %1657

1643:                                             ; preds = %1642
  %1644 = load ptr, ptr %165, align 8
  %1645 = getelementptr inbounds i8, ptr %165, i64 8
  %1646 = load i64, ptr %1645, align 8
  %1647 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1644, i64 %1646)
  %1648 = extractvalue { ptr, i64 } %1647, 0
  %1649 = extractvalue { ptr, i64 } %1647, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJddEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %164, ptr %1648, i64 %1649)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %166) #11
  store double 0.000000e+00, ptr %166, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %167) #11
  store double 0.000000e+00, ptr %167, align 8, !tbaa !5
  %1650 = load ptr, ptr %164, align 8
  %1651 = getelementptr inbounds i8, ptr %164, i64 8
  %1652 = load i64, ptr %1651, align 8
  invoke void @_ZN3fmt3v106formatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %163, ptr %1650, i64 %1652, ptr noundef nonnull align 8 dereferenceable(8) %166, ptr noundef nonnull align 8 dereferenceable(8) %167)
          to label %1653 unwind label %1659

1653:                                             ; preds = %1643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %167) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %166) #11
  br label %.critedge1201

1654:                                             ; preds = %1636, %1622
  %.pn918.pn.pn = phi { ptr, i32 } [ %.pn918.pn, %1636 ], [ %.pn915.pn, %1622 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %149) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %149) #11
  br label %3067

1655:                                             ; preds = %1638
  %1656 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #11
  br label %1707

1657:                                             ; preds = %1642, %1639
  %1658 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1661

1659:                                             ; preds = %1643
  %1660 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %167) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %166) #11
  br label %1661

1661:                                             ; preds = %1659, %1657
  %.pn922 = phi { ptr, i32 } [ %1660, %1659 ], [ %1658, %1657 ]
  %.120 = extractvalue { ptr, i32 } %.pn922, 0
  %.120465 = extractvalue { ptr, i32 } %.pn922, 1
  %1662 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1663 = icmp eq i32 %.120465, %1662
  %1664 = call ptr @__cxa_begin_catch(ptr %.120) #11
  br i1 %1663, label %1665, label %1689

1665:                                             ; preds = %1661
  %1666 = load ptr, ptr %1664, align 8, !tbaa !9
  %1667 = getelementptr inbounds i8, ptr %1666, i64 16
  %1668 = load ptr, ptr %1667, align 8
  %1669 = call noundef ptr %1668(ptr noundef nonnull align 8 dereferenceable(16) %1664) #11
  %1670 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef %1669)
          to label %1671 unwind label %1696

1671:                                             ; preds = %1665
  br i1 %1670, label %1672, label %1700

1672:                                             ; preds = %1671
  %1673 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %160, ptr noundef nonnull align 1 dereferenceable(96) @.str.1117)
          to label %1674 unwind label %1696

1674:                                             ; preds = %1672
  %1675 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1673, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1676 unwind label %1696

1676:                                             ; preds = %1674
  %1677 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1675, ptr noundef nonnull align 8 dereferenceable(32) %161)
          to label %1678 unwind label %1696

1678:                                             ; preds = %1676
  %1679 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1677, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1680 unwind label %1696

1680:                                             ; preds = %1678
  %1681 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1679, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1682 unwind label %1696

1682:                                             ; preds = %1680
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %168) #11
  %1683 = load ptr, ptr %1664, align 8, !tbaa !9
  %1684 = getelementptr inbounds i8, ptr %1683, i64 16
  %1685 = load ptr, ptr %1684, align 8
  %1686 = call noundef ptr %1685(ptr noundef nonnull align 8 dereferenceable(16) %1664) #11
  store ptr %1686, ptr %168, align 8, !tbaa !11
  %1687 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1681, ptr noundef nonnull align 8 dereferenceable(8) %168)
          to label %1688 unwind label %1698

1688:                                             ; preds = %1682
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %168) #11
  br label %1700

1689:                                             ; preds = %1661
  %1690 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %160, ptr noundef nonnull align 1 dereferenceable(139) @.str.1116)
          to label %1691 unwind label %1692

1691:                                             ; preds = %1689
  invoke void @__cxa_end_catch()
          to label %.thread1413 unwind label %1694

1692:                                             ; preds = %1689
  %1693 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1706 unwind label %3068

1694:                                             ; preds = %.critedge1201, %1691
  %1695 = landingpad { ptr, i32 }
          cleanup
  br label %1706

1696:                                             ; preds = %1680, %1678, %1676, %1674, %1672, %1665
  %1697 = landingpad { ptr, i32 }
          cleanup
  br label %1705

1698:                                             ; preds = %1682
  %1699 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %168) #11
  br label %1705

1700:                                             ; preds = %1671, %1688
  invoke void @__cxa_end_catch()
          to label %1701 unwind label %1703

1701:                                             ; preds = %1700
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #11
  br i1 %1670, label %1708, label %.thread1416

.critedge1201:                                    ; preds = %1641, %1653
  %1702 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %160, ptr noundef nonnull align 1 dereferenceable(130) @.str.1118)
          to label %.thread1413 unwind label %1694

1703:                                             ; preds = %1700
  %1704 = landingpad { ptr, i32 }
          cleanup
  br label %1706

1705:                                             ; preds = %1698, %1696
  %.pn924 = phi { ptr, i32 } [ %1699, %1698 ], [ %1697, %1696 ]
  invoke void @__cxa_end_catch()
          to label %1706 unwind label %3068

.thread1413:                                      ; preds = %1691, %.critedge1201
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #11
  br label %1708

1706:                                             ; preds = %1703, %1705, %1692, %1694
  %.pn928 = phi { ptr, i32 } [ %1695, %1694 ], [ %1693, %1692 ], [ %1704, %1703 ], [ %.pn924, %1705 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #11
  br label %1707

1707:                                             ; preds = %1706, %1655
  %.pn928.pn = phi { ptr, i32 } [ %.pn928, %1706 ], [ %1656, %1655 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #11
  br label %1739

1708:                                             ; preds = %1701, %.thread1413, %.thread1408
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %169) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %169)
          to label %1709 unwind label %1714

1709:                                             ; preds = %1708
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %170) #11
  %1710 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %160)
          to label %1711 unwind label %1716

1711:                                             ; preds = %1709
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %170, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1092, ptr noundef %1710)
          to label %1712 unwind label %1716

1712:                                             ; preds = %1711
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef nonnull align 8 dereferenceable(8) %169)
          to label %1713 unwind label %1718

1713:                                             ; preds = %1712
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %170) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %170) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %169) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %169) #11
  br label %.thread1416

1714:                                             ; preds = %1708
  %1715 = landingpad { ptr, i32 }
          cleanup
  br label %1721

1716:                                             ; preds = %1711, %1709
  %1717 = landingpad { ptr, i32 }
          cleanup
  br label %1720

1718:                                             ; preds = %1712
  %1719 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %170) #11
  br label %1720

1720:                                             ; preds = %1718, %1716
  %.pn931 = phi { ptr, i32 } [ %1719, %1718 ], [ %1717, %1716 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %170) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %169) #11
  br label %1721

1721:                                             ; preds = %1720, %1714
  %.pn931.pn = phi { ptr, i32 } [ %.pn931, %1720 ], [ %1715, %1714 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %169) #11
  br label %1739

.thread1416:                                      ; preds = %1701, %1713
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %171) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %171)
  %1722 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %171)
  br i1 %1722, label %1723, label %1793

1723:                                             ; preds = %.thread1416
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %172) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %173) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %173)
          to label %1724 unwind label %1740

1724:                                             ; preds = %1723
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %173) #11
  %1725 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1726 unwind label %1742

1726:                                             ; preds = %1724
  br i1 %1725, label %1727, label %.critedge1205

1727:                                             ; preds = %1726
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %176, ptr noundef nonnull @.str.1088)
          to label %1728 unwind label %1742

1728:                                             ; preds = %1727
  %1729 = load ptr, ptr %176, align 8
  %1730 = getelementptr inbounds i8, ptr %176, i64 8
  %1731 = load i64, ptr %1730, align 8
  %1732 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1729, i64 %1731)
  %1733 = extractvalue { ptr, i64 } %1732, 0
  %1734 = extractvalue { ptr, i64 } %1732, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJiiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %175, ptr %1733, i64 %1734)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %177) #11
  store i32 42, ptr %177, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %178) #11
  store i32 2, ptr %178, align 4, !tbaa !14
  %1735 = load ptr, ptr %175, align 8
  %1736 = getelementptr inbounds i8, ptr %175, i64 8
  %1737 = load i64, ptr %1736, align 8
  invoke void @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %174, ptr %1735, i64 %1737, ptr noundef nonnull align 4 dereferenceable(4) %177, ptr noundef nonnull align 4 dereferenceable(4) %178)
          to label %1738 unwind label %1744

1738:                                             ; preds = %1728
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %178) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %177) #11
  br label %.critedge1205

1739:                                             ; preds = %1721, %1707
  %.pn931.pn.pn = phi { ptr, i32 } [ %.pn931.pn, %1721 ], [ %.pn928.pn, %1707 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #11
  br label %3067

1740:                                             ; preds = %1723
  %1741 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %173) #11
  br label %1792

1742:                                             ; preds = %1727, %1724
  %1743 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1746

1744:                                             ; preds = %1728
  %1745 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %178) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %177) #11
  br label %1746

1746:                                             ; preds = %1744, %1742
  %.pn935 = phi { ptr, i32 } [ %1745, %1744 ], [ %1743, %1742 ]
  %.128 = extractvalue { ptr, i32 } %.pn935, 0
  %.128473 = extractvalue { ptr, i32 } %.pn935, 1
  %1747 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1748 = icmp eq i32 %.128473, %1747
  %1749 = call ptr @__cxa_begin_catch(ptr %.128) #11
  br i1 %1748, label %1750, label %1774

1750:                                             ; preds = %1746
  %1751 = load ptr, ptr %1749, align 8, !tbaa !9
  %1752 = getelementptr inbounds i8, ptr %1751, i64 16
  %1753 = load ptr, ptr %1752, align 8
  %1754 = call noundef ptr %1753(ptr noundef nonnull align 8 dereferenceable(16) %1749) #11
  %1755 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef %1754)
          to label %1756 unwind label %1781

1756:                                             ; preds = %1750
  br i1 %1755, label %1757, label %1785

1757:                                             ; preds = %1756
  %1758 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA93_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %171, ptr noundef nonnull align 1 dereferenceable(93) @.str.1120)
          to label %1759 unwind label %1781

1759:                                             ; preds = %1757
  %1760 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1758, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1761 unwind label %1781

1761:                                             ; preds = %1759
  %1762 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1760, ptr noundef nonnull align 8 dereferenceable(32) %172)
          to label %1763 unwind label %1781

1763:                                             ; preds = %1761
  %1764 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1762, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1765 unwind label %1781

1765:                                             ; preds = %1763
  %1766 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1764, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1767 unwind label %1781

1767:                                             ; preds = %1765
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %179) #11
  %1768 = load ptr, ptr %1749, align 8, !tbaa !9
  %1769 = getelementptr inbounds i8, ptr %1768, i64 16
  %1770 = load ptr, ptr %1769, align 8
  %1771 = call noundef ptr %1770(ptr noundef nonnull align 8 dereferenceable(16) %1749) #11
  store ptr %1771, ptr %179, align 8, !tbaa !11
  %1772 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1766, ptr noundef nonnull align 8 dereferenceable(8) %179)
          to label %1773 unwind label %1783

1773:                                             ; preds = %1767
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %179) #11
  br label %1785

1774:                                             ; preds = %1746
  %1775 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA136_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %171, ptr noundef nonnull align 1 dereferenceable(136) @.str.1119)
          to label %1776 unwind label %1777

1776:                                             ; preds = %1774
  invoke void @__cxa_end_catch()
          to label %.thread1421 unwind label %1779

1777:                                             ; preds = %1774
  %1778 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1791 unwind label %3068

1779:                                             ; preds = %.critedge1205, %1776
  %1780 = landingpad { ptr, i32 }
          cleanup
  br label %1791

1781:                                             ; preds = %1765, %1763, %1761, %1759, %1757, %1750
  %1782 = landingpad { ptr, i32 }
          cleanup
  br label %1790

1783:                                             ; preds = %1767
  %1784 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %179) #11
  br label %1790

1785:                                             ; preds = %1756, %1773
  invoke void @__cxa_end_catch()
          to label %1786 unwind label %1788

1786:                                             ; preds = %1785
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #11
  br i1 %1755, label %1793, label %.thread1424

.critedge1205:                                    ; preds = %1726, %1738
  %1787 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA127_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %171, ptr noundef nonnull align 1 dereferenceable(127) @.str.1121)
          to label %.thread1421 unwind label %1779

1788:                                             ; preds = %1785
  %1789 = landingpad { ptr, i32 }
          cleanup
  br label %1791

1790:                                             ; preds = %1783, %1781
  %.pn937 = phi { ptr, i32 } [ %1784, %1783 ], [ %1782, %1781 ]
  invoke void @__cxa_end_catch()
          to label %1791 unwind label %3068

.thread1421:                                      ; preds = %1776, %.critedge1205
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #11
  br label %1793

1791:                                             ; preds = %1788, %1790, %1777, %1779
  %.pn941 = phi { ptr, i32 } [ %1780, %1779 ], [ %1778, %1777 ], [ %1789, %1788 ], [ %.pn937, %1790 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #11
  br label %1792

1792:                                             ; preds = %1791, %1740
  %.pn941.pn = phi { ptr, i32 } [ %.pn941, %1791 ], [ %1741, %1740 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #11
  br label %1824

1793:                                             ; preds = %1786, %.thread1421, %.thread1416
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %180) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %180)
          to label %1794 unwind label %1799

1794:                                             ; preds = %1793
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %181) #11
  %1795 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %171)
          to label %1796 unwind label %1801

1796:                                             ; preds = %1794
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %181, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1095, ptr noundef %1795)
          to label %1797 unwind label %1801

1797:                                             ; preds = %1796
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %181, ptr noundef nonnull align 8 dereferenceable(8) %180)
          to label %1798 unwind label %1803

1798:                                             ; preds = %1797
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %180) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %180) #11
  br label %.thread1424

1799:                                             ; preds = %1793
  %1800 = landingpad { ptr, i32 }
          cleanup
  br label %1806

1801:                                             ; preds = %1796, %1794
  %1802 = landingpad { ptr, i32 }
          cleanup
  br label %1805

1803:                                             ; preds = %1797
  %1804 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #11
  br label %1805

1805:                                             ; preds = %1803, %1801
  %.pn944 = phi { ptr, i32 } [ %1804, %1803 ], [ %1802, %1801 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %180) #11
  br label %1806

1806:                                             ; preds = %1805, %1799
  %.pn944.pn = phi { ptr, i32 } [ %.pn944, %1805 ], [ %1800, %1799 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %180) #11
  br label %1824

.thread1424:                                      ; preds = %1786, %1798
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %171) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %171) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %182) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %182)
  %1807 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %182)
  br i1 %1807, label %1808, label %1878

1808:                                             ; preds = %.thread1424
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %183) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %184) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %184)
          to label %1809 unwind label %1825

1809:                                             ; preds = %1808
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %184) #11
  %1810 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1811 unwind label %1827

1811:                                             ; preds = %1809
  br i1 %1810, label %1812, label %.critedge1209

1812:                                             ; preds = %1811
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %187, ptr noundef nonnull @.str.1122)
          to label %1813 unwind label %1827

1813:                                             ; preds = %1812
  %1814 = load ptr, ptr %187, align 8
  %1815 = getelementptr inbounds i8, ptr %187, i64 8
  %1816 = load i64, ptr %1815, align 8
  %1817 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1814, i64 %1816)
  %1818 = extractvalue { ptr, i64 } %1817, 0
  %1819 = extractvalue { ptr, i64 } %1817, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJiiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %186, ptr %1818, i64 %1819)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %188) #11
  store i32 42, ptr %188, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %189) #11
  store i32 2, ptr %189, align 4, !tbaa !14
  %1820 = load ptr, ptr %186, align 8
  %1821 = getelementptr inbounds i8, ptr %186, i64 8
  %1822 = load i64, ptr %1821, align 8
  invoke void @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %185, ptr %1820, i64 %1822, ptr noundef nonnull align 4 dereferenceable(4) %188, ptr noundef nonnull align 4 dereferenceable(4) %189)
          to label %1823 unwind label %1829

1823:                                             ; preds = %1813
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %189) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %188) #11
  br label %.critedge1209

1824:                                             ; preds = %1806, %1792
  %.pn944.pn.pn = phi { ptr, i32 } [ %.pn944.pn, %1806 ], [ %.pn941.pn, %1792 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %171) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %171) #11
  br label %3067

1825:                                             ; preds = %1808
  %1826 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %184) #11
  br label %1877

1827:                                             ; preds = %1812, %1809
  %1828 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1831

1829:                                             ; preds = %1813
  %1830 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %189) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %188) #11
  br label %1831

1831:                                             ; preds = %1829, %1827
  %.pn948 = phi { ptr, i32 } [ %1830, %1829 ], [ %1828, %1827 ]
  %.136 = extractvalue { ptr, i32 } %.pn948, 0
  %.136481 = extractvalue { ptr, i32 } %.pn948, 1
  %1832 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1833 = icmp eq i32 %.136481, %1832
  %1834 = call ptr @__cxa_begin_catch(ptr %.136) #11
  br i1 %1833, label %1835, label %1859

1835:                                             ; preds = %1831
  %1836 = load ptr, ptr %1834, align 8, !tbaa !9
  %1837 = getelementptr inbounds i8, ptr %1836, i64 16
  %1838 = load ptr, ptr %1837, align 8
  %1839 = call noundef ptr %1838(ptr noundef nonnull align 8 dereferenceable(16) %1834) #11
  %1840 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef %1839)
          to label %1841 unwind label %1866

1841:                                             ; preds = %1835
  br i1 %1840, label %1842, label %1870

1842:                                             ; preds = %1841
  %1843 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA94_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %182, ptr noundef nonnull align 1 dereferenceable(94) @.str.1124)
          to label %1844 unwind label %1866

1844:                                             ; preds = %1842
  %1845 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1843, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1846 unwind label %1866

1846:                                             ; preds = %1844
  %1847 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1845, ptr noundef nonnull align 8 dereferenceable(32) %183)
          to label %1848 unwind label %1866

1848:                                             ; preds = %1846
  %1849 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1847, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1850 unwind label %1866

1850:                                             ; preds = %1848
  %1851 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1849, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1852 unwind label %1866

1852:                                             ; preds = %1850
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %190) #11
  %1853 = load ptr, ptr %1834, align 8, !tbaa !9
  %1854 = getelementptr inbounds i8, ptr %1853, i64 16
  %1855 = load ptr, ptr %1854, align 8
  %1856 = call noundef ptr %1855(ptr noundef nonnull align 8 dereferenceable(16) %1834) #11
  store ptr %1856, ptr %190, align 8, !tbaa !11
  %1857 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1851, ptr noundef nonnull align 8 dereferenceable(8) %190)
          to label %1858 unwind label %1868

1858:                                             ; preds = %1852
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %190) #11
  br label %1870

1859:                                             ; preds = %1831
  %1860 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA137_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %182, ptr noundef nonnull align 1 dereferenceable(137) @.str.1123)
          to label %1861 unwind label %1862

1861:                                             ; preds = %1859
  invoke void @__cxa_end_catch()
          to label %.thread1429 unwind label %1864

1862:                                             ; preds = %1859
  %1863 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1876 unwind label %3068

1864:                                             ; preds = %.critedge1209, %1861
  %1865 = landingpad { ptr, i32 }
          cleanup
  br label %1876

1866:                                             ; preds = %1850, %1848, %1846, %1844, %1842, %1835
  %1867 = landingpad { ptr, i32 }
          cleanup
  br label %1875

1868:                                             ; preds = %1852
  %1869 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %190) #11
  br label %1875

1870:                                             ; preds = %1841, %1858
  invoke void @__cxa_end_catch()
          to label %1871 unwind label %1873

1871:                                             ; preds = %1870
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #11
  br i1 %1840, label %1878, label %.thread1432

.critedge1209:                                    ; preds = %1811, %1823
  %1872 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA128_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %182, ptr noundef nonnull align 1 dereferenceable(128) @.str.1125)
          to label %.thread1429 unwind label %1864

1873:                                             ; preds = %1870
  %1874 = landingpad { ptr, i32 }
          cleanup
  br label %1876

1875:                                             ; preds = %1868, %1866
  %.pn950 = phi { ptr, i32 } [ %1869, %1868 ], [ %1867, %1866 ]
  invoke void @__cxa_end_catch()
          to label %1876 unwind label %3068

.thread1429:                                      ; preds = %1861, %.critedge1209
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #11
  br label %1878

1876:                                             ; preds = %1873, %1875, %1862, %1864
  %.pn954 = phi { ptr, i32 } [ %1865, %1864 ], [ %1863, %1862 ], [ %1874, %1873 ], [ %.pn950, %1875 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #11
  br label %1877

1877:                                             ; preds = %1876, %1825
  %.pn954.pn = phi { ptr, i32 } [ %.pn954, %1876 ], [ %1826, %1825 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #11
  br label %1909

1878:                                             ; preds = %1871, %.thread1429, %.thread1424
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %191) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %191)
          to label %1879 unwind label %1884

1879:                                             ; preds = %1878
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %192) #11
  %1880 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %182)
          to label %1881 unwind label %1886

1881:                                             ; preds = %1879
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %192, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1097, ptr noundef %1880)
          to label %1882 unwind label %1886

1882:                                             ; preds = %1881
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %192, ptr noundef nonnull align 8 dereferenceable(8) %191)
          to label %1883 unwind label %1888

1883:                                             ; preds = %1882
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %192) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %192) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %191) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %191) #11
  br label %.thread1432

1884:                                             ; preds = %1878
  %1885 = landingpad { ptr, i32 }
          cleanup
  br label %1891

1886:                                             ; preds = %1881, %1879
  %1887 = landingpad { ptr, i32 }
          cleanup
  br label %1890

1888:                                             ; preds = %1882
  %1889 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %192) #11
  br label %1890

1890:                                             ; preds = %1888, %1886
  %.pn957 = phi { ptr, i32 } [ %1889, %1888 ], [ %1887, %1886 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %192) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %191) #11
  br label %1891

1891:                                             ; preds = %1890, %1884
  %.pn957.pn = phi { ptr, i32 } [ %.pn957, %1890 ], [ %1885, %1884 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %191) #11
  br label %1909

.thread1432:                                      ; preds = %1871, %1883
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %182) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %182) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %193) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %193)
  %1892 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %193)
  br i1 %1892, label %1893, label %1963

1893:                                             ; preds = %.thread1432
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %194) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %195) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %195)
          to label %1894 unwind label %1910

1894:                                             ; preds = %1893
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %195) #11
  %1895 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1896 unwind label %1912

1896:                                             ; preds = %1894
  br i1 %1895, label %1897, label %.critedge1213

1897:                                             ; preds = %1896
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %198, ptr noundef nonnull @.str.1088)
          to label %1898 unwind label %1912

1898:                                             ; preds = %1897
  %1899 = load ptr, ptr %198, align 8
  %1900 = getelementptr inbounds i8, ptr %198, i64 8
  %1901 = load i64, ptr %1900, align 8
  %1902 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1899, i64 %1901)
  %1903 = extractvalue { ptr, i64 } %1902, 0
  %1904 = extractvalue { ptr, i64 } %1902, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJjiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr %1903, i64 %1904)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %199) #11
  store i32 42, ptr %199, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %200) #11
  store i32 2, ptr %200, align 4, !tbaa !14
  %1905 = load ptr, ptr %197, align 8
  %1906 = getelementptr inbounds i8, ptr %197, i64 8
  %1907 = load i64, ptr %1906, align 8
  invoke void @_ZN3fmt3v106formatIJjiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %196, ptr %1905, i64 %1907, ptr noundef nonnull align 4 dereferenceable(4) %199, ptr noundef nonnull align 4 dereferenceable(4) %200)
          to label %1908 unwind label %1914

1908:                                             ; preds = %1898
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %200) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %199) #11
  br label %.critedge1213

1909:                                             ; preds = %1891, %1877
  %.pn957.pn.pn = phi { ptr, i32 } [ %.pn957.pn, %1891 ], [ %.pn954.pn, %1877 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %182) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %182) #11
  br label %3067

1910:                                             ; preds = %1893
  %1911 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %195) #11
  br label %1962

1912:                                             ; preds = %1897, %1894
  %1913 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1916

1914:                                             ; preds = %1898
  %1915 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %200) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %199) #11
  br label %1916

1916:                                             ; preds = %1914, %1912
  %.pn961 = phi { ptr, i32 } [ %1915, %1914 ], [ %1913, %1912 ]
  %.144 = extractvalue { ptr, i32 } %.pn961, 0
  %.144489 = extractvalue { ptr, i32 } %.pn961, 1
  %1917 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1918 = icmp eq i32 %.144489, %1917
  %1919 = call ptr @__cxa_begin_catch(ptr %.144) #11
  br i1 %1918, label %1920, label %1944

1920:                                             ; preds = %1916
  %1921 = load ptr, ptr %1919, align 8, !tbaa !9
  %1922 = getelementptr inbounds i8, ptr %1921, i64 16
  %1923 = load ptr, ptr %1922, align 8
  %1924 = call noundef ptr %1923(ptr noundef nonnull align 8 dereferenceable(16) %1919) #11
  %1925 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef %1924)
          to label %1926 unwind label %1951

1926:                                             ; preds = %1920
  br i1 %1925, label %1927, label %1955

1927:                                             ; preds = %1926
  %1928 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA94_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %193, ptr noundef nonnull align 1 dereferenceable(94) @.str.1127)
          to label %1929 unwind label %1951

1929:                                             ; preds = %1927
  %1930 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1928, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1931 unwind label %1951

1931:                                             ; preds = %1929
  %1932 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1930, ptr noundef nonnull align 8 dereferenceable(32) %194)
          to label %1933 unwind label %1951

1933:                                             ; preds = %1931
  %1934 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1932, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1935 unwind label %1951

1935:                                             ; preds = %1933
  %1936 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1934, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1937 unwind label %1951

1937:                                             ; preds = %1935
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %201) #11
  %1938 = load ptr, ptr %1919, align 8, !tbaa !9
  %1939 = getelementptr inbounds i8, ptr %1938, i64 16
  %1940 = load ptr, ptr %1939, align 8
  %1941 = call noundef ptr %1940(ptr noundef nonnull align 8 dereferenceable(16) %1919) #11
  store ptr %1941, ptr %201, align 8, !tbaa !11
  %1942 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1936, ptr noundef nonnull align 8 dereferenceable(8) %201)
          to label %1943 unwind label %1953

1943:                                             ; preds = %1937
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %201) #11
  br label %1955

1944:                                             ; preds = %1916
  %1945 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA137_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %193, ptr noundef nonnull align 1 dereferenceable(137) @.str.1126)
          to label %1946 unwind label %1947

1946:                                             ; preds = %1944
  invoke void @__cxa_end_catch()
          to label %.thread1437 unwind label %1949

1947:                                             ; preds = %1944
  %1948 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1961 unwind label %3068

1949:                                             ; preds = %.critedge1213, %1946
  %1950 = landingpad { ptr, i32 }
          cleanup
  br label %1961

1951:                                             ; preds = %1935, %1933, %1931, %1929, %1927, %1920
  %1952 = landingpad { ptr, i32 }
          cleanup
  br label %1960

1953:                                             ; preds = %1937
  %1954 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %201) #11
  br label %1960

1955:                                             ; preds = %1926, %1943
  invoke void @__cxa_end_catch()
          to label %1956 unwind label %1958

1956:                                             ; preds = %1955
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #11
  br i1 %1925, label %1963, label %.thread1440

.critedge1213:                                    ; preds = %1896, %1908
  %1957 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA128_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %193, ptr noundef nonnull align 1 dereferenceable(128) @.str.1128)
          to label %.thread1437 unwind label %1949

1958:                                             ; preds = %1955
  %1959 = landingpad { ptr, i32 }
          cleanup
  br label %1961

1960:                                             ; preds = %1953, %1951
  %.pn963 = phi { ptr, i32 } [ %1954, %1953 ], [ %1952, %1951 ]
  invoke void @__cxa_end_catch()
          to label %1961 unwind label %3068

.thread1437:                                      ; preds = %1946, %.critedge1213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #11
  br label %1963

1961:                                             ; preds = %1958, %1960, %1947, %1949
  %.pn967 = phi { ptr, i32 } [ %1950, %1949 ], [ %1948, %1947 ], [ %1959, %1958 ], [ %.pn963, %1960 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #11
  br label %1962

1962:                                             ; preds = %1961, %1910
  %.pn967.pn = phi { ptr, i32 } [ %.pn967, %1961 ], [ %1911, %1910 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #11
  br label %1994

1963:                                             ; preds = %1956, %.thread1437, %.thread1432
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %202) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %202)
          to label %1964 unwind label %1969

1964:                                             ; preds = %1963
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %203) #11
  %1965 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %193)
          to label %1966 unwind label %1971

1966:                                             ; preds = %1964
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %203, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1099, ptr noundef %1965)
          to label %1967 unwind label %1971

1967:                                             ; preds = %1966
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull align 8 dereferenceable(8) %202)
          to label %1968 unwind label %1973

1968:                                             ; preds = %1967
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %203) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %203) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %202) #11
  br label %.thread1440

1969:                                             ; preds = %1963
  %1970 = landingpad { ptr, i32 }
          cleanup
  br label %1976

1971:                                             ; preds = %1966, %1964
  %1972 = landingpad { ptr, i32 }
          cleanup
  br label %1975

1973:                                             ; preds = %1967
  %1974 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %203) #11
  br label %1975

1975:                                             ; preds = %1973, %1971
  %.pn970 = phi { ptr, i32 } [ %1974, %1973 ], [ %1972, %1971 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %203) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #11
  br label %1976

1976:                                             ; preds = %1975, %1969
  %.pn970.pn = phi { ptr, i32 } [ %.pn970, %1975 ], [ %1970, %1969 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %202) #11
  br label %1994

.thread1440:                                      ; preds = %1956, %1968
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %193) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %193) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %204) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %204)
  %1977 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %204)
  br i1 %1977, label %1978, label %2048

1978:                                             ; preds = %.thread1440
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %205) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %206) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %206)
          to label %1979 unwind label %1995

1979:                                             ; preds = %1978
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %206) #11
  %1980 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1981 unwind label %1997

1981:                                             ; preds = %1979
  br i1 %1980, label %1982, label %.critedge1217

1982:                                             ; preds = %1981
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %209, ptr noundef nonnull @.str.1122)
          to label %1983 unwind label %1997

1983:                                             ; preds = %1982
  %1984 = load ptr, ptr %209, align 8
  %1985 = getelementptr inbounds i8, ptr %209, i64 8
  %1986 = load i64, ptr %1985, align 8
  %1987 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1984, i64 %1986)
  %1988 = extractvalue { ptr, i64 } %1987, 0
  %1989 = extractvalue { ptr, i64 } %1987, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJjiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %208, ptr %1988, i64 %1989)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %210) #11
  store i32 42, ptr %210, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %211) #11
  store i32 2, ptr %211, align 4, !tbaa !14
  %1990 = load ptr, ptr %208, align 8
  %1991 = getelementptr inbounds i8, ptr %208, i64 8
  %1992 = load i64, ptr %1991, align 8
  invoke void @_ZN3fmt3v106formatIJjiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %207, ptr %1990, i64 %1992, ptr noundef nonnull align 4 dereferenceable(4) %210, ptr noundef nonnull align 4 dereferenceable(4) %211)
          to label %1993 unwind label %1999

1993:                                             ; preds = %1983
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %211) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %210) #11
  br label %.critedge1217

1994:                                             ; preds = %1976, %1962
  %.pn970.pn.pn = phi { ptr, i32 } [ %.pn970.pn, %1976 ], [ %.pn967.pn, %1962 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %193) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %193) #11
  br label %3067

1995:                                             ; preds = %1978
  %1996 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %206) #11
  br label %2047

1997:                                             ; preds = %1982, %1979
  %1998 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2001

1999:                                             ; preds = %1983
  %2000 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %211) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %210) #11
  br label %2001

2001:                                             ; preds = %1999, %1997
  %.pn974 = phi { ptr, i32 } [ %2000, %1999 ], [ %1998, %1997 ]
  %.152 = extractvalue { ptr, i32 } %.pn974, 0
  %.152497 = extractvalue { ptr, i32 } %.pn974, 1
  %2002 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2003 = icmp eq i32 %.152497, %2002
  %2004 = call ptr @__cxa_begin_catch(ptr %.152) #11
  br i1 %2003, label %2005, label %2029

2005:                                             ; preds = %2001
  %2006 = load ptr, ptr %2004, align 8, !tbaa !9
  %2007 = getelementptr inbounds i8, ptr %2006, i64 16
  %2008 = load ptr, ptr %2007, align 8
  %2009 = call noundef ptr %2008(ptr noundef nonnull align 8 dereferenceable(16) %2004) #11
  %2010 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef %2009)
          to label %2011 unwind label %2036

2011:                                             ; preds = %2005
  br i1 %2010, label %2012, label %2040

2012:                                             ; preds = %2011
  %2013 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %204, ptr noundef nonnull align 1 dereferenceable(95) @.str.1130)
          to label %2014 unwind label %2036

2014:                                             ; preds = %2012
  %2015 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2013, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2016 unwind label %2036

2016:                                             ; preds = %2014
  %2017 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2015, ptr noundef nonnull align 8 dereferenceable(32) %205)
          to label %2018 unwind label %2036

2018:                                             ; preds = %2016
  %2019 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2017, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2020 unwind label %2036

2020:                                             ; preds = %2018
  %2021 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2019, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2022 unwind label %2036

2022:                                             ; preds = %2020
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %212) #11
  %2023 = load ptr, ptr %2004, align 8, !tbaa !9
  %2024 = getelementptr inbounds i8, ptr %2023, i64 16
  %2025 = load ptr, ptr %2024, align 8
  %2026 = call noundef ptr %2025(ptr noundef nonnull align 8 dereferenceable(16) %2004) #11
  store ptr %2026, ptr %212, align 8, !tbaa !11
  %2027 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2021, ptr noundef nonnull align 8 dereferenceable(8) %212)
          to label %2028 unwind label %2038

2028:                                             ; preds = %2022
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %212) #11
  br label %2040

2029:                                             ; preds = %2001
  %2030 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %204, ptr noundef nonnull align 1 dereferenceable(138) @.str.1129)
          to label %2031 unwind label %2032

2031:                                             ; preds = %2029
  invoke void @__cxa_end_catch()
          to label %.thread1445 unwind label %2034

2032:                                             ; preds = %2029
  %2033 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2046 unwind label %3068

2034:                                             ; preds = %.critedge1217, %2031
  %2035 = landingpad { ptr, i32 }
          cleanup
  br label %2046

2036:                                             ; preds = %2020, %2018, %2016, %2014, %2012, %2005
  %2037 = landingpad { ptr, i32 }
          cleanup
  br label %2045

2038:                                             ; preds = %2022
  %2039 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %212) #11
  br label %2045

2040:                                             ; preds = %2011, %2028
  invoke void @__cxa_end_catch()
          to label %2041 unwind label %2043

2041:                                             ; preds = %2040
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #11
  br i1 %2010, label %2048, label %.thread1448

.critedge1217:                                    ; preds = %1981, %1993
  %2042 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %204, ptr noundef nonnull align 1 dereferenceable(129) @.str.1131)
          to label %.thread1445 unwind label %2034

2043:                                             ; preds = %2040
  %2044 = landingpad { ptr, i32 }
          cleanup
  br label %2046

2045:                                             ; preds = %2038, %2036
  %.pn976 = phi { ptr, i32 } [ %2039, %2038 ], [ %2037, %2036 ]
  invoke void @__cxa_end_catch()
          to label %2046 unwind label %3068

.thread1445:                                      ; preds = %2031, %.critedge1217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #11
  br label %2048

2046:                                             ; preds = %2043, %2045, %2032, %2034
  %.pn980 = phi { ptr, i32 } [ %2035, %2034 ], [ %2033, %2032 ], [ %2044, %2043 ], [ %.pn976, %2045 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #11
  br label %2047

2047:                                             ; preds = %2046, %1995
  %.pn980.pn = phi { ptr, i32 } [ %.pn980, %2046 ], [ %1996, %1995 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #11
  br label %2079

2048:                                             ; preds = %2041, %.thread1445, %.thread1440
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %213) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %213)
          to label %2049 unwind label %2054

2049:                                             ; preds = %2048
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %214) #11
  %2050 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %204)
          to label %2051 unwind label %2056

2051:                                             ; preds = %2049
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %214, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1101, ptr noundef %2050)
          to label %2052 unwind label %2056

2052:                                             ; preds = %2051
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %214, ptr noundef nonnull align 8 dereferenceable(8) %213)
          to label %2053 unwind label %2058

2053:                                             ; preds = %2052
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %214) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %214) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %213) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %213) #11
  br label %.thread1448

2054:                                             ; preds = %2048
  %2055 = landingpad { ptr, i32 }
          cleanup
  br label %2061

2056:                                             ; preds = %2051, %2049
  %2057 = landingpad { ptr, i32 }
          cleanup
  br label %2060

2058:                                             ; preds = %2052
  %2059 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %214) #11
  br label %2060

2060:                                             ; preds = %2058, %2056
  %.pn983 = phi { ptr, i32 } [ %2059, %2058 ], [ %2057, %2056 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %214) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %213) #11
  br label %2061

2061:                                             ; preds = %2060, %2054
  %.pn983.pn = phi { ptr, i32 } [ %.pn983, %2060 ], [ %2055, %2054 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %213) #11
  br label %2079

.thread1448:                                      ; preds = %2041, %2053
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %204) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %204) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %215) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %215)
  %2062 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %215)
  br i1 %2062, label %2063, label %2133

2063:                                             ; preds = %.thread1448
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %216) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %217) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %217) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %216, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %217)
          to label %2064 unwind label %2080

2064:                                             ; preds = %2063
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %217) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %217) #11
  %2065 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2066 unwind label %2082

2066:                                             ; preds = %2064
  br i1 %2065, label %2067, label %.critedge1221

2067:                                             ; preds = %2066
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %220, ptr noundef nonnull @.str.1088)
          to label %2068 unwind label %2082

2068:                                             ; preds = %2067
  %2069 = load ptr, ptr %220, align 8
  %2070 = getelementptr inbounds i8, ptr %220, i64 8
  %2071 = load i64, ptr %2070, align 8
  %2072 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2069, i64 %2071)
  %2073 = extractvalue { ptr, i64 } %2072, 0
  %2074 = extractvalue { ptr, i64 } %2072, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJliEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %219, ptr %2073, i64 %2074)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %221) #11
  store i64 42, ptr %221, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %222) #11
  store i32 2, ptr %222, align 4, !tbaa !14
  %2075 = load ptr, ptr %219, align 8
  %2076 = getelementptr inbounds i8, ptr %219, i64 8
  %2077 = load i64, ptr %2076, align 8
  invoke void @_ZN3fmt3v106formatIJliEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %218, ptr %2075, i64 %2077, ptr noundef nonnull align 8 dereferenceable(8) %221, ptr noundef nonnull align 4 dereferenceable(4) %222)
          to label %2078 unwind label %2084

2078:                                             ; preds = %2068
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %222) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %221) #11
  br label %.critedge1221

2079:                                             ; preds = %2061, %2047
  %.pn983.pn.pn = phi { ptr, i32 } [ %.pn983.pn, %2061 ], [ %.pn980.pn, %2047 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %204) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %204) #11
  br label %3067

2080:                                             ; preds = %2063
  %2081 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %217) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %217) #11
  br label %2132

2082:                                             ; preds = %2067, %2064
  %2083 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2086

2084:                                             ; preds = %2068
  %2085 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %222) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %221) #11
  br label %2086

2086:                                             ; preds = %2084, %2082
  %.pn987 = phi { ptr, i32 } [ %2085, %2084 ], [ %2083, %2082 ]
  %.160 = extractvalue { ptr, i32 } %.pn987, 0
  %.160505 = extractvalue { ptr, i32 } %.pn987, 1
  %2087 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2088 = icmp eq i32 %.160505, %2087
  %2089 = call ptr @__cxa_begin_catch(ptr %.160) #11
  br i1 %2088, label %2090, label %2114

2090:                                             ; preds = %2086
  %2091 = load ptr, ptr %2089, align 8, !tbaa !9
  %2092 = getelementptr inbounds i8, ptr %2091, i64 16
  %2093 = load ptr, ptr %2092, align 8
  %2094 = call noundef ptr %2093(ptr noundef nonnull align 8 dereferenceable(16) %2089) #11
  %2095 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %216, ptr noundef %2094)
          to label %2096 unwind label %2121

2096:                                             ; preds = %2090
  br i1 %2095, label %2097, label %2125

2097:                                             ; preds = %2096
  %2098 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA94_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %215, ptr noundef nonnull align 1 dereferenceable(94) @.str.1133)
          to label %2099 unwind label %2121

2099:                                             ; preds = %2097
  %2100 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2098, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2101 unwind label %2121

2101:                                             ; preds = %2099
  %2102 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2100, ptr noundef nonnull align 8 dereferenceable(32) %216)
          to label %2103 unwind label %2121

2103:                                             ; preds = %2101
  %2104 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2102, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2105 unwind label %2121

2105:                                             ; preds = %2103
  %2106 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2104, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2107 unwind label %2121

2107:                                             ; preds = %2105
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %223) #11
  %2108 = load ptr, ptr %2089, align 8, !tbaa !9
  %2109 = getelementptr inbounds i8, ptr %2108, i64 16
  %2110 = load ptr, ptr %2109, align 8
  %2111 = call noundef ptr %2110(ptr noundef nonnull align 8 dereferenceable(16) %2089) #11
  store ptr %2111, ptr %223, align 8, !tbaa !11
  %2112 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2106, ptr noundef nonnull align 8 dereferenceable(8) %223)
          to label %2113 unwind label %2123

2113:                                             ; preds = %2107
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %223) #11
  br label %2125

2114:                                             ; preds = %2086
  %2115 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA137_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %215, ptr noundef nonnull align 1 dereferenceable(137) @.str.1132)
          to label %2116 unwind label %2117

2116:                                             ; preds = %2114
  invoke void @__cxa_end_catch()
          to label %.thread1453 unwind label %2119

2117:                                             ; preds = %2114
  %2118 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2131 unwind label %3068

2119:                                             ; preds = %.critedge1221, %2116
  %2120 = landingpad { ptr, i32 }
          cleanup
  br label %2131

2121:                                             ; preds = %2105, %2103, %2101, %2099, %2097, %2090
  %2122 = landingpad { ptr, i32 }
          cleanup
  br label %2130

2123:                                             ; preds = %2107
  %2124 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %223) #11
  br label %2130

2125:                                             ; preds = %2096, %2113
  invoke void @__cxa_end_catch()
          to label %2126 unwind label %2128

2126:                                             ; preds = %2125
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #11
  br i1 %2095, label %2133, label %.thread1456

.critedge1221:                                    ; preds = %2066, %2078
  %2127 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA128_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %215, ptr noundef nonnull align 1 dereferenceable(128) @.str.1134)
          to label %.thread1453 unwind label %2119

2128:                                             ; preds = %2125
  %2129 = landingpad { ptr, i32 }
          cleanup
  br label %2131

2130:                                             ; preds = %2123, %2121
  %.pn989 = phi { ptr, i32 } [ %2124, %2123 ], [ %2122, %2121 ]
  invoke void @__cxa_end_catch()
          to label %2131 unwind label %3068

.thread1453:                                      ; preds = %2116, %.critedge1221
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #11
  br label %2133

2131:                                             ; preds = %2128, %2130, %2117, %2119
  %.pn993 = phi { ptr, i32 } [ %2120, %2119 ], [ %2118, %2117 ], [ %2129, %2128 ], [ %.pn989, %2130 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #11
  br label %2132

2132:                                             ; preds = %2131, %2080
  %.pn993.pn = phi { ptr, i32 } [ %.pn993, %2131 ], [ %2081, %2080 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #11
  br label %2164

2133:                                             ; preds = %2126, %.thread1453, %.thread1448
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %224) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %224)
          to label %2134 unwind label %2139

2134:                                             ; preds = %2133
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %225) #11
  %2135 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %215)
          to label %2136 unwind label %2141

2136:                                             ; preds = %2134
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %225, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1103, ptr noundef %2135)
          to label %2137 unwind label %2141

2137:                                             ; preds = %2136
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %225, ptr noundef nonnull align 8 dereferenceable(8) %224)
          to label %2138 unwind label %2143

2138:                                             ; preds = %2137
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %225) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %225) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %224) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %224) #11
  br label %.thread1456

2139:                                             ; preds = %2133
  %2140 = landingpad { ptr, i32 }
          cleanup
  br label %2146

2141:                                             ; preds = %2136, %2134
  %2142 = landingpad { ptr, i32 }
          cleanup
  br label %2145

2143:                                             ; preds = %2137
  %2144 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %225) #11
  br label %2145

2145:                                             ; preds = %2143, %2141
  %.pn996 = phi { ptr, i32 } [ %2144, %2143 ], [ %2142, %2141 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %225) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %224) #11
  br label %2146

2146:                                             ; preds = %2145, %2139
  %.pn996.pn = phi { ptr, i32 } [ %.pn996, %2145 ], [ %2140, %2139 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %224) #11
  br label %2164

.thread1456:                                      ; preds = %2126, %2138
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %215) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %215) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %226) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %226)
  %2147 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %226)
  br i1 %2147, label %2148, label %2218

2148:                                             ; preds = %.thread1456
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %227) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %228) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %228)
          to label %2149 unwind label %2165

2149:                                             ; preds = %2148
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %228) #11
  %2150 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2151 unwind label %2167

2151:                                             ; preds = %2149
  br i1 %2150, label %2152, label %.critedge1225

2152:                                             ; preds = %2151
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %231, ptr noundef nonnull @.str.1122)
          to label %2153 unwind label %2167

2153:                                             ; preds = %2152
  %2154 = load ptr, ptr %231, align 8
  %2155 = getelementptr inbounds i8, ptr %231, i64 8
  %2156 = load i64, ptr %2155, align 8
  %2157 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2154, i64 %2156)
  %2158 = extractvalue { ptr, i64 } %2157, 0
  %2159 = extractvalue { ptr, i64 } %2157, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJliEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %230, ptr %2158, i64 %2159)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %232) #11
  store i64 42, ptr %232, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %233) #11
  store i32 2, ptr %233, align 4, !tbaa !14
  %2160 = load ptr, ptr %230, align 8
  %2161 = getelementptr inbounds i8, ptr %230, i64 8
  %2162 = load i64, ptr %2161, align 8
  invoke void @_ZN3fmt3v106formatIJliEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %229, ptr %2160, i64 %2162, ptr noundef nonnull align 8 dereferenceable(8) %232, ptr noundef nonnull align 4 dereferenceable(4) %233)
          to label %2163 unwind label %2169

2163:                                             ; preds = %2153
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %233) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %232) #11
  br label %.critedge1225

2164:                                             ; preds = %2146, %2132
  %.pn996.pn.pn = phi { ptr, i32 } [ %.pn996.pn, %2146 ], [ %.pn993.pn, %2132 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %215) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %215) #11
  br label %3067

2165:                                             ; preds = %2148
  %2166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %228) #11
  br label %2217

2167:                                             ; preds = %2152, %2149
  %2168 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2171

2169:                                             ; preds = %2153
  %2170 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %233) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %232) #11
  br label %2171

2171:                                             ; preds = %2169, %2167
  %.pn1000 = phi { ptr, i32 } [ %2170, %2169 ], [ %2168, %2167 ]
  %.168 = extractvalue { ptr, i32 } %.pn1000, 0
  %.168513 = extractvalue { ptr, i32 } %.pn1000, 1
  %2172 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2173 = icmp eq i32 %.168513, %2172
  %2174 = call ptr @__cxa_begin_catch(ptr %.168) #11
  br i1 %2173, label %2175, label %2199

2175:                                             ; preds = %2171
  %2176 = load ptr, ptr %2174, align 8, !tbaa !9
  %2177 = getelementptr inbounds i8, ptr %2176, i64 16
  %2178 = load ptr, ptr %2177, align 8
  %2179 = call noundef ptr %2178(ptr noundef nonnull align 8 dereferenceable(16) %2174) #11
  %2180 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef %2179)
          to label %2181 unwind label %2206

2181:                                             ; preds = %2175
  br i1 %2180, label %2182, label %2210

2182:                                             ; preds = %2181
  %2183 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %226, ptr noundef nonnull align 1 dereferenceable(95) @.str.1136)
          to label %2184 unwind label %2206

2184:                                             ; preds = %2182
  %2185 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2183, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2186 unwind label %2206

2186:                                             ; preds = %2184
  %2187 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2185, ptr noundef nonnull align 8 dereferenceable(32) %227)
          to label %2188 unwind label %2206

2188:                                             ; preds = %2186
  %2189 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2187, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2190 unwind label %2206

2190:                                             ; preds = %2188
  %2191 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2189, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2192 unwind label %2206

2192:                                             ; preds = %2190
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %234) #11
  %2193 = load ptr, ptr %2174, align 8, !tbaa !9
  %2194 = getelementptr inbounds i8, ptr %2193, i64 16
  %2195 = load ptr, ptr %2194, align 8
  %2196 = call noundef ptr %2195(ptr noundef nonnull align 8 dereferenceable(16) %2174) #11
  store ptr %2196, ptr %234, align 8, !tbaa !11
  %2197 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2191, ptr noundef nonnull align 8 dereferenceable(8) %234)
          to label %2198 unwind label %2208

2198:                                             ; preds = %2192
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %234) #11
  br label %2210

2199:                                             ; preds = %2171
  %2200 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %226, ptr noundef nonnull align 1 dereferenceable(138) @.str.1135)
          to label %2201 unwind label %2202

2201:                                             ; preds = %2199
  invoke void @__cxa_end_catch()
          to label %.thread1461 unwind label %2204

2202:                                             ; preds = %2199
  %2203 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2216 unwind label %3068

2204:                                             ; preds = %.critedge1225, %2201
  %2205 = landingpad { ptr, i32 }
          cleanup
  br label %2216

2206:                                             ; preds = %2190, %2188, %2186, %2184, %2182, %2175
  %2207 = landingpad { ptr, i32 }
          cleanup
  br label %2215

2208:                                             ; preds = %2192
  %2209 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %234) #11
  br label %2215

2210:                                             ; preds = %2181, %2198
  invoke void @__cxa_end_catch()
          to label %2211 unwind label %2213

2211:                                             ; preds = %2210
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #11
  br i1 %2180, label %2218, label %.thread1464

.critedge1225:                                    ; preds = %2151, %2163
  %2212 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %226, ptr noundef nonnull align 1 dereferenceable(129) @.str.1137)
          to label %.thread1461 unwind label %2204

2213:                                             ; preds = %2210
  %2214 = landingpad { ptr, i32 }
          cleanup
  br label %2216

2215:                                             ; preds = %2208, %2206
  %.pn1002 = phi { ptr, i32 } [ %2209, %2208 ], [ %2207, %2206 ]
  invoke void @__cxa_end_catch()
          to label %2216 unwind label %3068

.thread1461:                                      ; preds = %2201, %.critedge1225
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #11
  br label %2218

2216:                                             ; preds = %2213, %2215, %2202, %2204
  %.pn1006 = phi { ptr, i32 } [ %2205, %2204 ], [ %2203, %2202 ], [ %2214, %2213 ], [ %.pn1002, %2215 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #11
  br label %2217

2217:                                             ; preds = %2216, %2165
  %.pn1006.pn = phi { ptr, i32 } [ %.pn1006, %2216 ], [ %2166, %2165 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #11
  br label %2249

2218:                                             ; preds = %2211, %.thread1461, %.thread1456
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %235) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %235)
          to label %2219 unwind label %2224

2219:                                             ; preds = %2218
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %236) #11
  %2220 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %226)
          to label %2221 unwind label %2226

2221:                                             ; preds = %2219
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %236, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1105, ptr noundef %2220)
          to label %2222 unwind label %2226

2222:                                             ; preds = %2221
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %236, ptr noundef nonnull align 8 dereferenceable(8) %235)
          to label %2223 unwind label %2228

2223:                                             ; preds = %2222
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %236) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %236) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %235) #11
  br label %.thread1464

2224:                                             ; preds = %2218
  %2225 = landingpad { ptr, i32 }
          cleanup
  br label %2231

2226:                                             ; preds = %2221, %2219
  %2227 = landingpad { ptr, i32 }
          cleanup
  br label %2230

2228:                                             ; preds = %2222
  %2229 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %236) #11
  br label %2230

2230:                                             ; preds = %2228, %2226
  %.pn1009 = phi { ptr, i32 } [ %2229, %2228 ], [ %2227, %2226 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %236) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #11
  br label %2231

2231:                                             ; preds = %2230, %2224
  %.pn1009.pn = phi { ptr, i32 } [ %.pn1009, %2230 ], [ %2225, %2224 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %235) #11
  br label %2249

.thread1464:                                      ; preds = %2211, %2223
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %226) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %226) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %237) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %237)
  %2232 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %237)
  br i1 %2232, label %2233, label %2303

2233:                                             ; preds = %.thread1464
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %238) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %239) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %239)
          to label %2234 unwind label %2250

2234:                                             ; preds = %2233
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %239) #11
  %2235 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2236 unwind label %2252

2236:                                             ; preds = %2234
  br i1 %2235, label %2237, label %.critedge1229

2237:                                             ; preds = %2236
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %242, ptr noundef nonnull @.str.1088)
          to label %2238 unwind label %2252

2238:                                             ; preds = %2237
  %2239 = load ptr, ptr %242, align 8
  %2240 = getelementptr inbounds i8, ptr %242, i64 8
  %2241 = load i64, ptr %2240, align 8
  %2242 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2239, i64 %2241)
  %2243 = extractvalue { ptr, i64 } %2242, 0
  %2244 = extractvalue { ptr, i64 } %2242, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJmiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %241, ptr %2243, i64 %2244)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %243) #11
  store i64 42, ptr %243, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %244) #11
  store i32 2, ptr %244, align 4, !tbaa !14
  %2245 = load ptr, ptr %241, align 8
  %2246 = getelementptr inbounds i8, ptr %241, i64 8
  %2247 = load i64, ptr %2246, align 8
  invoke void @_ZN3fmt3v106formatIJmiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %240, ptr %2245, i64 %2247, ptr noundef nonnull align 8 dereferenceable(8) %243, ptr noundef nonnull align 4 dereferenceable(4) %244)
          to label %2248 unwind label %2254

2248:                                             ; preds = %2238
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %244) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %243) #11
  br label %.critedge1229

2249:                                             ; preds = %2231, %2217
  %.pn1009.pn.pn = phi { ptr, i32 } [ %.pn1009.pn, %2231 ], [ %.pn1006.pn, %2217 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %226) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %226) #11
  br label %3067

2250:                                             ; preds = %2233
  %2251 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %239) #11
  br label %2302

2252:                                             ; preds = %2237, %2234
  %2253 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2256

2254:                                             ; preds = %2238
  %2255 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %244) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %243) #11
  br label %2256

2256:                                             ; preds = %2254, %2252
  %.pn1013 = phi { ptr, i32 } [ %2255, %2254 ], [ %2253, %2252 ]
  %.176 = extractvalue { ptr, i32 } %.pn1013, 0
  %.176521 = extractvalue { ptr, i32 } %.pn1013, 1
  %2257 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2258 = icmp eq i32 %.176521, %2257
  %2259 = call ptr @__cxa_begin_catch(ptr %.176) #11
  br i1 %2258, label %2260, label %2284

2260:                                             ; preds = %2256
  %2261 = load ptr, ptr %2259, align 8, !tbaa !9
  %2262 = getelementptr inbounds i8, ptr %2261, i64 16
  %2263 = load ptr, ptr %2262, align 8
  %2264 = call noundef ptr %2263(ptr noundef nonnull align 8 dereferenceable(16) %2259) #11
  %2265 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef %2264)
          to label %2266 unwind label %2291

2266:                                             ; preds = %2260
  br i1 %2265, label %2267, label %2295

2267:                                             ; preds = %2266
  %2268 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %237, ptr noundef nonnull align 1 dereferenceable(95) @.str.1139)
          to label %2269 unwind label %2291

2269:                                             ; preds = %2267
  %2270 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2268, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2271 unwind label %2291

2271:                                             ; preds = %2269
  %2272 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2270, ptr noundef nonnull align 8 dereferenceable(32) %238)
          to label %2273 unwind label %2291

2273:                                             ; preds = %2271
  %2274 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2272, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2275 unwind label %2291

2275:                                             ; preds = %2273
  %2276 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2274, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2277 unwind label %2291

2277:                                             ; preds = %2275
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %245) #11
  %2278 = load ptr, ptr %2259, align 8, !tbaa !9
  %2279 = getelementptr inbounds i8, ptr %2278, i64 16
  %2280 = load ptr, ptr %2279, align 8
  %2281 = call noundef ptr %2280(ptr noundef nonnull align 8 dereferenceable(16) %2259) #11
  store ptr %2281, ptr %245, align 8, !tbaa !11
  %2282 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2276, ptr noundef nonnull align 8 dereferenceable(8) %245)
          to label %2283 unwind label %2293

2283:                                             ; preds = %2277
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %245) #11
  br label %2295

2284:                                             ; preds = %2256
  %2285 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %237, ptr noundef nonnull align 1 dereferenceable(138) @.str.1138)
          to label %2286 unwind label %2287

2286:                                             ; preds = %2284
  invoke void @__cxa_end_catch()
          to label %.thread1469 unwind label %2289

2287:                                             ; preds = %2284
  %2288 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2301 unwind label %3068

2289:                                             ; preds = %.critedge1229, %2286
  %2290 = landingpad { ptr, i32 }
          cleanup
  br label %2301

2291:                                             ; preds = %2275, %2273, %2271, %2269, %2267, %2260
  %2292 = landingpad { ptr, i32 }
          cleanup
  br label %2300

2293:                                             ; preds = %2277
  %2294 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %245) #11
  br label %2300

2295:                                             ; preds = %2266, %2283
  invoke void @__cxa_end_catch()
          to label %2296 unwind label %2298

2296:                                             ; preds = %2295
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %238) #11
  br i1 %2265, label %2303, label %.thread1472

.critedge1229:                                    ; preds = %2236, %2248
  %2297 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %237, ptr noundef nonnull align 1 dereferenceable(129) @.str.1140)
          to label %.thread1469 unwind label %2289

2298:                                             ; preds = %2295
  %2299 = landingpad { ptr, i32 }
          cleanup
  br label %2301

2300:                                             ; preds = %2293, %2291
  %.pn1015 = phi { ptr, i32 } [ %2294, %2293 ], [ %2292, %2291 ]
  invoke void @__cxa_end_catch()
          to label %2301 unwind label %3068

.thread1469:                                      ; preds = %2286, %.critedge1229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %238) #11
  br label %2303

2301:                                             ; preds = %2298, %2300, %2287, %2289
  %.pn1019 = phi { ptr, i32 } [ %2290, %2289 ], [ %2288, %2287 ], [ %2299, %2298 ], [ %.pn1015, %2300 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #11
  br label %2302

2302:                                             ; preds = %2301, %2250
  %.pn1019.pn = phi { ptr, i32 } [ %.pn1019, %2301 ], [ %2251, %2250 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %238) #11
  br label %2334

2303:                                             ; preds = %2296, %.thread1469, %.thread1464
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %246) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %246)
          to label %2304 unwind label %2309

2304:                                             ; preds = %2303
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %247) #11
  %2305 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %237)
          to label %2306 unwind label %2311

2306:                                             ; preds = %2304
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %247, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1107, ptr noundef %2305)
          to label %2307 unwind label %2311

2307:                                             ; preds = %2306
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %247, ptr noundef nonnull align 8 dereferenceable(8) %246)
          to label %2308 unwind label %2313

2308:                                             ; preds = %2307
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %247) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %247) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %246) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %246) #11
  br label %.thread1472

2309:                                             ; preds = %2303
  %2310 = landingpad { ptr, i32 }
          cleanup
  br label %2316

2311:                                             ; preds = %2306, %2304
  %2312 = landingpad { ptr, i32 }
          cleanup
  br label %2315

2313:                                             ; preds = %2307
  %2314 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %247) #11
  br label %2315

2315:                                             ; preds = %2313, %2311
  %.pn1022 = phi { ptr, i32 } [ %2314, %2313 ], [ %2312, %2311 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %247) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %246) #11
  br label %2316

2316:                                             ; preds = %2315, %2309
  %.pn1022.pn = phi { ptr, i32 } [ %.pn1022, %2315 ], [ %2310, %2309 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %246) #11
  br label %2334

.thread1472:                                      ; preds = %2296, %2308
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %237) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %237) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %248) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %248)
  %2317 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %248)
  br i1 %2317, label %2318, label %2388

2318:                                             ; preds = %.thread1472
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %249) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %250) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %250) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %249, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %250)
          to label %2319 unwind label %2335

2319:                                             ; preds = %2318
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %250) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %250) #11
  %2320 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2321 unwind label %2337

2321:                                             ; preds = %2319
  br i1 %2320, label %2322, label %.critedge1233

2322:                                             ; preds = %2321
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %253, ptr noundef nonnull @.str.1122)
          to label %2323 unwind label %2337

2323:                                             ; preds = %2322
  %2324 = load ptr, ptr %253, align 8
  %2325 = getelementptr inbounds i8, ptr %253, i64 8
  %2326 = load i64, ptr %2325, align 8
  %2327 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2324, i64 %2326)
  %2328 = extractvalue { ptr, i64 } %2327, 0
  %2329 = extractvalue { ptr, i64 } %2327, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJmiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %252, ptr %2328, i64 %2329)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %254) #11
  store i64 42, ptr %254, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %255) #11
  store i32 2, ptr %255, align 4, !tbaa !14
  %2330 = load ptr, ptr %252, align 8
  %2331 = getelementptr inbounds i8, ptr %252, i64 8
  %2332 = load i64, ptr %2331, align 8
  invoke void @_ZN3fmt3v106formatIJmiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %251, ptr %2330, i64 %2332, ptr noundef nonnull align 8 dereferenceable(8) %254, ptr noundef nonnull align 4 dereferenceable(4) %255)
          to label %2333 unwind label %2339

2333:                                             ; preds = %2323
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %255) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %254) #11
  br label %.critedge1233

2334:                                             ; preds = %2316, %2302
  %.pn1022.pn.pn = phi { ptr, i32 } [ %.pn1022.pn, %2316 ], [ %.pn1019.pn, %2302 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %237) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %237) #11
  br label %3067

2335:                                             ; preds = %2318
  %2336 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %250) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %250) #11
  br label %2387

2337:                                             ; preds = %2322, %2319
  %2338 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2341

2339:                                             ; preds = %2323
  %2340 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %255) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %254) #11
  br label %2341

2341:                                             ; preds = %2339, %2337
  %.pn1026 = phi { ptr, i32 } [ %2340, %2339 ], [ %2338, %2337 ]
  %.184 = extractvalue { ptr, i32 } %.pn1026, 0
  %.184529 = extractvalue { ptr, i32 } %.pn1026, 1
  %2342 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2343 = icmp eq i32 %.184529, %2342
  %2344 = call ptr @__cxa_begin_catch(ptr %.184) #11
  br i1 %2343, label %2345, label %2369

2345:                                             ; preds = %2341
  %2346 = load ptr, ptr %2344, align 8, !tbaa !9
  %2347 = getelementptr inbounds i8, ptr %2346, i64 16
  %2348 = load ptr, ptr %2347, align 8
  %2349 = call noundef ptr %2348(ptr noundef nonnull align 8 dereferenceable(16) %2344) #11
  %2350 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %249, ptr noundef %2349)
          to label %2351 unwind label %2376

2351:                                             ; preds = %2345
  br i1 %2350, label %2352, label %2380

2352:                                             ; preds = %2351
  %2353 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %248, ptr noundef nonnull align 1 dereferenceable(96) @.str.1142)
          to label %2354 unwind label %2376

2354:                                             ; preds = %2352
  %2355 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2353, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2356 unwind label %2376

2356:                                             ; preds = %2354
  %2357 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2355, ptr noundef nonnull align 8 dereferenceable(32) %249)
          to label %2358 unwind label %2376

2358:                                             ; preds = %2356
  %2359 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2357, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2360 unwind label %2376

2360:                                             ; preds = %2358
  %2361 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2359, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2362 unwind label %2376

2362:                                             ; preds = %2360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %256) #11
  %2363 = load ptr, ptr %2344, align 8, !tbaa !9
  %2364 = getelementptr inbounds i8, ptr %2363, i64 16
  %2365 = load ptr, ptr %2364, align 8
  %2366 = call noundef ptr %2365(ptr noundef nonnull align 8 dereferenceable(16) %2344) #11
  store ptr %2366, ptr %256, align 8, !tbaa !11
  %2367 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2361, ptr noundef nonnull align 8 dereferenceable(8) %256)
          to label %2368 unwind label %2378

2368:                                             ; preds = %2362
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %256) #11
  br label %2380

2369:                                             ; preds = %2341
  %2370 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %248, ptr noundef nonnull align 1 dereferenceable(139) @.str.1141)
          to label %2371 unwind label %2372

2371:                                             ; preds = %2369
  invoke void @__cxa_end_catch()
          to label %.thread1477 unwind label %2374

2372:                                             ; preds = %2369
  %2373 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2386 unwind label %3068

2374:                                             ; preds = %.critedge1233, %2371
  %2375 = landingpad { ptr, i32 }
          cleanup
  br label %2386

2376:                                             ; preds = %2360, %2358, %2356, %2354, %2352, %2345
  %2377 = landingpad { ptr, i32 }
          cleanup
  br label %2385

2378:                                             ; preds = %2362
  %2379 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %256) #11
  br label %2385

2380:                                             ; preds = %2351, %2368
  invoke void @__cxa_end_catch()
          to label %2381 unwind label %2383

2381:                                             ; preds = %2380
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %249) #11
  br i1 %2350, label %2388, label %.thread1480

.critedge1233:                                    ; preds = %2321, %2333
  %2382 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %248, ptr noundef nonnull align 1 dereferenceable(130) @.str.1143)
          to label %.thread1477 unwind label %2374

2383:                                             ; preds = %2380
  %2384 = landingpad { ptr, i32 }
          cleanup
  br label %2386

2385:                                             ; preds = %2378, %2376
  %.pn1028 = phi { ptr, i32 } [ %2379, %2378 ], [ %2377, %2376 ]
  invoke void @__cxa_end_catch()
          to label %2386 unwind label %3068

.thread1477:                                      ; preds = %2371, %.critedge1233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %249) #11
  br label %2388

2386:                                             ; preds = %2383, %2385, %2372, %2374
  %.pn1032 = phi { ptr, i32 } [ %2375, %2374 ], [ %2373, %2372 ], [ %2384, %2383 ], [ %.pn1028, %2385 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #11
  br label %2387

2387:                                             ; preds = %2386, %2335
  %.pn1032.pn = phi { ptr, i32 } [ %.pn1032, %2386 ], [ %2336, %2335 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %249) #11
  br label %2419

2388:                                             ; preds = %2381, %.thread1477, %.thread1472
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %257) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %257)
          to label %2389 unwind label %2394

2389:                                             ; preds = %2388
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %258) #11
  %2390 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %248)
          to label %2391 unwind label %2396

2391:                                             ; preds = %2389
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %258, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1109, ptr noundef %2390)
          to label %2392 unwind label %2396

2392:                                             ; preds = %2391
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull align 8 dereferenceable(8) %257)
          to label %2393 unwind label %2398

2393:                                             ; preds = %2392
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %258) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %258) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %257) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %257) #11
  br label %.thread1480

2394:                                             ; preds = %2388
  %2395 = landingpad { ptr, i32 }
          cleanup
  br label %2401

2396:                                             ; preds = %2391, %2389
  %2397 = landingpad { ptr, i32 }
          cleanup
  br label %2400

2398:                                             ; preds = %2392
  %2399 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %258) #11
  br label %2400

2400:                                             ; preds = %2398, %2396
  %.pn1035 = phi { ptr, i32 } [ %2399, %2398 ], [ %2397, %2396 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %258) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %257) #11
  br label %2401

2401:                                             ; preds = %2400, %2394
  %.pn1035.pn = phi { ptr, i32 } [ %.pn1035, %2400 ], [ %2395, %2394 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %257) #11
  br label %2419

.thread1480:                                      ; preds = %2381, %2393
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %248) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %248) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %259) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %259)
  %2402 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %259)
  br i1 %2402, label %2403, label %2473

2403:                                             ; preds = %.thread1480
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %260) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %261) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %261) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %260, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %261)
          to label %2404 unwind label %2420

2404:                                             ; preds = %2403
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %261) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %261) #11
  %2405 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2406 unwind label %2422

2406:                                             ; preds = %2404
  br i1 %2405, label %2407, label %.critedge1237

2407:                                             ; preds = %2406
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %264, ptr noundef nonnull @.str.1088)
          to label %2408 unwind label %2422

2408:                                             ; preds = %2407
  %2409 = load ptr, ptr %264, align 8
  %2410 = getelementptr inbounds i8, ptr %264, i64 8
  %2411 = load i64, ptr %2410, align 8
  %2412 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2409, i64 %2411)
  %2413 = extractvalue { ptr, i64 } %2412, 0
  %2414 = extractvalue { ptr, i64 } %2412, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJxiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %263, ptr %2413, i64 %2414)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %265) #11
  store i64 42, ptr %265, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %266) #11
  store i32 2, ptr %266, align 4, !tbaa !14
  %2415 = load ptr, ptr %263, align 8
  %2416 = getelementptr inbounds i8, ptr %263, i64 8
  %2417 = load i64, ptr %2416, align 8
  invoke void @_ZN3fmt3v106formatIJxiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %262, ptr %2415, i64 %2417, ptr noundef nonnull align 8 dereferenceable(8) %265, ptr noundef nonnull align 4 dereferenceable(4) %266)
          to label %2418 unwind label %2424

2418:                                             ; preds = %2408
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %262) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %266) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %265) #11
  br label %.critedge1237

2419:                                             ; preds = %2401, %2387
  %.pn1035.pn.pn = phi { ptr, i32 } [ %.pn1035.pn, %2401 ], [ %.pn1032.pn, %2387 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %248) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %248) #11
  br label %3067

2420:                                             ; preds = %2403
  %2421 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %261) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %261) #11
  br label %2472

2422:                                             ; preds = %2407, %2404
  %2423 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2426

2424:                                             ; preds = %2408
  %2425 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %266) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %265) #11
  br label %2426

2426:                                             ; preds = %2424, %2422
  %.pn1039 = phi { ptr, i32 } [ %2425, %2424 ], [ %2423, %2422 ]
  %.192 = extractvalue { ptr, i32 } %.pn1039, 0
  %.192537 = extractvalue { ptr, i32 } %.pn1039, 1
  %2427 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2428 = icmp eq i32 %.192537, %2427
  %2429 = call ptr @__cxa_begin_catch(ptr %.192) #11
  br i1 %2428, label %2430, label %2454

2430:                                             ; preds = %2426
  %2431 = load ptr, ptr %2429, align 8, !tbaa !9
  %2432 = getelementptr inbounds i8, ptr %2431, i64 16
  %2433 = load ptr, ptr %2432, align 8
  %2434 = call noundef ptr %2433(ptr noundef nonnull align 8 dereferenceable(16) %2429) #11
  %2435 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %260, ptr noundef %2434)
          to label %2436 unwind label %2461

2436:                                             ; preds = %2430
  br i1 %2435, label %2437, label %2465

2437:                                             ; preds = %2436
  %2438 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %259, ptr noundef nonnull align 1 dereferenceable(95) @.str.1145)
          to label %2439 unwind label %2461

2439:                                             ; preds = %2437
  %2440 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2438, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2441 unwind label %2461

2441:                                             ; preds = %2439
  %2442 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2440, ptr noundef nonnull align 8 dereferenceable(32) %260)
          to label %2443 unwind label %2461

2443:                                             ; preds = %2441
  %2444 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2442, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2445 unwind label %2461

2445:                                             ; preds = %2443
  %2446 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2444, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2447 unwind label %2461

2447:                                             ; preds = %2445
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %267) #11
  %2448 = load ptr, ptr %2429, align 8, !tbaa !9
  %2449 = getelementptr inbounds i8, ptr %2448, i64 16
  %2450 = load ptr, ptr %2449, align 8
  %2451 = call noundef ptr %2450(ptr noundef nonnull align 8 dereferenceable(16) %2429) #11
  store ptr %2451, ptr %267, align 8, !tbaa !11
  %2452 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2446, ptr noundef nonnull align 8 dereferenceable(8) %267)
          to label %2453 unwind label %2463

2453:                                             ; preds = %2447
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %267) #11
  br label %2465

2454:                                             ; preds = %2426
  %2455 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %259, ptr noundef nonnull align 1 dereferenceable(138) @.str.1144)
          to label %2456 unwind label %2457

2456:                                             ; preds = %2454
  invoke void @__cxa_end_catch()
          to label %.thread1485 unwind label %2459

2457:                                             ; preds = %2454
  %2458 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2471 unwind label %3068

2459:                                             ; preds = %.critedge1237, %2456
  %2460 = landingpad { ptr, i32 }
          cleanup
  br label %2471

2461:                                             ; preds = %2445, %2443, %2441, %2439, %2437, %2430
  %2462 = landingpad { ptr, i32 }
          cleanup
  br label %2470

2463:                                             ; preds = %2447
  %2464 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %267) #11
  br label %2470

2465:                                             ; preds = %2436, %2453
  invoke void @__cxa_end_catch()
          to label %2466 unwind label %2468

2466:                                             ; preds = %2465
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #11
  br i1 %2435, label %2473, label %.thread1488

.critedge1237:                                    ; preds = %2406, %2418
  %2467 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %259, ptr noundef nonnull align 1 dereferenceable(129) @.str.1146)
          to label %.thread1485 unwind label %2459

2468:                                             ; preds = %2465
  %2469 = landingpad { ptr, i32 }
          cleanup
  br label %2471

2470:                                             ; preds = %2463, %2461
  %.pn1041 = phi { ptr, i32 } [ %2464, %2463 ], [ %2462, %2461 ]
  invoke void @__cxa_end_catch()
          to label %2471 unwind label %3068

.thread1485:                                      ; preds = %2456, %.critedge1237
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #11
  br label %2473

2471:                                             ; preds = %2468, %2470, %2457, %2459
  %.pn1045 = phi { ptr, i32 } [ %2460, %2459 ], [ %2458, %2457 ], [ %2469, %2468 ], [ %.pn1041, %2470 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #11
  br label %2472

2472:                                             ; preds = %2471, %2420
  %.pn1045.pn = phi { ptr, i32 } [ %.pn1045, %2471 ], [ %2421, %2420 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #11
  br label %2504

2473:                                             ; preds = %2466, %.thread1485, %.thread1480
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %268) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %268)
          to label %2474 unwind label %2479

2474:                                             ; preds = %2473
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %269) #11
  %2475 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %259)
          to label %2476 unwind label %2481

2476:                                             ; preds = %2474
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %269, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1111, ptr noundef %2475)
          to label %2477 unwind label %2481

2477:                                             ; preds = %2476
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %269, ptr noundef nonnull align 8 dereferenceable(8) %268)
          to label %2478 unwind label %2483

2478:                                             ; preds = %2477
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %269) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %269) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %268) #11
  br label %.thread1488

2479:                                             ; preds = %2473
  %2480 = landingpad { ptr, i32 }
          cleanup
  br label %2486

2481:                                             ; preds = %2476, %2474
  %2482 = landingpad { ptr, i32 }
          cleanup
  br label %2485

2483:                                             ; preds = %2477
  %2484 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %269) #11
  br label %2485

2485:                                             ; preds = %2483, %2481
  %.pn1048 = phi { ptr, i32 } [ %2484, %2483 ], [ %2482, %2481 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %269) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #11
  br label %2486

2486:                                             ; preds = %2485, %2479
  %.pn1048.pn = phi { ptr, i32 } [ %.pn1048, %2485 ], [ %2480, %2479 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %268) #11
  br label %2504

.thread1488:                                      ; preds = %2466, %2478
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %259) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %259) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %270) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %270)
  %2487 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %270)
  br i1 %2487, label %2488, label %2558

2488:                                             ; preds = %.thread1488
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %271) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %272) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %272)
          to label %2489 unwind label %2505

2489:                                             ; preds = %2488
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %272) #11
  %2490 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2491 unwind label %2507

2491:                                             ; preds = %2489
  br i1 %2490, label %2492, label %.critedge1241

2492:                                             ; preds = %2491
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %275, ptr noundef nonnull @.str.1122)
          to label %2493 unwind label %2507

2493:                                             ; preds = %2492
  %2494 = load ptr, ptr %275, align 8
  %2495 = getelementptr inbounds i8, ptr %275, i64 8
  %2496 = load i64, ptr %2495, align 8
  %2497 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2494, i64 %2496)
  %2498 = extractvalue { ptr, i64 } %2497, 0
  %2499 = extractvalue { ptr, i64 } %2497, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJxiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %274, ptr %2498, i64 %2499)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %276) #11
  store i64 42, ptr %276, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %277) #11
  store i32 2, ptr %277, align 4, !tbaa !14
  %2500 = load ptr, ptr %274, align 8
  %2501 = getelementptr inbounds i8, ptr %274, i64 8
  %2502 = load i64, ptr %2501, align 8
  invoke void @_ZN3fmt3v106formatIJxiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %273, ptr %2500, i64 %2502, ptr noundef nonnull align 8 dereferenceable(8) %276, ptr noundef nonnull align 4 dereferenceable(4) %277)
          to label %2503 unwind label %2509

2503:                                             ; preds = %2493
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %277) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %276) #11
  br label %.critedge1241

2504:                                             ; preds = %2486, %2472
  %.pn1048.pn.pn = phi { ptr, i32 } [ %.pn1048.pn, %2486 ], [ %.pn1045.pn, %2472 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %259) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %259) #11
  br label %3067

2505:                                             ; preds = %2488
  %2506 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %272) #11
  br label %2557

2507:                                             ; preds = %2492, %2489
  %2508 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2511

2509:                                             ; preds = %2493
  %2510 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %277) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %276) #11
  br label %2511

2511:                                             ; preds = %2509, %2507
  %.pn1052 = phi { ptr, i32 } [ %2510, %2509 ], [ %2508, %2507 ]
  %.200 = extractvalue { ptr, i32 } %.pn1052, 0
  %.200545 = extractvalue { ptr, i32 } %.pn1052, 1
  %2512 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2513 = icmp eq i32 %.200545, %2512
  %2514 = call ptr @__cxa_begin_catch(ptr %.200) #11
  br i1 %2513, label %2515, label %2539

2515:                                             ; preds = %2511
  %2516 = load ptr, ptr %2514, align 8, !tbaa !9
  %2517 = getelementptr inbounds i8, ptr %2516, i64 16
  %2518 = load ptr, ptr %2517, align 8
  %2519 = call noundef ptr %2518(ptr noundef nonnull align 8 dereferenceable(16) %2514) #11
  %2520 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef %2519)
          to label %2521 unwind label %2546

2521:                                             ; preds = %2515
  br i1 %2520, label %2522, label %2550

2522:                                             ; preds = %2521
  %2523 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %270, ptr noundef nonnull align 1 dereferenceable(96) @.str.1148)
          to label %2524 unwind label %2546

2524:                                             ; preds = %2522
  %2525 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2523, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2526 unwind label %2546

2526:                                             ; preds = %2524
  %2527 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2525, ptr noundef nonnull align 8 dereferenceable(32) %271)
          to label %2528 unwind label %2546

2528:                                             ; preds = %2526
  %2529 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2527, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2530 unwind label %2546

2530:                                             ; preds = %2528
  %2531 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2529, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2532 unwind label %2546

2532:                                             ; preds = %2530
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %278) #11
  %2533 = load ptr, ptr %2514, align 8, !tbaa !9
  %2534 = getelementptr inbounds i8, ptr %2533, i64 16
  %2535 = load ptr, ptr %2534, align 8
  %2536 = call noundef ptr %2535(ptr noundef nonnull align 8 dereferenceable(16) %2514) #11
  store ptr %2536, ptr %278, align 8, !tbaa !11
  %2537 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2531, ptr noundef nonnull align 8 dereferenceable(8) %278)
          to label %2538 unwind label %2548

2538:                                             ; preds = %2532
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %278) #11
  br label %2550

2539:                                             ; preds = %2511
  %2540 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %270, ptr noundef nonnull align 1 dereferenceable(139) @.str.1147)
          to label %2541 unwind label %2542

2541:                                             ; preds = %2539
  invoke void @__cxa_end_catch()
          to label %.thread1493 unwind label %2544

2542:                                             ; preds = %2539
  %2543 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2556 unwind label %3068

2544:                                             ; preds = %.critedge1241, %2541
  %2545 = landingpad { ptr, i32 }
          cleanup
  br label %2556

2546:                                             ; preds = %2530, %2528, %2526, %2524, %2522, %2515
  %2547 = landingpad { ptr, i32 }
          cleanup
  br label %2555

2548:                                             ; preds = %2532
  %2549 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %278) #11
  br label %2555

2550:                                             ; preds = %2521, %2538
  invoke void @__cxa_end_catch()
          to label %2551 unwind label %2553

2551:                                             ; preds = %2550
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #11
  br i1 %2520, label %2558, label %.thread1496

.critedge1241:                                    ; preds = %2491, %2503
  %2552 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %270, ptr noundef nonnull align 1 dereferenceable(130) @.str.1149)
          to label %.thread1493 unwind label %2544

2553:                                             ; preds = %2550
  %2554 = landingpad { ptr, i32 }
          cleanup
  br label %2556

2555:                                             ; preds = %2548, %2546
  %.pn1054 = phi { ptr, i32 } [ %2549, %2548 ], [ %2547, %2546 ]
  invoke void @__cxa_end_catch()
          to label %2556 unwind label %3068

.thread1493:                                      ; preds = %2541, %.critedge1241
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #11
  br label %2558

2556:                                             ; preds = %2553, %2555, %2542, %2544
  %.pn1058 = phi { ptr, i32 } [ %2545, %2544 ], [ %2543, %2542 ], [ %2554, %2553 ], [ %.pn1054, %2555 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #11
  br label %2557

2557:                                             ; preds = %2556, %2505
  %.pn1058.pn = phi { ptr, i32 } [ %.pn1058, %2556 ], [ %2506, %2505 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #11
  br label %2589

2558:                                             ; preds = %2551, %.thread1493, %.thread1488
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %279) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %279)
          to label %2559 unwind label %2564

2559:                                             ; preds = %2558
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %280) #11
  %2560 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %270)
          to label %2561 unwind label %2566

2561:                                             ; preds = %2559
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %280, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1113, ptr noundef %2560)
          to label %2562 unwind label %2566

2562:                                             ; preds = %2561
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef nonnull align 8 dereferenceable(8) %279)
          to label %2563 unwind label %2568

2563:                                             ; preds = %2562
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %280) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %280) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %279) #11
  br label %.thread1496

2564:                                             ; preds = %2558
  %2565 = landingpad { ptr, i32 }
          cleanup
  br label %2571

2566:                                             ; preds = %2561, %2559
  %2567 = landingpad { ptr, i32 }
          cleanup
  br label %2570

2568:                                             ; preds = %2562
  %2569 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %280) #11
  br label %2570

2570:                                             ; preds = %2568, %2566
  %.pn1061 = phi { ptr, i32 } [ %2569, %2568 ], [ %2567, %2566 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %280) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #11
  br label %2571

2571:                                             ; preds = %2570, %2564
  %.pn1061.pn = phi { ptr, i32 } [ %.pn1061, %2570 ], [ %2565, %2564 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %279) #11
  br label %2589

.thread1496:                                      ; preds = %2551, %2563
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %270) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %270) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %281) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %281)
  %2572 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %281)
  br i1 %2572, label %2573, label %2643

2573:                                             ; preds = %.thread1496
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %282) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %283) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %283)
          to label %2574 unwind label %2590

2574:                                             ; preds = %2573
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %283) #11
  %2575 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2576 unwind label %2592

2576:                                             ; preds = %2574
  br i1 %2575, label %2577, label %.critedge1245

2577:                                             ; preds = %2576
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %286, ptr noundef nonnull @.str.1088)
          to label %2578 unwind label %2592

2578:                                             ; preds = %2577
  %2579 = load ptr, ptr %286, align 8
  %2580 = getelementptr inbounds i8, ptr %286, i64 8
  %2581 = load i64, ptr %2580, align 8
  %2582 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2579, i64 %2581)
  %2583 = extractvalue { ptr, i64 } %2582, 0
  %2584 = extractvalue { ptr, i64 } %2582, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJyiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %285, ptr %2583, i64 %2584)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %287) #11
  store i64 42, ptr %287, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %288) #11
  store i32 2, ptr %288, align 4, !tbaa !14
  %2585 = load ptr, ptr %285, align 8
  %2586 = getelementptr inbounds i8, ptr %285, i64 8
  %2587 = load i64, ptr %2586, align 8
  invoke void @_ZN3fmt3v106formatIJyiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %284, ptr %2585, i64 %2587, ptr noundef nonnull align 8 dereferenceable(8) %287, ptr noundef nonnull align 4 dereferenceable(4) %288)
          to label %2588 unwind label %2594

2588:                                             ; preds = %2578
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %288) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %287) #11
  br label %.critedge1245

2589:                                             ; preds = %2571, %2557
  %.pn1061.pn.pn = phi { ptr, i32 } [ %.pn1061.pn, %2571 ], [ %.pn1058.pn, %2557 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %270) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %270) #11
  br label %3067

2590:                                             ; preds = %2573
  %2591 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %283) #11
  br label %2642

2592:                                             ; preds = %2577, %2574
  %2593 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2596

2594:                                             ; preds = %2578
  %2595 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %288) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %287) #11
  br label %2596

2596:                                             ; preds = %2594, %2592
  %.pn1065 = phi { ptr, i32 } [ %2595, %2594 ], [ %2593, %2592 ]
  %.208 = extractvalue { ptr, i32 } %.pn1065, 0
  %.208553 = extractvalue { ptr, i32 } %.pn1065, 1
  %2597 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2598 = icmp eq i32 %.208553, %2597
  %2599 = call ptr @__cxa_begin_catch(ptr %.208) #11
  br i1 %2598, label %2600, label %2624

2600:                                             ; preds = %2596
  %2601 = load ptr, ptr %2599, align 8, !tbaa !9
  %2602 = getelementptr inbounds i8, ptr %2601, i64 16
  %2603 = load ptr, ptr %2602, align 8
  %2604 = call noundef ptr %2603(ptr noundef nonnull align 8 dereferenceable(16) %2599) #11
  %2605 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef %2604)
          to label %2606 unwind label %2631

2606:                                             ; preds = %2600
  br i1 %2605, label %2607, label %2635

2607:                                             ; preds = %2606
  %2608 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %281, ptr noundef nonnull align 1 dereferenceable(96) @.str.1151)
          to label %2609 unwind label %2631

2609:                                             ; preds = %2607
  %2610 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2608, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2611 unwind label %2631

2611:                                             ; preds = %2609
  %2612 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2610, ptr noundef nonnull align 8 dereferenceable(32) %282)
          to label %2613 unwind label %2631

2613:                                             ; preds = %2611
  %2614 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2612, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2615 unwind label %2631

2615:                                             ; preds = %2613
  %2616 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2614, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2617 unwind label %2631

2617:                                             ; preds = %2615
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %289) #11
  %2618 = load ptr, ptr %2599, align 8, !tbaa !9
  %2619 = getelementptr inbounds i8, ptr %2618, i64 16
  %2620 = load ptr, ptr %2619, align 8
  %2621 = call noundef ptr %2620(ptr noundef nonnull align 8 dereferenceable(16) %2599) #11
  store ptr %2621, ptr %289, align 8, !tbaa !11
  %2622 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2616, ptr noundef nonnull align 8 dereferenceable(8) %289)
          to label %2623 unwind label %2633

2623:                                             ; preds = %2617
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %289) #11
  br label %2635

2624:                                             ; preds = %2596
  %2625 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %281, ptr noundef nonnull align 1 dereferenceable(139) @.str.1150)
          to label %2626 unwind label %2627

2626:                                             ; preds = %2624
  invoke void @__cxa_end_catch()
          to label %.thread1501 unwind label %2629

2627:                                             ; preds = %2624
  %2628 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2641 unwind label %3068

2629:                                             ; preds = %.critedge1245, %2626
  %2630 = landingpad { ptr, i32 }
          cleanup
  br label %2641

2631:                                             ; preds = %2615, %2613, %2611, %2609, %2607, %2600
  %2632 = landingpad { ptr, i32 }
          cleanup
  br label %2640

2633:                                             ; preds = %2617
  %2634 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %289) #11
  br label %2640

2635:                                             ; preds = %2606, %2623
  invoke void @__cxa_end_catch()
          to label %2636 unwind label %2638

2636:                                             ; preds = %2635
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %282) #11
  br i1 %2605, label %2643, label %.thread1504

.critedge1245:                                    ; preds = %2576, %2588
  %2637 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %281, ptr noundef nonnull align 1 dereferenceable(130) @.str.1152)
          to label %.thread1501 unwind label %2629

2638:                                             ; preds = %2635
  %2639 = landingpad { ptr, i32 }
          cleanup
  br label %2641

2640:                                             ; preds = %2633, %2631
  %.pn1067 = phi { ptr, i32 } [ %2634, %2633 ], [ %2632, %2631 ]
  invoke void @__cxa_end_catch()
          to label %2641 unwind label %3068

.thread1501:                                      ; preds = %2626, %.critedge1245
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %282) #11
  br label %2643

2641:                                             ; preds = %2638, %2640, %2627, %2629
  %.pn1071 = phi { ptr, i32 } [ %2630, %2629 ], [ %2628, %2627 ], [ %2639, %2638 ], [ %.pn1067, %2640 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #11
  br label %2642

2642:                                             ; preds = %2641, %2590
  %.pn1071.pn = phi { ptr, i32 } [ %.pn1071, %2641 ], [ %2591, %2590 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %282) #11
  br label %2674

2643:                                             ; preds = %2636, %.thread1501, %.thread1496
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %290) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %290)
          to label %2644 unwind label %2649

2644:                                             ; preds = %2643
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %291) #11
  %2645 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %281)
          to label %2646 unwind label %2651

2646:                                             ; preds = %2644
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %291, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1115, ptr noundef %2645)
          to label %2647 unwind label %2651

2647:                                             ; preds = %2646
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull align 8 dereferenceable(8) %290)
          to label %2648 unwind label %2653

2648:                                             ; preds = %2647
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %291) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %290) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %290) #11
  br label %.thread1504

2649:                                             ; preds = %2643
  %2650 = landingpad { ptr, i32 }
          cleanup
  br label %2656

2651:                                             ; preds = %2646, %2644
  %2652 = landingpad { ptr, i32 }
          cleanup
  br label %2655

2653:                                             ; preds = %2647
  %2654 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #11
  br label %2655

2655:                                             ; preds = %2653, %2651
  %.pn1074 = phi { ptr, i32 } [ %2654, %2653 ], [ %2652, %2651 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %291) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %290) #11
  br label %2656

2656:                                             ; preds = %2655, %2649
  %.pn1074.pn = phi { ptr, i32 } [ %.pn1074, %2655 ], [ %2650, %2649 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %290) #11
  br label %2674

.thread1504:                                      ; preds = %2636, %2648
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %281) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %281) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %292) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %292)
  %2657 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %292)
  br i1 %2657, label %2658, label %2728

2658:                                             ; preds = %.thread1504
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %293) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %294) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %294) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %294)
          to label %2659 unwind label %2675

2659:                                             ; preds = %2658
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %294) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %294) #11
  %2660 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2661 unwind label %2677

2661:                                             ; preds = %2659
  br i1 %2660, label %2662, label %.critedge1249

2662:                                             ; preds = %2661
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %297, ptr noundef nonnull @.str.1122)
          to label %2663 unwind label %2677

2663:                                             ; preds = %2662
  %2664 = load ptr, ptr %297, align 8
  %2665 = getelementptr inbounds i8, ptr %297, i64 8
  %2666 = load i64, ptr %2665, align 8
  %2667 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2664, i64 %2666)
  %2668 = extractvalue { ptr, i64 } %2667, 0
  %2669 = extractvalue { ptr, i64 } %2667, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJyiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %296, ptr %2668, i64 %2669)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %298) #11
  store i64 42, ptr %298, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %299) #11
  store i32 2, ptr %299, align 4, !tbaa !14
  %2670 = load ptr, ptr %296, align 8
  %2671 = getelementptr inbounds i8, ptr %296, i64 8
  %2672 = load i64, ptr %2671, align 8
  invoke void @_ZN3fmt3v106formatIJyiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %295, ptr %2670, i64 %2672, ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef nonnull align 4 dereferenceable(4) %299)
          to label %2673 unwind label %2679

2673:                                             ; preds = %2663
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %295) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %299) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %298) #11
  br label %.critedge1249

2674:                                             ; preds = %2656, %2642
  %.pn1074.pn.pn = phi { ptr, i32 } [ %.pn1074.pn, %2656 ], [ %.pn1071.pn, %2642 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %281) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %281) #11
  br label %3067

2675:                                             ; preds = %2658
  %2676 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %294) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %294) #11
  br label %2727

2677:                                             ; preds = %2662, %2659
  %2678 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2681

2679:                                             ; preds = %2663
  %2680 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %299) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %298) #11
  br label %2681

2681:                                             ; preds = %2679, %2677
  %.pn1078 = phi { ptr, i32 } [ %2680, %2679 ], [ %2678, %2677 ]
  %.216 = extractvalue { ptr, i32 } %.pn1078, 0
  %.216561 = extractvalue { ptr, i32 } %.pn1078, 1
  %2682 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2683 = icmp eq i32 %.216561, %2682
  %2684 = call ptr @__cxa_begin_catch(ptr %.216) #11
  br i1 %2683, label %2685, label %2709

2685:                                             ; preds = %2681
  %2686 = load ptr, ptr %2684, align 8, !tbaa !9
  %2687 = getelementptr inbounds i8, ptr %2686, i64 16
  %2688 = load ptr, ptr %2687, align 8
  %2689 = call noundef ptr %2688(ptr noundef nonnull align 8 dereferenceable(16) %2684) #11
  %2690 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef %2689)
          to label %2691 unwind label %2716

2691:                                             ; preds = %2685
  br i1 %2690, label %2692, label %2720

2692:                                             ; preds = %2691
  %2693 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA97_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %292, ptr noundef nonnull align 1 dereferenceable(97) @.str.1154)
          to label %2694 unwind label %2716

2694:                                             ; preds = %2692
  %2695 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2693, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2696 unwind label %2716

2696:                                             ; preds = %2694
  %2697 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2695, ptr noundef nonnull align 8 dereferenceable(32) %293)
          to label %2698 unwind label %2716

2698:                                             ; preds = %2696
  %2699 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2697, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2700 unwind label %2716

2700:                                             ; preds = %2698
  %2701 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2699, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2702 unwind label %2716

2702:                                             ; preds = %2700
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %300) #11
  %2703 = load ptr, ptr %2684, align 8, !tbaa !9
  %2704 = getelementptr inbounds i8, ptr %2703, i64 16
  %2705 = load ptr, ptr %2704, align 8
  %2706 = call noundef ptr %2705(ptr noundef nonnull align 8 dereferenceable(16) %2684) #11
  store ptr %2706, ptr %300, align 8, !tbaa !11
  %2707 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2701, ptr noundef nonnull align 8 dereferenceable(8) %300)
          to label %2708 unwind label %2718

2708:                                             ; preds = %2702
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #11
  br label %2720

2709:                                             ; preds = %2681
  %2710 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA140_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %292, ptr noundef nonnull align 1 dereferenceable(140) @.str.1153)
          to label %2711 unwind label %2712

2711:                                             ; preds = %2709
  invoke void @__cxa_end_catch()
          to label %.thread1509 unwind label %2714

2712:                                             ; preds = %2709
  %2713 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2726 unwind label %3068

2714:                                             ; preds = %.critedge1249, %2711
  %2715 = landingpad { ptr, i32 }
          cleanup
  br label %2726

2716:                                             ; preds = %2700, %2698, %2696, %2694, %2692, %2685
  %2717 = landingpad { ptr, i32 }
          cleanup
  br label %2725

2718:                                             ; preds = %2702
  %2719 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #11
  br label %2725

2720:                                             ; preds = %2691, %2708
  invoke void @__cxa_end_catch()
          to label %2721 unwind label %2723

2721:                                             ; preds = %2720
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %293) #11
  br i1 %2690, label %2728, label %.thread1512

.critedge1249:                                    ; preds = %2661, %2673
  %2722 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %292, ptr noundef nonnull align 1 dereferenceable(131) @.str.1155)
          to label %.thread1509 unwind label %2714

2723:                                             ; preds = %2720
  %2724 = landingpad { ptr, i32 }
          cleanup
  br label %2726

2725:                                             ; preds = %2718, %2716
  %.pn1080 = phi { ptr, i32 } [ %2719, %2718 ], [ %2717, %2716 ]
  invoke void @__cxa_end_catch()
          to label %2726 unwind label %3068

.thread1509:                                      ; preds = %2711, %.critedge1249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %293) #11
  br label %2728

2726:                                             ; preds = %2723, %2725, %2712, %2714
  %.pn1084 = phi { ptr, i32 } [ %2715, %2714 ], [ %2713, %2712 ], [ %2724, %2723 ], [ %.pn1080, %2725 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #11
  br label %2727

2727:                                             ; preds = %2726, %2675
  %.pn1084.pn = phi { ptr, i32 } [ %.pn1084, %2726 ], [ %2676, %2675 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %293) #11
  br label %2759

2728:                                             ; preds = %2721, %.thread1509, %.thread1504
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %301) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %301)
          to label %2729 unwind label %2734

2729:                                             ; preds = %2728
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %302) #11
  %2730 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %292)
          to label %2731 unwind label %2736

2731:                                             ; preds = %2729
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %302, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1117, ptr noundef %2730)
          to label %2732 unwind label %2736

2732:                                             ; preds = %2731
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef nonnull align 8 dereferenceable(8) %301)
          to label %2733 unwind label %2738

2733:                                             ; preds = %2732
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %302) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %301) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %301) #11
  br label %.thread1512

2734:                                             ; preds = %2728
  %2735 = landingpad { ptr, i32 }
          cleanup
  br label %2741

2736:                                             ; preds = %2731, %2729
  %2737 = landingpad { ptr, i32 }
          cleanup
  br label %2740

2738:                                             ; preds = %2732
  %2739 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #11
  br label %2740

2740:                                             ; preds = %2738, %2736
  %.pn1087 = phi { ptr, i32 } [ %2739, %2738 ], [ %2737, %2736 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %302) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %301) #11
  br label %2741

2741:                                             ; preds = %2740, %2734
  %.pn1087.pn = phi { ptr, i32 } [ %.pn1087, %2740 ], [ %2735, %2734 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %301) #11
  br label %2759

.thread1512:                                      ; preds = %2721, %2733
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %292) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %292) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %303) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %303)
  %2742 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %303)
  br i1 %2742, label %2743, label %2813

2743:                                             ; preds = %.thread1512
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %304) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %305) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %305) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %304, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %305)
          to label %2744 unwind label %2760

2744:                                             ; preds = %2743
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %305) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %305) #11
  %2745 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2746 unwind label %2762

2746:                                             ; preds = %2744
  br i1 %2745, label %2747, label %.critedge1253

2747:                                             ; preds = %2746
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %308, ptr noundef nonnull @.str.1156)
          to label %2748 unwind label %2762

2748:                                             ; preds = %2747
  %2749 = load ptr, ptr %308, align 8
  %2750 = getelementptr inbounds i8, ptr %308, i64 8
  %2751 = load i64, ptr %2750, align 8
  %2752 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2749, i64 %2751)
  %2753 = extractvalue { ptr, i64 } %2752, 0
  %2754 = extractvalue { ptr, i64 } %2752, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJciEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %307, ptr %2753, i64 %2754)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %309) #11
  store i8 120, ptr %309, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %310) #11
  store i32 0, ptr %310, align 4, !tbaa !14
  %2755 = load ptr, ptr %307, align 8
  %2756 = getelementptr inbounds i8, ptr %307, i64 8
  %2757 = load i64, ptr %2756, align 8
  invoke void @_ZN3fmt3v106formatIJciEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %306, ptr %2755, i64 %2757, ptr noundef nonnull align 1 dereferenceable(1) %309, ptr noundef nonnull align 4 dereferenceable(4) %310)
          to label %2758 unwind label %2764

2758:                                             ; preds = %2748
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %310) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %309) #11
  br label %.critedge1253

2759:                                             ; preds = %2741, %2727
  %.pn1087.pn.pn = phi { ptr, i32 } [ %.pn1087.pn, %2741 ], [ %.pn1084.pn, %2727 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %292) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %292) #11
  br label %3067

2760:                                             ; preds = %2743
  %2761 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %305) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %305) #11
  br label %2812

2762:                                             ; preds = %2747, %2744
  %2763 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2766

2764:                                             ; preds = %2748
  %2765 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %310) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %309) #11
  br label %2766

2766:                                             ; preds = %2764, %2762
  %.pn1091 = phi { ptr, i32 } [ %2765, %2764 ], [ %2763, %2762 ]
  %.224 = extractvalue { ptr, i32 } %.pn1091, 0
  %.224569 = extractvalue { ptr, i32 } %.pn1091, 1
  %2767 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2768 = icmp eq i32 %.224569, %2767
  %2769 = call ptr @__cxa_begin_catch(ptr %.224) #11
  br i1 %2768, label %2770, label %2794

2770:                                             ; preds = %2766
  %2771 = load ptr, ptr %2769, align 8, !tbaa !9
  %2772 = getelementptr inbounds i8, ptr %2771, i64 16
  %2773 = load ptr, ptr %2772, align 8
  %2774 = call noundef ptr %2773(ptr noundef nonnull align 8 dereferenceable(16) %2769) #11
  %2775 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %304, ptr noundef %2774)
          to label %2776 unwind label %2801

2776:                                             ; preds = %2770
  br i1 %2775, label %2777, label %2805

2777:                                             ; preds = %2776
  %2778 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA95_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %303, ptr noundef nonnull align 1 dereferenceable(95) @.str.1158)
          to label %2779 unwind label %2801

2779:                                             ; preds = %2777
  %2780 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2778, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2781 unwind label %2801

2781:                                             ; preds = %2779
  %2782 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2780, ptr noundef nonnull align 8 dereferenceable(32) %304)
          to label %2783 unwind label %2801

2783:                                             ; preds = %2781
  %2784 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2782, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2785 unwind label %2801

2785:                                             ; preds = %2783
  %2786 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2784, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2787 unwind label %2801

2787:                                             ; preds = %2785
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %311) #11
  %2788 = load ptr, ptr %2769, align 8, !tbaa !9
  %2789 = getelementptr inbounds i8, ptr %2788, i64 16
  %2790 = load ptr, ptr %2789, align 8
  %2791 = call noundef ptr %2790(ptr noundef nonnull align 8 dereferenceable(16) %2769) #11
  store ptr %2791, ptr %311, align 8, !tbaa !11
  %2792 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2786, ptr noundef nonnull align 8 dereferenceable(8) %311)
          to label %2793 unwind label %2803

2793:                                             ; preds = %2787
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %311) #11
  br label %2805

2794:                                             ; preds = %2766
  %2795 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA138_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %303, ptr noundef nonnull align 1 dereferenceable(138) @.str.1157)
          to label %2796 unwind label %2797

2796:                                             ; preds = %2794
  invoke void @__cxa_end_catch()
          to label %.thread1517 unwind label %2799

2797:                                             ; preds = %2794
  %2798 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2811 unwind label %3068

2799:                                             ; preds = %.critedge1253, %2796
  %2800 = landingpad { ptr, i32 }
          cleanup
  br label %2811

2801:                                             ; preds = %2785, %2783, %2781, %2779, %2777, %2770
  %2802 = landingpad { ptr, i32 }
          cleanup
  br label %2810

2803:                                             ; preds = %2787
  %2804 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %311) #11
  br label %2810

2805:                                             ; preds = %2776, %2793
  invoke void @__cxa_end_catch()
          to label %2806 unwind label %2808

2806:                                             ; preds = %2805
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %304) #11
  br i1 %2775, label %2813, label %.thread1520

.critedge1253:                                    ; preds = %2746, %2758
  %2807 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %303, ptr noundef nonnull align 1 dereferenceable(129) @.str.1159)
          to label %.thread1517 unwind label %2799

2808:                                             ; preds = %2805
  %2809 = landingpad { ptr, i32 }
          cleanup
  br label %2811

2810:                                             ; preds = %2803, %2801
  %.pn1093 = phi { ptr, i32 } [ %2804, %2803 ], [ %2802, %2801 ]
  invoke void @__cxa_end_catch()
          to label %2811 unwind label %3068

.thread1517:                                      ; preds = %2796, %.critedge1253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %304) #11
  br label %2813

2811:                                             ; preds = %2808, %2810, %2797, %2799
  %.pn1097 = phi { ptr, i32 } [ %2800, %2799 ], [ %2798, %2797 ], [ %2809, %2808 ], [ %.pn1093, %2810 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #11
  br label %2812

2812:                                             ; preds = %2811, %2760
  %.pn1097.pn = phi { ptr, i32 } [ %.pn1097, %2811 ], [ %2761, %2760 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %304) #11
  br label %2832

2813:                                             ; preds = %2806, %.thread1517, %.thread1512
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %312) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %312)
          to label %2814 unwind label %2819

2814:                                             ; preds = %2813
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %313) #11
  %2815 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %303)
          to label %2816 unwind label %2821

2816:                                             ; preds = %2814
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %313, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1119, ptr noundef %2815)
          to label %2817 unwind label %2821

2817:                                             ; preds = %2816
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef nonnull align 8 dereferenceable(8) %312)
          to label %2818 unwind label %2823

2818:                                             ; preds = %2817
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %313) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %313) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %312) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %312) #11
  br label %.thread1520

2819:                                             ; preds = %2813
  %2820 = landingpad { ptr, i32 }
          cleanup
  br label %2826

2821:                                             ; preds = %2816, %2814
  %2822 = landingpad { ptr, i32 }
          cleanup
  br label %2825

2823:                                             ; preds = %2817
  %2824 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %313) #11
  br label %2825

2825:                                             ; preds = %2823, %2821
  %.pn1100 = phi { ptr, i32 } [ %2824, %2823 ], [ %2822, %2821 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %313) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %312) #11
  br label %2826

2826:                                             ; preds = %2825, %2819
  %.pn1100.pn = phi { ptr, i32 } [ %.pn1100, %2825 ], [ %2820, %2819 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %312) #11
  br label %2832

.thread1520:                                      ; preds = %2806, %2818
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %303) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %303) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %314) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %315) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %316, ptr noundef nonnull align 1 dereferenceable(9) @.str.1088)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %317) #11
  store double 1.234500e+00, ptr %317, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %318) #11
  store i32 2, ptr %318, align 4, !tbaa !14
  %2827 = load ptr, ptr %316, align 8
  %2828 = getelementptr inbounds i8, ptr %316, i64 8
  %2829 = load i64, ptr %2828, align 8
  call void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %315, ptr %2827, i64 %2829, ptr noundef nonnull align 8 dereferenceable(8) %317, ptr noundef nonnull align 4 dereferenceable(4) %318)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %314, ptr noundef nonnull @.str.1160, ptr noundef nonnull @.str.392, ptr noundef nonnull align 8 dereferenceable(32) %315, ptr noundef nonnull align 1 dereferenceable(4) @.str.394)
          to label %2830 unwind label %2833

2830:                                             ; preds = %.thread1520
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %318) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %317) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %315) #11
  %2831 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %314)
  br i1 %2831, label %2849, label %2835

2832:                                             ; preds = %2826, %2812
  %.pn1100.pn.pn = phi { ptr, i32 } [ %.pn1100.pn, %2826 ], [ %.pn1097.pn, %2812 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %303) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %303) #11
  br label %3067

2833:                                             ; preds = %.thread1520
  %2834 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %318) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %317) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %315) #11
  br label %2855

2835:                                             ; preds = %2830
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %319) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %319)
          to label %2836 unwind label %2841

2836:                                             ; preds = %2835
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %320) #11
  %2837 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %314)
          to label %2838 unwind label %2843

2838:                                             ; preds = %2836
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %320, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1120, ptr noundef %2837)
          to label %2839 unwind label %2843

2839:                                             ; preds = %2838
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %320, ptr noundef nonnull align 8 dereferenceable(8) %319)
          to label %2840 unwind label %2845

2840:                                             ; preds = %2839
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %320) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %320) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %319) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %319) #11
  br label %2849

2841:                                             ; preds = %2835
  %2842 = landingpad { ptr, i32 }
          cleanup
  br label %2848

2843:                                             ; preds = %2838, %2836
  %2844 = landingpad { ptr, i32 }
          cleanup
  br label %2847

2845:                                             ; preds = %2839
  %2846 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %320) #11
  br label %2847

2847:                                             ; preds = %2845, %2843
  %.pn1104 = phi { ptr, i32 } [ %2846, %2845 ], [ %2844, %2843 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %320) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %319) #11
  br label %2848

2848:                                             ; preds = %2847, %2841
  %.pn1104.pn = phi { ptr, i32 } [ %.pn1104, %2847 ], [ %2842, %2841 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %319) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %314) #11
  br label %2855

2849:                                             ; preds = %2830, %2840
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %314) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %314) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %321) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %322) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJieEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %323, ptr noundef nonnull align 1 dereferenceable(9) @.str.1162)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %324) #11
  store i32 2, ptr %324, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %325) #11
  store x86_fp80 0xK3FFF9E04189374BC6A7F, ptr %325, align 16, !tbaa !20
  %2850 = load ptr, ptr %323, align 8
  %2851 = getelementptr inbounds i8, ptr %323, i64 8
  %2852 = load i64, ptr %2851, align 8
  call void @_ZN3fmt3v106formatIJieEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %322, ptr %2850, i64 %2852, ptr noundef nonnull align 4 dereferenceable(4) %324, ptr noundef nonnull align 16 dereferenceable(16) %325)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %321, ptr noundef nonnull @.str.1161, ptr noundef nonnull @.str.392, ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef nonnull align 1 dereferenceable(4) @.str.394)
          to label %2853 unwind label %2856

2853:                                             ; preds = %2849
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %325) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %324) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %322) #11
  %2854 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %321)
  br i1 %2854, label %2872, label %2858

2855:                                             ; preds = %2848, %2833
  %.pn1104.pn.pn = phi { ptr, i32 } [ %.pn1104.pn, %2848 ], [ %2834, %2833 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %314) #11
  br label %3067

2856:                                             ; preds = %2849
  %2857 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %325) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %324) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %322) #11
  br label %2890

2858:                                             ; preds = %2853
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %326) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %326)
          to label %2859 unwind label %2864

2859:                                             ; preds = %2858
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %327) #11
  %2860 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %321)
          to label %2861 unwind label %2866

2861:                                             ; preds = %2859
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %327, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1121, ptr noundef %2860)
          to label %2862 unwind label %2866

2862:                                             ; preds = %2861
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %327, ptr noundef nonnull align 8 dereferenceable(8) %326)
          to label %2863 unwind label %2868

2863:                                             ; preds = %2862
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %327) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %327) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %326) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %326) #11
  br label %2872

2864:                                             ; preds = %2858
  %2865 = landingpad { ptr, i32 }
          cleanup
  br label %2871

2866:                                             ; preds = %2861, %2859
  %2867 = landingpad { ptr, i32 }
          cleanup
  br label %2870

2868:                                             ; preds = %2862
  %2869 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %327) #11
  br label %2870

2870:                                             ; preds = %2868, %2866
  %.pn1108 = phi { ptr, i32 } [ %2869, %2868 ], [ %2867, %2866 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %327) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %326) #11
  br label %2871

2871:                                             ; preds = %2870, %2864
  %.pn1108.pn = phi { ptr, i32 } [ %.pn1108, %2870 ], [ %2865, %2864 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %326) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %321) #11
  br label %2890

2872:                                             ; preds = %2853, %2863
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %321) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %321) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %328) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %328)
  %2873 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %328)
  br i1 %2873, label %2874, label %2944

2874:                                             ; preds = %2872
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %329) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %330) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %330)
          to label %2875 unwind label %2891

2875:                                             ; preds = %2874
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %330) #11
  %2876 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2877 unwind label %2893

2877:                                             ; preds = %2875
  br i1 %2876, label %2878, label %.critedge1257

2878:                                             ; preds = %2877
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %333, ptr noundef nonnull @.str.1088)
          to label %2879 unwind label %2893

2879:                                             ; preds = %2878
  %2880 = load ptr, ptr %333, align 8
  %2881 = getelementptr inbounds i8, ptr %333, i64 8
  %2882 = load i64, ptr %2881, align 8
  %2883 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2880, i64 %2882)
  %2884 = extractvalue { ptr, i64 } %2883, 0
  %2885 = extractvalue { ptr, i64 } %2883, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJPviEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %332, ptr %2884, i64 %2885)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %334) #11
  store ptr inttoptr (i64 51966 to ptr), ptr %334, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %335) #11
  store i32 2, ptr %335, align 4, !tbaa !14
  %2886 = load ptr, ptr %332, align 8
  %2887 = getelementptr inbounds i8, ptr %332, i64 8
  %2888 = load i64, ptr %2887, align 8
  invoke void @_ZN3fmt3v106formatIJPviEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %331, ptr %2886, i64 %2888, ptr noundef nonnull align 8 dereferenceable(8) %334, ptr noundef nonnull align 4 dereferenceable(4) %335)
          to label %2889 unwind label %2895

2889:                                             ; preds = %2879
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %335) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %334) #11
  br label %.critedge1257

2890:                                             ; preds = %2871, %2856
  %.pn1108.pn.pn = phi { ptr, i32 } [ %.pn1108.pn, %2871 ], [ %2857, %2856 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %321) #11
  br label %3067

2891:                                             ; preds = %2874
  %2892 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %330) #11
  br label %2943

2893:                                             ; preds = %2878, %2875
  %2894 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2897

2895:                                             ; preds = %2879
  %2896 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %335) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %334) #11
  br label %2897

2897:                                             ; preds = %2895, %2893
  %.pn1112 = phi { ptr, i32 } [ %2896, %2895 ], [ %2894, %2893 ]
  %.238 = extractvalue { ptr, i32 } %.pn1112, 0
  %.238583 = extractvalue { ptr, i32 } %.pn1112, 1
  %2898 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2899 = icmp eq i32 %.238583, %2898
  %2900 = call ptr @__cxa_begin_catch(ptr %.238) #11
  br i1 %2899, label %2901, label %2925

2901:                                             ; preds = %2897
  %2902 = load ptr, ptr %2900, align 8, !tbaa !9
  %2903 = getelementptr inbounds i8, ptr %2902, i64 16
  %2904 = load ptr, ptr %2903, align 8
  %2905 = call noundef ptr %2904(ptr noundef nonnull align 8 dereferenceable(16) %2900) #11
  %2906 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef %2905)
          to label %2907 unwind label %2932

2907:                                             ; preds = %2901
  br i1 %2906, label %2908, label %2936

2908:                                             ; preds = %2907
  %2909 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %328, ptr noundef nonnull align 1 dereferenceable(122) @.str.1164)
          to label %2910 unwind label %2932

2910:                                             ; preds = %2908
  %2911 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2909, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2912 unwind label %2932

2912:                                             ; preds = %2910
  %2913 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2911, ptr noundef nonnull align 8 dereferenceable(32) %329)
          to label %2914 unwind label %2932

2914:                                             ; preds = %2912
  %2915 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2913, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2916 unwind label %2932

2916:                                             ; preds = %2914
  %2917 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2915, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2918 unwind label %2932

2918:                                             ; preds = %2916
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %336) #11
  %2919 = load ptr, ptr %2900, align 8, !tbaa !9
  %2920 = getelementptr inbounds i8, ptr %2919, i64 16
  %2921 = load ptr, ptr %2920, align 8
  %2922 = call noundef ptr %2921(ptr noundef nonnull align 8 dereferenceable(16) %2900) #11
  store ptr %2922, ptr %336, align 8, !tbaa !11
  %2923 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2917, ptr noundef nonnull align 8 dereferenceable(8) %336)
          to label %2924 unwind label %2934

2924:                                             ; preds = %2918
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %336) #11
  br label %2936

2925:                                             ; preds = %2897
  %2926 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA165_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %328, ptr noundef nonnull align 1 dereferenceable(165) @.str.1163)
          to label %2927 unwind label %2928

2927:                                             ; preds = %2925
  invoke void @__cxa_end_catch()
          to label %.thread1525 unwind label %2930

2928:                                             ; preds = %2925
  %2929 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2942 unwind label %3068

2930:                                             ; preds = %.critedge1257, %2927
  %2931 = landingpad { ptr, i32 }
          cleanup
  br label %2942

2932:                                             ; preds = %2916, %2914, %2912, %2910, %2908, %2901
  %2933 = landingpad { ptr, i32 }
          cleanup
  br label %2941

2934:                                             ; preds = %2918
  %2935 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %336) #11
  br label %2941

2936:                                             ; preds = %2907, %2924
  invoke void @__cxa_end_catch()
          to label %2937 unwind label %2939

2937:                                             ; preds = %2936
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #11
  br i1 %2906, label %2944, label %.thread1528

.critedge1257:                                    ; preds = %2877, %2889
  %2938 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA156_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %328, ptr noundef nonnull align 1 dereferenceable(156) @.str.1165)
          to label %.thread1525 unwind label %2930

2939:                                             ; preds = %2936
  %2940 = landingpad { ptr, i32 }
          cleanup
  br label %2942

2941:                                             ; preds = %2934, %2932
  %.pn1114 = phi { ptr, i32 } [ %2935, %2934 ], [ %2933, %2932 ]
  invoke void @__cxa_end_catch()
          to label %2942 unwind label %3068

.thread1525:                                      ; preds = %2927, %.critedge1257
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #11
  br label %2944

2942:                                             ; preds = %2939, %2941, %2928, %2930
  %.pn1118 = phi { ptr, i32 } [ %2931, %2930 ], [ %2929, %2928 ], [ %2940, %2939 ], [ %.pn1114, %2941 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #11
  br label %2943

2943:                                             ; preds = %2942, %2891
  %.pn1118.pn = phi { ptr, i32 } [ %.pn1118, %2942 ], [ %2892, %2891 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #11
  br label %2975

2944:                                             ; preds = %2937, %.thread1525, %2872
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %337) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %337)
          to label %2945 unwind label %2950

2945:                                             ; preds = %2944
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %338) #11
  %2946 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %328)
          to label %2947 unwind label %2952

2947:                                             ; preds = %2945
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %338, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1125, ptr noundef %2946)
          to label %2948 unwind label %2952

2948:                                             ; preds = %2947
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %338, ptr noundef nonnull align 8 dereferenceable(8) %337)
          to label %2949 unwind label %2954

2949:                                             ; preds = %2948
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %338) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %338) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %337) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %337) #11
  br label %.thread1528

2950:                                             ; preds = %2944
  %2951 = landingpad { ptr, i32 }
          cleanup
  br label %2957

2952:                                             ; preds = %2947, %2945
  %2953 = landingpad { ptr, i32 }
          cleanup
  br label %2956

2954:                                             ; preds = %2948
  %2955 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %338) #11
  br label %2956

2956:                                             ; preds = %2954, %2952
  %.pn1121 = phi { ptr, i32 } [ %2955, %2954 ], [ %2953, %2952 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %338) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %337) #11
  br label %2957

2957:                                             ; preds = %2956, %2950
  %.pn1121.pn = phi { ptr, i32 } [ %.pn1121, %2956 ], [ %2951, %2950 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %337) #11
  br label %2975

.thread1528:                                      ; preds = %2937, %2949
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %328) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %328) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %339) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %339)
  %2958 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %339)
  br i1 %2958, label %2959, label %3029

2959:                                             ; preds = %.thread1528
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %340) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %341) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %341)
          to label %2960 unwind label %2976

2960:                                             ; preds = %2959
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %341) #11
  %2961 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2962 unwind label %2978

2962:                                             ; preds = %2960
  br i1 %2961, label %2963, label %.critedge1261

2963:                                             ; preds = %2962
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %344, ptr noundef nonnull @.str.1122)
          to label %2964 unwind label %2978

2964:                                             ; preds = %2963
  %2965 = load ptr, ptr %344, align 8
  %2966 = getelementptr inbounds i8, ptr %344, i64 8
  %2967 = load i64, ptr %2966, align 8
  %2968 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2965, i64 %2967)
  %2969 = extractvalue { ptr, i64 } %2968, 0
  %2970 = extractvalue { ptr, i64 } %2968, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJPviEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %343, ptr %2969, i64 %2970)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %345) #11
  store ptr inttoptr (i64 51966 to ptr), ptr %345, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %346) #11
  store i32 2, ptr %346, align 4, !tbaa !14
  %2971 = load ptr, ptr %343, align 8
  %2972 = getelementptr inbounds i8, ptr %343, i64 8
  %2973 = load i64, ptr %2972, align 8
  invoke void @_ZN3fmt3v106formatIJPviEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %342, ptr %2971, i64 %2973, ptr noundef nonnull align 8 dereferenceable(8) %345, ptr noundef nonnull align 4 dereferenceable(4) %346)
          to label %2974 unwind label %2980

2974:                                             ; preds = %2964
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %346) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %345) #11
  br label %.critedge1261

2975:                                             ; preds = %2957, %2943
  %.pn1121.pn.pn = phi { ptr, i32 } [ %.pn1121.pn, %2957 ], [ %.pn1118.pn, %2943 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %328) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %328) #11
  br label %3067

2976:                                             ; preds = %2959
  %2977 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %341) #11
  br label %3028

2978:                                             ; preds = %2963, %2960
  %2979 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2982

2980:                                             ; preds = %2964
  %2981 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %346) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %345) #11
  br label %2982

2982:                                             ; preds = %2980, %2978
  %.pn1125 = phi { ptr, i32 } [ %2981, %2980 ], [ %2979, %2978 ]
  %.246 = extractvalue { ptr, i32 } %.pn1125, 0
  %.246591 = extractvalue { ptr, i32 } %.pn1125, 1
  %2983 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2984 = icmp eq i32 %.246591, %2983
  %2985 = call ptr @__cxa_begin_catch(ptr %.246) #11
  br i1 %2984, label %2986, label %3010

2986:                                             ; preds = %2982
  %2987 = load ptr, ptr %2985, align 8, !tbaa !9
  %2988 = getelementptr inbounds i8, ptr %2987, i64 16
  %2989 = load ptr, ptr %2988, align 8
  %2990 = call noundef ptr %2989(ptr noundef nonnull align 8 dereferenceable(16) %2985) #11
  %2991 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef %2990)
          to label %2992 unwind label %3017

2992:                                             ; preds = %2986
  br i1 %2991, label %2993, label %3021

2993:                                             ; preds = %2992
  %2994 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %339, ptr noundef nonnull align 1 dereferenceable(123) @.str.1167)
          to label %2995 unwind label %3017

2995:                                             ; preds = %2993
  %2996 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2994, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2997 unwind label %3017

2997:                                             ; preds = %2995
  %2998 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2996, ptr noundef nonnull align 8 dereferenceable(32) %340)
          to label %2999 unwind label %3017

2999:                                             ; preds = %2997
  %3000 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2998, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3001 unwind label %3017

3001:                                             ; preds = %2999
  %3002 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3000, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3003 unwind label %3017

3003:                                             ; preds = %3001
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %347) #11
  %3004 = load ptr, ptr %2985, align 8, !tbaa !9
  %3005 = getelementptr inbounds i8, ptr %3004, i64 16
  %3006 = load ptr, ptr %3005, align 8
  %3007 = call noundef ptr %3006(ptr noundef nonnull align 8 dereferenceable(16) %2985) #11
  store ptr %3007, ptr %347, align 8, !tbaa !11
  %3008 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3002, ptr noundef nonnull align 8 dereferenceable(8) %347)
          to label %3009 unwind label %3019

3009:                                             ; preds = %3003
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %347) #11
  br label %3021

3010:                                             ; preds = %2982
  %3011 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA166_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %339, ptr noundef nonnull align 1 dereferenceable(166) @.str.1166)
          to label %3012 unwind label %3013

3012:                                             ; preds = %3010
  invoke void @__cxa_end_catch()
          to label %.thread1533 unwind label %3015

3013:                                             ; preds = %3010
  %3014 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %3027 unwind label %3068

3015:                                             ; preds = %.critedge1261, %3012
  %3016 = landingpad { ptr, i32 }
          cleanup
  br label %3027

3017:                                             ; preds = %3001, %2999, %2997, %2995, %2993, %2986
  %3018 = landingpad { ptr, i32 }
          cleanup
  br label %3026

3019:                                             ; preds = %3003
  %3020 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %347) #11
  br label %3026

3021:                                             ; preds = %2992, %3009
  invoke void @__cxa_end_catch()
          to label %3022 unwind label %3024

3022:                                             ; preds = %3021
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %340) #11
  br i1 %2991, label %3029, label %.thread1536

.critedge1261:                                    ; preds = %2962, %2974
  %3023 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA157_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %339, ptr noundef nonnull align 1 dereferenceable(157) @.str.1168)
          to label %.thread1533 unwind label %3015

3024:                                             ; preds = %3021
  %3025 = landingpad { ptr, i32 }
          cleanup
  br label %3027

3026:                                             ; preds = %3019, %3017
  %.pn1127 = phi { ptr, i32 } [ %3020, %3019 ], [ %3018, %3017 ]
  invoke void @__cxa_end_catch()
          to label %3027 unwind label %3068

.thread1533:                                      ; preds = %3012, %.critedge1261
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %340) #11
  br label %3029

3027:                                             ; preds = %3024, %3026, %3013, %3015
  %.pn1131 = phi { ptr, i32 } [ %3016, %3015 ], [ %3014, %3013 ], [ %3025, %3024 ], [ %.pn1127, %3026 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #11
  br label %3028

3028:                                             ; preds = %3027, %2976
  %.pn1131.pn = phi { ptr, i32 } [ %.pn1131, %3027 ], [ %2977, %2976 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %340) #11
  br label %3048

3029:                                             ; preds = %3022, %.thread1533, %.thread1528
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %348) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %348)
          to label %3030 unwind label %3035

3030:                                             ; preds = %3029
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %349) #11
  %3031 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %339)
          to label %3032 unwind label %3037

3032:                                             ; preds = %3030
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %349, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1128, ptr noundef %3031)
          to label %3033 unwind label %3037

3033:                                             ; preds = %3032
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef nonnull align 8 dereferenceable(8) %348)
          to label %3034 unwind label %3039

3034:                                             ; preds = %3033
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %349) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %349) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %348) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %348) #11
  br label %.thread1536

3035:                                             ; preds = %3029
  %3036 = landingpad { ptr, i32 }
          cleanup
  br label %3042

3037:                                             ; preds = %3032, %3030
  %3038 = landingpad { ptr, i32 }
          cleanup
  br label %3041

3039:                                             ; preds = %3033
  %3040 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %349) #11
  br label %3041

3041:                                             ; preds = %3039, %3037
  %.pn1134 = phi { ptr, i32 } [ %3040, %3039 ], [ %3038, %3037 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %349) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %348) #11
  br label %3042

3042:                                             ; preds = %3041, %3035
  %.pn1134.pn = phi { ptr, i32 } [ %.pn1134, %3041 ], [ %3036, %3035 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %348) #11
  br label %3048

.thread1536:                                      ; preds = %3022, %3034
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %339) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %339) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %350) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %351) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJRA4_KciEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %352, ptr noundef nonnull align 1 dereferenceable(9) @.str.1088)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %353) #11
  store i32 2, ptr %353, align 4, !tbaa !14
  %3043 = load ptr, ptr %352, align 8
  %3044 = getelementptr inbounds i8, ptr %352, i64 8
  %3045 = load i64, ptr %3044, align 8
  call void @_ZN3fmt3v106formatIJRA4_KciEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %351, ptr %3043, i64 %3045, ptr noundef nonnull align 1 dereferenceable(4) @.str.135, ptr noundef nonnull align 4 dereferenceable(4) %353)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA3_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %350, ptr noundef nonnull @.str.1169, ptr noundef nonnull @.str.341, ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull align 1 dereferenceable(3) @.str.343)
          to label %3046 unwind label %3049

3046:                                             ; preds = %.thread1536
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %353) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #11
  %3047 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %350)
  br i1 %3047, label %3065, label %3051

3048:                                             ; preds = %3042, %3028
  %.pn1134.pn.pn = phi { ptr, i32 } [ %.pn1134.pn, %3042 ], [ %.pn1131.pn, %3028 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %339) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %339) #11
  br label %3067

3049:                                             ; preds = %.thread1536
  %3050 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %353) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #11
  br label %3066

3051:                                             ; preds = %3046
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %354) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %354)
          to label %3052 unwind label %3057

3052:                                             ; preds = %3051
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %355) #11
  %3053 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %350)
          to label %3054 unwind label %3059

3054:                                             ; preds = %3052
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %355, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1130, ptr noundef %3053)
          to label %3055 unwind label %3059

3055:                                             ; preds = %3054
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %355, ptr noundef nonnull align 8 dereferenceable(8) %354)
          to label %3056 unwind label %3061

3056:                                             ; preds = %3055
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %355) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %355) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %354) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %354) #11
  br label %3065

3057:                                             ; preds = %3051
  %3058 = landingpad { ptr, i32 }
          cleanup
  br label %3064

3059:                                             ; preds = %3054, %3052
  %3060 = landingpad { ptr, i32 }
          cleanup
  br label %3063

3061:                                             ; preds = %3055
  %3062 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %355) #11
  br label %3063

3063:                                             ; preds = %3061, %3059
  %.pn1138 = phi { ptr, i32 } [ %3062, %3061 ], [ %3060, %3059 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %355) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %354) #11
  br label %3064

3064:                                             ; preds = %3063, %3057
  %.pn1138.pn = phi { ptr, i32 } [ %.pn1138, %3063 ], [ %3058, %3057 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %354) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %350) #11
  br label %3066

3065:                                             ; preds = %3046, %3056
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %350) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %350) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %2) #11
  ret void

3066:                                             ; preds = %3064, %3049
  %.pn1138.pn.pn = phi { ptr, i32 } [ %.pn1138.pn, %3064 ], [ %3050, %3049 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %350) #11
  br label %3067

3067:                                             ; preds = %549, %634, %719, %804, %889, %974, %1059, %1144, %1229, %1314, %1399, %1484, %1569, %1654, %1739, %1824, %1909, %1994, %2079, %2164, %2249, %2334, %2419, %2504, %2589, %2674, %2759, %2832, %2855, %2890, %2975, %3048, %3066, %462
  %.pn1138.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn736.pn.pn, %462 ], [ %.pn1138.pn.pn, %3066 ], [ %.pn1134.pn.pn, %3048 ], [ %.pn1121.pn.pn, %2975 ], [ %.pn1108.pn.pn, %2890 ], [ %.pn1104.pn.pn, %2855 ], [ %.pn1100.pn.pn, %2832 ], [ %.pn1087.pn.pn, %2759 ], [ %.pn1074.pn.pn, %2674 ], [ %.pn1061.pn.pn, %2589 ], [ %.pn1048.pn.pn, %2504 ], [ %.pn1035.pn.pn, %2419 ], [ %.pn1022.pn.pn, %2334 ], [ %.pn1009.pn.pn, %2249 ], [ %.pn996.pn.pn, %2164 ], [ %.pn983.pn.pn, %2079 ], [ %.pn970.pn.pn, %1994 ], [ %.pn957.pn.pn, %1909 ], [ %.pn944.pn.pn, %1824 ], [ %.pn931.pn.pn, %1739 ], [ %.pn918.pn.pn, %1654 ], [ %.pn905.pn.pn, %1569 ], [ %.pn892.pn.pn, %1484 ], [ %.pn879.pn.pn, %1399 ], [ %.pn866.pn.pn, %1314 ], [ %.pn853.pn.pn, %1229 ], [ %.pn840.pn.pn, %1144 ], [ %.pn827.pn.pn, %1059 ], [ %.pn814.pn.pn, %974 ], [ %.pn801.pn.pn, %889 ], [ %.pn788.pn.pn, %804 ], [ %.pn775.pn.pn, %719 ], [ %.pn762.pn.pn, %634 ], [ %.pn749.pn.pn, %549 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %2) #11
  resume { ptr, i32 } %.pn1138.pn.pn.pn.pn

3068:                                             ; preds = %3026, %3013, %2941, %2928, %2810, %2797, %2725, %2712, %2640, %2627, %2555, %2542, %2470, %2457, %2385, %2372, %2300, %2287, %2215, %2202, %2130, %2117, %2045, %2032, %1960, %1947, %1875, %1862, %1790, %1777, %1705, %1692, %1620, %1607, %1535, %1522, %1450, %1437, %1365, %1352, %1280, %1267, %1195, %1182, %1110, %1097, %1025, %1012, %940, %927, %855, %842, %770, %757, %685, %672, %600, %587, %513, %500, %424, %411
  %3069 = landingpad { ptr, i32 }
          catch ptr null
  %3070 = extractvalue { ptr, i32 } %3069, 0
  call void @__clang_call_terminate(ptr %3070) #13
  unreachable
}

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdjEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdjEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdlEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdmEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdmEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA154_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(154)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA111_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(111)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA145_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(145)) local_unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJdcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJddEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA94_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(94)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJjiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJliEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJmiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJxiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJyiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJciEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9)) unnamed_addr #7 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJieEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 16 dereferenceable(16)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJieEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJPviEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA166_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(166)) local_unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJRA4_KciEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nofree nosync nounwind memory(none) }
attributes #9 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(read) }
attributes #13 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"int", !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"long", !7, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"long long", !7, i64 0}
!20 = !{!21, !21, i64 0}
!21 = !{!"long double", !7, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass