; LLVM IR from WayneLin92/SSeqCpp :: thirdparty/fmt/test/format-test.ll (ZN26format_test_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.122" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.143" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.144" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.145" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.146" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.147" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.150" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.149" = type { %"class.fmt::v10::basic_string_view" }
%"class.testing::internal::PredicateFormatterFromMatcher" = type { %"class.testing::internal::ContainsMatcher" }
%"class.testing::internal::ContainsMatcher" = type { %"class.std::__cxx11::basic_string" }
%"class.fmt::v10::basic_format_string.184" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.185" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.152" = 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.151" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.186" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.187" = type { %"class.fmt::v10::basic_string_view" }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [11 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.88 = external hidden unnamed_addr constant [7 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.223 = external hidden unnamed_addr constant [3 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.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.717 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.785 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.917 = external hidden unnamed_addr constant [7 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.921 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.922 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.923 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.924 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.925 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.926 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.927 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.928 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.929 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.930 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.931 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.932 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.933 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.934 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.935 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.936 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.937 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.938 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.939 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.940 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.941 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.942 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.943 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.944 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.945 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.946 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.947 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.948 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.949 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.950 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.951 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.952 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.953 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.954 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.955 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.956 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.957 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.958 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.959 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.960 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.961 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.962 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.963 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.964 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.965 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.966 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.967 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.968 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.969 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.970 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.971 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.972 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.973 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.974 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.975 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.976 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.977 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.978 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.979 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.980 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.981 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.982 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.983 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.984 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.985 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.986 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.987 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.988 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.989 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.990 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.991 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.992 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.993 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.994 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.995 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.996 = external hidden unnamed_addr constant [521 x i8], align 1
@.str.997 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.998 = external hidden unnamed_addr constant [501 x i8], align 1
@.str.999 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.1000 = external hidden unnamed_addr constant [1121 x i8], align 1
@.str.1001 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1002 = external hidden unnamed_addr constant [1077 x i8], align 1
@.str.1003 = external hidden unnamed_addr constant [849 x i8], align 1
@.str.1004 = external hidden unnamed_addr constant [849 x i8], align 1
@.str.1005 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1006 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1007 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1008 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1009 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1010 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1011 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.1012 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1013 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1014 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1015 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1016 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1017 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1018 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1019 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1020 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1021 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1022 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.1023 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1024 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1025 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1026 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1027 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1028 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1029 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1030 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1031 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1032 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.1033 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1034 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1035 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1036 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.1037 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.1038 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.1039 = external hidden unnamed_addr constant [161 x i8], align 1
@.str.1040 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.1041 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.1042 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1043 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.1044 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.1045 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.1046 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.1047 = external hidden unnamed_addr constant [153 x i8], align 1
@.str.1048 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.1049 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.1050 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.1051 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.1052 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1053 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1054 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1055 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1056 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1057 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1058 = external hidden unnamed_addr constant [8 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 @_ZN7testing15AssertionResultlsIA86_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(86)) #2 align 2

; 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 void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA6_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(6)) #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_traitsIcESaIcEEEA8_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(8)) #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: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_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(5)) #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJiEEENSt7__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)) #7

; 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 void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA10_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(10)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(124)) #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 nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJiEEC2ENS0_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 @_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 @_ZN7testing15AssertionResultlsIA120_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(120)) #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 @_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 @_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 @_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: 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 @_ZN3fmt3v106formatIJjEEENSt7__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)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJlEEENSt7__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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJmEEENSt7__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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJxEEENSt7__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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJyEEENSt7__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: 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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(7)) unnamed_addr #7 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJeEEENSt7__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 16 dereferenceable(16)) #7

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJcEEENSt7__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)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA4_KcEEENSt7__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)) #7

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJPvEEENSt7__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)) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA7_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(7)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJcEEC2ENS0_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 @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(133)) #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJjEEC2ENS0_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 @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(88)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJmEEC2ENS0_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_stringIcJyEEC2ENS0_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_stringIcJdEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(6)) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJPvEEC2ENS0_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 @_ZN7testing15AssertionResultlsIA87_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(87)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA121_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(121)) #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 void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA11_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(11)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA13_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(13)) #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA10_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(10)) unnamed_addr #7 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: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA151_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(151)) #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN26format_test_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.122", 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 ptr, align 8
  %96 = alloca ptr, align 8
  %97 = alloca %"class.testing::Message", align 8
  %98 = alloca %"class.testing::internal::AssertHelper", align 8
  %99 = alloca %"class.testing::AssertionResult", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::allocator", align 1
  %102 = alloca i8, align 1
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %105 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %106 = alloca %"class.fmt::v10::basic_string_view", align 8
  %107 = alloca i32, align 4
  %108 = alloca ptr, align 8
  %109 = alloca ptr, align 8
  %110 = alloca %"class.testing::Message", align 8
  %111 = alloca %"class.testing::internal::AssertHelper", align 8
  %112 = alloca %"class.testing::AssertionResult", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::allocator", align 1
  %115 = alloca i8, align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %118 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %119 = alloca %"class.fmt::v10::basic_string_view", align 8
  %120 = alloca i32, align 4
  %121 = alloca ptr, align 8
  %122 = alloca ptr, align 8
  %123 = alloca %"class.testing::Message", align 8
  %124 = alloca %"class.testing::internal::AssertHelper", align 8
  %125 = alloca %"class.testing::AssertionResult", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::allocator", align 1
  %128 = alloca i8, align 1
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.fmt::v10::basic_format_string.143", align 8
  %131 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %132 = alloca %"class.fmt::v10::basic_string_view", align 8
  %133 = alloca i32, align 4
  %134 = alloca ptr, 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 i8, align 1
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.fmt::v10::basic_format_string.143", align 8
  %144 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %145 = alloca %"class.fmt::v10::basic_string_view", align 8
  %146 = alloca i32, align 4
  %147 = alloca ptr, align 8
  %148 = alloca ptr, align 8
  %149 = alloca %"class.testing::Message", align 8
  %150 = alloca %"class.testing::internal::AssertHelper", align 8
  %151 = alloca %"class.testing::AssertionResult", align 8
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::allocator", align 1
  %154 = alloca i8, align 1
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.fmt::v10::basic_format_string.144", align 8
  %157 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %158 = alloca %"class.fmt::v10::basic_string_view", align 8
  %159 = alloca i64, align 8
  %160 = alloca ptr, align 8
  %161 = alloca ptr, align 8
  %162 = alloca %"class.testing::Message", align 8
  %163 = alloca %"class.testing::internal::AssertHelper", align 8
  %164 = alloca %"class.testing::AssertionResult", align 8
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::allocator", align 1
  %167 = alloca i8, align 1
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.fmt::v10::basic_format_string.144", align 8
  %170 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %171 = alloca %"class.fmt::v10::basic_string_view", align 8
  %172 = alloca i64, align 8
  %173 = alloca ptr, align 8
  %174 = alloca ptr, align 8
  %175 = alloca %"class.testing::Message", align 8
  %176 = alloca %"class.testing::internal::AssertHelper", align 8
  %177 = alloca %"class.testing::AssertionResult", align 8
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::allocator", align 1
  %180 = alloca i8, align 1
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.fmt::v10::basic_format_string.145", align 8
  %183 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %184 = alloca %"class.fmt::v10::basic_string_view", align 8
  %185 = alloca i64, align 8
  %186 = alloca ptr, align 8
  %187 = alloca ptr, align 8
  %188 = alloca %"class.testing::Message", align 8
  %189 = alloca %"class.testing::internal::AssertHelper", align 8
  %190 = alloca %"class.testing::AssertionResult", align 8
  %191 = alloca %"class.std::__cxx11::basic_string", align 8
  %192 = alloca %"class.std::allocator", align 1
  %193 = alloca i8, align 1
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.fmt::v10::basic_format_string.145", align 8
  %196 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %197 = alloca %"class.fmt::v10::basic_string_view", align 8
  %198 = alloca i64, align 8
  %199 = alloca ptr, align 8
  %200 = alloca ptr, align 8
  %201 = alloca %"class.testing::Message", align 8
  %202 = alloca %"class.testing::internal::AssertHelper", align 8
  %203 = alloca %"class.testing::AssertionResult", align 8
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::allocator", align 1
  %206 = alloca i8, align 1
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.fmt::v10::basic_format_string.146", align 8
  %209 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %210 = alloca %"class.fmt::v10::basic_string_view", align 8
  %211 = alloca i64, align 8
  %212 = alloca ptr, align 8
  %213 = alloca ptr, align 8
  %214 = alloca %"class.testing::Message", align 8
  %215 = alloca %"class.testing::internal::AssertHelper", align 8
  %216 = alloca %"class.testing::AssertionResult", align 8
  %217 = alloca %"class.std::__cxx11::basic_string", align 8
  %218 = alloca %"class.std::allocator", align 1
  %219 = alloca i8, align 1
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.fmt::v10::basic_format_string.146", align 8
  %222 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %223 = alloca %"class.fmt::v10::basic_string_view", align 8
  %224 = alloca i64, align 8
  %225 = alloca ptr, align 8
  %226 = alloca ptr, align 8
  %227 = alloca %"class.testing::Message", align 8
  %228 = alloca %"class.testing::internal::AssertHelper", align 8
  %229 = alloca %"class.testing::AssertionResult", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::allocator", align 1
  %232 = alloca i8, align 1
  %233 = alloca %"class.std::__cxx11::basic_string", align 8
  %234 = alloca %"class.fmt::v10::basic_format_string.147", align 8
  %235 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %236 = alloca %"class.fmt::v10::basic_string_view", align 8
  %237 = alloca i64, align 8
  %238 = alloca ptr, align 8
  %239 = alloca ptr, align 8
  %240 = alloca %"class.testing::Message", align 8
  %241 = alloca %"class.testing::internal::AssertHelper", align 8
  %242 = alloca %"class.testing::AssertionResult", align 8
  %243 = alloca %"class.std::__cxx11::basic_string", align 8
  %244 = alloca %"class.std::allocator", align 1
  %245 = alloca i8, align 1
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.fmt::v10::basic_format_string.147", align 8
  %248 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %249 = alloca %"class.fmt::v10::basic_string_view", align 8
  %250 = alloca i64, align 8
  %251 = alloca ptr, align 8
  %252 = alloca ptr, align 8
  %253 = alloca %"class.testing::Message", align 8
  %254 = alloca %"class.testing::internal::AssertHelper", align 8
  %255 = alloca %"class.testing::AssertionResult", align 8
  %256 = alloca %"class.std::__cxx11::basic_string", align 8
  %257 = alloca %"class.std::allocator", align 1
  %258 = alloca i8, align 1
  %259 = alloca %"class.std::__cxx11::basic_string", align 8
  %260 = alloca %"class.fmt::v10::basic_format_string.150", align 8
  %261 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %262 = alloca %"class.fmt::v10::basic_string_view", align 8
  %263 = alloca i8, align 1
  %264 = alloca ptr, align 8
  %265 = alloca ptr, align 8
  %266 = alloca %"class.testing::Message", align 8
  %267 = alloca %"class.testing::internal::AssertHelper", align 8
  %268 = alloca %"class.testing::AssertionResult", align 8
  %269 = alloca %"class.std::__cxx11::basic_string", align 8
  %270 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %271 = alloca double, align 8
  %272 = alloca %"class.testing::Message", align 8
  %273 = alloca %"class.testing::internal::AssertHelper", align 8
  %274 = alloca %"class.testing::AssertionResult", align 8
  %275 = alloca %"class.std::__cxx11::basic_string", align 8
  %276 = alloca %"class.fmt::v10::basic_format_string.149", align 8
  %277 = alloca x86_fp80, align 16
  %278 = alloca %"class.testing::Message", align 8
  %279 = alloca %"class.testing::internal::AssertHelper", align 8
  %280 = alloca %"class.testing::AssertionResult", align 8
  %281 = alloca %"class.std::__cxx11::basic_string", align 8
  %282 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %283 = alloca double, align 8
  %284 = alloca %"class.testing::Message", align 8
  %285 = alloca %"class.testing::internal::AssertHelper", align 8
  %286 = alloca %"class.testing::AssertionResult", align 8
  %287 = alloca %"class.std::__cxx11::basic_string", align 8
  %288 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %289 = alloca double, 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.fmt::v10::basic_format_string.149", align 8
  %295 = alloca x86_fp80, align 16
  %296 = alloca %"class.testing::Message", align 8
  %297 = alloca %"class.testing::internal::AssertHelper", align 8
  %298 = alloca %"class.testing::AssertionResult", align 8
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %301 = alloca double, align 8
  %302 = alloca %"class.testing::Message", align 8
  %303 = alloca %"class.testing::internal::AssertHelper", align 8
  %304 = alloca %"class.testing::AssertionResult", align 8
  %305 = alloca %"class.std::__cxx11::basic_string", align 8
  %306 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %307 = alloca double, align 8
  %308 = alloca %"class.testing::Message", align 8
  %309 = alloca %"class.testing::internal::AssertHelper", align 8
  %310 = alloca %"class.testing::AssertionResult", align 8
  %311 = alloca %"class.std::__cxx11::basic_string", align 8
  %312 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %313 = alloca double, align 8
  %314 = alloca %"class.testing::Message", align 8
  %315 = alloca %"class.testing::internal::AssertHelper", align 8
  %316 = alloca [2 x %"class.std::__cxx11::basic_string"], align 16
  %317 = alloca ptr, align 8
  %318 = alloca %"class.std::allocator", align 1
  %319 = alloca %"class.std::allocator", align 1
  %320 = alloca i1, align 1
  %321 = alloca %"class.testing::AssertionResult", align 8
  %322 = alloca %"class.testing::internal::PredicateFormatterFromMatcher", align 8
  %323 = alloca %"class.testing::internal::ContainsMatcher", align 8
  %324 = alloca %"class.std::__cxx11::basic_string", align 8
  %325 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %326 = alloca double, align 8
  %327 = alloca %"class.testing::Message", align 8
  %328 = alloca %"class.testing::internal::AssertHelper", align 8
  %329 = alloca x86_fp80, align 16
  %330 = alloca %"class.testing::AssertionResult", align 8
  %331 = alloca %"class.std::__cxx11::basic_string", align 8
  %332 = alloca %"class.fmt::v10::basic_format_string.184", align 8
  %333 = alloca %"class.testing::Message", align 8
  %334 = alloca %"class.testing::internal::AssertHelper", align 8
  %335 = alloca %"class.testing::AssertionResult", align 8
  %336 = alloca %"class.std::__cxx11::basic_string", align 8
  %337 = alloca %"class.fmt::v10::basic_format_string.149", align 8
  %338 = alloca x86_fp80, align 16
  %339 = alloca %"class.testing::Message", align 8
  %340 = alloca %"class.testing::internal::AssertHelper", align 8
  %341 = alloca %"class.testing::AssertionResult", align 8
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %344 = alloca double, align 8
  %345 = alloca %"class.testing::Message", align 8
  %346 = alloca %"class.testing::internal::AssertHelper", align 8
  %347 = alloca %"class.testing::AssertionResult", align 8
  %348 = alloca %"class.std::__cxx11::basic_string", align 8
  %349 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %350 = alloca double, align 8
  %351 = alloca %"class.testing::Message", align 8
  %352 = alloca %"class.testing::internal::AssertHelper", align 8
  %353 = alloca %"class.testing::AssertionResult", align 8
  %354 = alloca %"class.std::__cxx11::basic_string", align 8
  %355 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %356 = alloca double, align 8
  %357 = alloca %"class.testing::Message", align 8
  %358 = alloca %"class.testing::internal::AssertHelper", align 8
  %359 = alloca %"class.testing::AssertionResult", align 8
  %360 = alloca %"class.std::__cxx11::basic_string", align 8
  %361 = alloca %"class.fmt::v10::basic_format_string.185", align 8
  %362 = alloca float, align 4
  %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.fmt::v10::basic_format_string.148", align 8
  %368 = alloca double, align 8
  %369 = alloca %"class.testing::Message", align 8
  %370 = alloca %"class.testing::internal::AssertHelper", align 8
  %371 = alloca %"class.testing::AssertionResult", align 8
  %372 = alloca %"class.std::__cxx11::basic_string", align 8
  %373 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %374 = alloca double, align 8
  %375 = alloca %"class.testing::Message", align 8
  %376 = alloca %"class.testing::internal::AssertHelper", align 8
  %377 = alloca %"class.testing::AssertionResult", align 8
  %378 = alloca %"class.std::__cxx11::basic_string", align 8
  %379 = alloca %"class.std::allocator", align 1
  %380 = alloca i8, align 1
  %381 = alloca %"class.std::__cxx11::basic_string", align 8
  %382 = alloca %"class.fmt::v10::basic_format_string.152", align 8
  %383 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %384 = alloca %"class.fmt::v10::basic_string_view", align 8
  %385 = alloca ptr, align 8
  %386 = alloca ptr, align 8
  %387 = alloca ptr, align 8
  %388 = alloca %"class.testing::Message", align 8
  %389 = alloca %"class.testing::internal::AssertHelper", align 8
  %390 = alloca %"class.testing::AssertionResult", align 8
  %391 = alloca %"class.std::__cxx11::basic_string", align 8
  %392 = alloca %"class.std::allocator", align 1
  %393 = alloca i8, align 1
  %394 = alloca %"class.std::__cxx11::basic_string", align 8
  %395 = alloca %"class.fmt::v10::basic_format_string.152", align 8
  %396 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %397 = alloca %"class.fmt::v10::basic_string_view", align 8
  %398 = alloca ptr, align 8
  %399 = alloca ptr, align 8
  %400 = alloca ptr, align 8
  %401 = alloca %"class.testing::Message", align 8
  %402 = alloca %"class.testing::internal::AssertHelper", align 8
  %403 = alloca %"class.testing::AssertionResult", align 8
  %404 = alloca %"class.std::__cxx11::basic_string", align 8
  %405 = alloca %"class.std::allocator", align 1
  %406 = alloca i8, align 1
  %407 = alloca %"class.std::__cxx11::basic_string", align 8
  %408 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %409 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %410 = alloca %"class.fmt::v10::basic_string_view", align 8
  %411 = alloca double, align 8
  %412 = alloca i32, align 4
  %413 = alloca ptr, align 8
  %414 = alloca ptr, align 8
  %415 = alloca %"class.testing::Message", align 8
  %416 = alloca %"class.testing::internal::AssertHelper", align 8
  %417 = alloca %"class.testing::AssertionResult", align 8
  %418 = alloca %"class.std::__cxx11::basic_string", align 8
  %419 = alloca %"class.std::allocator", align 1
  %420 = alloca i8, align 1
  %421 = alloca %"class.std::__cxx11::basic_string", align 8
  %422 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %423 = alloca double, align 8
  %424 = alloca ptr, align 8
  %425 = alloca ptr, align 8
  %426 = alloca %"class.testing::Message", align 8
  %427 = alloca %"class.testing::internal::AssertHelper", align 8
  %428 = alloca %"class.testing::AssertionResult", align 8
  %429 = alloca %"class.std::__cxx11::basic_string", align 8
  %430 = alloca %"class.fmt::v10::basic_format_string.151", align 8
  %431 = alloca %"class.testing::Message", align 8
  %432 = alloca %"class.testing::internal::AssertHelper", align 8
  %433 = alloca %"class.testing::AssertionResult", align 8
  %434 = alloca %"class.std::__cxx11::basic_string", align 8
  %435 = alloca %"class.fmt::v10::basic_format_string.186", align 8
  %436 = alloca %"class.testing::Message", align 8
  %437 = alloca %"class.testing::internal::AssertHelper", align 8
  %438 = alloca %"class.testing::AssertionResult", align 8
  %439 = alloca %"class.std::__cxx11::basic_string", align 8
  %440 = alloca %"class.fmt::v10::basic_format_string.187", align 8
  %441 = alloca %"class.testing::Message", align 8
  %442 = alloca %"class.testing::internal::AssertHelper", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %443 = 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.917, i32 noundef -1)
  %444 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %445 = getelementptr inbounds i8, ptr %444, i64 4
  call void @_Z9incrementPc(ptr noundef %445)
  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)
  %446 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %447 unwind label %476

447:                                              ; preds = %1
  br i1 %446, label %448, label %573

448:                                              ; preds = %447
  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.785, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %449 unwind label %480

449:                                              ; preds = %448
  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
  %450 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %451 unwind label %484

451:                                              ; preds = %449
  br i1 %450, label %452, label %529

452:                                              ; preds = %451
  %453 = 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 %453)
          to label %454 unwind label %484

454:                                              ; preds = %452
  %455 = getelementptr inbounds { ptr, i64 }, ptr %13, i32 0, i32 0
  %456 = load ptr, ptr %455, align 8
  %457 = getelementptr inbounds { ptr, i64 }, ptr %13, i32 0, i32 1
  %458 = load i64, ptr %457, align 8
  %459 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %456, i64 %458)
          to label %460 unwind label %484

460:                                              ; preds = %454
  %461 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %12, i32 0, i32 0
  %462 = getelementptr inbounds { ptr, i64 }, ptr %461, i32 0, i32 0
  %463 = extractvalue { ptr, i64 } %459, 0
  store ptr %463, ptr %462, align 8
  %464 = getelementptr inbounds { ptr, i64 }, ptr %461, i32 0, i32 1
  %465 = extractvalue { ptr, i64 } %459, 1
  store i64 %465, ptr %464, align 8
  %466 = getelementptr inbounds { ptr, i64 }, ptr %12, i32 0, i32 0
  %467 = load ptr, ptr %466, align 8
  %468 = getelementptr inbounds { ptr, i64 }, ptr %12, i32 0, i32 1
  %469 = load i64, ptr %468, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr %467, i64 %469)
          to label %470 unwind label %484

470:                                              ; preds = %460
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #11
  store double 0.000000e+00, ptr %14, align 8, !tbaa !11
  %471 = getelementptr inbounds { ptr, i64 }, ptr %11, i32 0, i32 0
  %472 = load ptr, ptr %471, align 8
  %473 = getelementptr inbounds { ptr, i64 }, ptr %11, i32 0, i32 1
  %474 = load i64, ptr %473, 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 %472, i64 %474, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %475 unwind label %488

475:                                              ; preds = %470
  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 %530

476:                                              ; preds = %1
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %5, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %6, align 4
  br label %632

480:                                              ; preds = %448
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %5, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, 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 %572

484:                                              ; preds = %460, %454, %452, %449
  %485 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %5, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %6, align 4
  br label %492

488:                                              ; preds = %470
  %489 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %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
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #11
  br label %492

492:                                              ; preds = %488, %484
  %493 = load i32, ptr %6, align 4
  %494 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %495 = icmp eq i32 %493, %494
  br i1 %495, label %496, label %524

496:                                              ; preds = %492
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  %497 = load ptr, ptr %5, align 8
  %498 = call ptr @__cxa_begin_catch(ptr %497) #11
  store ptr %498, ptr %16, align 8
  %499 = load ptr, ptr %16, align 8, !tbaa !5
  %500 = load ptr, ptr %499, align 8, !tbaa !13
  %501 = getelementptr inbounds ptr, ptr %500, i64 2
  %502 = load ptr, ptr %501, align 8
  %503 = call noundef ptr %502(ptr noundef nonnull align 8 dereferenceable(16) %499) #11
  %504 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef %503)
          to label %505 unwind label %541

505:                                              ; preds = %496
  br i1 %504, label %506, label %549

506:                                              ; preds = %505
  %507 = 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 %508 unwind label %541

508:                                              ; preds = %506
  %509 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %507, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %510 unwind label %541

510:                                              ; preds = %508
  %511 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %509, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %512 unwind label %541

512:                                              ; preds = %510
  %513 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %511, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %514 unwind label %541

514:                                              ; preds = %512
  %515 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %513, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %516 unwind label %541

516:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #11
  %517 = load ptr, ptr %16, align 8, !tbaa !5
  %518 = load ptr, ptr %517, align 8, !tbaa !13
  %519 = getelementptr inbounds ptr, ptr %518, i64 2
  %520 = load ptr, ptr %519, align 8
  %521 = call noundef ptr %520(ptr noundef nonnull align 8 dereferenceable(16) %517) #11
  store ptr %521, ptr %17, align 8, !tbaa !5
  %522 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %515, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %523 unwind label %545

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

524:                                              ; preds = %492
  %525 = load ptr, ptr %5, align 8
  %526 = call ptr @__cxa_begin_catch(ptr %525) #11
  %527 = 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 %528 unwind label %531

528:                                              ; preds = %524
  store i32 2, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %535 unwind label %536

529:                                              ; preds = %451
  br label %530

530:                                              ; preds = %529, %475
  br label %554

531:                                              ; preds = %524
  %532 = landingpad { ptr, i32 }
          cleanup
  %533 = extractvalue { ptr, i32 } %532, 0
  store ptr %533, ptr %5, align 8
  %534 = extractvalue { ptr, i32 } %532, 1
  store i32 %534, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %540 unwind label %5007

535:                                              ; preds = %528
  br label %568

536:                                              ; preds = %557, %528
  %537 = landingpad { ptr, i32 }
          cleanup
  %538 = extractvalue { ptr, i32 } %537, 0
  store ptr %538, ptr %5, align 8
  %539 = extractvalue { ptr, i32 } %537, 1
  store i32 %539, ptr %6, align 4
  br label %571

540:                                              ; preds = %531
  br label %571

541:                                              ; preds = %514, %512, %510, %508, %506, %496
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %5, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %6, align 4
  br label %564

545:                                              ; preds = %516
  %546 = landingpad { ptr, i32 }
          cleanup
  %547 = extractvalue { ptr, i32 } %546, 0
  store ptr %547, ptr %5, align 8
  %548 = extractvalue { ptr, i32 } %546, 1
  store i32 %548, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  br label %564

549:                                              ; preds = %505
  store i8 1, ptr %9, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %550

550:                                              ; preds = %549, %523
  invoke void @__cxa_end_catch()
          to label %551 unwind label %560

551:                                              ; preds = %550
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  %552 = load i32, ptr %15, align 4
  switch i32 %552, label %568 [
    i32 0, label %553
  ]

553:                                              ; preds = %551
  br label %554

554:                                              ; preds = %553, %530
  %555 = load i8, ptr %9, align 1, !tbaa !9, !range !15, !noundef !16
  %556 = trunc i8 %555 to i1
  br i1 %556, label %567, label %557

557:                                              ; preds = %554
  %558 = 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 %559 unwind label %536

559:                                              ; preds = %557
  store i32 2, ptr %15, align 4
  br label %568

560:                                              ; preds = %550
  %561 = landingpad { ptr, i32 }
          cleanup
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %5, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %6, align 4
  br label %566

564:                                              ; preds = %545, %541
  invoke void @__cxa_end_catch()
          to label %565 unwind label %5007

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565, %560
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  br label %571

567:                                              ; preds = %554
  store i32 0, ptr %15, align 4
  br label %568

568:                                              ; preds = %567, %559, %551, %535
  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
  %569 = load i32, ptr %15, align 4
  switch i32 %569, label %5010 [
    i32 0, label %570
    i32 2, label %574
  ]

570:                                              ; preds = %568
  br label %594

571:                                              ; preds = %566, %540, %536
  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 %572

572:                                              ; preds = %571, %480
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #11
  br label %632

573:                                              ; preds = %447
  br label %574

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

575:                                              ; preds = %574
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #11
  %576 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %4)
          to label %577 unwind label %584

577:                                              ; preds = %575
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %19, i32 noundef 1, ptr noundef @.str.3, i32 noundef 898, ptr noundef %576)
          to label %578 unwind label %584

578:                                              ; preds = %577
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %579 unwind label %588

579:                                              ; preds = %578
  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 %594

580:                                              ; preds = %574
  %581 = landingpad { ptr, i32 }
          cleanup
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %5, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %6, align 4
  br label %593

584:                                              ; preds = %577, %575
  %585 = landingpad { ptr, i32 }
          cleanup
  %586 = extractvalue { ptr, i32 } %585, 0
  store ptr %586, ptr %5, align 8
  %587 = extractvalue { ptr, i32 } %585, 1
  store i32 %587, ptr %6, align 4
  br label %592

588:                                              ; preds = %578
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %5, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #11
  br label %592

592:                                              ; preds = %588, %584
  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 %593

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

594:                                              ; preds = %579, %570
  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
  %595 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %596 = call i64 @strlen(ptr noundef %595) #12
  store i64 %596, ptr %20, align 8, !tbaa !17
  %597 = load i64, ptr %20, align 8, !tbaa !17
  %598 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 %597
  store i8 125, ptr %598, align 1, !tbaa !19
  %599 = load i64, ptr %20, align 8, !tbaa !17
  %600 = add i64 %599, 1
  %601 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 %600
  store i8 0, ptr %601, 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)
  %602 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %603 unwind label %633

603:                                              ; preds = %594
  br i1 %602, label %604, label %730

604:                                              ; preds = %603
  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.785, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %605 unwind label %637

605:                                              ; preds = %604
  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
  %606 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %607 unwind label %641

607:                                              ; preds = %605
  br i1 %606, label %608, label %686

608:                                              ; preds = %607
  %609 = 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 %609)
          to label %610 unwind label %641

610:                                              ; preds = %608
  %611 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 0
  %612 = load ptr, ptr %611, align 8
  %613 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 1
  %614 = load i64, ptr %613, align 8
  %615 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %612, i64 %614)
          to label %616 unwind label %641

616:                                              ; preds = %610
  %617 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %27, i32 0, i32 0
  %618 = getelementptr inbounds { ptr, i64 }, ptr %617, i32 0, i32 0
  %619 = extractvalue { ptr, i64 } %615, 0
  store ptr %619, ptr %618, align 8
  %620 = getelementptr inbounds { ptr, i64 }, ptr %617, i32 0, i32 1
  %621 = extractvalue { ptr, i64 } %615, 1
  store i64 %621, ptr %620, align 8
  %622 = getelementptr inbounds { ptr, i64 }, ptr %27, i32 0, i32 0
  %623 = load ptr, ptr %622, align 8
  %624 = getelementptr inbounds { ptr, i64 }, ptr %27, i32 0, i32 1
  %625 = load i64, ptr %624, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr %623, i64 %625)
          to label %626 unwind label %641

626:                                              ; preds = %616
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #11
  store double 0.000000e+00, ptr %29, align 8, !tbaa !11
  %627 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 0
  %628 = load ptr, ptr %627, align 8
  %629 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 1
  %630 = load i64, ptr %629, 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 %628, i64 %630, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %631 unwind label %645

631:                                              ; preds = %626
  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 %687

632:                                              ; preds = %593, %572, %476
  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 %5001

633:                                              ; preds = %594
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %5, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %6, align 4
  br label %782

637:                                              ; preds = %604
  %638 = landingpad { ptr, i32 }
          cleanup
  %639 = extractvalue { ptr, i32 } %638, 0
  store ptr %639, ptr %5, align 8
  %640 = extractvalue { ptr, i32 } %638, 1
  store i32 %640, 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 %729

641:                                              ; preds = %616, %610, %608, %605
  %642 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %643 = extractvalue { ptr, i32 } %642, 0
  store ptr %643, ptr %5, align 8
  %644 = extractvalue { ptr, i32 } %642, 1
  store i32 %644, ptr %6, align 4
  br label %649

645:                                              ; preds = %626
  %646 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %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
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  br label %649

649:                                              ; preds = %645, %641
  %650 = load i32, ptr %6, align 4
  %651 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %652 = icmp eq i32 %650, %651
  br i1 %652, label %653, label %681

653:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #11
  %654 = load ptr, ptr %5, align 8
  %655 = call ptr @__cxa_begin_catch(ptr %654) #11
  store ptr %655, ptr %30, align 8
  %656 = load ptr, ptr %30, align 8, !tbaa !5
  %657 = load ptr, ptr %656, align 8, !tbaa !13
  %658 = getelementptr inbounds ptr, ptr %657, i64 2
  %659 = load ptr, ptr %658, align 8
  %660 = call noundef ptr %659(ptr noundef nonnull align 8 dereferenceable(16) %656) #11
  %661 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %660)
          to label %662 unwind label %698

662:                                              ; preds = %653
  br i1 %661, label %663, label %706

663:                                              ; preds = %662
  %664 = 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 %665 unwind label %698

665:                                              ; preds = %663
  %666 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %664, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %667 unwind label %698

667:                                              ; preds = %665
  %668 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %666, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %669 unwind label %698

669:                                              ; preds = %667
  %670 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %668, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %671 unwind label %698

671:                                              ; preds = %669
  %672 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %670, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %673 unwind label %698

673:                                              ; preds = %671
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  %674 = load ptr, ptr %30, align 8, !tbaa !5
  %675 = load ptr, ptr %674, align 8, !tbaa !13
  %676 = getelementptr inbounds ptr, ptr %675, i64 2
  %677 = load ptr, ptr %676, align 8
  %678 = call noundef ptr %677(ptr noundef nonnull align 8 dereferenceable(16) %674) #11
  store ptr %678, ptr %31, align 8, !tbaa !5
  %679 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %672, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %680 unwind label %702

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

681:                                              ; preds = %649
  %682 = load ptr, ptr %5, align 8
  %683 = call ptr @__cxa_begin_catch(ptr %682) #11
  %684 = 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 %685 unwind label %688

685:                                              ; preds = %681
  store i32 3, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %692 unwind label %693

686:                                              ; preds = %607
  br label %687

687:                                              ; preds = %686, %631
  br label %711

688:                                              ; preds = %681
  %689 = landingpad { ptr, i32 }
          cleanup
  %690 = extractvalue { ptr, i32 } %689, 0
  store ptr %690, ptr %5, align 8
  %691 = extractvalue { ptr, i32 } %689, 1
  store i32 %691, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %697 unwind label %5007

692:                                              ; preds = %685
  br label %725

693:                                              ; preds = %714, %685
  %694 = landingpad { ptr, i32 }
          cleanup
  %695 = extractvalue { ptr, i32 } %694, 0
  store ptr %695, ptr %5, align 8
  %696 = extractvalue { ptr, i32 } %694, 1
  store i32 %696, ptr %6, align 4
  br label %728

697:                                              ; preds = %688
  br label %728

698:                                              ; preds = %671, %669, %667, %665, %663, %653
  %699 = landingpad { ptr, i32 }
          cleanup
  %700 = extractvalue { ptr, i32 } %699, 0
  store ptr %700, ptr %5, align 8
  %701 = extractvalue { ptr, i32 } %699, 1
  store i32 %701, ptr %6, align 4
  br label %721

702:                                              ; preds = %673
  %703 = landingpad { ptr, i32 }
          cleanup
  %704 = extractvalue { ptr, i32 } %703, 0
  store ptr %704, ptr %5, align 8
  %705 = extractvalue { ptr, i32 } %703, 1
  store i32 %705, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  br label %721

706:                                              ; preds = %662
  store i8 1, ptr %24, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %707

707:                                              ; preds = %706, %680
  invoke void @__cxa_end_catch()
          to label %708 unwind label %717

708:                                              ; preds = %707
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  %709 = load i32, ptr %15, align 4
  switch i32 %709, label %725 [
    i32 0, label %710
  ]

710:                                              ; preds = %708
  br label %711

711:                                              ; preds = %710, %687
  %712 = load i8, ptr %24, align 1, !tbaa !9, !range !15, !noundef !16
  %713 = trunc i8 %712 to i1
  br i1 %713, label %724, label %714

714:                                              ; preds = %711
  %715 = 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 %716 unwind label %693

716:                                              ; preds = %714
  store i32 3, ptr %15, align 4
  br label %725

717:                                              ; preds = %707
  %718 = landingpad { ptr, i32 }
          cleanup
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %5, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %6, align 4
  br label %723

721:                                              ; preds = %702, %698
  invoke void @__cxa_end_catch()
          to label %722 unwind label %5007

722:                                              ; preds = %721
  br label %723

723:                                              ; preds = %722, %717
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  br label %728

724:                                              ; preds = %711
  store i32 0, ptr %15, align 4
  br label %725

725:                                              ; preds = %724, %716, %708, %692
  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
  %726 = load i32, ptr %15, align 4
  switch i32 %726, label %5010 [
    i32 0, label %727
    i32 3, label %731
  ]

727:                                              ; preds = %725
  br label %751

728:                                              ; preds = %723, %697, %693
  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 %729

729:                                              ; preds = %728, %637
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #11
  br label %782

730:                                              ; preds = %603
  br label %731

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

732:                                              ; preds = %731
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  %733 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %734 unwind label %741

734:                                              ; preds = %732
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %33, i32 noundef 1, ptr noundef @.str.3, i32 noundef 903, ptr noundef %733)
          to label %735 unwind label %741

735:                                              ; preds = %734
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %736 unwind label %745

736:                                              ; preds = %735
  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 %751

737:                                              ; preds = %731
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %5, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %6, align 4
  br label %750

741:                                              ; preds = %734, %732
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %5, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %6, align 4
  br label %749

745:                                              ; preds = %735
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %5, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #11
  br label %749

749:                                              ; preds = %745, %741
  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 %750

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

751:                                              ; preds = %736, %727
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #11
  call void (ptr, ptr, ...) @_Z12safe_sprintfILm256EEvRAT__cPKcz(ptr noundef nonnull align 1 dereferenceable(256) %3, ptr noundef @.str.917, i32 noundef -2147483648)
  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)
  %752 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
          to label %753 unwind label %783

753:                                              ; preds = %751
  br i1 %752, label %754, label %880

754:                                              ; preds = %753
  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.785, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %755 unwind label %787

755:                                              ; preds = %754
  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
  %756 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %757 unwind label %791

757:                                              ; preds = %755
  br i1 %756, label %758, label %836

758:                                              ; preds = %757
  %759 = 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 %759)
          to label %760 unwind label %791

760:                                              ; preds = %758
  %761 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 0
  %762 = load ptr, ptr %761, align 8
  %763 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 1
  %764 = load i64, ptr %763, align 8
  %765 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %762, i64 %764)
          to label %766 unwind label %791

766:                                              ; preds = %760
  %767 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %40, i32 0, i32 0
  %768 = getelementptr inbounds { ptr, i64 }, ptr %767, i32 0, i32 0
  %769 = extractvalue { ptr, i64 } %765, 0
  store ptr %769, ptr %768, align 8
  %770 = getelementptr inbounds { ptr, i64 }, ptr %767, i32 0, i32 1
  %771 = extractvalue { ptr, i64 } %765, 1
  store i64 %771, ptr %770, align 8
  %772 = getelementptr inbounds { ptr, i64 }, ptr %40, i32 0, i32 0
  %773 = load ptr, ptr %772, align 8
  %774 = getelementptr inbounds { ptr, i64 }, ptr %40, i32 0, i32 1
  %775 = load i64, ptr %774, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr %773, i64 %775)
          to label %776 unwind label %791

776:                                              ; preds = %766
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  store double 0.000000e+00, ptr %42, align 8, !tbaa !11
  %777 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 0
  %778 = load ptr, ptr %777, align 8
  %779 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 1
  %780 = load i64, ptr %779, 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 %778, i64 %780, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %781 unwind label %795

781:                                              ; preds = %776
  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 %837

782:                                              ; preds = %750, %729, %633
  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 %5000

783:                                              ; preds = %751
  %784 = landingpad { ptr, i32 }
          cleanup
  %785 = extractvalue { ptr, i32 } %784, 0
  store ptr %785, ptr %5, align 8
  %786 = extractvalue { ptr, i32 } %784, 1
  store i32 %786, ptr %6, align 4
  br label %932

787:                                              ; preds = %754
  %788 = landingpad { ptr, i32 }
          cleanup
  %789 = extractvalue { ptr, i32 } %788, 0
  store ptr %789, ptr %5, align 8
  %790 = extractvalue { ptr, i32 } %788, 1
  store i32 %790, 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 %879

791:                                              ; preds = %766, %760, %758, %755
  %792 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %793 = extractvalue { ptr, i32 } %792, 0
  store ptr %793, ptr %5, align 8
  %794 = extractvalue { ptr, i32 } %792, 1
  store i32 %794, ptr %6, align 4
  br label %799

795:                                              ; preds = %776
  %796 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %797 = extractvalue { ptr, i32 } %796, 0
  store ptr %797, ptr %5, align 8
  %798 = extractvalue { ptr, i32 } %796, 1
  store i32 %798, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %799

799:                                              ; preds = %795, %791
  %800 = load i32, ptr %6, align 4
  %801 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %802 = icmp eq i32 %800, %801
  br i1 %802, label %803, label %831

803:                                              ; preds = %799
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #11
  %804 = load ptr, ptr %5, align 8
  %805 = call ptr @__cxa_begin_catch(ptr %804) #11
  store ptr %805, ptr %43, align 8
  %806 = load ptr, ptr %43, align 8, !tbaa !5
  %807 = load ptr, ptr %806, align 8, !tbaa !13
  %808 = getelementptr inbounds ptr, ptr %807, i64 2
  %809 = load ptr, ptr %808, align 8
  %810 = call noundef ptr %809(ptr noundef nonnull align 8 dereferenceable(16) %806) #11
  %811 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %810)
          to label %812 unwind label %848

812:                                              ; preds = %803
  br i1 %811, label %813, label %856

813:                                              ; preds = %812
  %814 = 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 %815 unwind label %848

815:                                              ; preds = %813
  %816 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %814, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %817 unwind label %848

817:                                              ; preds = %815
  %818 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %816, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %819 unwind label %848

819:                                              ; preds = %817
  %820 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %818, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %821 unwind label %848

821:                                              ; preds = %819
  %822 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %820, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %823 unwind label %848

823:                                              ; preds = %821
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #11
  %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
  store ptr %828, ptr %44, align 8, !tbaa !5
  %829 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %822, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %830 unwind label %852

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

831:                                              ; preds = %799
  %832 = load ptr, ptr %5, align 8
  %833 = call ptr @__cxa_begin_catch(ptr %832) #11
  %834 = 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 %835 unwind label %838

835:                                              ; preds = %831
  store i32 4, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %842 unwind label %843

836:                                              ; preds = %757
  br label %837

837:                                              ; preds = %836, %781
  br label %861

838:                                              ; preds = %831
  %839 = landingpad { ptr, i32 }
          cleanup
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %5, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %847 unwind label %5007

842:                                              ; preds = %835
  br label %875

843:                                              ; preds = %864, %835
  %844 = landingpad { ptr, i32 }
          cleanup
  %845 = extractvalue { ptr, i32 } %844, 0
  store ptr %845, ptr %5, align 8
  %846 = extractvalue { ptr, i32 } %844, 1
  store i32 %846, ptr %6, align 4
  br label %878

847:                                              ; preds = %838
  br label %878

848:                                              ; preds = %821, %819, %817, %815, %813, %803
  %849 = landingpad { ptr, i32 }
          cleanup
  %850 = extractvalue { ptr, i32 } %849, 0
  store ptr %850, ptr %5, align 8
  %851 = extractvalue { ptr, i32 } %849, 1
  store i32 %851, ptr %6, align 4
  br label %871

852:                                              ; preds = %823
  %853 = landingpad { ptr, i32 }
          cleanup
  %854 = extractvalue { ptr, i32 } %853, 0
  store ptr %854, ptr %5, align 8
  %855 = extractvalue { ptr, i32 } %853, 1
  store i32 %855, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  br label %871

856:                                              ; preds = %812
  store i8 1, ptr %37, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %857

857:                                              ; preds = %856, %830
  invoke void @__cxa_end_catch()
          to label %858 unwind label %867

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

860:                                              ; preds = %858
  br label %861

861:                                              ; preds = %860, %837
  %862 = load i8, ptr %37, align 1, !tbaa !9, !range !15, !noundef !16
  %863 = trunc i8 %862 to i1
  br i1 %863, label %874, label %864

864:                                              ; preds = %861
  %865 = 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 %866 unwind label %843

866:                                              ; preds = %864
  store i32 4, ptr %15, align 4
  br label %875

867:                                              ; preds = %857
  %868 = landingpad { ptr, i32 }
          cleanup
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %5, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %6, align 4
  br label %873

871:                                              ; preds = %852, %848
  invoke void @__cxa_end_catch()
          to label %872 unwind label %5007

872:                                              ; preds = %871
  br label %873

873:                                              ; preds = %872, %867
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  br label %878

874:                                              ; preds = %861
  store i32 0, ptr %15, align 4
  br label %875

875:                                              ; preds = %874, %866, %858, %842
  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
  %876 = load i32, ptr %15, align 4
  switch i32 %876, label %5010 [
    i32 0, label %877
    i32 4, label %881
  ]

877:                                              ; preds = %875
  br label %901

878:                                              ; preds = %873, %847, %843
  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 %879

879:                                              ; preds = %878, %787
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #11
  br label %932

880:                                              ; preds = %753
  br label %881

881:                                              ; preds = %880, %875
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %882 unwind label %887

882:                                              ; preds = %881
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  %883 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
          to label %884 unwind label %891

884:                                              ; preds = %882
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %46, i32 noundef 1, ptr noundef @.str.3, i32 noundef 907, ptr noundef %883)
          to label %885 unwind label %891

885:                                              ; preds = %884
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %886 unwind label %895

886:                                              ; preds = %885
  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 %901

887:                                              ; preds = %881
  %888 = landingpad { ptr, i32 }
          cleanup
  %889 = extractvalue { ptr, i32 } %888, 0
  store ptr %889, ptr %5, align 8
  %890 = extractvalue { ptr, i32 } %888, 1
  store i32 %890, ptr %6, align 4
  br label %900

891:                                              ; preds = %884, %882
  %892 = landingpad { ptr, i32 }
          cleanup
  %893 = extractvalue { ptr, i32 } %892, 0
  store ptr %893, ptr %5, align 8
  %894 = extractvalue { ptr, i32 } %892, 1
  store i32 %894, ptr %6, align 4
  br label %899

895:                                              ; preds = %885
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %5, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #11
  br label %899

899:                                              ; preds = %895, %891
  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 %900

900:                                              ; preds = %899, %887
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  br label %932

901:                                              ; preds = %886, %877
  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 (ptr, ptr, ...) @_Z12safe_sprintfILm256EEvRAT__cPKcz(ptr noundef nonnull align 1 dereferenceable(256) %3, ptr noundef @.str.921, i32 noundef -2147483648)
  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)
  %902 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %903 unwind label %933

903:                                              ; preds = %901
  br i1 %902, label %904, label %1030

904:                                              ; preds = %903
  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.785, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %905 unwind label %937

905:                                              ; preds = %904
  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
  %906 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %907 unwind label %941

907:                                              ; preds = %905
  br i1 %906, label %908, label %986

908:                                              ; preds = %907
  %909 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef %909)
          to label %910 unwind label %941

910:                                              ; preds = %908
  %911 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 0
  %912 = load ptr, ptr %911, align 8
  %913 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 1
  %914 = load i64, ptr %913, align 8
  %915 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %912, i64 %914)
          to label %916 unwind label %941

916:                                              ; preds = %910
  %917 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %53, i32 0, i32 0
  %918 = getelementptr inbounds { ptr, i64 }, ptr %917, i32 0, i32 0
  %919 = extractvalue { ptr, i64 } %915, 0
  store ptr %919, ptr %918, align 8
  %920 = getelementptr inbounds { ptr, i64 }, ptr %917, i32 0, i32 1
  %921 = extractvalue { ptr, i64 } %915, 1
  store i64 %921, ptr %920, align 8
  %922 = getelementptr inbounds { ptr, i64 }, ptr %53, i32 0, i32 0
  %923 = load ptr, ptr %922, align 8
  %924 = getelementptr inbounds { ptr, i64 }, ptr %53, i32 0, i32 1
  %925 = load i64, ptr %924, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr %923, i64 %925)
          to label %926 unwind label %941

926:                                              ; preds = %916
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  store double 0.000000e+00, ptr %55, align 8, !tbaa !11
  %927 = getelementptr inbounds { ptr, i64 }, ptr %52, i32 0, i32 0
  %928 = load ptr, ptr %927, align 8
  %929 = getelementptr inbounds { ptr, i64 }, ptr %52, i32 0, i32 1
  %930 = load i64, ptr %929, 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 %928, i64 %930, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %931 unwind label %945

931:                                              ; preds = %926
  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 %987

932:                                              ; preds = %900, %879, %783
  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 %5000

933:                                              ; preds = %901
  %934 = landingpad { ptr, i32 }
          cleanup
  %935 = extractvalue { ptr, i32 } %934, 0
  store ptr %935, ptr %5, align 8
  %936 = extractvalue { ptr, i32 } %934, 1
  store i32 %936, ptr %6, align 4
  br label %1081

937:                                              ; preds = %904
  %938 = landingpad { ptr, i32 }
          cleanup
  %939 = extractvalue { ptr, i32 } %938, 0
  store ptr %939, ptr %5, align 8
  %940 = extractvalue { ptr, i32 } %938, 1
  store i32 %940, 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 %1029

941:                                              ; preds = %916, %910, %908, %905
  %942 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %943 = extractvalue { ptr, i32 } %942, 0
  store ptr %943, ptr %5, align 8
  %944 = extractvalue { ptr, i32 } %942, 1
  store i32 %944, ptr %6, align 4
  br label %949

945:                                              ; preds = %926
  %946 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %947 = extractvalue { ptr, i32 } %946, 0
  store ptr %947, ptr %5, align 8
  %948 = extractvalue { ptr, i32 } %946, 1
  store i32 %948, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %949

949:                                              ; preds = %945, %941
  %950 = load i32, ptr %6, align 4
  %951 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %952 = icmp eq i32 %950, %951
  br i1 %952, label %953, label %981

953:                                              ; preds = %949
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #11
  %954 = load ptr, ptr %5, align 8
  %955 = call ptr @__cxa_begin_catch(ptr %954) #11
  store ptr %955, ptr %56, align 8
  %956 = load ptr, ptr %56, align 8, !tbaa !5
  %957 = load ptr, ptr %956, align 8, !tbaa !13
  %958 = getelementptr inbounds ptr, ptr %957, i64 2
  %959 = load ptr, ptr %958, align 8
  %960 = call noundef ptr %959(ptr noundef nonnull align 8 dereferenceable(16) %956) #11
  %961 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef %960)
          to label %962 unwind label %998

962:                                              ; preds = %953
  br i1 %961, label %963, label %1006

963:                                              ; preds = %962
  %964 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 1 dereferenceable(91) @.str.919)
          to label %965 unwind label %998

965:                                              ; preds = %963
  %966 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %964, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %967 unwind label %998

967:                                              ; preds = %965
  %968 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %966, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %969 unwind label %998

969:                                              ; preds = %967
  %970 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %968, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %971 unwind label %998

971:                                              ; preds = %969
  %972 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %970, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %973 unwind label %998

973:                                              ; preds = %971
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  %974 = load ptr, ptr %56, align 8, !tbaa !5
  %975 = load ptr, ptr %974, align 8, !tbaa !13
  %976 = getelementptr inbounds ptr, ptr %975, i64 2
  %977 = load ptr, ptr %976, align 8
  %978 = call noundef ptr %977(ptr noundef nonnull align 8 dereferenceable(16) %974) #11
  store ptr %978, ptr %57, align 8, !tbaa !5
  %979 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %972, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %980 unwind label %1002

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

981:                                              ; preds = %949
  %982 = load ptr, ptr %5, align 8
  %983 = call ptr @__cxa_begin_catch(ptr %982) #11
  %984 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 1 dereferenceable(134) @.str.918)
          to label %985 unwind label %988

985:                                              ; preds = %981
  store i32 5, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %992 unwind label %993

986:                                              ; preds = %907
  br label %987

987:                                              ; preds = %986, %931
  br label %1011

988:                                              ; preds = %981
  %989 = landingpad { ptr, i32 }
          cleanup
  %990 = extractvalue { ptr, i32 } %989, 0
  store ptr %990, ptr %5, align 8
  %991 = extractvalue { ptr, i32 } %989, 1
  store i32 %991, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %997 unwind label %5007

992:                                              ; preds = %985
  br label %1025

993:                                              ; preds = %1014, %985
  %994 = landingpad { ptr, i32 }
          cleanup
  %995 = extractvalue { ptr, i32 } %994, 0
  store ptr %995, ptr %5, align 8
  %996 = extractvalue { ptr, i32 } %994, 1
  store i32 %996, ptr %6, align 4
  br label %1028

997:                                              ; preds = %988
  br label %1028

998:                                              ; preds = %971, %969, %967, %965, %963, %953
  %999 = landingpad { ptr, i32 }
          cleanup
  %1000 = extractvalue { ptr, i32 } %999, 0
  store ptr %1000, ptr %5, align 8
  %1001 = extractvalue { ptr, i32 } %999, 1
  store i32 %1001, ptr %6, align 4
  br label %1021

1002:                                             ; preds = %973
  %1003 = landingpad { ptr, i32 }
          cleanup
  %1004 = extractvalue { ptr, i32 } %1003, 0
  store ptr %1004, ptr %5, align 8
  %1005 = extractvalue { ptr, i32 } %1003, 1
  store i32 %1005, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %1021

1006:                                             ; preds = %962
  store i8 1, ptr %50, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1007

1007:                                             ; preds = %1006, %980
  invoke void @__cxa_end_catch()
          to label %1008 unwind label %1017

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

1010:                                             ; preds = %1008
  br label %1011

1011:                                             ; preds = %1010, %987
  %1012 = load i8, ptr %50, align 1, !tbaa !9, !range !15, !noundef !16
  %1013 = trunc i8 %1012 to i1
  br i1 %1013, label %1024, label %1014

1014:                                             ; preds = %1011
  %1015 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 1 dereferenceable(125) @.str.920)
          to label %1016 unwind label %993

1016:                                             ; preds = %1014
  store i32 5, ptr %15, align 4
  br label %1025

1017:                                             ; preds = %1007
  %1018 = landingpad { ptr, i32 }
          cleanup
  %1019 = extractvalue { ptr, i32 } %1018, 0
  store ptr %1019, ptr %5, align 8
  %1020 = extractvalue { ptr, i32 } %1018, 1
  store i32 %1020, ptr %6, align 4
  br label %1023

1021:                                             ; preds = %1002, %998
  invoke void @__cxa_end_catch()
          to label %1022 unwind label %5007

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022, %1017
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  br label %1028

1024:                                             ; preds = %1011
  store i32 0, ptr %15, align 4
  br label %1025

1025:                                             ; preds = %1024, %1016, %1008, %992
  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
  %1026 = load i32, ptr %15, align 4
  switch i32 %1026, label %5010 [
    i32 0, label %1027
    i32 5, label %1031
  ]

1027:                                             ; preds = %1025
  br label %1051

1028:                                             ; preds = %1023, %997, %993
  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 %1029

1029:                                             ; preds = %1028, %937
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #11
  br label %1081

1030:                                             ; preds = %903
  br label %1031

1031:                                             ; preds = %1030, %1025
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %1032 unwind label %1037

1032:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  %1033 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %1034 unwind label %1041

1034:                                             ; preds = %1032
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %59, i32 noundef 1, ptr noundef @.str.3, i32 noundef 910, ptr noundef %1033)
          to label %1035 unwind label %1041

1035:                                             ; preds = %1034
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %1036 unwind label %1045

1036:                                             ; preds = %1035
  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 %1051

1037:                                             ; preds = %1031
  %1038 = landingpad { ptr, i32 }
          cleanup
  %1039 = extractvalue { ptr, i32 } %1038, 0
  store ptr %1039, ptr %5, align 8
  %1040 = extractvalue { ptr, i32 } %1038, 1
  store i32 %1040, ptr %6, align 4
  br label %1050

1041:                                             ; preds = %1034, %1032
  %1042 = landingpad { ptr, i32 }
          cleanup
  %1043 = extractvalue { ptr, i32 } %1042, 0
  store ptr %1043, ptr %5, align 8
  %1044 = extractvalue { ptr, i32 } %1042, 1
  store i32 %1044, ptr %6, align 4
  br label %1049

1045:                                             ; preds = %1035
  %1046 = landingpad { ptr, i32 }
          cleanup
  %1047 = extractvalue { ptr, i32 } %1046, 0
  store ptr %1047, ptr %5, align 8
  %1048 = extractvalue { ptr, i32 } %1046, 1
  store i32 %1048, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #11
  br label %1049

1049:                                             ; preds = %1045, %1041
  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 %1050

1050:                                             ; preds = %1049, %1037
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  br label %1081

1051:                                             ; preds = %1036, %1027
  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)
  %1052 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %1053 unwind label %1082

1053:                                             ; preds = %1051
  br i1 %1052, label %1054, label %1179

1054:                                             ; preds = %1053
  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.922, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %1055 unwind label %1086

1055:                                             ; preds = %1054
  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
  %1056 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1057 unwind label %1090

1057:                                             ; preds = %1055
  br i1 %1056, label %1058, label %1135

1058:                                             ; preds = %1057
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef @.str.923)
          to label %1059 unwind label %1090

1059:                                             ; preds = %1058
  %1060 = getelementptr inbounds { ptr, i64 }, ptr %67, i32 0, i32 0
  %1061 = load ptr, ptr %1060, align 8
  %1062 = getelementptr inbounds { ptr, i64 }, ptr %67, i32 0, i32 1
  %1063 = load i64, ptr %1062, align 8
  %1064 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1061, i64 %1063)
          to label %1065 unwind label %1090

1065:                                             ; preds = %1059
  %1066 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %66, i32 0, i32 0
  %1067 = getelementptr inbounds { ptr, i64 }, ptr %1066, i32 0, i32 0
  %1068 = extractvalue { ptr, i64 } %1064, 0
  store ptr %1068, ptr %1067, align 8
  %1069 = getelementptr inbounds { ptr, i64 }, ptr %1066, i32 0, i32 1
  %1070 = extractvalue { ptr, i64 } %1064, 1
  store i64 %1070, ptr %1069, align 8
  %1071 = getelementptr inbounds { ptr, i64 }, ptr %66, i32 0, i32 0
  %1072 = load ptr, ptr %1071, align 8
  %1073 = getelementptr inbounds { ptr, i64 }, ptr %66, i32 0, i32 1
  %1074 = load i64, ptr %1073, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr %1072, i64 %1074)
          to label %1075 unwind label %1090

1075:                                             ; preds = %1065
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #11
  store double 0.000000e+00, ptr %68, align 8, !tbaa !11
  %1076 = getelementptr inbounds { ptr, i64 }, ptr %65, i32 0, i32 0
  %1077 = load ptr, ptr %1076, align 8
  %1078 = getelementptr inbounds { ptr, i64 }, ptr %65, i32 0, i32 1
  %1079 = load i64, ptr %1078, 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 %1077, i64 %1079, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %1080 unwind label %1094

1080:                                             ; preds = %1075
  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 %1136

1081:                                             ; preds = %1050, %1029, %933
  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 %5000

1082:                                             ; preds = %1051
  %1083 = landingpad { ptr, i32 }
          cleanup
  %1084 = extractvalue { ptr, i32 } %1083, 0
  store ptr %1084, ptr %5, align 8
  %1085 = extractvalue { ptr, i32 } %1083, 1
  store i32 %1085, ptr %6, align 4
  br label %1230

1086:                                             ; preds = %1054
  %1087 = landingpad { ptr, i32 }
          cleanup
  %1088 = extractvalue { ptr, i32 } %1087, 0
  store ptr %1088, ptr %5, align 8
  %1089 = extractvalue { ptr, i32 } %1087, 1
  store i32 %1089, 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 %1178

1090:                                             ; preds = %1065, %1059, %1058, %1055
  %1091 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1092 = extractvalue { ptr, i32 } %1091, 0
  store ptr %1092, ptr %5, align 8
  %1093 = extractvalue { ptr, i32 } %1091, 1
  store i32 %1093, ptr %6, align 4
  br label %1098

1094:                                             ; preds = %1075
  %1095 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1096 = extractvalue { ptr, i32 } %1095, 0
  store ptr %1096, ptr %5, align 8
  %1097 = extractvalue { ptr, i32 } %1095, 1
  store i32 %1097, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  br label %1098

1098:                                             ; preds = %1094, %1090
  %1099 = load i32, ptr %6, align 4
  %1100 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1101 = icmp eq i32 %1099, %1100
  br i1 %1101, label %1102, label %1130

1102:                                             ; preds = %1098
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #11
  %1103 = load ptr, ptr %5, align 8
  %1104 = call ptr @__cxa_begin_catch(ptr %1103) #11
  store ptr %1104, ptr %69, align 8
  %1105 = load ptr, ptr %69, align 8, !tbaa !5
  %1106 = load ptr, ptr %1105, align 8, !tbaa !13
  %1107 = getelementptr inbounds ptr, ptr %1106, i64 2
  %1108 = load ptr, ptr %1107, align 8
  %1109 = call noundef ptr %1108(ptr noundef nonnull align 8 dereferenceable(16) %1105) #11
  %1110 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef %1109)
          to label %1111 unwind label %1147

1111:                                             ; preds = %1102
  br i1 %1110, label %1112, label %1155

1112:                                             ; preds = %1111
  %1113 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA87_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 1 dereferenceable(87) @.str.925)
          to label %1114 unwind label %1147

1114:                                             ; preds = %1112
  %1115 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1113, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1116 unwind label %1147

1116:                                             ; preds = %1114
  %1117 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1115, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %1118 unwind label %1147

1118:                                             ; preds = %1116
  %1119 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1117, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1120 unwind label %1147

1120:                                             ; preds = %1118
  %1121 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1119, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1122 unwind label %1147

1122:                                             ; preds = %1120
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #11
  %1123 = load ptr, ptr %69, align 8, !tbaa !5
  %1124 = load ptr, ptr %1123, align 8, !tbaa !13
  %1125 = getelementptr inbounds ptr, ptr %1124, i64 2
  %1126 = load ptr, ptr %1125, align 8
  %1127 = call noundef ptr %1126(ptr noundef nonnull align 8 dereferenceable(16) %1123) #11
  store ptr %1127, ptr %70, align 8, !tbaa !5
  %1128 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1121, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %1129 unwind label %1151

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

1130:                                             ; preds = %1098
  %1131 = load ptr, ptr %5, align 8
  %1132 = call ptr @__cxa_begin_catch(ptr %1131) #11
  %1133 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 1 dereferenceable(130) @.str.924)
          to label %1134 unwind label %1137

1134:                                             ; preds = %1130
  store i32 6, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1141 unwind label %1142

1135:                                             ; preds = %1057
  br label %1136

1136:                                             ; preds = %1135, %1080
  br label %1160

1137:                                             ; preds = %1130
  %1138 = landingpad { ptr, i32 }
          cleanup
  %1139 = extractvalue { ptr, i32 } %1138, 0
  store ptr %1139, ptr %5, align 8
  %1140 = extractvalue { ptr, i32 } %1138, 1
  store i32 %1140, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1146 unwind label %5007

1141:                                             ; preds = %1134
  br label %1174

1142:                                             ; preds = %1163, %1134
  %1143 = landingpad { ptr, i32 }
          cleanup
  %1144 = extractvalue { ptr, i32 } %1143, 0
  store ptr %1144, ptr %5, align 8
  %1145 = extractvalue { ptr, i32 } %1143, 1
  store i32 %1145, ptr %6, align 4
  br label %1177

1146:                                             ; preds = %1137
  br label %1177

1147:                                             ; preds = %1120, %1118, %1116, %1114, %1112, %1102
  %1148 = landingpad { ptr, i32 }
          cleanup
  %1149 = extractvalue { ptr, i32 } %1148, 0
  store ptr %1149, ptr %5, align 8
  %1150 = extractvalue { ptr, i32 } %1148, 1
  store i32 %1150, ptr %6, align 4
  br label %1170

1151:                                             ; preds = %1122
  %1152 = landingpad { ptr, i32 }
          cleanup
  %1153 = extractvalue { ptr, i32 } %1152, 0
  store ptr %1153, ptr %5, align 8
  %1154 = extractvalue { ptr, i32 } %1152, 1
  store i32 %1154, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  br label %1170

1155:                                             ; preds = %1111
  store i8 1, ptr %63, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1156

1156:                                             ; preds = %1155, %1129
  invoke void @__cxa_end_catch()
          to label %1157 unwind label %1166

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

1159:                                             ; preds = %1157
  br label %1160

1160:                                             ; preds = %1159, %1136
  %1161 = load i8, ptr %63, align 1, !tbaa !9, !range !15, !noundef !16
  %1162 = trunc i8 %1161 to i1
  br i1 %1162, label %1173, label %1163

1163:                                             ; preds = %1160
  %1164 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA121_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 1 dereferenceable(121) @.str.926)
          to label %1165 unwind label %1142

1165:                                             ; preds = %1163
  store i32 6, ptr %15, align 4
  br label %1174

1166:                                             ; preds = %1156
  %1167 = landingpad { ptr, i32 }
          cleanup
  %1168 = extractvalue { ptr, i32 } %1167, 0
  store ptr %1168, ptr %5, align 8
  %1169 = extractvalue { ptr, i32 } %1167, 1
  store i32 %1169, ptr %6, align 4
  br label %1172

1170:                                             ; preds = %1151, %1147
  invoke void @__cxa_end_catch()
          to label %1171 unwind label %5007

1171:                                             ; preds = %1170
  br label %1172

1172:                                             ; preds = %1171, %1166
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  br label %1177

1173:                                             ; preds = %1160
  store i32 0, ptr %15, align 4
  br label %1174

1174:                                             ; preds = %1173, %1165, %1157, %1141
  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
  %1175 = load i32, ptr %15, align 4
  switch i32 %1175, label %5010 [
    i32 0, label %1176
    i32 6, label %1180
  ]

1176:                                             ; preds = %1174
  br label %1200

1177:                                             ; preds = %1172, %1146, %1142
  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 %1178

1178:                                             ; preds = %1177, %1086
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #11
  br label %1230

1179:                                             ; preds = %1053
  br label %1180

1180:                                             ; preds = %1179, %1174
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %1181 unwind label %1186

1181:                                             ; preds = %1180
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #11
  %1182 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %1183 unwind label %1190

1183:                                             ; preds = %1181
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %72, i32 noundef 1, ptr noundef @.str.3, i32 noundef 913, ptr noundef %1182)
          to label %1184 unwind label %1190

1184:                                             ; preds = %1183
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %1185 unwind label %1194

1185:                                             ; preds = %1184
  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 %1200

1186:                                             ; preds = %1180
  %1187 = landingpad { ptr, i32 }
          cleanup
  %1188 = extractvalue { ptr, i32 } %1187, 0
  store ptr %1188, ptr %5, align 8
  %1189 = extractvalue { ptr, i32 } %1187, 1
  store i32 %1189, ptr %6, align 4
  br label %1199

1190:                                             ; preds = %1183, %1181
  %1191 = landingpad { ptr, i32 }
          cleanup
  %1192 = extractvalue { ptr, i32 } %1191, 0
  store ptr %1192, ptr %5, align 8
  %1193 = extractvalue { ptr, i32 } %1191, 1
  store i32 %1193, ptr %6, align 4
  br label %1198

1194:                                             ; preds = %1184
  %1195 = landingpad { ptr, i32 }
          cleanup
  %1196 = extractvalue { ptr, i32 } %1195, 0
  store ptr %1196, ptr %5, align 8
  %1197 = extractvalue { ptr, i32 } %1195, 1
  store i32 %1197, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #11
  br label %1198

1198:                                             ; preds = %1194, %1190
  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 %1199

1199:                                             ; preds = %1198, %1186
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  br label %1230

1200:                                             ; preds = %1185, %1176
  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)
  %1201 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %1202 unwind label %1231

1202:                                             ; preds = %1200
  br i1 %1201, label %1203, label %1328

1203:                                             ; preds = %1202
  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.922, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %1204 unwind label %1235

1204:                                             ; preds = %1203
  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
  %1205 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1206 unwind label %1239

1206:                                             ; preds = %1204
  br i1 %1205, label %1207, label %1284

1207:                                             ; preds = %1206
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %80, ptr noundef @.str.927)
          to label %1208 unwind label %1239

1208:                                             ; preds = %1207
  %1209 = getelementptr inbounds { ptr, i64 }, ptr %80, i32 0, i32 0
  %1210 = load ptr, ptr %1209, align 8
  %1211 = getelementptr inbounds { ptr, i64 }, ptr %80, i32 0, i32 1
  %1212 = load i64, ptr %1211, align 8
  %1213 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1210, i64 %1212)
          to label %1214 unwind label %1239

1214:                                             ; preds = %1208
  %1215 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %79, i32 0, i32 0
  %1216 = getelementptr inbounds { ptr, i64 }, ptr %1215, i32 0, i32 0
  %1217 = extractvalue { ptr, i64 } %1213, 0
  store ptr %1217, ptr %1216, align 8
  %1218 = getelementptr inbounds { ptr, i64 }, ptr %1215, i32 0, i32 1
  %1219 = extractvalue { ptr, i64 } %1213, 1
  store i64 %1219, ptr %1218, align 8
  %1220 = getelementptr inbounds { ptr, i64 }, ptr %79, i32 0, i32 0
  %1221 = load ptr, ptr %1220, align 8
  %1222 = getelementptr inbounds { ptr, i64 }, ptr %79, i32 0, i32 1
  %1223 = load i64, ptr %1222, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr %1221, i64 %1223)
          to label %1224 unwind label %1239

1224:                                             ; preds = %1214
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #11
  store double 0.000000e+00, ptr %81, align 8, !tbaa !11
  %1225 = getelementptr inbounds { ptr, i64 }, ptr %78, i32 0, i32 0
  %1226 = load ptr, ptr %1225, align 8
  %1227 = getelementptr inbounds { ptr, i64 }, ptr %78, i32 0, i32 1
  %1228 = load i64, ptr %1227, 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 %1226, i64 %1228, ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %1229 unwind label %1243

1229:                                             ; preds = %1224
  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 %1285

1230:                                             ; preds = %1199, %1178, %1082
  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 %5000

1231:                                             ; preds = %1200
  %1232 = landingpad { ptr, i32 }
          cleanup
  %1233 = extractvalue { ptr, i32 } %1232, 0
  store ptr %1233, ptr %5, align 8
  %1234 = extractvalue { ptr, i32 } %1232, 1
  store i32 %1234, ptr %6, align 4
  br label %1379

1235:                                             ; preds = %1203
  %1236 = landingpad { ptr, i32 }
          cleanup
  %1237 = extractvalue { ptr, i32 } %1236, 0
  store ptr %1237, ptr %5, align 8
  %1238 = extractvalue { ptr, i32 } %1236, 1
  store i32 %1238, 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 %1327

1239:                                             ; preds = %1214, %1208, %1207, %1204
  %1240 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1241 = extractvalue { ptr, i32 } %1240, 0
  store ptr %1241, ptr %5, align 8
  %1242 = extractvalue { ptr, i32 } %1240, 1
  store i32 %1242, ptr %6, align 4
  br label %1247

1243:                                             ; preds = %1224
  %1244 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1245 = extractvalue { ptr, i32 } %1244, 0
  store ptr %1245, ptr %5, align 8
  %1246 = extractvalue { ptr, i32 } %1244, 1
  store i32 %1246, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #11
  br label %1247

1247:                                             ; preds = %1243, %1239
  %1248 = load i32, ptr %6, align 4
  %1249 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1250 = icmp eq i32 %1248, %1249
  br i1 %1250, label %1251, label %1279

1251:                                             ; preds = %1247
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #11
  %1252 = load ptr, ptr %5, align 8
  %1253 = call ptr @__cxa_begin_catch(ptr %1252) #11
  store ptr %1253, ptr %82, align 8
  %1254 = load ptr, ptr %82, align 8, !tbaa !5
  %1255 = load ptr, ptr %1254, align 8, !tbaa !13
  %1256 = getelementptr inbounds ptr, ptr %1255, i64 2
  %1257 = load ptr, ptr %1256, align 8
  %1258 = call noundef ptr %1257(ptr noundef nonnull align 8 dereferenceable(16) %1254) #11
  %1259 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef %1258)
          to label %1260 unwind label %1296

1260:                                             ; preds = %1251
  br i1 %1259, label %1261, label %1304

1261:                                             ; preds = %1260
  %1262 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 1 dereferenceable(88) @.str.929)
          to label %1263 unwind label %1296

1263:                                             ; preds = %1261
  %1264 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1262, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1265 unwind label %1296

1265:                                             ; preds = %1263
  %1266 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1264, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %1267 unwind label %1296

1267:                                             ; preds = %1265
  %1268 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1266, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1269 unwind label %1296

1269:                                             ; preds = %1267
  %1270 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1268, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1271 unwind label %1296

1271:                                             ; preds = %1269
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #11
  %1272 = load ptr, ptr %82, align 8, !tbaa !5
  %1273 = load ptr, ptr %1272, align 8, !tbaa !13
  %1274 = getelementptr inbounds ptr, ptr %1273, i64 2
  %1275 = load ptr, ptr %1274, align 8
  %1276 = call noundef ptr %1275(ptr noundef nonnull align 8 dereferenceable(16) %1272) #11
  store ptr %1276, ptr %83, align 8, !tbaa !5
  %1277 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1270, ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %1278 unwind label %1300

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

1279:                                             ; preds = %1247
  %1280 = load ptr, ptr %5, align 8
  %1281 = call ptr @__cxa_begin_catch(ptr %1280) #11
  %1282 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 1 dereferenceable(131) @.str.928)
          to label %1283 unwind label %1286

1283:                                             ; preds = %1279
  store i32 7, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1290 unwind label %1291

1284:                                             ; preds = %1206
  br label %1285

1285:                                             ; preds = %1284, %1229
  br label %1309

1286:                                             ; preds = %1279
  %1287 = landingpad { ptr, i32 }
          cleanup
  %1288 = extractvalue { ptr, i32 } %1287, 0
  store ptr %1288, ptr %5, align 8
  %1289 = extractvalue { ptr, i32 } %1287, 1
  store i32 %1289, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1295 unwind label %5007

1290:                                             ; preds = %1283
  br label %1323

1291:                                             ; preds = %1312, %1283
  %1292 = landingpad { ptr, i32 }
          cleanup
  %1293 = extractvalue { ptr, i32 } %1292, 0
  store ptr %1293, ptr %5, align 8
  %1294 = extractvalue { ptr, i32 } %1292, 1
  store i32 %1294, ptr %6, align 4
  br label %1326

1295:                                             ; preds = %1286
  br label %1326

1296:                                             ; preds = %1269, %1267, %1265, %1263, %1261, %1251
  %1297 = landingpad { ptr, i32 }
          cleanup
  %1298 = extractvalue { ptr, i32 } %1297, 0
  store ptr %1298, ptr %5, align 8
  %1299 = extractvalue { ptr, i32 } %1297, 1
  store i32 %1299, ptr %6, align 4
  br label %1319

1300:                                             ; preds = %1271
  %1301 = landingpad { ptr, i32 }
          cleanup
  %1302 = extractvalue { ptr, i32 } %1301, 0
  store ptr %1302, ptr %5, align 8
  %1303 = extractvalue { ptr, i32 } %1301, 1
  store i32 %1303, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  br label %1319

1304:                                             ; preds = %1260
  store i8 1, ptr %76, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1305

1305:                                             ; preds = %1304, %1278
  invoke void @__cxa_end_catch()
          to label %1306 unwind label %1315

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

1308:                                             ; preds = %1306
  br label %1309

1309:                                             ; preds = %1308, %1285
  %1310 = load i8, ptr %76, align 1, !tbaa !9, !range !15, !noundef !16
  %1311 = trunc i8 %1310 to i1
  br i1 %1311, label %1322, label %1312

1312:                                             ; preds = %1309
  %1313 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 1 dereferenceable(122) @.str.930)
          to label %1314 unwind label %1291

1314:                                             ; preds = %1312
  store i32 7, ptr %15, align 4
  br label %1323

1315:                                             ; preds = %1305
  %1316 = landingpad { ptr, i32 }
          cleanup
  %1317 = extractvalue { ptr, i32 } %1316, 0
  store ptr %1317, ptr %5, align 8
  %1318 = extractvalue { ptr, i32 } %1316, 1
  store i32 %1318, ptr %6, align 4
  br label %1321

1319:                                             ; preds = %1300, %1296
  invoke void @__cxa_end_catch()
          to label %1320 unwind label %5007

1320:                                             ; preds = %1319
  br label %1321

1321:                                             ; preds = %1320, %1315
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  br label %1326

1322:                                             ; preds = %1309
  store i32 0, ptr %15, align 4
  br label %1323

1323:                                             ; preds = %1322, %1314, %1306, %1290
  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
  %1324 = load i32, ptr %15, align 4
  switch i32 %1324, label %5010 [
    i32 0, label %1325
    i32 7, label %1329
  ]

1325:                                             ; preds = %1323
  br label %1349

1326:                                             ; preds = %1321, %1295, %1291
  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 %1327

1327:                                             ; preds = %1326, %1235
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #11
  br label %1379

1328:                                             ; preds = %1202
  br label %1329

1329:                                             ; preds = %1328, %1323
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %1330 unwind label %1335

1330:                                             ; preds = %1329
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #11
  %1331 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %1332 unwind label %1339

1332:                                             ; preds = %1330
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %85, i32 noundef 1, ptr noundef @.str.3, i32 noundef 915, ptr noundef %1331)
          to label %1333 unwind label %1339

1333:                                             ; preds = %1332
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %1334 unwind label %1343

1334:                                             ; preds = %1333
  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 %1349

1335:                                             ; preds = %1329
  %1336 = landingpad { ptr, i32 }
          cleanup
  %1337 = extractvalue { ptr, i32 } %1336, 0
  store ptr %1337, ptr %5, align 8
  %1338 = extractvalue { ptr, i32 } %1336, 1
  store i32 %1338, ptr %6, align 4
  br label %1348

1339:                                             ; preds = %1332, %1330
  %1340 = landingpad { ptr, i32 }
          cleanup
  %1341 = extractvalue { ptr, i32 } %1340, 0
  store ptr %1341, ptr %5, align 8
  %1342 = extractvalue { ptr, i32 } %1340, 1
  store i32 %1342, ptr %6, align 4
  br label %1347

1343:                                             ; preds = %1333
  %1344 = landingpad { ptr, i32 }
          cleanup
  %1345 = extractvalue { ptr, i32 } %1344, 0
  store ptr %1345, ptr %5, align 8
  %1346 = extractvalue { ptr, i32 } %1344, 1
  store i32 %1346, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #11
  br label %1347

1347:                                             ; preds = %1343, %1339
  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 %1348

1348:                                             ; preds = %1347, %1335
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #11
  br label %1379

1349:                                             ; preds = %1334, %1325
  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)
  %1350 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %1351 unwind label %1380

1351:                                             ; preds = %1349
  br i1 %1350, label %1352, label %1477

1352:                                             ; preds = %1351
  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 %1353 unwind label %1384

1353:                                             ; preds = %1352
  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
  %1354 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1355 unwind label %1388

1355:                                             ; preds = %1353
  br i1 %1354, label %1356, label %1433

1356:                                             ; preds = %1355
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef @.str.931)
          to label %1357 unwind label %1388

1357:                                             ; preds = %1356
  %1358 = getelementptr inbounds { ptr, i64 }, ptr %93, i32 0, i32 0
  %1359 = load ptr, ptr %1358, align 8
  %1360 = getelementptr inbounds { ptr, i64 }, ptr %93, i32 0, i32 1
  %1361 = load i64, ptr %1360, align 8
  %1362 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1359, i64 %1361)
          to label %1363 unwind label %1388

1363:                                             ; preds = %1357
  %1364 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %92, i32 0, i32 0
  %1365 = getelementptr inbounds { ptr, i64 }, ptr %1364, i32 0, i32 0
  %1366 = extractvalue { ptr, i64 } %1362, 0
  store ptr %1366, ptr %1365, align 8
  %1367 = getelementptr inbounds { ptr, i64 }, ptr %1364, i32 0, i32 1
  %1368 = extractvalue { ptr, i64 } %1362, 1
  store i64 %1368, ptr %1367, align 8
  %1369 = getelementptr inbounds { ptr, i64 }, ptr %92, i32 0, i32 0
  %1370 = load ptr, ptr %1369, align 8
  %1371 = getelementptr inbounds { ptr, i64 }, ptr %92, i32 0, i32 1
  %1372 = load i64, ptr %1371, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %91, ptr %1370, i64 %1372)
          to label %1373 unwind label %1388

1373:                                             ; preds = %1363
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  store i32 0, ptr %94, align 4, !tbaa !20
  %1374 = getelementptr inbounds { ptr, i64 }, ptr %91, i32 0, i32 0
  %1375 = load ptr, ptr %1374, align 8
  %1376 = getelementptr inbounds { ptr, i64 }, ptr %91, i32 0, i32 1
  %1377 = load i64, ptr %1376, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr %1375, i64 %1377, ptr noundef nonnull align 4 dereferenceable(4) %94)
          to label %1378 unwind label %1392

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

1379:                                             ; preds = %1348, %1327, %1231
  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 %5000

1380:                                             ; preds = %1349
  %1381 = landingpad { ptr, i32 }
          cleanup
  %1382 = extractvalue { ptr, i32 } %1381, 0
  store ptr %1382, ptr %5, align 8
  %1383 = extractvalue { ptr, i32 } %1381, 1
  store i32 %1383, ptr %6, align 4
  br label %1528

1384:                                             ; preds = %1352
  %1385 = landingpad { ptr, i32 }
          cleanup
  %1386 = extractvalue { ptr, i32 } %1385, 0
  store ptr %1386, ptr %5, align 8
  %1387 = extractvalue { ptr, i32 } %1385, 1
  store i32 %1387, 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 %1476

1388:                                             ; preds = %1363, %1357, %1356, %1353
  %1389 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1390 = extractvalue { ptr, i32 } %1389, 0
  store ptr %1390, ptr %5, align 8
  %1391 = extractvalue { ptr, i32 } %1389, 1
  store i32 %1391, ptr %6, align 4
  br label %1396

1392:                                             ; preds = %1373
  %1393 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1394 = extractvalue { ptr, i32 } %1393, 0
  store ptr %1394, ptr %5, align 8
  %1395 = extractvalue { ptr, i32 } %1393, 1
  store i32 %1395, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %1396

1396:                                             ; preds = %1392, %1388
  %1397 = load i32, ptr %6, align 4
  %1398 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1399 = icmp eq i32 %1397, %1398
  br i1 %1399, label %1400, label %1428

1400:                                             ; preds = %1396
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #11
  %1401 = load ptr, ptr %5, align 8
  %1402 = call ptr @__cxa_begin_catch(ptr %1401) #11
  store ptr %1402, ptr %95, align 8
  %1403 = load ptr, ptr %95, align 8, !tbaa !5
  %1404 = load ptr, ptr %1403, align 8, !tbaa !13
  %1405 = getelementptr inbounds ptr, ptr %1404, i64 2
  %1406 = load ptr, ptr %1405, align 8
  %1407 = call noundef ptr %1406(ptr noundef nonnull align 8 dereferenceable(16) %1403) #11
  %1408 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef %1407)
          to label %1409 unwind label %1445

1409:                                             ; preds = %1400
  br i1 %1408, label %1410, label %1453

1410:                                             ; preds = %1409
  %1411 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA86_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 1 dereferenceable(86) @.str.933)
          to label %1412 unwind label %1445

1412:                                             ; preds = %1410
  %1413 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1411, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1414 unwind label %1445

1414:                                             ; preds = %1412
  %1415 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1413, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %1416 unwind label %1445

1416:                                             ; preds = %1414
  %1417 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1415, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1418 unwind label %1445

1418:                                             ; preds = %1416
  %1419 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1417, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1420 unwind label %1445

1420:                                             ; preds = %1418
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #11
  %1421 = load ptr, ptr %95, align 8, !tbaa !5
  %1422 = load ptr, ptr %1421, align 8, !tbaa !13
  %1423 = getelementptr inbounds ptr, ptr %1422, i64 2
  %1424 = load ptr, ptr %1423, align 8
  %1425 = call noundef ptr %1424(ptr noundef nonnull align 8 dereferenceable(16) %1421) #11
  store ptr %1425, ptr %96, align 8, !tbaa !5
  %1426 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1419, ptr noundef nonnull align 8 dereferenceable(8) %96)
          to label %1427 unwind label %1449

1427:                                             ; preds = %1420
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #11
  store i32 8, ptr %15, align 4
  br label %1454

1428:                                             ; preds = %1396
  %1429 = load ptr, ptr %5, align 8
  %1430 = call ptr @__cxa_begin_catch(ptr %1429) #11
  %1431 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 1 dereferenceable(129) @.str.932)
          to label %1432 unwind label %1435

1432:                                             ; preds = %1428
  store i32 8, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1439 unwind label %1440

1433:                                             ; preds = %1355
  br label %1434

1434:                                             ; preds = %1433, %1378
  br label %1458

1435:                                             ; preds = %1428
  %1436 = landingpad { ptr, i32 }
          cleanup
  %1437 = extractvalue { ptr, i32 } %1436, 0
  store ptr %1437, ptr %5, align 8
  %1438 = extractvalue { ptr, i32 } %1436, 1
  store i32 %1438, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1444 unwind label %5007

1439:                                             ; preds = %1432
  br label %1472

1440:                                             ; preds = %1461, %1432
  %1441 = landingpad { ptr, i32 }
          cleanup
  %1442 = extractvalue { ptr, i32 } %1441, 0
  store ptr %1442, ptr %5, align 8
  %1443 = extractvalue { ptr, i32 } %1441, 1
  store i32 %1443, ptr %6, align 4
  br label %1475

1444:                                             ; preds = %1435
  br label %1475

1445:                                             ; preds = %1418, %1416, %1414, %1412, %1410, %1400
  %1446 = landingpad { ptr, i32 }
          cleanup
  %1447 = extractvalue { ptr, i32 } %1446, 0
  store ptr %1447, ptr %5, align 8
  %1448 = extractvalue { ptr, i32 } %1446, 1
  store i32 %1448, ptr %6, align 4
  br label %1468

1449:                                             ; preds = %1420
  %1450 = landingpad { ptr, i32 }
          cleanup
  %1451 = extractvalue { ptr, i32 } %1450, 0
  store ptr %1451, ptr %5, align 8
  %1452 = extractvalue { ptr, i32 } %1450, 1
  store i32 %1452, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #11
  br label %1468

1453:                                             ; preds = %1409
  store i8 1, ptr %89, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1454

1454:                                             ; preds = %1453, %1427
  invoke void @__cxa_end_catch()
          to label %1455 unwind label %1464

1455:                                             ; preds = %1454
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  %1456 = load i32, ptr %15, align 4
  switch i32 %1456, label %1472 [
    i32 0, label %1457
  ]

1457:                                             ; preds = %1455
  br label %1458

1458:                                             ; preds = %1457, %1434
  %1459 = load i8, ptr %89, align 1, !tbaa !9, !range !15, !noundef !16
  %1460 = trunc i8 %1459 to i1
  br i1 %1460, label %1471, label %1461

1461:                                             ; preds = %1458
  %1462 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA120_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 1 dereferenceable(120) @.str.934)
          to label %1463 unwind label %1440

1463:                                             ; preds = %1461
  store i32 8, ptr %15, align 4
  br label %1472

1464:                                             ; preds = %1454
  %1465 = landingpad { ptr, i32 }
          cleanup
  %1466 = extractvalue { ptr, i32 } %1465, 0
  store ptr %1466, ptr %5, align 8
  %1467 = extractvalue { ptr, i32 } %1465, 1
  store i32 %1467, ptr %6, align 4
  br label %1470

1468:                                             ; preds = %1449, %1445
  invoke void @__cxa_end_catch()
          to label %1469 unwind label %5007

1469:                                             ; preds = %1468
  br label %1470

1470:                                             ; preds = %1469, %1464
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  br label %1475

1471:                                             ; preds = %1458
  store i32 0, ptr %15, align 4
  br label %1472

1472:                                             ; preds = %1471, %1463, %1455, %1439
  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
  %1473 = load i32, ptr %15, align 4
  switch i32 %1473, label %5010 [
    i32 0, label %1474
    i32 8, label %1478
  ]

1474:                                             ; preds = %1472
  br label %1498

1475:                                             ; preds = %1470, %1444, %1440
  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 %1476

1476:                                             ; preds = %1475, %1384
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #11
  br label %1528

1477:                                             ; preds = %1351
  br label %1478

1478:                                             ; preds = %1477, %1472
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1479 unwind label %1484

1479:                                             ; preds = %1478
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  %1480 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %1481 unwind label %1488

1481:                                             ; preds = %1479
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %98, i32 noundef 1, ptr noundef @.str.3, i32 noundef 918, ptr noundef %1480)
          to label %1482 unwind label %1488

1482:                                             ; preds = %1481
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1483 unwind label %1492

1483:                                             ; preds = %1482
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  br label %1498

1484:                                             ; preds = %1478
  %1485 = landingpad { ptr, i32 }
          cleanup
  %1486 = extractvalue { ptr, i32 } %1485, 0
  store ptr %1486, ptr %5, align 8
  %1487 = extractvalue { ptr, i32 } %1485, 1
  store i32 %1487, ptr %6, align 4
  br label %1497

1488:                                             ; preds = %1481, %1479
  %1489 = landingpad { ptr, i32 }
          cleanup
  %1490 = extractvalue { ptr, i32 } %1489, 0
  store ptr %1490, ptr %5, align 8
  %1491 = extractvalue { ptr, i32 } %1489, 1
  store i32 %1491, ptr %6, align 4
  br label %1496

1492:                                             ; preds = %1482
  %1493 = landingpad { ptr, i32 }
          cleanup
  %1494 = extractvalue { ptr, i32 } %1493, 0
  store ptr %1494, ptr %5, align 8
  %1495 = extractvalue { ptr, i32 } %1493, 1
  store i32 %1495, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #11
  br label %1496

1496:                                             ; preds = %1492, %1488
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #11
  br label %1497

1497:                                             ; preds = %1496, %1484
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  br label %1528

1498:                                             ; preds = %1483, %1474
  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 %99) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %99)
  %1499 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %99)
          to label %1500 unwind label %1529

1500:                                             ; preds = %1498
  br i1 %1499, label %1501, label %1626

1501:                                             ; preds = %1500
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %101) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %1502 unwind label %1533

1502:                                             ; preds = %1501
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %102) #11
  store i8 0, ptr %102, align 1, !tbaa !9
  %1503 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1504 unwind label %1537

1504:                                             ; preds = %1502
  br i1 %1503, label %1505, label %1582

1505:                                             ; preds = %1504
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %106, ptr noundef @.str.935)
          to label %1506 unwind label %1537

1506:                                             ; preds = %1505
  %1507 = getelementptr inbounds { ptr, i64 }, ptr %106, i32 0, i32 0
  %1508 = load ptr, ptr %1507, align 8
  %1509 = getelementptr inbounds { ptr, i64 }, ptr %106, i32 0, i32 1
  %1510 = load i64, ptr %1509, align 8
  %1511 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1508, i64 %1510)
          to label %1512 unwind label %1537

1512:                                             ; preds = %1506
  %1513 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %105, i32 0, i32 0
  %1514 = getelementptr inbounds { ptr, i64 }, ptr %1513, i32 0, i32 0
  %1515 = extractvalue { ptr, i64 } %1511, 0
  store ptr %1515, ptr %1514, align 8
  %1516 = getelementptr inbounds { ptr, i64 }, ptr %1513, i32 0, i32 1
  %1517 = extractvalue { ptr, i64 } %1511, 1
  store i64 %1517, ptr %1516, align 8
  %1518 = getelementptr inbounds { ptr, i64 }, ptr %105, i32 0, i32 0
  %1519 = load ptr, ptr %1518, align 8
  %1520 = getelementptr inbounds { ptr, i64 }, ptr %105, i32 0, i32 1
  %1521 = load i64, ptr %1520, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %104, ptr %1519, i64 %1521)
          to label %1522 unwind label %1537

1522:                                             ; preds = %1512
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  store i32 42, ptr %107, align 4, !tbaa !20
  %1523 = getelementptr inbounds { ptr, i64 }, ptr %104, i32 0, i32 0
  %1524 = load ptr, ptr %1523, align 8
  %1525 = getelementptr inbounds { ptr, i64 }, ptr %104, i32 0, i32 1
  %1526 = load i64, ptr %1525, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr %1524, i64 %1526, ptr noundef nonnull align 4 dereferenceable(4) %107)
          to label %1527 unwind label %1541

1527:                                             ; preds = %1522
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %1583

1528:                                             ; preds = %1497, %1476, %1380
  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 %5000

1529:                                             ; preds = %1498
  %1530 = landingpad { ptr, i32 }
          cleanup
  %1531 = extractvalue { ptr, i32 } %1530, 0
  store ptr %1531, ptr %5, align 8
  %1532 = extractvalue { ptr, i32 } %1530, 1
  store i32 %1532, ptr %6, align 4
  br label %1677

1533:                                             ; preds = %1501
  %1534 = landingpad { ptr, i32 }
          cleanup
  %1535 = extractvalue { ptr, i32 } %1534, 0
  store ptr %1535, ptr %5, align 8
  %1536 = extractvalue { ptr, i32 } %1534, 1
  store i32 %1536, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #11
  br label %1625

1537:                                             ; preds = %1512, %1506, %1505, %1502
  %1538 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1539 = extractvalue { ptr, i32 } %1538, 0
  store ptr %1539, ptr %5, align 8
  %1540 = extractvalue { ptr, i32 } %1538, 1
  store i32 %1540, ptr %6, align 4
  br label %1545

1541:                                             ; preds = %1522
  %1542 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1543 = extractvalue { ptr, i32 } %1542, 0
  store ptr %1543, ptr %5, align 8
  %1544 = extractvalue { ptr, i32 } %1542, 1
  store i32 %1544, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %1545

1545:                                             ; preds = %1541, %1537
  %1546 = load i32, ptr %6, align 4
  %1547 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1548 = icmp eq i32 %1546, %1547
  br i1 %1548, label %1549, label %1577

1549:                                             ; preds = %1545
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #11
  %1550 = load ptr, ptr %5, align 8
  %1551 = call ptr @__cxa_begin_catch(ptr %1550) #11
  store ptr %1551, ptr %108, align 8
  %1552 = load ptr, ptr %108, align 8, !tbaa !5
  %1553 = load ptr, ptr %1552, align 8, !tbaa !13
  %1554 = getelementptr inbounds ptr, ptr %1553, i64 2
  %1555 = load ptr, ptr %1554, align 8
  %1556 = call noundef ptr %1555(ptr noundef nonnull align 8 dereferenceable(16) %1552) #11
  %1557 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef %1556)
          to label %1558 unwind label %1594

1558:                                             ; preds = %1549
  br i1 %1557, label %1559, label %1602

1559:                                             ; preds = %1558
  %1560 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %99, ptr noundef nonnull align 1 dereferenceable(88) @.str.937)
          to label %1561 unwind label %1594

1561:                                             ; preds = %1559
  %1562 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1560, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1563 unwind label %1594

1563:                                             ; preds = %1561
  %1564 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1562, ptr noundef nonnull align 8 dereferenceable(32) %100)
          to label %1565 unwind label %1594

1565:                                             ; preds = %1563
  %1566 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1564, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1567 unwind label %1594

1567:                                             ; preds = %1565
  %1568 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1566, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1569 unwind label %1594

1569:                                             ; preds = %1567
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #11
  %1570 = load ptr, ptr %108, align 8, !tbaa !5
  %1571 = load ptr, ptr %1570, align 8, !tbaa !13
  %1572 = getelementptr inbounds ptr, ptr %1571, i64 2
  %1573 = load ptr, ptr %1572, align 8
  %1574 = call noundef ptr %1573(ptr noundef nonnull align 8 dereferenceable(16) %1570) #11
  store ptr %1574, ptr %109, align 8, !tbaa !5
  %1575 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1568, ptr noundef nonnull align 8 dereferenceable(8) %109)
          to label %1576 unwind label %1598

1576:                                             ; preds = %1569
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  store i32 9, ptr %15, align 4
  br label %1603

1577:                                             ; preds = %1545
  %1578 = load ptr, ptr %5, align 8
  %1579 = call ptr @__cxa_begin_catch(ptr %1578) #11
  %1580 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %99, ptr noundef nonnull align 1 dereferenceable(131) @.str.936)
          to label %1581 unwind label %1584

1581:                                             ; preds = %1577
  store i32 9, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1588 unwind label %1589

1582:                                             ; preds = %1504
  br label %1583

1583:                                             ; preds = %1582, %1527
  br label %1607

1584:                                             ; preds = %1577
  %1585 = landingpad { ptr, i32 }
          cleanup
  %1586 = extractvalue { ptr, i32 } %1585, 0
  store ptr %1586, ptr %5, align 8
  %1587 = extractvalue { ptr, i32 } %1585, 1
  store i32 %1587, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1593 unwind label %5007

1588:                                             ; preds = %1581
  br label %1621

1589:                                             ; preds = %1610, %1581
  %1590 = landingpad { ptr, i32 }
          cleanup
  %1591 = extractvalue { ptr, i32 } %1590, 0
  store ptr %1591, ptr %5, align 8
  %1592 = extractvalue { ptr, i32 } %1590, 1
  store i32 %1592, ptr %6, align 4
  br label %1624

1593:                                             ; preds = %1584
  br label %1624

1594:                                             ; preds = %1567, %1565, %1563, %1561, %1559, %1549
  %1595 = landingpad { ptr, i32 }
          cleanup
  %1596 = extractvalue { ptr, i32 } %1595, 0
  store ptr %1596, ptr %5, align 8
  %1597 = extractvalue { ptr, i32 } %1595, 1
  store i32 %1597, ptr %6, align 4
  br label %1617

1598:                                             ; preds = %1569
  %1599 = landingpad { ptr, i32 }
          cleanup
  %1600 = extractvalue { ptr, i32 } %1599, 0
  store ptr %1600, ptr %5, align 8
  %1601 = extractvalue { ptr, i32 } %1599, 1
  store i32 %1601, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  br label %1617

1602:                                             ; preds = %1558
  store i8 1, ptr %102, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1603

1603:                                             ; preds = %1602, %1576
  invoke void @__cxa_end_catch()
          to label %1604 unwind label %1613

1604:                                             ; preds = %1603
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  %1605 = load i32, ptr %15, align 4
  switch i32 %1605, label %1621 [
    i32 0, label %1606
  ]

1606:                                             ; preds = %1604
  br label %1607

1607:                                             ; preds = %1606, %1583
  %1608 = load i8, ptr %102, align 1, !tbaa !9, !range !15, !noundef !16
  %1609 = trunc i8 %1608 to i1
  br i1 %1609, label %1620, label %1610

1610:                                             ; preds = %1607
  %1611 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %99, ptr noundef nonnull align 1 dereferenceable(122) @.str.938)
          to label %1612 unwind label %1589

1612:                                             ; preds = %1610
  store i32 9, ptr %15, align 4
  br label %1621

1613:                                             ; preds = %1603
  %1614 = landingpad { ptr, i32 }
          cleanup
  %1615 = extractvalue { ptr, i32 } %1614, 0
  store ptr %1615, ptr %5, align 8
  %1616 = extractvalue { ptr, i32 } %1614, 1
  store i32 %1616, ptr %6, align 4
  br label %1619

1617:                                             ; preds = %1598, %1594
  invoke void @__cxa_end_catch()
          to label %1618 unwind label %5007

1618:                                             ; preds = %1617
  br label %1619

1619:                                             ; preds = %1618, %1613
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  br label %1624

1620:                                             ; preds = %1607
  store i32 0, ptr %15, align 4
  br label %1621

1621:                                             ; preds = %1620, %1612, %1604, %1588
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #11
  %1622 = load i32, ptr %15, align 4
  switch i32 %1622, label %5010 [
    i32 0, label %1623
    i32 9, label %1627
  ]

1623:                                             ; preds = %1621
  br label %1647

1624:                                             ; preds = %1619, %1593, %1589
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  br label %1625

1625:                                             ; preds = %1624, %1533
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #11
  br label %1677

1626:                                             ; preds = %1500
  br label %1627

1627:                                             ; preds = %1626, %1621
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %1628 unwind label %1633

1628:                                             ; preds = %1627
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #11
  %1629 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %99)
          to label %1630 unwind label %1637

1630:                                             ; preds = %1628
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %111, i32 noundef 1, ptr noundef @.str.3, i32 noundef 920, ptr noundef %1629)
          to label %1631 unwind label %1637

1631:                                             ; preds = %1630
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %1632 unwind label %1641

1632:                                             ; preds = %1631
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #11
  br label %1647

1633:                                             ; preds = %1627
  %1634 = landingpad { ptr, i32 }
          cleanup
  %1635 = extractvalue { ptr, i32 } %1634, 0
  store ptr %1635, ptr %5, align 8
  %1636 = extractvalue { ptr, i32 } %1634, 1
  store i32 %1636, ptr %6, align 4
  br label %1646

1637:                                             ; preds = %1630, %1628
  %1638 = landingpad { ptr, i32 }
          cleanup
  %1639 = extractvalue { ptr, i32 } %1638, 0
  store ptr %1639, ptr %5, align 8
  %1640 = extractvalue { ptr, i32 } %1638, 1
  store i32 %1640, ptr %6, align 4
  br label %1645

1641:                                             ; preds = %1631
  %1642 = landingpad { ptr, i32 }
          cleanup
  %1643 = extractvalue { ptr, i32 } %1642, 0
  store ptr %1643, ptr %5, align 8
  %1644 = extractvalue { ptr, i32 } %1642, 1
  store i32 %1644, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #11
  br label %1645

1645:                                             ; preds = %1641, %1637
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #11
  br label %1646

1646:                                             ; preds = %1645, %1633
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #11
  br label %1677

1647:                                             ; preds = %1632, %1623
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %99) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %112)
  %1648 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %112)
          to label %1649 unwind label %1678

1649:                                             ; preds = %1647
  br i1 %1648, label %1650, label %1775

1650:                                             ; preds = %1649
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %114) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %114)
          to label %1651 unwind label %1682

1651:                                             ; preds = %1650
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #11
  store i8 0, ptr %115, align 1, !tbaa !9
  %1652 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1653 unwind label %1686

1653:                                             ; preds = %1651
  br i1 %1652, label %1654, label %1731

1654:                                             ; preds = %1653
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %119, ptr noundef @.str.939)
          to label %1655 unwind label %1686

1655:                                             ; preds = %1654
  %1656 = getelementptr inbounds { ptr, i64 }, ptr %119, i32 0, i32 0
  %1657 = load ptr, ptr %1656, align 8
  %1658 = getelementptr inbounds { ptr, i64 }, ptr %119, i32 0, i32 1
  %1659 = load i64, ptr %1658, align 8
  %1660 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1657, i64 %1659)
          to label %1661 unwind label %1686

1661:                                             ; preds = %1655
  %1662 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %118, i32 0, i32 0
  %1663 = getelementptr inbounds { ptr, i64 }, ptr %1662, i32 0, i32 0
  %1664 = extractvalue { ptr, i64 } %1660, 0
  store ptr %1664, ptr %1663, align 8
  %1665 = getelementptr inbounds { ptr, i64 }, ptr %1662, i32 0, i32 1
  %1666 = extractvalue { ptr, i64 } %1660, 1
  store i64 %1666, ptr %1665, align 8
  %1667 = getelementptr inbounds { ptr, i64 }, ptr %118, i32 0, i32 0
  %1668 = load ptr, ptr %1667, align 8
  %1669 = getelementptr inbounds { ptr, i64 }, ptr %118, i32 0, i32 1
  %1670 = load i64, ptr %1669, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %117, ptr %1668, i64 %1670)
          to label %1671 unwind label %1686

1671:                                             ; preds = %1661
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  store i32 42, ptr %120, align 4, !tbaa !20
  %1672 = getelementptr inbounds { ptr, i64 }, ptr %117, i32 0, i32 0
  %1673 = load ptr, ptr %1672, align 8
  %1674 = getelementptr inbounds { ptr, i64 }, ptr %117, i32 0, i32 1
  %1675 = load i64, ptr %1674, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr %1673, i64 %1675, ptr noundef nonnull align 4 dereferenceable(4) %120)
          to label %1676 unwind label %1690

1676:                                             ; preds = %1671
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %1732

1677:                                             ; preds = %1646, %1625, %1529
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %99) #11
  br label %5000

1678:                                             ; preds = %1647
  %1679 = landingpad { ptr, i32 }
          cleanup
  %1680 = extractvalue { ptr, i32 } %1679, 0
  store ptr %1680, ptr %5, align 8
  %1681 = extractvalue { ptr, i32 } %1679, 1
  store i32 %1681, ptr %6, align 4
  br label %1826

1682:                                             ; preds = %1650
  %1683 = landingpad { ptr, i32 }
          cleanup
  %1684 = extractvalue { ptr, i32 } %1683, 0
  store ptr %1684, ptr %5, align 8
  %1685 = extractvalue { ptr, i32 } %1683, 1
  store i32 %1685, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #11
  br label %1774

1686:                                             ; preds = %1661, %1655, %1654, %1651
  %1687 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1688 = extractvalue { ptr, i32 } %1687, 0
  store ptr %1688, ptr %5, align 8
  %1689 = extractvalue { ptr, i32 } %1687, 1
  store i32 %1689, ptr %6, align 4
  br label %1694

1690:                                             ; preds = %1671
  %1691 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1692 = extractvalue { ptr, i32 } %1691, 0
  store ptr %1692, ptr %5, align 8
  %1693 = extractvalue { ptr, i32 } %1691, 1
  store i32 %1693, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %1694

1694:                                             ; preds = %1690, %1686
  %1695 = load i32, ptr %6, align 4
  %1696 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1697 = icmp eq i32 %1695, %1696
  br i1 %1697, label %1698, label %1726

1698:                                             ; preds = %1694
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #11
  %1699 = load ptr, ptr %5, align 8
  %1700 = call ptr @__cxa_begin_catch(ptr %1699) #11
  store ptr %1700, ptr %121, align 8
  %1701 = load ptr, ptr %121, align 8, !tbaa !5
  %1702 = load ptr, ptr %1701, align 8, !tbaa !13
  %1703 = getelementptr inbounds ptr, ptr %1702, i64 2
  %1704 = load ptr, ptr %1703, align 8
  %1705 = call noundef ptr %1704(ptr noundef nonnull align 8 dereferenceable(16) %1701) #11
  %1706 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef %1705)
          to label %1707 unwind label %1743

1707:                                             ; preds = %1698
  br i1 %1706, label %1708, label %1751

1708:                                             ; preds = %1707
  %1709 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 1 dereferenceable(89) @.str.941)
          to label %1710 unwind label %1743

1710:                                             ; preds = %1708
  %1711 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1709, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1712 unwind label %1743

1712:                                             ; preds = %1710
  %1713 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1711, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %1714 unwind label %1743

1714:                                             ; preds = %1712
  %1715 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1713, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1716 unwind label %1743

1716:                                             ; preds = %1714
  %1717 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1715, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1718 unwind label %1743

1718:                                             ; preds = %1716
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #11
  %1719 = load ptr, ptr %121, align 8, !tbaa !5
  %1720 = load ptr, ptr %1719, align 8, !tbaa !13
  %1721 = getelementptr inbounds ptr, ptr %1720, i64 2
  %1722 = load ptr, ptr %1721, align 8
  %1723 = call noundef ptr %1722(ptr noundef nonnull align 8 dereferenceable(16) %1719) #11
  store ptr %1723, ptr %122, align 8, !tbaa !5
  %1724 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1717, ptr noundef nonnull align 8 dereferenceable(8) %122)
          to label %1725 unwind label %1747

1725:                                             ; preds = %1718
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #11
  store i32 10, ptr %15, align 4
  br label %1752

1726:                                             ; preds = %1694
  %1727 = load ptr, ptr %5, align 8
  %1728 = call ptr @__cxa_begin_catch(ptr %1727) #11
  %1729 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 1 dereferenceable(132) @.str.940)
          to label %1730 unwind label %1733

1730:                                             ; preds = %1726
  store i32 10, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1737 unwind label %1738

1731:                                             ; preds = %1653
  br label %1732

1732:                                             ; preds = %1731, %1676
  br label %1756

1733:                                             ; preds = %1726
  %1734 = landingpad { ptr, i32 }
          cleanup
  %1735 = extractvalue { ptr, i32 } %1734, 0
  store ptr %1735, ptr %5, align 8
  %1736 = extractvalue { ptr, i32 } %1734, 1
  store i32 %1736, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1742 unwind label %5007

1737:                                             ; preds = %1730
  br label %1770

1738:                                             ; preds = %1759, %1730
  %1739 = landingpad { ptr, i32 }
          cleanup
  %1740 = extractvalue { ptr, i32 } %1739, 0
  store ptr %1740, ptr %5, align 8
  %1741 = extractvalue { ptr, i32 } %1739, 1
  store i32 %1741, ptr %6, align 4
  br label %1773

1742:                                             ; preds = %1733
  br label %1773

1743:                                             ; preds = %1716, %1714, %1712, %1710, %1708, %1698
  %1744 = landingpad { ptr, i32 }
          cleanup
  %1745 = extractvalue { ptr, i32 } %1744, 0
  store ptr %1745, ptr %5, align 8
  %1746 = extractvalue { ptr, i32 } %1744, 1
  store i32 %1746, ptr %6, align 4
  br label %1766

1747:                                             ; preds = %1718
  %1748 = landingpad { ptr, i32 }
          cleanup
  %1749 = extractvalue { ptr, i32 } %1748, 0
  store ptr %1749, ptr %5, align 8
  %1750 = extractvalue { ptr, i32 } %1748, 1
  store i32 %1750, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #11
  br label %1766

1751:                                             ; preds = %1707
  store i8 1, ptr %115, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1752

1752:                                             ; preds = %1751, %1725
  invoke void @__cxa_end_catch()
          to label %1753 unwind label %1762

1753:                                             ; preds = %1752
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #11
  %1754 = load i32, ptr %15, align 4
  switch i32 %1754, label %1770 [
    i32 0, label %1755
  ]

1755:                                             ; preds = %1753
  br label %1756

1756:                                             ; preds = %1755, %1732
  %1757 = load i8, ptr %115, align 1, !tbaa !9, !range !15, !noundef !16
  %1758 = trunc i8 %1757 to i1
  br i1 %1758, label %1769, label %1759

1759:                                             ; preds = %1756
  %1760 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 1 dereferenceable(123) @.str.942)
          to label %1761 unwind label %1738

1761:                                             ; preds = %1759
  store i32 10, ptr %15, align 4
  br label %1770

1762:                                             ; preds = %1752
  %1763 = landingpad { ptr, i32 }
          cleanup
  %1764 = extractvalue { ptr, i32 } %1763, 0
  store ptr %1764, ptr %5, align 8
  %1765 = extractvalue { ptr, i32 } %1763, 1
  store i32 %1765, ptr %6, align 4
  br label %1768

1766:                                             ; preds = %1747, %1743
  invoke void @__cxa_end_catch()
          to label %1767 unwind label %5007

1767:                                             ; preds = %1766
  br label %1768

1768:                                             ; preds = %1767, %1762
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #11
  br label %1773

1769:                                             ; preds = %1756
  store i32 0, ptr %15, align 4
  br label %1770

1770:                                             ; preds = %1769, %1761, %1753, %1737
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #11
  %1771 = load i32, ptr %15, align 4
  switch i32 %1771, label %5010 [
    i32 0, label %1772
    i32 10, label %1776
  ]

1772:                                             ; preds = %1770
  br label %1796

1773:                                             ; preds = %1768, %1742, %1738
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #11
  br label %1774

1774:                                             ; preds = %1773, %1682
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #11
  br label %1826

1775:                                             ; preds = %1649
  br label %1776

1776:                                             ; preds = %1775, %1770
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %123)
          to label %1777 unwind label %1782

1777:                                             ; preds = %1776
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #11
  %1778 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %112)
          to label %1779 unwind label %1786

1779:                                             ; preds = %1777
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %124, i32 noundef 1, ptr noundef @.str.3, i32 noundef 922, ptr noundef %1778)
          to label %1780 unwind label %1786

1780:                                             ; preds = %1779
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull align 8 dereferenceable(8) %123)
          to label %1781 unwind label %1790

1781:                                             ; preds = %1780
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #11
  br label %1796

1782:                                             ; preds = %1776
  %1783 = landingpad { ptr, i32 }
          cleanup
  %1784 = extractvalue { ptr, i32 } %1783, 0
  store ptr %1784, ptr %5, align 8
  %1785 = extractvalue { ptr, i32 } %1783, 1
  store i32 %1785, ptr %6, align 4
  br label %1795

1786:                                             ; preds = %1779, %1777
  %1787 = landingpad { ptr, i32 }
          cleanup
  %1788 = extractvalue { ptr, i32 } %1787, 0
  store ptr %1788, ptr %5, align 8
  %1789 = extractvalue { ptr, i32 } %1787, 1
  store i32 %1789, ptr %6, align 4
  br label %1794

1790:                                             ; preds = %1780
  %1791 = landingpad { ptr, i32 }
          cleanup
  %1792 = extractvalue { ptr, i32 } %1791, 0
  store ptr %1792, ptr %5, align 8
  %1793 = extractvalue { ptr, i32 } %1791, 1
  store i32 %1793, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #11
  br label %1794

1794:                                             ; preds = %1790, %1786
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #11
  br label %1795

1795:                                             ; preds = %1794, %1782
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #11
  br label %1826

1796:                                             ; preds = %1781, %1772
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %125) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %125)
  %1797 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %125)
          to label %1798 unwind label %1827

1798:                                             ; preds = %1796
  br i1 %1797, label %1799, label %1924

1799:                                             ; preds = %1798
  call void @llvm.lifetime.start.p0(i64 32, ptr %126) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %127) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %127)
          to label %1800 unwind label %1831

1800:                                             ; preds = %1799
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %128) #11
  store i8 0, ptr %128, align 1, !tbaa !9
  %1801 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1802 unwind label %1835

1802:                                             ; preds = %1800
  br i1 %1801, label %1803, label %1880

1803:                                             ; preds = %1802
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %132, ptr noundef @.str.935)
          to label %1804 unwind label %1835

1804:                                             ; preds = %1803
  %1805 = getelementptr inbounds { ptr, i64 }, ptr %132, i32 0, i32 0
  %1806 = load ptr, ptr %1805, align 8
  %1807 = getelementptr inbounds { ptr, i64 }, ptr %132, i32 0, i32 1
  %1808 = load i64, ptr %1807, align 8
  %1809 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1806, i64 %1808)
          to label %1810 unwind label %1835

1810:                                             ; preds = %1804
  %1811 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %131, i32 0, i32 0
  %1812 = getelementptr inbounds { ptr, i64 }, ptr %1811, i32 0, i32 0
  %1813 = extractvalue { ptr, i64 } %1809, 0
  store ptr %1813, ptr %1812, align 8
  %1814 = getelementptr inbounds { ptr, i64 }, ptr %1811, i32 0, i32 1
  %1815 = extractvalue { ptr, i64 } %1809, 1
  store i64 %1815, ptr %1814, align 8
  %1816 = getelementptr inbounds { ptr, i64 }, ptr %131, i32 0, i32 0
  %1817 = load ptr, ptr %1816, align 8
  %1818 = getelementptr inbounds { ptr, i64 }, ptr %131, i32 0, i32 1
  %1819 = load i64, ptr %1818, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJjEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %130, ptr %1817, i64 %1819)
          to label %1820 unwind label %1835

1820:                                             ; preds = %1810
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #11
  store i32 42, ptr %133, align 4, !tbaa !20
  %1821 = getelementptr inbounds { ptr, i64 }, ptr %130, i32 0, i32 0
  %1822 = load ptr, ptr %1821, align 8
  %1823 = getelementptr inbounds { ptr, i64 }, ptr %130, i32 0, i32 1
  %1824 = load i64, ptr %1823, align 8
  invoke void @_ZN3fmt3v106formatIJjEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr %1822, i64 %1824, ptr noundef nonnull align 4 dereferenceable(4) %133)
          to label %1825 unwind label %1839

1825:                                             ; preds = %1820
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %1881

1826:                                             ; preds = %1795, %1774, %1678
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #11
  br label %5000

1827:                                             ; preds = %1796
  %1828 = landingpad { ptr, i32 }
          cleanup
  %1829 = extractvalue { ptr, i32 } %1828, 0
  store ptr %1829, ptr %5, align 8
  %1830 = extractvalue { ptr, i32 } %1828, 1
  store i32 %1830, ptr %6, align 4
  br label %1975

1831:                                             ; preds = %1799
  %1832 = landingpad { ptr, i32 }
          cleanup
  %1833 = extractvalue { ptr, i32 } %1832, 0
  store ptr %1833, ptr %5, align 8
  %1834 = extractvalue { ptr, i32 } %1832, 1
  store i32 %1834, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #11
  br label %1923

1835:                                             ; preds = %1810, %1804, %1803, %1800
  %1836 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1837 = extractvalue { ptr, i32 } %1836, 0
  store ptr %1837, ptr %5, align 8
  %1838 = extractvalue { ptr, i32 } %1836, 1
  store i32 %1838, ptr %6, align 4
  br label %1843

1839:                                             ; preds = %1820
  %1840 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1841 = extractvalue { ptr, i32 } %1840, 0
  store ptr %1841, ptr %5, align 8
  %1842 = extractvalue { ptr, i32 } %1840, 1
  store i32 %1842, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %1843

1843:                                             ; preds = %1839, %1835
  %1844 = load i32, ptr %6, align 4
  %1845 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1846 = icmp eq i32 %1844, %1845
  br i1 %1846, label %1847, label %1875

1847:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #11
  %1848 = load ptr, ptr %5, align 8
  %1849 = call ptr @__cxa_begin_catch(ptr %1848) #11
  store ptr %1849, ptr %134, align 8
  %1850 = load ptr, ptr %134, align 8, !tbaa !5
  %1851 = load ptr, ptr %1850, align 8, !tbaa !13
  %1852 = getelementptr inbounds ptr, ptr %1851, i64 2
  %1853 = load ptr, ptr %1852, align 8
  %1854 = call noundef ptr %1853(ptr noundef nonnull align 8 dereferenceable(16) %1850) #11
  %1855 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef %1854)
          to label %1856 unwind label %1892

1856:                                             ; preds = %1847
  br i1 %1855, label %1857, label %1900

1857:                                             ; preds = %1856
  %1858 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %125, ptr noundef nonnull align 1 dereferenceable(89) @.str.944)
          to label %1859 unwind label %1892

1859:                                             ; preds = %1857
  %1860 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1858, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1861 unwind label %1892

1861:                                             ; preds = %1859
  %1862 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1860, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1863 unwind label %1892

1863:                                             ; preds = %1861
  %1864 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1862, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1865 unwind label %1892

1865:                                             ; preds = %1863
  %1866 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1864, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1867 unwind label %1892

1867:                                             ; preds = %1865
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #11
  %1868 = load ptr, ptr %134, align 8, !tbaa !5
  %1869 = load ptr, ptr %1868, align 8, !tbaa !13
  %1870 = getelementptr inbounds ptr, ptr %1869, i64 2
  %1871 = load ptr, ptr %1870, align 8
  %1872 = call noundef ptr %1871(ptr noundef nonnull align 8 dereferenceable(16) %1868) #11
  store ptr %1872, ptr %135, align 8, !tbaa !5
  %1873 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1866, ptr noundef nonnull align 8 dereferenceable(8) %135)
          to label %1874 unwind label %1896

1874:                                             ; preds = %1867
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  store i32 11, ptr %15, align 4
  br label %1901

1875:                                             ; preds = %1843
  %1876 = load ptr, ptr %5, align 8
  %1877 = call ptr @__cxa_begin_catch(ptr %1876) #11
  %1878 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %125, ptr noundef nonnull align 1 dereferenceable(132) @.str.943)
          to label %1879 unwind label %1882

1879:                                             ; preds = %1875
  store i32 11, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %1886 unwind label %1887

1880:                                             ; preds = %1802
  br label %1881

1881:                                             ; preds = %1880, %1825
  br label %1905

1882:                                             ; preds = %1875
  %1883 = landingpad { ptr, i32 }
          cleanup
  %1884 = extractvalue { ptr, i32 } %1883, 0
  store ptr %1884, ptr %5, align 8
  %1885 = extractvalue { ptr, i32 } %1883, 1
  store i32 %1885, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %1891 unwind label %5007

1886:                                             ; preds = %1879
  br label %1919

1887:                                             ; preds = %1908, %1879
  %1888 = landingpad { ptr, i32 }
          cleanup
  %1889 = extractvalue { ptr, i32 } %1888, 0
  store ptr %1889, ptr %5, align 8
  %1890 = extractvalue { ptr, i32 } %1888, 1
  store i32 %1890, ptr %6, align 4
  br label %1922

1891:                                             ; preds = %1882
  br label %1922

1892:                                             ; preds = %1865, %1863, %1861, %1859, %1857, %1847
  %1893 = landingpad { ptr, i32 }
          cleanup
  %1894 = extractvalue { ptr, i32 } %1893, 0
  store ptr %1894, ptr %5, align 8
  %1895 = extractvalue { ptr, i32 } %1893, 1
  store i32 %1895, ptr %6, align 4
  br label %1915

1896:                                             ; preds = %1867
  %1897 = landingpad { ptr, i32 }
          cleanup
  %1898 = extractvalue { ptr, i32 } %1897, 0
  store ptr %1898, ptr %5, align 8
  %1899 = extractvalue { ptr, i32 } %1897, 1
  store i32 %1899, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  br label %1915

1900:                                             ; preds = %1856
  store i8 1, ptr %128, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %1901

1901:                                             ; preds = %1900, %1874
  invoke void @__cxa_end_catch()
          to label %1902 unwind label %1911

1902:                                             ; preds = %1901
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #11
  %1903 = load i32, ptr %15, align 4
  switch i32 %1903, label %1919 [
    i32 0, label %1904
  ]

1904:                                             ; preds = %1902
  br label %1905

1905:                                             ; preds = %1904, %1881
  %1906 = load i8, ptr %128, align 1, !tbaa !9, !range !15, !noundef !16
  %1907 = trunc i8 %1906 to i1
  br i1 %1907, label %1918, label %1908

1908:                                             ; preds = %1905
  %1909 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %125, ptr noundef nonnull align 1 dereferenceable(123) @.str.945)
          to label %1910 unwind label %1887

1910:                                             ; preds = %1908
  store i32 11, ptr %15, align 4
  br label %1919

1911:                                             ; preds = %1901
  %1912 = landingpad { ptr, i32 }
          cleanup
  %1913 = extractvalue { ptr, i32 } %1912, 0
  store ptr %1913, ptr %5, align 8
  %1914 = extractvalue { ptr, i32 } %1912, 1
  store i32 %1914, ptr %6, align 4
  br label %1917

1915:                                             ; preds = %1896, %1892
  invoke void @__cxa_end_catch()
          to label %1916 unwind label %5007

1916:                                             ; preds = %1915
  br label %1917

1917:                                             ; preds = %1916, %1911
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #11
  br label %1922

1918:                                             ; preds = %1905
  store i32 0, ptr %15, align 4
  br label %1919

1919:                                             ; preds = %1918, %1910, %1902, %1886
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #11
  %1920 = load i32, ptr %15, align 4
  switch i32 %1920, label %5010 [
    i32 0, label %1921
    i32 11, label %1925
  ]

1921:                                             ; preds = %1919
  br label %1945

1922:                                             ; preds = %1917, %1891, %1887
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  br label %1923

1923:                                             ; preds = %1922, %1831
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #11
  br label %1975

1924:                                             ; preds = %1798
  br label %1925

1925:                                             ; preds = %1924, %1919
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %136)
          to label %1926 unwind label %1931

1926:                                             ; preds = %1925
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #11
  %1927 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %125)
          to label %1928 unwind label %1935

1928:                                             ; preds = %1926
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %137, i32 noundef 1, ptr noundef @.str.3, i32 noundef 924, ptr noundef %1927)
          to label %1929 unwind label %1935

1929:                                             ; preds = %1928
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull align 8 dereferenceable(8) %136)
          to label %1930 unwind label %1939

1930:                                             ; preds = %1929
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %136) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #11
  br label %1945

1931:                                             ; preds = %1925
  %1932 = landingpad { ptr, i32 }
          cleanup
  %1933 = extractvalue { ptr, i32 } %1932, 0
  store ptr %1933, ptr %5, align 8
  %1934 = extractvalue { ptr, i32 } %1932, 1
  store i32 %1934, ptr %6, align 4
  br label %1944

1935:                                             ; preds = %1928, %1926
  %1936 = landingpad { ptr, i32 }
          cleanup
  %1937 = extractvalue { ptr, i32 } %1936, 0
  store ptr %1937, ptr %5, align 8
  %1938 = extractvalue { ptr, i32 } %1936, 1
  store i32 %1938, ptr %6, align 4
  br label %1943

1939:                                             ; preds = %1929
  %1940 = landingpad { ptr, i32 }
          cleanup
  %1941 = extractvalue { ptr, i32 } %1940, 0
  store ptr %1941, ptr %5, align 8
  %1942 = extractvalue { ptr, i32 } %1940, 1
  store i32 %1942, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #11
  br label %1943

1943:                                             ; preds = %1939, %1935
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %136) #11
  br label %1944

1944:                                             ; preds = %1943, %1931
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #11
  br label %1975

1945:                                             ; preds = %1930, %1921
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %125) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %138) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %138)
  %1946 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %138)
          to label %1947 unwind label %1976

1947:                                             ; preds = %1945
  br i1 %1946, label %1948, label %2073

1948:                                             ; preds = %1947
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %140)
          to label %1949 unwind label %1980

1949:                                             ; preds = %1948
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %141) #11
  store i8 0, ptr %141, align 1, !tbaa !9
  %1950 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1951 unwind label %1984

1951:                                             ; preds = %1949
  br i1 %1950, label %1952, label %2029

1952:                                             ; preds = %1951
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %145, ptr noundef @.str.939)
          to label %1953 unwind label %1984

1953:                                             ; preds = %1952
  %1954 = getelementptr inbounds { ptr, i64 }, ptr %145, i32 0, i32 0
  %1955 = load ptr, ptr %1954, align 8
  %1956 = getelementptr inbounds { ptr, i64 }, ptr %145, i32 0, i32 1
  %1957 = load i64, ptr %1956, align 8
  %1958 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1955, i64 %1957)
          to label %1959 unwind label %1984

1959:                                             ; preds = %1953
  %1960 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %144, i32 0, i32 0
  %1961 = getelementptr inbounds { ptr, i64 }, ptr %1960, i32 0, i32 0
  %1962 = extractvalue { ptr, i64 } %1958, 0
  store ptr %1962, ptr %1961, align 8
  %1963 = getelementptr inbounds { ptr, i64 }, ptr %1960, i32 0, i32 1
  %1964 = extractvalue { ptr, i64 } %1958, 1
  store i64 %1964, ptr %1963, align 8
  %1965 = getelementptr inbounds { ptr, i64 }, ptr %144, i32 0, i32 0
  %1966 = load ptr, ptr %1965, align 8
  %1967 = getelementptr inbounds { ptr, i64 }, ptr %144, i32 0, i32 1
  %1968 = load i64, ptr %1967, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJjEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %143, ptr %1966, i64 %1968)
          to label %1969 unwind label %1984

1969:                                             ; preds = %1959
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  store i32 42, ptr %146, align 4, !tbaa !20
  %1970 = getelementptr inbounds { ptr, i64 }, ptr %143, i32 0, i32 0
  %1971 = load ptr, ptr %1970, align 8
  %1972 = getelementptr inbounds { ptr, i64 }, ptr %143, i32 0, i32 1
  %1973 = load i64, ptr %1972, align 8
  invoke void @_ZN3fmt3v106formatIJjEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %142, ptr %1971, i64 %1973, ptr noundef nonnull align 4 dereferenceable(4) %146)
          to label %1974 unwind label %1988

1974:                                             ; preds = %1969
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %2030

1975:                                             ; preds = %1944, %1923, %1827
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %125) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #11
  br label %5000

1976:                                             ; preds = %1945
  %1977 = landingpad { ptr, i32 }
          cleanup
  %1978 = extractvalue { ptr, i32 } %1977, 0
  store ptr %1978, ptr %5, align 8
  %1979 = extractvalue { ptr, i32 } %1977, 1
  store i32 %1979, ptr %6, align 4
  br label %2124

1980:                                             ; preds = %1948
  %1981 = landingpad { ptr, i32 }
          cleanup
  %1982 = extractvalue { ptr, i32 } %1981, 0
  store ptr %1982, ptr %5, align 8
  %1983 = extractvalue { ptr, i32 } %1981, 1
  store i32 %1983, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #11
  br label %2072

1984:                                             ; preds = %1959, %1953, %1952, %1949
  %1985 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1986 = extractvalue { ptr, i32 } %1985, 0
  store ptr %1986, ptr %5, align 8
  %1987 = extractvalue { ptr, i32 } %1985, 1
  store i32 %1987, ptr %6, align 4
  br label %1992

1988:                                             ; preds = %1969
  %1989 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1990 = extractvalue { ptr, i32 } %1989, 0
  store ptr %1990, ptr %5, align 8
  %1991 = extractvalue { ptr, i32 } %1989, 1
  store i32 %1991, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %1992

1992:                                             ; preds = %1988, %1984
  %1993 = load i32, ptr %6, align 4
  %1994 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1995 = icmp eq i32 %1993, %1994
  br i1 %1995, label %1996, label %2024

1996:                                             ; preds = %1992
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #11
  %1997 = load ptr, ptr %5, align 8
  %1998 = call ptr @__cxa_begin_catch(ptr %1997) #11
  store ptr %1998, ptr %147, align 8
  %1999 = load ptr, ptr %147, align 8, !tbaa !5
  %2000 = load ptr, ptr %1999, align 8, !tbaa !13
  %2001 = getelementptr inbounds ptr, ptr %2000, i64 2
  %2002 = load ptr, ptr %2001, align 8
  %2003 = call noundef ptr %2002(ptr noundef nonnull align 8 dereferenceable(16) %1999) #11
  %2004 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef %2003)
          to label %2005 unwind label %2041

2005:                                             ; preds = %1996
  br i1 %2004, label %2006, label %2049

2006:                                             ; preds = %2005
  %2007 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 1 dereferenceable(90) @.str.947)
          to label %2008 unwind label %2041

2008:                                             ; preds = %2006
  %2009 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2007, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2010 unwind label %2041

2010:                                             ; preds = %2008
  %2011 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2009, ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %2012 unwind label %2041

2012:                                             ; preds = %2010
  %2013 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2011, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2014 unwind label %2041

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.79)
          to label %2016 unwind label %2041

2016:                                             ; preds = %2014
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #11
  %2017 = load ptr, ptr %147, align 8, !tbaa !5
  %2018 = load ptr, ptr %2017, align 8, !tbaa !13
  %2019 = getelementptr inbounds ptr, ptr %2018, i64 2
  %2020 = load ptr, ptr %2019, align 8
  %2021 = call noundef ptr %2020(ptr noundef nonnull align 8 dereferenceable(16) %2017) #11
  store ptr %2021, ptr %148, align 8, !tbaa !5
  %2022 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2015, ptr noundef nonnull align 8 dereferenceable(8) %148)
          to label %2023 unwind label %2045

2023:                                             ; preds = %2016
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  store i32 12, ptr %15, align 4
  br label %2050

2024:                                             ; preds = %1992
  %2025 = load ptr, ptr %5, align 8
  %2026 = call ptr @__cxa_begin_catch(ptr %2025) #11
  %2027 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 1 dereferenceable(133) @.str.946)
          to label %2028 unwind label %2031

2028:                                             ; preds = %2024
  store i32 12, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2035 unwind label %2036

2029:                                             ; preds = %1951
  br label %2030

2030:                                             ; preds = %2029, %1974
  br label %2054

2031:                                             ; preds = %2024
  %2032 = landingpad { ptr, i32 }
          cleanup
  %2033 = extractvalue { ptr, i32 } %2032, 0
  store ptr %2033, ptr %5, align 8
  %2034 = extractvalue { ptr, i32 } %2032, 1
  store i32 %2034, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2040 unwind label %5007

2035:                                             ; preds = %2028
  br label %2068

2036:                                             ; preds = %2057, %2028
  %2037 = landingpad { ptr, i32 }
          cleanup
  %2038 = extractvalue { ptr, i32 } %2037, 0
  store ptr %2038, ptr %5, align 8
  %2039 = extractvalue { ptr, i32 } %2037, 1
  store i32 %2039, ptr %6, align 4
  br label %2071

2040:                                             ; preds = %2031
  br label %2071

2041:                                             ; preds = %2014, %2012, %2010, %2008, %2006, %1996
  %2042 = landingpad { ptr, i32 }
          cleanup
  %2043 = extractvalue { ptr, i32 } %2042, 0
  store ptr %2043, ptr %5, align 8
  %2044 = extractvalue { ptr, i32 } %2042, 1
  store i32 %2044, ptr %6, align 4
  br label %2064

2045:                                             ; preds = %2016
  %2046 = landingpad { ptr, i32 }
          cleanup
  %2047 = extractvalue { ptr, i32 } %2046, 0
  store ptr %2047, ptr %5, align 8
  %2048 = extractvalue { ptr, i32 } %2046, 1
  store i32 %2048, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  br label %2064

2049:                                             ; preds = %2005
  store i8 1, ptr %141, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2050

2050:                                             ; preds = %2049, %2023
  invoke void @__cxa_end_catch()
          to label %2051 unwind label %2060

2051:                                             ; preds = %2050
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #11
  %2052 = load i32, ptr %15, align 4
  switch i32 %2052, label %2068 [
    i32 0, label %2053
  ]

2053:                                             ; preds = %2051
  br label %2054

2054:                                             ; preds = %2053, %2030
  %2055 = load i8, ptr %141, align 1, !tbaa !9, !range !15, !noundef !16
  %2056 = trunc i8 %2055 to i1
  br i1 %2056, label %2067, label %2057

2057:                                             ; preds = %2054
  %2058 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 1 dereferenceable(124) @.str.948)
          to label %2059 unwind label %2036

2059:                                             ; preds = %2057
  store i32 12, ptr %15, align 4
  br label %2068

2060:                                             ; preds = %2050
  %2061 = landingpad { ptr, i32 }
          cleanup
  %2062 = extractvalue { ptr, i32 } %2061, 0
  store ptr %2062, ptr %5, align 8
  %2063 = extractvalue { ptr, i32 } %2061, 1
  store i32 %2063, ptr %6, align 4
  br label %2066

2064:                                             ; preds = %2045, %2041
  invoke void @__cxa_end_catch()
          to label %2065 unwind label %5007

2065:                                             ; preds = %2064
  br label %2066

2066:                                             ; preds = %2065, %2060
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #11
  br label %2071

2067:                                             ; preds = %2054
  store i32 0, ptr %15, align 4
  br label %2068

2068:                                             ; preds = %2067, %2059, %2051, %2035
  call void @llvm.lifetime.end.p0(i64 1, ptr %141) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #11
  %2069 = load i32, ptr %15, align 4
  switch i32 %2069, label %5010 [
    i32 0, label %2070
    i32 12, label %2074
  ]

2070:                                             ; preds = %2068
  br label %2094

2071:                                             ; preds = %2066, %2040, %2036
  call void @llvm.lifetime.end.p0(i64 1, ptr %141) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #11
  br label %2072

2072:                                             ; preds = %2071, %1980
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #11
  br label %2124

2073:                                             ; preds = %1947
  br label %2074

2074:                                             ; preds = %2073, %2068
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %149)
          to label %2075 unwind label %2080

2075:                                             ; preds = %2074
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #11
  %2076 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %138)
          to label %2077 unwind label %2084

2077:                                             ; preds = %2075
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %150, i32 noundef 1, ptr noundef @.str.3, i32 noundef 926, ptr noundef %2076)
          to label %2078 unwind label %2084

2078:                                             ; preds = %2077
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull align 8 dereferenceable(8) %149)
          to label %2079 unwind label %2088

2079:                                             ; preds = %2078
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #11
  br label %2094

2080:                                             ; preds = %2074
  %2081 = landingpad { ptr, i32 }
          cleanup
  %2082 = extractvalue { ptr, i32 } %2081, 0
  store ptr %2082, ptr %5, align 8
  %2083 = extractvalue { ptr, i32 } %2081, 1
  store i32 %2083, ptr %6, align 4
  br label %2093

2084:                                             ; preds = %2077, %2075
  %2085 = landingpad { ptr, i32 }
          cleanup
  %2086 = extractvalue { ptr, i32 } %2085, 0
  store ptr %2086, ptr %5, align 8
  %2087 = extractvalue { ptr, i32 } %2085, 1
  store i32 %2087, ptr %6, align 4
  br label %2092

2088:                                             ; preds = %2078
  %2089 = landingpad { ptr, i32 }
          cleanup
  %2090 = extractvalue { ptr, i32 } %2089, 0
  store ptr %2090, ptr %5, align 8
  %2091 = extractvalue { ptr, i32 } %2089, 1
  store i32 %2091, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #11
  br label %2092

2092:                                             ; preds = %2088, %2084
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #11
  br label %2093

2093:                                             ; preds = %2092, %2080
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #11
  br label %2124

2094:                                             ; preds = %2079, %2070
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %138) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %138) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %151) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %151)
  %2095 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %151)
          to label %2096 unwind label %2125

2096:                                             ; preds = %2094
  br i1 %2095, label %2097, label %2222

2097:                                             ; preds = %2096
  call void @llvm.lifetime.start.p0(i64 32, ptr %152) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %153) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %153)
          to label %2098 unwind label %2129

2098:                                             ; preds = %2097
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %153) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %154) #11
  store i8 0, ptr %154, align 1, !tbaa !9
  %2099 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2100 unwind label %2133

2100:                                             ; preds = %2098
  br i1 %2099, label %2101, label %2178

2101:                                             ; preds = %2100
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef @.str.935)
          to label %2102 unwind label %2133

2102:                                             ; preds = %2101
  %2103 = getelementptr inbounds { ptr, i64 }, ptr %158, i32 0, i32 0
  %2104 = load ptr, ptr %2103, align 8
  %2105 = getelementptr inbounds { ptr, i64 }, ptr %158, i32 0, i32 1
  %2106 = load i64, ptr %2105, align 8
  %2107 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2104, i64 %2106)
          to label %2108 unwind label %2133

2108:                                             ; preds = %2102
  %2109 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %157, i32 0, i32 0
  %2110 = getelementptr inbounds { ptr, i64 }, ptr %2109, i32 0, i32 0
  %2111 = extractvalue { ptr, i64 } %2107, 0
  store ptr %2111, ptr %2110, align 8
  %2112 = getelementptr inbounds { ptr, i64 }, ptr %2109, i32 0, i32 1
  %2113 = extractvalue { ptr, i64 } %2107, 1
  store i64 %2113, ptr %2112, align 8
  %2114 = getelementptr inbounds { ptr, i64 }, ptr %157, i32 0, i32 0
  %2115 = load ptr, ptr %2114, align 8
  %2116 = getelementptr inbounds { ptr, i64 }, ptr %157, i32 0, i32 1
  %2117 = load i64, ptr %2116, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJlEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %156, ptr %2115, i64 %2117)
          to label %2118 unwind label %2133

2118:                                             ; preds = %2108
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #11
  store i64 42, ptr %159, align 8, !tbaa !17
  %2119 = getelementptr inbounds { ptr, i64 }, ptr %156, i32 0, i32 0
  %2120 = load ptr, ptr %2119, align 8
  %2121 = getelementptr inbounds { ptr, i64 }, ptr %156, i32 0, i32 1
  %2122 = load i64, ptr %2121, align 8
  invoke void @_ZN3fmt3v106formatIJlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %155, ptr %2120, i64 %2122, ptr noundef nonnull align 8 dereferenceable(8) %159)
          to label %2123 unwind label %2137

2123:                                             ; preds = %2118
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #11
  br label %2179

2124:                                             ; preds = %2093, %2072, %1976
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %138) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %138) #11
  br label %5000

2125:                                             ; preds = %2094
  %2126 = landingpad { ptr, i32 }
          cleanup
  %2127 = extractvalue { ptr, i32 } %2126, 0
  store ptr %2127, ptr %5, align 8
  %2128 = extractvalue { ptr, i32 } %2126, 1
  store i32 %2128, ptr %6, align 4
  br label %2273

2129:                                             ; preds = %2097
  %2130 = landingpad { ptr, i32 }
          cleanup
  %2131 = extractvalue { ptr, i32 } %2130, 0
  store ptr %2131, ptr %5, align 8
  %2132 = extractvalue { ptr, i32 } %2130, 1
  store i32 %2132, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %153) #11
  br label %2221

2133:                                             ; preds = %2108, %2102, %2101, %2098
  %2134 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2135 = extractvalue { ptr, i32 } %2134, 0
  store ptr %2135, ptr %5, align 8
  %2136 = extractvalue { ptr, i32 } %2134, 1
  store i32 %2136, ptr %6, align 4
  br label %2141

2137:                                             ; preds = %2118
  %2138 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2139 = extractvalue { ptr, i32 } %2138, 0
  store ptr %2139, ptr %5, align 8
  %2140 = extractvalue { ptr, i32 } %2138, 1
  store i32 %2140, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #11
  br label %2141

2141:                                             ; preds = %2137, %2133
  %2142 = load i32, ptr %6, align 4
  %2143 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2144 = icmp eq i32 %2142, %2143
  br i1 %2144, label %2145, label %2173

2145:                                             ; preds = %2141
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #11
  %2146 = load ptr, ptr %5, align 8
  %2147 = call ptr @__cxa_begin_catch(ptr %2146) #11
  store ptr %2147, ptr %160, align 8
  %2148 = load ptr, ptr %160, align 8, !tbaa !5
  %2149 = load ptr, ptr %2148, align 8, !tbaa !13
  %2150 = getelementptr inbounds ptr, ptr %2149, i64 2
  %2151 = load ptr, ptr %2150, align 8
  %2152 = call noundef ptr %2151(ptr noundef nonnull align 8 dereferenceable(16) %2148) #11
  %2153 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef %2152)
          to label %2154 unwind label %2190

2154:                                             ; preds = %2145
  br i1 %2153, label %2155, label %2198

2155:                                             ; preds = %2154
  %2156 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %151, ptr noundef nonnull align 1 dereferenceable(89) @.str.950)
          to label %2157 unwind label %2190

2157:                                             ; preds = %2155
  %2158 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2156, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2159 unwind label %2190

2159:                                             ; preds = %2157
  %2160 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2158, ptr noundef nonnull align 8 dereferenceable(32) %152)
          to label %2161 unwind label %2190

2161:                                             ; preds = %2159
  %2162 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2160, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2163 unwind label %2190

2163:                                             ; preds = %2161
  %2164 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2162, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2165 unwind label %2190

2165:                                             ; preds = %2163
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #11
  %2166 = load ptr, ptr %160, align 8, !tbaa !5
  %2167 = load ptr, ptr %2166, align 8, !tbaa !13
  %2168 = getelementptr inbounds ptr, ptr %2167, i64 2
  %2169 = load ptr, ptr %2168, align 8
  %2170 = call noundef ptr %2169(ptr noundef nonnull align 8 dereferenceable(16) %2166) #11
  store ptr %2170, ptr %161, align 8, !tbaa !5
  %2171 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2164, ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %2172 unwind label %2194

2172:                                             ; preds = %2165
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #11
  store i32 13, ptr %15, align 4
  br label %2199

2173:                                             ; preds = %2141
  %2174 = load ptr, ptr %5, align 8
  %2175 = call ptr @__cxa_begin_catch(ptr %2174) #11
  %2176 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %151, ptr noundef nonnull align 1 dereferenceable(132) @.str.949)
          to label %2177 unwind label %2180

2177:                                             ; preds = %2173
  store i32 13, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2184 unwind label %2185

2178:                                             ; preds = %2100
  br label %2179

2179:                                             ; preds = %2178, %2123
  br label %2203

2180:                                             ; preds = %2173
  %2181 = landingpad { ptr, i32 }
          cleanup
  %2182 = extractvalue { ptr, i32 } %2181, 0
  store ptr %2182, ptr %5, align 8
  %2183 = extractvalue { ptr, i32 } %2181, 1
  store i32 %2183, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2189 unwind label %5007

2184:                                             ; preds = %2177
  br label %2217

2185:                                             ; preds = %2206, %2177
  %2186 = landingpad { ptr, i32 }
          cleanup
  %2187 = extractvalue { ptr, i32 } %2186, 0
  store ptr %2187, ptr %5, align 8
  %2188 = extractvalue { ptr, i32 } %2186, 1
  store i32 %2188, ptr %6, align 4
  br label %2220

2189:                                             ; preds = %2180
  br label %2220

2190:                                             ; preds = %2163, %2161, %2159, %2157, %2155, %2145
  %2191 = landingpad { ptr, i32 }
          cleanup
  %2192 = extractvalue { ptr, i32 } %2191, 0
  store ptr %2192, ptr %5, align 8
  %2193 = extractvalue { ptr, i32 } %2191, 1
  store i32 %2193, ptr %6, align 4
  br label %2213

2194:                                             ; preds = %2165
  %2195 = landingpad { ptr, i32 }
          cleanup
  %2196 = extractvalue { ptr, i32 } %2195, 0
  store ptr %2196, ptr %5, align 8
  %2197 = extractvalue { ptr, i32 } %2195, 1
  store i32 %2197, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #11
  br label %2213

2198:                                             ; preds = %2154
  store i8 1, ptr %154, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2199

2199:                                             ; preds = %2198, %2172
  invoke void @__cxa_end_catch()
          to label %2200 unwind label %2209

2200:                                             ; preds = %2199
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #11
  %2201 = load i32, ptr %15, align 4
  switch i32 %2201, label %2217 [
    i32 0, label %2202
  ]

2202:                                             ; preds = %2200
  br label %2203

2203:                                             ; preds = %2202, %2179
  %2204 = load i8, ptr %154, align 1, !tbaa !9, !range !15, !noundef !16
  %2205 = trunc i8 %2204 to i1
  br i1 %2205, label %2216, label %2206

2206:                                             ; preds = %2203
  %2207 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %151, ptr noundef nonnull align 1 dereferenceable(123) @.str.951)
          to label %2208 unwind label %2185

2208:                                             ; preds = %2206
  store i32 13, ptr %15, align 4
  br label %2217

2209:                                             ; preds = %2199
  %2210 = landingpad { ptr, i32 }
          cleanup
  %2211 = extractvalue { ptr, i32 } %2210, 0
  store ptr %2211, ptr %5, align 8
  %2212 = extractvalue { ptr, i32 } %2210, 1
  store i32 %2212, ptr %6, align 4
  br label %2215

2213:                                             ; preds = %2194, %2190
  invoke void @__cxa_end_catch()
          to label %2214 unwind label %5007

2214:                                             ; preds = %2213
  br label %2215

2215:                                             ; preds = %2214, %2209
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #11
  br label %2220

2216:                                             ; preds = %2203
  store i32 0, ptr %15, align 4
  br label %2217

2217:                                             ; preds = %2216, %2208, %2200, %2184
  call void @llvm.lifetime.end.p0(i64 1, ptr %154) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #11
  %2218 = load i32, ptr %15, align 4
  switch i32 %2218, label %5010 [
    i32 0, label %2219
    i32 13, label %2223
  ]

2219:                                             ; preds = %2217
  br label %2243

2220:                                             ; preds = %2215, %2189, %2185
  call void @llvm.lifetime.end.p0(i64 1, ptr %154) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #11
  br label %2221

2221:                                             ; preds = %2220, %2129
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #11
  br label %2273

2222:                                             ; preds = %2096
  br label %2223

2223:                                             ; preds = %2222, %2217
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %162)
          to label %2224 unwind label %2229

2224:                                             ; preds = %2223
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #11
  %2225 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %151)
          to label %2226 unwind label %2233

2226:                                             ; preds = %2224
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %163, i32 noundef 1, ptr noundef @.str.3, i32 noundef 928, ptr noundef %2225)
          to label %2227 unwind label %2233

2227:                                             ; preds = %2226
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull align 8 dereferenceable(8) %162)
          to label %2228 unwind label %2237

2228:                                             ; preds = %2227
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %163) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #11
  br label %2243

2229:                                             ; preds = %2223
  %2230 = landingpad { ptr, i32 }
          cleanup
  %2231 = extractvalue { ptr, i32 } %2230, 0
  store ptr %2231, ptr %5, align 8
  %2232 = extractvalue { ptr, i32 } %2230, 1
  store i32 %2232, ptr %6, align 4
  br label %2242

2233:                                             ; preds = %2226, %2224
  %2234 = landingpad { ptr, i32 }
          cleanup
  %2235 = extractvalue { ptr, i32 } %2234, 0
  store ptr %2235, ptr %5, align 8
  %2236 = extractvalue { ptr, i32 } %2234, 1
  store i32 %2236, ptr %6, align 4
  br label %2241

2237:                                             ; preds = %2227
  %2238 = landingpad { ptr, i32 }
          cleanup
  %2239 = extractvalue { ptr, i32 } %2238, 0
  store ptr %2239, ptr %5, align 8
  %2240 = extractvalue { ptr, i32 } %2238, 1
  store i32 %2240, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %163) #11
  br label %2241

2241:                                             ; preds = %2237, %2233
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #11
  br label %2242

2242:                                             ; preds = %2241, %2229
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #11
  br label %2273

2243:                                             ; preds = %2228, %2219
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %151) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %151) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %164) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %164)
  %2244 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %164)
          to label %2245 unwind label %2274

2245:                                             ; preds = %2243
  br i1 %2244, label %2246, label %2371

2246:                                             ; preds = %2245
  call void @llvm.lifetime.start.p0(i64 32, ptr %165) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %166) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %166)
          to label %2247 unwind label %2278

2247:                                             ; preds = %2246
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %166) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %167) #11
  store i8 0, ptr %167, align 1, !tbaa !9
  %2248 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2249 unwind label %2282

2249:                                             ; preds = %2247
  br i1 %2248, label %2250, label %2327

2250:                                             ; preds = %2249
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %171, ptr noundef @.str.939)
          to label %2251 unwind label %2282

2251:                                             ; preds = %2250
  %2252 = getelementptr inbounds { ptr, i64 }, ptr %171, i32 0, i32 0
  %2253 = load ptr, ptr %2252, align 8
  %2254 = getelementptr inbounds { ptr, i64 }, ptr %171, i32 0, i32 1
  %2255 = load i64, ptr %2254, align 8
  %2256 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2253, i64 %2255)
          to label %2257 unwind label %2282

2257:                                             ; preds = %2251
  %2258 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %170, i32 0, i32 0
  %2259 = getelementptr inbounds { ptr, i64 }, ptr %2258, i32 0, i32 0
  %2260 = extractvalue { ptr, i64 } %2256, 0
  store ptr %2260, ptr %2259, align 8
  %2261 = getelementptr inbounds { ptr, i64 }, ptr %2258, i32 0, i32 1
  %2262 = extractvalue { ptr, i64 } %2256, 1
  store i64 %2262, ptr %2261, align 8
  %2263 = getelementptr inbounds { ptr, i64 }, ptr %170, i32 0, i32 0
  %2264 = load ptr, ptr %2263, align 8
  %2265 = getelementptr inbounds { ptr, i64 }, ptr %170, i32 0, i32 1
  %2266 = load i64, ptr %2265, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJlEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %169, ptr %2264, i64 %2266)
          to label %2267 unwind label %2282

2267:                                             ; preds = %2257
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #11
  store i64 42, ptr %172, align 8, !tbaa !17
  %2268 = getelementptr inbounds { ptr, i64 }, ptr %169, i32 0, i32 0
  %2269 = load ptr, ptr %2268, align 8
  %2270 = getelementptr inbounds { ptr, i64 }, ptr %169, i32 0, i32 1
  %2271 = load i64, ptr %2270, align 8
  invoke void @_ZN3fmt3v106formatIJlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %168, ptr %2269, i64 %2271, ptr noundef nonnull align 8 dereferenceable(8) %172)
          to label %2272 unwind label %2286

2272:                                             ; preds = %2267
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #11
  br label %2328

2273:                                             ; preds = %2242, %2221, %2125
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %151) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %151) #11
  br label %5000

2274:                                             ; preds = %2243
  %2275 = landingpad { ptr, i32 }
          cleanup
  %2276 = extractvalue { ptr, i32 } %2275, 0
  store ptr %2276, ptr %5, align 8
  %2277 = extractvalue { ptr, i32 } %2275, 1
  store i32 %2277, ptr %6, align 4
  br label %2422

2278:                                             ; preds = %2246
  %2279 = landingpad { ptr, i32 }
          cleanup
  %2280 = extractvalue { ptr, i32 } %2279, 0
  store ptr %2280, ptr %5, align 8
  %2281 = extractvalue { ptr, i32 } %2279, 1
  store i32 %2281, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %166) #11
  br label %2370

2282:                                             ; preds = %2257, %2251, %2250, %2247
  %2283 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2284 = extractvalue { ptr, i32 } %2283, 0
  store ptr %2284, ptr %5, align 8
  %2285 = extractvalue { ptr, i32 } %2283, 1
  store i32 %2285, ptr %6, align 4
  br label %2290

2286:                                             ; preds = %2267
  %2287 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2288 = extractvalue { ptr, i32 } %2287, 0
  store ptr %2288, ptr %5, align 8
  %2289 = extractvalue { ptr, i32 } %2287, 1
  store i32 %2289, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #11
  br label %2290

2290:                                             ; preds = %2286, %2282
  %2291 = load i32, ptr %6, align 4
  %2292 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2293 = icmp eq i32 %2291, %2292
  br i1 %2293, label %2294, label %2322

2294:                                             ; preds = %2290
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #11
  %2295 = load ptr, ptr %5, align 8
  %2296 = call ptr @__cxa_begin_catch(ptr %2295) #11
  store ptr %2296, ptr %173, align 8
  %2297 = load ptr, ptr %173, align 8, !tbaa !5
  %2298 = load ptr, ptr %2297, align 8, !tbaa !13
  %2299 = getelementptr inbounds ptr, ptr %2298, i64 2
  %2300 = load ptr, ptr %2299, align 8
  %2301 = call noundef ptr %2300(ptr noundef nonnull align 8 dereferenceable(16) %2297) #11
  %2302 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef %2301)
          to label %2303 unwind label %2339

2303:                                             ; preds = %2294
  br i1 %2302, label %2304, label %2347

2304:                                             ; preds = %2303
  %2305 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %164, ptr noundef nonnull align 1 dereferenceable(90) @.str.953)
          to label %2306 unwind label %2339

2306:                                             ; preds = %2304
  %2307 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2305, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2308 unwind label %2339

2308:                                             ; preds = %2306
  %2309 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2307, ptr noundef nonnull align 8 dereferenceable(32) %165)
          to label %2310 unwind label %2339

2310:                                             ; preds = %2308
  %2311 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2309, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2312 unwind label %2339

2312:                                             ; preds = %2310
  %2313 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2311, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2314 unwind label %2339

2314:                                             ; preds = %2312
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #11
  %2315 = load ptr, ptr %173, align 8, !tbaa !5
  %2316 = load ptr, ptr %2315, align 8, !tbaa !13
  %2317 = getelementptr inbounds ptr, ptr %2316, i64 2
  %2318 = load ptr, ptr %2317, align 8
  %2319 = call noundef ptr %2318(ptr noundef nonnull align 8 dereferenceable(16) %2315) #11
  store ptr %2319, ptr %174, align 8, !tbaa !5
  %2320 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2313, ptr noundef nonnull align 8 dereferenceable(8) %174)
          to label %2321 unwind label %2343

2321:                                             ; preds = %2314
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #11
  store i32 14, ptr %15, align 4
  br label %2348

2322:                                             ; preds = %2290
  %2323 = load ptr, ptr %5, align 8
  %2324 = call ptr @__cxa_begin_catch(ptr %2323) #11
  %2325 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %164, ptr noundef nonnull align 1 dereferenceable(133) @.str.952)
          to label %2326 unwind label %2329

2326:                                             ; preds = %2322
  store i32 14, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2333 unwind label %2334

2327:                                             ; preds = %2249
  br label %2328

2328:                                             ; preds = %2327, %2272
  br label %2352

2329:                                             ; preds = %2322
  %2330 = landingpad { ptr, i32 }
          cleanup
  %2331 = extractvalue { ptr, i32 } %2330, 0
  store ptr %2331, ptr %5, align 8
  %2332 = extractvalue { ptr, i32 } %2330, 1
  store i32 %2332, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2338 unwind label %5007

2333:                                             ; preds = %2326
  br label %2366

2334:                                             ; preds = %2355, %2326
  %2335 = landingpad { ptr, i32 }
          cleanup
  %2336 = extractvalue { ptr, i32 } %2335, 0
  store ptr %2336, ptr %5, align 8
  %2337 = extractvalue { ptr, i32 } %2335, 1
  store i32 %2337, ptr %6, align 4
  br label %2369

2338:                                             ; preds = %2329
  br label %2369

2339:                                             ; preds = %2312, %2310, %2308, %2306, %2304, %2294
  %2340 = landingpad { ptr, i32 }
          cleanup
  %2341 = extractvalue { ptr, i32 } %2340, 0
  store ptr %2341, ptr %5, align 8
  %2342 = extractvalue { ptr, i32 } %2340, 1
  store i32 %2342, ptr %6, align 4
  br label %2362

2343:                                             ; preds = %2314
  %2344 = landingpad { ptr, i32 }
          cleanup
  %2345 = extractvalue { ptr, i32 } %2344, 0
  store ptr %2345, ptr %5, align 8
  %2346 = extractvalue { ptr, i32 } %2344, 1
  store i32 %2346, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #11
  br label %2362

2347:                                             ; preds = %2303
  store i8 1, ptr %167, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2348

2348:                                             ; preds = %2347, %2321
  invoke void @__cxa_end_catch()
          to label %2349 unwind label %2358

2349:                                             ; preds = %2348
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #11
  %2350 = load i32, ptr %15, align 4
  switch i32 %2350, label %2366 [
    i32 0, label %2351
  ]

2351:                                             ; preds = %2349
  br label %2352

2352:                                             ; preds = %2351, %2328
  %2353 = load i8, ptr %167, align 1, !tbaa !9, !range !15, !noundef !16
  %2354 = trunc i8 %2353 to i1
  br i1 %2354, label %2365, label %2355

2355:                                             ; preds = %2352
  %2356 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %164, ptr noundef nonnull align 1 dereferenceable(124) @.str.954)
          to label %2357 unwind label %2334

2357:                                             ; preds = %2355
  store i32 14, ptr %15, align 4
  br label %2366

2358:                                             ; preds = %2348
  %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 %2364

2362:                                             ; preds = %2343, %2339
  invoke void @__cxa_end_catch()
          to label %2363 unwind label %5007

2363:                                             ; preds = %2362
  br label %2364

2364:                                             ; preds = %2363, %2358
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #11
  br label %2369

2365:                                             ; preds = %2352
  store i32 0, ptr %15, align 4
  br label %2366

2366:                                             ; preds = %2365, %2357, %2349, %2333
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #11
  %2367 = load i32, ptr %15, align 4
  switch i32 %2367, label %5010 [
    i32 0, label %2368
    i32 14, label %2372
  ]

2368:                                             ; preds = %2366
  br label %2392

2369:                                             ; preds = %2364, %2338, %2334
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #11
  br label %2370

2370:                                             ; preds = %2369, %2278
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #11
  br label %2422

2371:                                             ; preds = %2245
  br label %2372

2372:                                             ; preds = %2371, %2366
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %175)
          to label %2373 unwind label %2378

2373:                                             ; preds = %2372
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #11
  %2374 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %164)
          to label %2375 unwind label %2382

2375:                                             ; preds = %2373
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %176, i32 noundef 1, ptr noundef @.str.3, i32 noundef 930, ptr noundef %2374)
          to label %2376 unwind label %2382

2376:                                             ; preds = %2375
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef nonnull align 8 dereferenceable(8) %175)
          to label %2377 unwind label %2386

2377:                                             ; preds = %2376
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %176) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %175) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #11
  br label %2392

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

2382:                                             ; preds = %2375, %2373
  %2383 = landingpad { ptr, i32 }
          cleanup
  %2384 = extractvalue { ptr, i32 } %2383, 0
  store ptr %2384, ptr %5, align 8
  %2385 = extractvalue { ptr, i32 } %2383, 1
  store i32 %2385, ptr %6, align 4
  br label %2390

2386:                                             ; preds = %2376
  %2387 = landingpad { ptr, i32 }
          cleanup
  %2388 = extractvalue { ptr, i32 } %2387, 0
  store ptr %2388, ptr %5, align 8
  %2389 = extractvalue { ptr, i32 } %2387, 1
  store i32 %2389, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %176) #11
  br label %2390

2390:                                             ; preds = %2386, %2382
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %175) #11
  br label %2391

2391:                                             ; preds = %2390, %2378
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #11
  br label %2422

2392:                                             ; preds = %2377, %2368
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %164) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %177) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %177)
  %2393 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %177)
          to label %2394 unwind label %2423

2394:                                             ; preds = %2392
  br i1 %2393, label %2395, label %2520

2395:                                             ; preds = %2394
  call void @llvm.lifetime.start.p0(i64 32, ptr %178) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %179)
          to label %2396 unwind label %2427

2396:                                             ; preds = %2395
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %180) #11
  store i8 0, ptr %180, align 1, !tbaa !9
  %2397 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2398 unwind label %2431

2398:                                             ; preds = %2396
  br i1 %2397, label %2399, label %2476

2399:                                             ; preds = %2398
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %184, ptr noundef @.str.935)
          to label %2400 unwind label %2431

2400:                                             ; preds = %2399
  %2401 = getelementptr inbounds { ptr, i64 }, ptr %184, i32 0, i32 0
  %2402 = load ptr, ptr %2401, align 8
  %2403 = getelementptr inbounds { ptr, i64 }, ptr %184, i32 0, i32 1
  %2404 = load i64, ptr %2403, align 8
  %2405 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2402, i64 %2404)
          to label %2406 unwind label %2431

2406:                                             ; preds = %2400
  %2407 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %183, i32 0, i32 0
  %2408 = getelementptr inbounds { ptr, i64 }, ptr %2407, i32 0, i32 0
  %2409 = extractvalue { ptr, i64 } %2405, 0
  store ptr %2409, ptr %2408, align 8
  %2410 = getelementptr inbounds { ptr, i64 }, ptr %2407, i32 0, i32 1
  %2411 = extractvalue { ptr, i64 } %2405, 1
  store i64 %2411, ptr %2410, align 8
  %2412 = getelementptr inbounds { ptr, i64 }, ptr %183, i32 0, i32 0
  %2413 = load ptr, ptr %2412, align 8
  %2414 = getelementptr inbounds { ptr, i64 }, ptr %183, i32 0, i32 1
  %2415 = load i64, ptr %2414, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJmEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %182, ptr %2413, i64 %2415)
          to label %2416 unwind label %2431

2416:                                             ; preds = %2406
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #11
  store i64 42, ptr %185, align 8, !tbaa !17
  %2417 = getelementptr inbounds { ptr, i64 }, ptr %182, i32 0, i32 0
  %2418 = load ptr, ptr %2417, align 8
  %2419 = getelementptr inbounds { ptr, i64 }, ptr %182, i32 0, i32 1
  %2420 = load i64, ptr %2419, align 8
  invoke void @_ZN3fmt3v106formatIJmEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %181, ptr %2418, i64 %2420, ptr noundef nonnull align 8 dereferenceable(8) %185)
          to label %2421 unwind label %2435

2421:                                             ; preds = %2416
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #11
  br label %2477

2422:                                             ; preds = %2391, %2370, %2274
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %164) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #11
  br label %5000

2423:                                             ; preds = %2392
  %2424 = landingpad { ptr, i32 }
          cleanup
  %2425 = extractvalue { ptr, i32 } %2424, 0
  store ptr %2425, ptr %5, align 8
  %2426 = extractvalue { ptr, i32 } %2424, 1
  store i32 %2426, ptr %6, align 4
  br label %2571

2427:                                             ; preds = %2395
  %2428 = landingpad { ptr, i32 }
          cleanup
  %2429 = extractvalue { ptr, i32 } %2428, 0
  store ptr %2429, ptr %5, align 8
  %2430 = extractvalue { ptr, i32 } %2428, 1
  store i32 %2430, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #11
  br label %2519

2431:                                             ; preds = %2406, %2400, %2399, %2396
  %2432 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2433 = extractvalue { ptr, i32 } %2432, 0
  store ptr %2433, ptr %5, align 8
  %2434 = extractvalue { ptr, i32 } %2432, 1
  store i32 %2434, ptr %6, align 4
  br label %2439

2435:                                             ; preds = %2416
  %2436 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2437 = extractvalue { ptr, i32 } %2436, 0
  store ptr %2437, ptr %5, align 8
  %2438 = extractvalue { ptr, i32 } %2436, 1
  store i32 %2438, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #11
  br label %2439

2439:                                             ; preds = %2435, %2431
  %2440 = load i32, ptr %6, align 4
  %2441 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2442 = icmp eq i32 %2440, %2441
  br i1 %2442, label %2443, label %2471

2443:                                             ; preds = %2439
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #11
  %2444 = load ptr, ptr %5, align 8
  %2445 = call ptr @__cxa_begin_catch(ptr %2444) #11
  store ptr %2445, ptr %186, align 8
  %2446 = load ptr, ptr %186, align 8, !tbaa !5
  %2447 = load ptr, ptr %2446, align 8, !tbaa !13
  %2448 = getelementptr inbounds ptr, ptr %2447, i64 2
  %2449 = load ptr, ptr %2448, align 8
  %2450 = call noundef ptr %2449(ptr noundef nonnull align 8 dereferenceable(16) %2446) #11
  %2451 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef %2450)
          to label %2452 unwind label %2488

2452:                                             ; preds = %2443
  br i1 %2451, label %2453, label %2496

2453:                                             ; preds = %2452
  %2454 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %177, ptr noundef nonnull align 1 dereferenceable(90) @.str.956)
          to label %2455 unwind label %2488

2455:                                             ; preds = %2453
  %2456 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2454, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2457 unwind label %2488

2457:                                             ; preds = %2455
  %2458 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2456, ptr noundef nonnull align 8 dereferenceable(32) %178)
          to label %2459 unwind label %2488

2459:                                             ; preds = %2457
  %2460 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2458, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2461 unwind label %2488

2461:                                             ; preds = %2459
  %2462 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2460, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2463 unwind label %2488

2463:                                             ; preds = %2461
  call void @llvm.lifetime.start.p0(i64 8, ptr %187) #11
  %2464 = load ptr, ptr %186, align 8, !tbaa !5
  %2465 = load ptr, ptr %2464, align 8, !tbaa !13
  %2466 = getelementptr inbounds ptr, ptr %2465, i64 2
  %2467 = load ptr, ptr %2466, align 8
  %2468 = call noundef ptr %2467(ptr noundef nonnull align 8 dereferenceable(16) %2464) #11
  store ptr %2468, ptr %187, align 8, !tbaa !5
  %2469 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2462, ptr noundef nonnull align 8 dereferenceable(8) %187)
          to label %2470 unwind label %2492

2470:                                             ; preds = %2463
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #11
  store i32 15, ptr %15, align 4
  br label %2497

2471:                                             ; preds = %2439
  %2472 = load ptr, ptr %5, align 8
  %2473 = call ptr @__cxa_begin_catch(ptr %2472) #11
  %2474 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %177, ptr noundef nonnull align 1 dereferenceable(133) @.str.955)
          to label %2475 unwind label %2478

2475:                                             ; preds = %2471
  store i32 15, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2482 unwind label %2483

2476:                                             ; preds = %2398
  br label %2477

2477:                                             ; preds = %2476, %2421
  br label %2501

2478:                                             ; preds = %2471
  %2479 = landingpad { ptr, i32 }
          cleanup
  %2480 = extractvalue { ptr, i32 } %2479, 0
  store ptr %2480, ptr %5, align 8
  %2481 = extractvalue { ptr, i32 } %2479, 1
  store i32 %2481, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2487 unwind label %5007

2482:                                             ; preds = %2475
  br label %2515

2483:                                             ; preds = %2504, %2475
  %2484 = landingpad { ptr, i32 }
          cleanup
  %2485 = extractvalue { ptr, i32 } %2484, 0
  store ptr %2485, ptr %5, align 8
  %2486 = extractvalue { ptr, i32 } %2484, 1
  store i32 %2486, ptr %6, align 4
  br label %2518

2487:                                             ; preds = %2478
  br label %2518

2488:                                             ; preds = %2461, %2459, %2457, %2455, %2453, %2443
  %2489 = landingpad { ptr, i32 }
          cleanup
  %2490 = extractvalue { ptr, i32 } %2489, 0
  store ptr %2490, ptr %5, align 8
  %2491 = extractvalue { ptr, i32 } %2489, 1
  store i32 %2491, ptr %6, align 4
  br label %2511

2492:                                             ; preds = %2463
  %2493 = landingpad { ptr, i32 }
          cleanup
  %2494 = extractvalue { ptr, i32 } %2493, 0
  store ptr %2494, ptr %5, align 8
  %2495 = extractvalue { ptr, i32 } %2493, 1
  store i32 %2495, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #11
  br label %2511

2496:                                             ; preds = %2452
  store i8 1, ptr %180, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2497

2497:                                             ; preds = %2496, %2470
  invoke void @__cxa_end_catch()
          to label %2498 unwind label %2507

2498:                                             ; preds = %2497
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #11
  %2499 = load i32, ptr %15, align 4
  switch i32 %2499, label %2515 [
    i32 0, label %2500
  ]

2500:                                             ; preds = %2498
  br label %2501

2501:                                             ; preds = %2500, %2477
  %2502 = load i8, ptr %180, align 1, !tbaa !9, !range !15, !noundef !16
  %2503 = trunc i8 %2502 to i1
  br i1 %2503, label %2514, label %2504

2504:                                             ; preds = %2501
  %2505 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %177, ptr noundef nonnull align 1 dereferenceable(124) @.str.957)
          to label %2506 unwind label %2483

2506:                                             ; preds = %2504
  store i32 15, ptr %15, align 4
  br label %2515

2507:                                             ; preds = %2497
  %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 %2513

2511:                                             ; preds = %2492, %2488
  invoke void @__cxa_end_catch()
          to label %2512 unwind label %5007

2512:                                             ; preds = %2511
  br label %2513

2513:                                             ; preds = %2512, %2507
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #11
  br label %2518

2514:                                             ; preds = %2501
  store i32 0, ptr %15, align 4
  br label %2515

2515:                                             ; preds = %2514, %2506, %2498, %2482
  call void @llvm.lifetime.end.p0(i64 1, ptr %180) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #11
  %2516 = load i32, ptr %15, align 4
  switch i32 %2516, label %5010 [
    i32 0, label %2517
    i32 15, label %2521
  ]

2517:                                             ; preds = %2515
  br label %2541

2518:                                             ; preds = %2513, %2487, %2483
  call void @llvm.lifetime.end.p0(i64 1, ptr %180) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #11
  br label %2519

2519:                                             ; preds = %2518, %2427
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #11
  br label %2571

2520:                                             ; preds = %2394
  br label %2521

2521:                                             ; preds = %2520, %2515
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %188)
          to label %2522 unwind label %2527

2522:                                             ; preds = %2521
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #11
  %2523 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %177)
          to label %2524 unwind label %2531

2524:                                             ; preds = %2522
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %189, i32 noundef 1, ptr noundef @.str.3, i32 noundef 932, ptr noundef %2523)
          to label %2525 unwind label %2531

2525:                                             ; preds = %2524
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef nonnull align 8 dereferenceable(8) %188)
          to label %2526 unwind label %2535

2526:                                             ; preds = %2525
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %189) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %188) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #11
  br label %2541

2527:                                             ; preds = %2521
  %2528 = landingpad { ptr, i32 }
          cleanup
  %2529 = extractvalue { ptr, i32 } %2528, 0
  store ptr %2529, ptr %5, align 8
  %2530 = extractvalue { ptr, i32 } %2528, 1
  store i32 %2530, ptr %6, align 4
  br label %2540

2531:                                             ; preds = %2524, %2522
  %2532 = landingpad { ptr, i32 }
          cleanup
  %2533 = extractvalue { ptr, i32 } %2532, 0
  store ptr %2533, ptr %5, align 8
  %2534 = extractvalue { ptr, i32 } %2532, 1
  store i32 %2534, ptr %6, align 4
  br label %2539

2535:                                             ; preds = %2525
  %2536 = landingpad { ptr, i32 }
          cleanup
  %2537 = extractvalue { ptr, i32 } %2536, 0
  store ptr %2537, ptr %5, align 8
  %2538 = extractvalue { ptr, i32 } %2536, 1
  store i32 %2538, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %189) #11
  br label %2539

2539:                                             ; preds = %2535, %2531
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %188) #11
  br label %2540

2540:                                             ; preds = %2539, %2527
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #11
  br label %2571

2541:                                             ; preds = %2526, %2517
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %177) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %177) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %190) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %190)
  %2542 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %190)
          to label %2543 unwind label %2572

2543:                                             ; preds = %2541
  br i1 %2542, label %2544, label %2669

2544:                                             ; preds = %2543
  call void @llvm.lifetime.start.p0(i64 32, ptr %191) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %192) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %192) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %191, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %192)
          to label %2545 unwind label %2576

2545:                                             ; preds = %2544
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %192) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %192) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %193) #11
  store i8 0, ptr %193, align 1, !tbaa !9
  %2546 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2547 unwind label %2580

2547:                                             ; preds = %2545
  br i1 %2546, label %2548, label %2625

2548:                                             ; preds = %2547
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr noundef @.str.939)
          to label %2549 unwind label %2580

2549:                                             ; preds = %2548
  %2550 = getelementptr inbounds { ptr, i64 }, ptr %197, i32 0, i32 0
  %2551 = load ptr, ptr %2550, align 8
  %2552 = getelementptr inbounds { ptr, i64 }, ptr %197, i32 0, i32 1
  %2553 = load i64, ptr %2552, align 8
  %2554 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2551, i64 %2553)
          to label %2555 unwind label %2580

2555:                                             ; preds = %2549
  %2556 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %196, i32 0, i32 0
  %2557 = getelementptr inbounds { ptr, i64 }, ptr %2556, i32 0, i32 0
  %2558 = extractvalue { ptr, i64 } %2554, 0
  store ptr %2558, ptr %2557, align 8
  %2559 = getelementptr inbounds { ptr, i64 }, ptr %2556, i32 0, i32 1
  %2560 = extractvalue { ptr, i64 } %2554, 1
  store i64 %2560, ptr %2559, align 8
  %2561 = getelementptr inbounds { ptr, i64 }, ptr %196, i32 0, i32 0
  %2562 = load ptr, ptr %2561, align 8
  %2563 = getelementptr inbounds { ptr, i64 }, ptr %196, i32 0, i32 1
  %2564 = load i64, ptr %2563, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJmEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %195, ptr %2562, i64 %2564)
          to label %2565 unwind label %2580

2565:                                             ; preds = %2555
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #11
  store i64 42, ptr %198, align 8, !tbaa !17
  %2566 = getelementptr inbounds { ptr, i64 }, ptr %195, i32 0, i32 0
  %2567 = load ptr, ptr %2566, align 8
  %2568 = getelementptr inbounds { ptr, i64 }, ptr %195, i32 0, i32 1
  %2569 = load i64, ptr %2568, align 8
  invoke void @_ZN3fmt3v106formatIJmEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %194, ptr %2567, i64 %2569, ptr noundef nonnull align 8 dereferenceable(8) %198)
          to label %2570 unwind label %2584

2570:                                             ; preds = %2565
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #11
  br label %2626

2571:                                             ; preds = %2540, %2519, %2423
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %177) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %177) #11
  br label %5000

2572:                                             ; preds = %2541
  %2573 = landingpad { ptr, i32 }
          cleanup
  %2574 = extractvalue { ptr, i32 } %2573, 0
  store ptr %2574, ptr %5, align 8
  %2575 = extractvalue { ptr, i32 } %2573, 1
  store i32 %2575, ptr %6, align 4
  br label %2720

2576:                                             ; preds = %2544
  %2577 = landingpad { ptr, i32 }
          cleanup
  %2578 = extractvalue { ptr, i32 } %2577, 0
  store ptr %2578, ptr %5, align 8
  %2579 = extractvalue { ptr, i32 } %2577, 1
  store i32 %2579, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %192) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %192) #11
  br label %2668

2580:                                             ; preds = %2555, %2549, %2548, %2545
  %2581 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2582 = extractvalue { ptr, i32 } %2581, 0
  store ptr %2582, ptr %5, align 8
  %2583 = extractvalue { ptr, i32 } %2581, 1
  store i32 %2583, ptr %6, align 4
  br label %2588

2584:                                             ; preds = %2565
  %2585 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2586 = extractvalue { ptr, i32 } %2585, 0
  store ptr %2586, ptr %5, align 8
  %2587 = extractvalue { ptr, i32 } %2585, 1
  store i32 %2587, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #11
  br label %2588

2588:                                             ; preds = %2584, %2580
  %2589 = load i32, ptr %6, align 4
  %2590 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2591 = icmp eq i32 %2589, %2590
  br i1 %2591, label %2592, label %2620

2592:                                             ; preds = %2588
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #11
  %2593 = load ptr, ptr %5, align 8
  %2594 = call ptr @__cxa_begin_catch(ptr %2593) #11
  store ptr %2594, ptr %199, align 8
  %2595 = load ptr, ptr %199, align 8, !tbaa !5
  %2596 = load ptr, ptr %2595, align 8, !tbaa !13
  %2597 = getelementptr inbounds ptr, ptr %2596, i64 2
  %2598 = load ptr, ptr %2597, align 8
  %2599 = call noundef ptr %2598(ptr noundef nonnull align 8 dereferenceable(16) %2595) #11
  %2600 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %191, ptr noundef %2599)
          to label %2601 unwind label %2637

2601:                                             ; preds = %2592
  br i1 %2600, label %2602, label %2645

2602:                                             ; preds = %2601
  %2603 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %190, ptr noundef nonnull align 1 dereferenceable(91) @.str.959)
          to label %2604 unwind label %2637

2604:                                             ; preds = %2602
  %2605 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2603, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2606 unwind label %2637

2606:                                             ; preds = %2604
  %2607 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2605, ptr noundef nonnull align 8 dereferenceable(32) %191)
          to label %2608 unwind label %2637

2608:                                             ; preds = %2606
  %2609 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2607, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2610 unwind label %2637

2610:                                             ; preds = %2608
  %2611 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2609, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2612 unwind label %2637

2612:                                             ; preds = %2610
  call void @llvm.lifetime.start.p0(i64 8, ptr %200) #11
  %2613 = load ptr, ptr %199, align 8, !tbaa !5
  %2614 = load ptr, ptr %2613, align 8, !tbaa !13
  %2615 = getelementptr inbounds ptr, ptr %2614, i64 2
  %2616 = load ptr, ptr %2615, align 8
  %2617 = call noundef ptr %2616(ptr noundef nonnull align 8 dereferenceable(16) %2613) #11
  store ptr %2617, ptr %200, align 8, !tbaa !5
  %2618 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2611, ptr noundef nonnull align 8 dereferenceable(8) %200)
          to label %2619 unwind label %2641

2619:                                             ; preds = %2612
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #11
  store i32 16, ptr %15, align 4
  br label %2646

2620:                                             ; preds = %2588
  %2621 = load ptr, ptr %5, align 8
  %2622 = call ptr @__cxa_begin_catch(ptr %2621) #11
  %2623 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %190, ptr noundef nonnull align 1 dereferenceable(134) @.str.958)
          to label %2624 unwind label %2627

2624:                                             ; preds = %2620
  store i32 16, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2631 unwind label %2632

2625:                                             ; preds = %2547
  br label %2626

2626:                                             ; preds = %2625, %2570
  br label %2650

2627:                                             ; preds = %2620
  %2628 = landingpad { ptr, i32 }
          cleanup
  %2629 = extractvalue { ptr, i32 } %2628, 0
  store ptr %2629, ptr %5, align 8
  %2630 = extractvalue { ptr, i32 } %2628, 1
  store i32 %2630, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2636 unwind label %5007

2631:                                             ; preds = %2624
  br label %2664

2632:                                             ; preds = %2653, %2624
  %2633 = landingpad { ptr, i32 }
          cleanup
  %2634 = extractvalue { ptr, i32 } %2633, 0
  store ptr %2634, ptr %5, align 8
  %2635 = extractvalue { ptr, i32 } %2633, 1
  store i32 %2635, ptr %6, align 4
  br label %2667

2636:                                             ; preds = %2627
  br label %2667

2637:                                             ; preds = %2610, %2608, %2606, %2604, %2602, %2592
  %2638 = landingpad { ptr, i32 }
          cleanup
  %2639 = extractvalue { ptr, i32 } %2638, 0
  store ptr %2639, ptr %5, align 8
  %2640 = extractvalue { ptr, i32 } %2638, 1
  store i32 %2640, ptr %6, align 4
  br label %2660

2641:                                             ; preds = %2612
  %2642 = landingpad { ptr, i32 }
          cleanup
  %2643 = extractvalue { ptr, i32 } %2642, 0
  store ptr %2643, ptr %5, align 8
  %2644 = extractvalue { ptr, i32 } %2642, 1
  store i32 %2644, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #11
  br label %2660

2645:                                             ; preds = %2601
  store i8 1, ptr %193, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2646

2646:                                             ; preds = %2645, %2619
  invoke void @__cxa_end_catch()
          to label %2647 unwind label %2656

2647:                                             ; preds = %2646
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #11
  %2648 = load i32, ptr %15, align 4
  switch i32 %2648, label %2664 [
    i32 0, label %2649
  ]

2649:                                             ; preds = %2647
  br label %2650

2650:                                             ; preds = %2649, %2626
  %2651 = load i8, ptr %193, align 1, !tbaa !9, !range !15, !noundef !16
  %2652 = trunc i8 %2651 to i1
  br i1 %2652, label %2663, label %2653

2653:                                             ; preds = %2650
  %2654 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %190, ptr noundef nonnull align 1 dereferenceable(125) @.str.960)
          to label %2655 unwind label %2632

2655:                                             ; preds = %2653
  store i32 16, ptr %15, align 4
  br label %2664

2656:                                             ; preds = %2646
  %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 %2662

2660:                                             ; preds = %2641, %2637
  invoke void @__cxa_end_catch()
          to label %2661 unwind label %5007

2661:                                             ; preds = %2660
  br label %2662

2662:                                             ; preds = %2661, %2656
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #11
  br label %2667

2663:                                             ; preds = %2650
  store i32 0, ptr %15, align 4
  br label %2664

2664:                                             ; preds = %2663, %2655, %2647, %2631
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %191) #11
  %2665 = load i32, ptr %15, align 4
  switch i32 %2665, label %5010 [
    i32 0, label %2666
    i32 16, label %2670
  ]

2666:                                             ; preds = %2664
  br label %2690

2667:                                             ; preds = %2662, %2636, %2632
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #11
  br label %2668

2668:                                             ; preds = %2667, %2576
  call void @llvm.lifetime.end.p0(i64 32, ptr %191) #11
  br label %2720

2669:                                             ; preds = %2543
  br label %2670

2670:                                             ; preds = %2669, %2664
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %201)
          to label %2671 unwind label %2676

2671:                                             ; preds = %2670
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #11
  %2672 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %190)
          to label %2673 unwind label %2680

2673:                                             ; preds = %2671
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %202, i32 noundef 1, ptr noundef @.str.3, i32 noundef 934, ptr noundef %2672)
          to label %2674 unwind label %2680

2674:                                             ; preds = %2673
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %202, ptr noundef nonnull align 8 dereferenceable(8) %201)
          to label %2675 unwind label %2684

2675:                                             ; preds = %2674
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %201) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #11
  br label %2690

2676:                                             ; preds = %2670
  %2677 = landingpad { ptr, i32 }
          cleanup
  %2678 = extractvalue { ptr, i32 } %2677, 0
  store ptr %2678, ptr %5, align 8
  %2679 = extractvalue { ptr, i32 } %2677, 1
  store i32 %2679, ptr %6, align 4
  br label %2689

2680:                                             ; preds = %2673, %2671
  %2681 = landingpad { ptr, i32 }
          cleanup
  %2682 = extractvalue { ptr, i32 } %2681, 0
  store ptr %2682, ptr %5, align 8
  %2683 = extractvalue { ptr, i32 } %2681, 1
  store i32 %2683, ptr %6, align 4
  br label %2688

2684:                                             ; preds = %2674
  %2685 = landingpad { ptr, i32 }
          cleanup
  %2686 = extractvalue { ptr, i32 } %2685, 0
  store ptr %2686, ptr %5, align 8
  %2687 = extractvalue { ptr, i32 } %2685, 1
  store i32 %2687, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #11
  br label %2688

2688:                                             ; preds = %2684, %2680
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %201) #11
  br label %2689

2689:                                             ; preds = %2688, %2676
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #11
  br label %2720

2690:                                             ; preds = %2675, %2666
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %190) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %190) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %203) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %203)
  %2691 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %203)
          to label %2692 unwind label %2721

2692:                                             ; preds = %2690
  br i1 %2691, label %2693, label %2818

2693:                                             ; preds = %2692
  call void @llvm.lifetime.start.p0(i64 32, ptr %204) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %205) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %205)
          to label %2694 unwind label %2725

2694:                                             ; preds = %2693
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %205) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %206) #11
  store i8 0, ptr %206, align 1, !tbaa !9
  %2695 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2696 unwind label %2729

2696:                                             ; preds = %2694
  br i1 %2695, label %2697, label %2774

2697:                                             ; preds = %2696
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %210, ptr noundef @.str.935)
          to label %2698 unwind label %2729

2698:                                             ; preds = %2697
  %2699 = getelementptr inbounds { ptr, i64 }, ptr %210, i32 0, i32 0
  %2700 = load ptr, ptr %2699, align 8
  %2701 = getelementptr inbounds { ptr, i64 }, ptr %210, i32 0, i32 1
  %2702 = load i64, ptr %2701, align 8
  %2703 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2700, i64 %2702)
          to label %2704 unwind label %2729

2704:                                             ; preds = %2698
  %2705 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %209, i32 0, i32 0
  %2706 = getelementptr inbounds { ptr, i64 }, ptr %2705, i32 0, i32 0
  %2707 = extractvalue { ptr, i64 } %2703, 0
  store ptr %2707, ptr %2706, align 8
  %2708 = getelementptr inbounds { ptr, i64 }, ptr %2705, i32 0, i32 1
  %2709 = extractvalue { ptr, i64 } %2703, 1
  store i64 %2709, ptr %2708, align 8
  %2710 = getelementptr inbounds { ptr, i64 }, ptr %209, i32 0, i32 0
  %2711 = load ptr, ptr %2710, align 8
  %2712 = getelementptr inbounds { ptr, i64 }, ptr %209, i32 0, i32 1
  %2713 = load i64, ptr %2712, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJxEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %208, ptr %2711, i64 %2713)
          to label %2714 unwind label %2729

2714:                                             ; preds = %2704
  call void @llvm.lifetime.start.p0(i64 8, ptr %211) #11
  store i64 42, ptr %211, align 8, !tbaa !22
  %2715 = getelementptr inbounds { ptr, i64 }, ptr %208, i32 0, i32 0
  %2716 = load ptr, ptr %2715, align 8
  %2717 = getelementptr inbounds { ptr, i64 }, ptr %208, i32 0, i32 1
  %2718 = load i64, ptr %2717, align 8
  invoke void @_ZN3fmt3v106formatIJxEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %207, ptr %2716, i64 %2718, ptr noundef nonnull align 8 dereferenceable(8) %211)
          to label %2719 unwind label %2733

2719:                                             ; preds = %2714
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #11
  br label %2775

2720:                                             ; preds = %2689, %2668, %2572
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %190) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %190) #11
  br label %5000

2721:                                             ; preds = %2690
  %2722 = landingpad { ptr, i32 }
          cleanup
  %2723 = extractvalue { ptr, i32 } %2722, 0
  store ptr %2723, ptr %5, align 8
  %2724 = extractvalue { ptr, i32 } %2722, 1
  store i32 %2724, ptr %6, align 4
  br label %2869

2725:                                             ; preds = %2693
  %2726 = landingpad { ptr, i32 }
          cleanup
  %2727 = extractvalue { ptr, i32 } %2726, 0
  store ptr %2727, ptr %5, align 8
  %2728 = extractvalue { ptr, i32 } %2726, 1
  store i32 %2728, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %205) #11
  br label %2817

2729:                                             ; preds = %2704, %2698, %2697, %2694
  %2730 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2731 = extractvalue { ptr, i32 } %2730, 0
  store ptr %2731, ptr %5, align 8
  %2732 = extractvalue { ptr, i32 } %2730, 1
  store i32 %2732, ptr %6, align 4
  br label %2737

2733:                                             ; preds = %2714
  %2734 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2735 = extractvalue { ptr, i32 } %2734, 0
  store ptr %2735, ptr %5, align 8
  %2736 = extractvalue { ptr, i32 } %2734, 1
  store i32 %2736, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #11
  br label %2737

2737:                                             ; preds = %2733, %2729
  %2738 = load i32, ptr %6, align 4
  %2739 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2740 = icmp eq i32 %2738, %2739
  br i1 %2740, label %2741, label %2769

2741:                                             ; preds = %2737
  call void @llvm.lifetime.start.p0(i64 8, ptr %212) #11
  %2742 = load ptr, ptr %5, align 8
  %2743 = call ptr @__cxa_begin_catch(ptr %2742) #11
  store ptr %2743, ptr %212, align 8
  %2744 = load ptr, ptr %212, align 8, !tbaa !5
  %2745 = load ptr, ptr %2744, align 8, !tbaa !13
  %2746 = getelementptr inbounds ptr, ptr %2745, i64 2
  %2747 = load ptr, ptr %2746, align 8
  %2748 = call noundef ptr %2747(ptr noundef nonnull align 8 dereferenceable(16) %2744) #11
  %2749 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef %2748)
          to label %2750 unwind label %2786

2750:                                             ; preds = %2741
  br i1 %2749, label %2751, label %2794

2751:                                             ; preds = %2750
  %2752 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %203, ptr noundef nonnull align 1 dereferenceable(90) @.str.962)
          to label %2753 unwind label %2786

2753:                                             ; preds = %2751
  %2754 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2752, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2755 unwind label %2786

2755:                                             ; preds = %2753
  %2756 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2754, ptr noundef nonnull align 8 dereferenceable(32) %204)
          to label %2757 unwind label %2786

2757:                                             ; preds = %2755
  %2758 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2756, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2759 unwind label %2786

2759:                                             ; preds = %2757
  %2760 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2758, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2761 unwind label %2786

2761:                                             ; preds = %2759
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #11
  %2762 = load ptr, ptr %212, align 8, !tbaa !5
  %2763 = load ptr, ptr %2762, align 8, !tbaa !13
  %2764 = getelementptr inbounds ptr, ptr %2763, i64 2
  %2765 = load ptr, ptr %2764, align 8
  %2766 = call noundef ptr %2765(ptr noundef nonnull align 8 dereferenceable(16) %2762) #11
  store ptr %2766, ptr %213, align 8, !tbaa !5
  %2767 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2760, ptr noundef nonnull align 8 dereferenceable(8) %213)
          to label %2768 unwind label %2790

2768:                                             ; preds = %2761
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #11
  store i32 17, ptr %15, align 4
  br label %2795

2769:                                             ; preds = %2737
  %2770 = load ptr, ptr %5, align 8
  %2771 = call ptr @__cxa_begin_catch(ptr %2770) #11
  %2772 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %203, ptr noundef nonnull align 1 dereferenceable(133) @.str.961)
          to label %2773 unwind label %2776

2773:                                             ; preds = %2769
  store i32 17, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2780 unwind label %2781

2774:                                             ; preds = %2696
  br label %2775

2775:                                             ; preds = %2774, %2719
  br label %2799

2776:                                             ; preds = %2769
  %2777 = landingpad { ptr, i32 }
          cleanup
  %2778 = extractvalue { ptr, i32 } %2777, 0
  store ptr %2778, ptr %5, align 8
  %2779 = extractvalue { ptr, i32 } %2777, 1
  store i32 %2779, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2785 unwind label %5007

2780:                                             ; preds = %2773
  br label %2813

2781:                                             ; preds = %2802, %2773
  %2782 = landingpad { ptr, i32 }
          cleanup
  %2783 = extractvalue { ptr, i32 } %2782, 0
  store ptr %2783, ptr %5, align 8
  %2784 = extractvalue { ptr, i32 } %2782, 1
  store i32 %2784, ptr %6, align 4
  br label %2816

2785:                                             ; preds = %2776
  br label %2816

2786:                                             ; preds = %2759, %2757, %2755, %2753, %2751, %2741
  %2787 = landingpad { ptr, i32 }
          cleanup
  %2788 = extractvalue { ptr, i32 } %2787, 0
  store ptr %2788, ptr %5, align 8
  %2789 = extractvalue { ptr, i32 } %2787, 1
  store i32 %2789, ptr %6, align 4
  br label %2809

2790:                                             ; preds = %2761
  %2791 = landingpad { ptr, i32 }
          cleanup
  %2792 = extractvalue { ptr, i32 } %2791, 0
  store ptr %2792, ptr %5, align 8
  %2793 = extractvalue { ptr, i32 } %2791, 1
  store i32 %2793, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #11
  br label %2809

2794:                                             ; preds = %2750
  store i8 1, ptr %206, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2795

2795:                                             ; preds = %2794, %2768
  invoke void @__cxa_end_catch()
          to label %2796 unwind label %2805

2796:                                             ; preds = %2795
  call void @llvm.lifetime.end.p0(i64 8, ptr %212) #11
  %2797 = load i32, ptr %15, align 4
  switch i32 %2797, label %2813 [
    i32 0, label %2798
  ]

2798:                                             ; preds = %2796
  br label %2799

2799:                                             ; preds = %2798, %2775
  %2800 = load i8, ptr %206, align 1, !tbaa !9, !range !15, !noundef !16
  %2801 = trunc i8 %2800 to i1
  br i1 %2801, label %2812, label %2802

2802:                                             ; preds = %2799
  %2803 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %203, ptr noundef nonnull align 1 dereferenceable(124) @.str.963)
          to label %2804 unwind label %2781

2804:                                             ; preds = %2802
  store i32 17, ptr %15, align 4
  br label %2813

2805:                                             ; preds = %2795
  %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 %2811

2809:                                             ; preds = %2790, %2786
  invoke void @__cxa_end_catch()
          to label %2810 unwind label %5007

2810:                                             ; preds = %2809
  br label %2811

2811:                                             ; preds = %2810, %2805
  call void @llvm.lifetime.end.p0(i64 8, ptr %212) #11
  br label %2816

2812:                                             ; preds = %2799
  store i32 0, ptr %15, align 4
  br label %2813

2813:                                             ; preds = %2812, %2804, %2796, %2780
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #11
  %2814 = load i32, ptr %15, align 4
  switch i32 %2814, label %5010 [
    i32 0, label %2815
    i32 17, label %2819
  ]

2815:                                             ; preds = %2813
  br label %2839

2816:                                             ; preds = %2811, %2785, %2781
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #11
  br label %2817

2817:                                             ; preds = %2816, %2725
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #11
  br label %2869

2818:                                             ; preds = %2692
  br label %2819

2819:                                             ; preds = %2818, %2813
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %214)
          to label %2820 unwind label %2825

2820:                                             ; preds = %2819
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #11
  %2821 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %203)
          to label %2822 unwind label %2829

2822:                                             ; preds = %2820
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %215, i32 noundef 1, ptr noundef @.str.3, i32 noundef 936, ptr noundef %2821)
          to label %2823 unwind label %2829

2823:                                             ; preds = %2822
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef nonnull align 8 dereferenceable(8) %214)
          to label %2824 unwind label %2833

2824:                                             ; preds = %2823
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %215) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %214) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #11
  br label %2839

2825:                                             ; preds = %2819
  %2826 = landingpad { ptr, i32 }
          cleanup
  %2827 = extractvalue { ptr, i32 } %2826, 0
  store ptr %2827, ptr %5, align 8
  %2828 = extractvalue { ptr, i32 } %2826, 1
  store i32 %2828, ptr %6, align 4
  br label %2838

2829:                                             ; preds = %2822, %2820
  %2830 = landingpad { ptr, i32 }
          cleanup
  %2831 = extractvalue { ptr, i32 } %2830, 0
  store ptr %2831, ptr %5, align 8
  %2832 = extractvalue { ptr, i32 } %2830, 1
  store i32 %2832, ptr %6, align 4
  br label %2837

2833:                                             ; preds = %2823
  %2834 = landingpad { ptr, i32 }
          cleanup
  %2835 = extractvalue { ptr, i32 } %2834, 0
  store ptr %2835, ptr %5, align 8
  %2836 = extractvalue { ptr, i32 } %2834, 1
  store i32 %2836, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %215) #11
  br label %2837

2837:                                             ; preds = %2833, %2829
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %214) #11
  br label %2838

2838:                                             ; preds = %2837, %2825
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #11
  br label %2869

2839:                                             ; preds = %2824, %2815
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %203) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %216) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %216)
  %2840 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %2841 unwind label %2870

2841:                                             ; preds = %2839
  br i1 %2840, label %2842, label %2967

2842:                                             ; preds = %2841
  call void @llvm.lifetime.start.p0(i64 32, ptr %217) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %218) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %218)
          to label %2843 unwind label %2874

2843:                                             ; preds = %2842
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %218) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %219) #11
  store i8 0, ptr %219, align 1, !tbaa !9
  %2844 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2845 unwind label %2878

2845:                                             ; preds = %2843
  br i1 %2844, label %2846, label %2923

2846:                                             ; preds = %2845
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %223, ptr noundef @.str.939)
          to label %2847 unwind label %2878

2847:                                             ; preds = %2846
  %2848 = getelementptr inbounds { ptr, i64 }, ptr %223, i32 0, i32 0
  %2849 = load ptr, ptr %2848, align 8
  %2850 = getelementptr inbounds { ptr, i64 }, ptr %223, i32 0, i32 1
  %2851 = load i64, ptr %2850, align 8
  %2852 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2849, i64 %2851)
          to label %2853 unwind label %2878

2853:                                             ; preds = %2847
  %2854 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %222, i32 0, i32 0
  %2855 = getelementptr inbounds { ptr, i64 }, ptr %2854, i32 0, i32 0
  %2856 = extractvalue { ptr, i64 } %2852, 0
  store ptr %2856, ptr %2855, align 8
  %2857 = getelementptr inbounds { ptr, i64 }, ptr %2854, i32 0, i32 1
  %2858 = extractvalue { ptr, i64 } %2852, 1
  store i64 %2858, ptr %2857, align 8
  %2859 = getelementptr inbounds { ptr, i64 }, ptr %222, i32 0, i32 0
  %2860 = load ptr, ptr %2859, align 8
  %2861 = getelementptr inbounds { ptr, i64 }, ptr %222, i32 0, i32 1
  %2862 = load i64, ptr %2861, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJxEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %221, ptr %2860, i64 %2862)
          to label %2863 unwind label %2878

2863:                                             ; preds = %2853
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #11
  store i64 42, ptr %224, align 8, !tbaa !22
  %2864 = getelementptr inbounds { ptr, i64 }, ptr %221, i32 0, i32 0
  %2865 = load ptr, ptr %2864, align 8
  %2866 = getelementptr inbounds { ptr, i64 }, ptr %221, i32 0, i32 1
  %2867 = load i64, ptr %2866, align 8
  invoke void @_ZN3fmt3v106formatIJxEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %220, ptr %2865, i64 %2867, ptr noundef nonnull align 8 dereferenceable(8) %224)
          to label %2868 unwind label %2882

2868:                                             ; preds = %2863
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #11
  br label %2924

2869:                                             ; preds = %2838, %2817, %2721
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %203) #11
  br label %5000

2870:                                             ; preds = %2839
  %2871 = landingpad { ptr, i32 }
          cleanup
  %2872 = extractvalue { ptr, i32 } %2871, 0
  store ptr %2872, ptr %5, align 8
  %2873 = extractvalue { ptr, i32 } %2871, 1
  store i32 %2873, ptr %6, align 4
  br label %3018

2874:                                             ; preds = %2842
  %2875 = landingpad { ptr, i32 }
          cleanup
  %2876 = extractvalue { ptr, i32 } %2875, 0
  store ptr %2876, ptr %5, align 8
  %2877 = extractvalue { ptr, i32 } %2875, 1
  store i32 %2877, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %218) #11
  br label %2966

2878:                                             ; preds = %2853, %2847, %2846, %2843
  %2879 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2880 = extractvalue { ptr, i32 } %2879, 0
  store ptr %2880, ptr %5, align 8
  %2881 = extractvalue { ptr, i32 } %2879, 1
  store i32 %2881, ptr %6, align 4
  br label %2886

2882:                                             ; preds = %2863
  %2883 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %2884 = extractvalue { ptr, i32 } %2883, 0
  store ptr %2884, ptr %5, align 8
  %2885 = extractvalue { ptr, i32 } %2883, 1
  store i32 %2885, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #11
  br label %2886

2886:                                             ; preds = %2882, %2878
  %2887 = load i32, ptr %6, align 4
  %2888 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %2889 = icmp eq i32 %2887, %2888
  br i1 %2889, label %2890, label %2918

2890:                                             ; preds = %2886
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #11
  %2891 = load ptr, ptr %5, align 8
  %2892 = call ptr @__cxa_begin_catch(ptr %2891) #11
  store ptr %2892, ptr %225, align 8
  %2893 = load ptr, ptr %225, align 8, !tbaa !5
  %2894 = load ptr, ptr %2893, align 8, !tbaa !13
  %2895 = getelementptr inbounds ptr, ptr %2894, i64 2
  %2896 = load ptr, ptr %2895, align 8
  %2897 = call noundef ptr %2896(ptr noundef nonnull align 8 dereferenceable(16) %2893) #11
  %2898 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef %2897)
          to label %2899 unwind label %2935

2899:                                             ; preds = %2890
  br i1 %2898, label %2900, label %2943

2900:                                             ; preds = %2899
  %2901 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 1 dereferenceable(91) @.str.965)
          to label %2902 unwind label %2935

2902:                                             ; preds = %2900
  %2903 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2901, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2904 unwind label %2935

2904:                                             ; preds = %2902
  %2905 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2903, ptr noundef nonnull align 8 dereferenceable(32) %217)
          to label %2906 unwind label %2935

2906:                                             ; preds = %2904
  %2907 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2905, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2908 unwind label %2935

2908:                                             ; preds = %2906
  %2909 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2907, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2910 unwind label %2935

2910:                                             ; preds = %2908
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #11
  %2911 = load ptr, ptr %225, align 8, !tbaa !5
  %2912 = load ptr, ptr %2911, align 8, !tbaa !13
  %2913 = getelementptr inbounds ptr, ptr %2912, i64 2
  %2914 = load ptr, ptr %2913, align 8
  %2915 = call noundef ptr %2914(ptr noundef nonnull align 8 dereferenceable(16) %2911) #11
  store ptr %2915, ptr %226, align 8, !tbaa !5
  %2916 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2909, ptr noundef nonnull align 8 dereferenceable(8) %226)
          to label %2917 unwind label %2939

2917:                                             ; preds = %2910
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #11
  store i32 18, ptr %15, align 4
  br label %2944

2918:                                             ; preds = %2886
  %2919 = load ptr, ptr %5, align 8
  %2920 = call ptr @__cxa_begin_catch(ptr %2919) #11
  %2921 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 1 dereferenceable(134) @.str.964)
          to label %2922 unwind label %2925

2922:                                             ; preds = %2918
  store i32 18, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %2929 unwind label %2930

2923:                                             ; preds = %2845
  br label %2924

2924:                                             ; preds = %2923, %2868
  br label %2948

2925:                                             ; preds = %2918
  %2926 = landingpad { ptr, i32 }
          cleanup
  %2927 = extractvalue { ptr, i32 } %2926, 0
  store ptr %2927, ptr %5, align 8
  %2928 = extractvalue { ptr, i32 } %2926, 1
  store i32 %2928, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %2934 unwind label %5007

2929:                                             ; preds = %2922
  br label %2962

2930:                                             ; preds = %2951, %2922
  %2931 = landingpad { ptr, i32 }
          cleanup
  %2932 = extractvalue { ptr, i32 } %2931, 0
  store ptr %2932, ptr %5, align 8
  %2933 = extractvalue { ptr, i32 } %2931, 1
  store i32 %2933, ptr %6, align 4
  br label %2965

2934:                                             ; preds = %2925
  br label %2965

2935:                                             ; preds = %2908, %2906, %2904, %2902, %2900, %2890
  %2936 = landingpad { ptr, i32 }
          cleanup
  %2937 = extractvalue { ptr, i32 } %2936, 0
  store ptr %2937, ptr %5, align 8
  %2938 = extractvalue { ptr, i32 } %2936, 1
  store i32 %2938, ptr %6, align 4
  br label %2958

2939:                                             ; preds = %2910
  %2940 = landingpad { ptr, i32 }
          cleanup
  %2941 = extractvalue { ptr, i32 } %2940, 0
  store ptr %2941, ptr %5, align 8
  %2942 = extractvalue { ptr, i32 } %2940, 1
  store i32 %2942, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #11
  br label %2958

2943:                                             ; preds = %2899
  store i8 1, ptr %219, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %2944

2944:                                             ; preds = %2943, %2917
  invoke void @__cxa_end_catch()
          to label %2945 unwind label %2954

2945:                                             ; preds = %2944
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #11
  %2946 = load i32, ptr %15, align 4
  switch i32 %2946, label %2962 [
    i32 0, label %2947
  ]

2947:                                             ; preds = %2945
  br label %2948

2948:                                             ; preds = %2947, %2924
  %2949 = load i8, ptr %219, align 1, !tbaa !9, !range !15, !noundef !16
  %2950 = trunc i8 %2949 to i1
  br i1 %2950, label %2961, label %2951

2951:                                             ; preds = %2948
  %2952 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 1 dereferenceable(125) @.str.966)
          to label %2953 unwind label %2930

2953:                                             ; preds = %2951
  store i32 18, ptr %15, align 4
  br label %2962

2954:                                             ; preds = %2944
  %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 %2960

2958:                                             ; preds = %2939, %2935
  invoke void @__cxa_end_catch()
          to label %2959 unwind label %5007

2959:                                             ; preds = %2958
  br label %2960

2960:                                             ; preds = %2959, %2954
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #11
  br label %2965

2961:                                             ; preds = %2948
  store i32 0, ptr %15, align 4
  br label %2962

2962:                                             ; preds = %2961, %2953, %2945, %2929
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #11
  %2963 = load i32, ptr %15, align 4
  switch i32 %2963, label %5010 [
    i32 0, label %2964
    i32 18, label %2968
  ]

2964:                                             ; preds = %2962
  br label %2988

2965:                                             ; preds = %2960, %2934, %2930
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #11
  br label %2966

2966:                                             ; preds = %2965, %2874
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #11
  br label %3018

2967:                                             ; preds = %2841
  br label %2968

2968:                                             ; preds = %2967, %2962
  call void @llvm.lifetime.start.p0(i64 8, ptr %227) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %227)
          to label %2969 unwind label %2974

2969:                                             ; preds = %2968
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #11
  %2970 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %2971 unwind label %2978

2971:                                             ; preds = %2969
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %228, i32 noundef 1, ptr noundef @.str.3, i32 noundef 938, ptr noundef %2970)
          to label %2972 unwind label %2978

2972:                                             ; preds = %2971
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef nonnull align 8 dereferenceable(8) %227)
          to label %2973 unwind label %2982

2973:                                             ; preds = %2972
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %228) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %227) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #11
  br label %2988

2974:                                             ; preds = %2968
  %2975 = landingpad { ptr, i32 }
          cleanup
  %2976 = extractvalue { ptr, i32 } %2975, 0
  store ptr %2976, ptr %5, align 8
  %2977 = extractvalue { ptr, i32 } %2975, 1
  store i32 %2977, ptr %6, align 4
  br label %2987

2978:                                             ; preds = %2971, %2969
  %2979 = landingpad { ptr, i32 }
          cleanup
  %2980 = extractvalue { ptr, i32 } %2979, 0
  store ptr %2980, ptr %5, align 8
  %2981 = extractvalue { ptr, i32 } %2979, 1
  store i32 %2981, ptr %6, align 4
  br label %2986

2982:                                             ; preds = %2972
  %2983 = landingpad { ptr, i32 }
          cleanup
  %2984 = extractvalue { ptr, i32 } %2983, 0
  store ptr %2984, ptr %5, align 8
  %2985 = extractvalue { ptr, i32 } %2983, 1
  store i32 %2985, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %228) #11
  br label %2986

2986:                                             ; preds = %2982, %2978
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %227) #11
  br label %2987

2987:                                             ; preds = %2986, %2974
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #11
  br label %3018

2988:                                             ; preds = %2973, %2964
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %216) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %216) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %229) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %229)
  %2989 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %229)
          to label %2990 unwind label %3019

2990:                                             ; preds = %2988
  br i1 %2989, label %2991, label %3116

2991:                                             ; preds = %2990
  call void @llvm.lifetime.start.p0(i64 32, ptr %230) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %231) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %231)
          to label %2992 unwind label %3023

2992:                                             ; preds = %2991
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %231) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %232) #11
  store i8 0, ptr %232, align 1, !tbaa !9
  %2993 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2994 unwind label %3027

2994:                                             ; preds = %2992
  br i1 %2993, label %2995, label %3072

2995:                                             ; preds = %2994
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %236, ptr noundef @.str.935)
          to label %2996 unwind label %3027

2996:                                             ; preds = %2995
  %2997 = getelementptr inbounds { ptr, i64 }, ptr %236, i32 0, i32 0
  %2998 = load ptr, ptr %2997, align 8
  %2999 = getelementptr inbounds { ptr, i64 }, ptr %236, i32 0, i32 1
  %3000 = load i64, ptr %2999, align 8
  %3001 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2998, i64 %3000)
          to label %3002 unwind label %3027

3002:                                             ; preds = %2996
  %3003 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %235, i32 0, i32 0
  %3004 = getelementptr inbounds { ptr, i64 }, ptr %3003, i32 0, i32 0
  %3005 = extractvalue { ptr, i64 } %3001, 0
  store ptr %3005, ptr %3004, align 8
  %3006 = getelementptr inbounds { ptr, i64 }, ptr %3003, i32 0, i32 1
  %3007 = extractvalue { ptr, i64 } %3001, 1
  store i64 %3007, ptr %3006, align 8
  %3008 = getelementptr inbounds { ptr, i64 }, ptr %235, i32 0, i32 0
  %3009 = load ptr, ptr %3008, align 8
  %3010 = getelementptr inbounds { ptr, i64 }, ptr %235, i32 0, i32 1
  %3011 = load i64, ptr %3010, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJyEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %234, ptr %3009, i64 %3011)
          to label %3012 unwind label %3027

3012:                                             ; preds = %3002
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #11
  store i64 42, ptr %237, align 8, !tbaa !22
  %3013 = getelementptr inbounds { ptr, i64 }, ptr %234, i32 0, i32 0
  %3014 = load ptr, ptr %3013, align 8
  %3015 = getelementptr inbounds { ptr, i64 }, ptr %234, i32 0, i32 1
  %3016 = load i64, ptr %3015, align 8
  invoke void @_ZN3fmt3v106formatIJyEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %233, ptr %3014, i64 %3016, ptr noundef nonnull align 8 dereferenceable(8) %237)
          to label %3017 unwind label %3031

3017:                                             ; preds = %3012
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #11
  br label %3073

3018:                                             ; preds = %2987, %2966, %2870
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %216) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %216) #11
  br label %5000

3019:                                             ; preds = %2988
  %3020 = landingpad { ptr, i32 }
          cleanup
  %3021 = extractvalue { ptr, i32 } %3020, 0
  store ptr %3021, ptr %5, align 8
  %3022 = extractvalue { ptr, i32 } %3020, 1
  store i32 %3022, ptr %6, align 4
  br label %3167

3023:                                             ; preds = %2991
  %3024 = landingpad { ptr, i32 }
          cleanup
  %3025 = extractvalue { ptr, i32 } %3024, 0
  store ptr %3025, ptr %5, align 8
  %3026 = extractvalue { ptr, i32 } %3024, 1
  store i32 %3026, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %231) #11
  br label %3115

3027:                                             ; preds = %3002, %2996, %2995, %2992
  %3028 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3029 = extractvalue { ptr, i32 } %3028, 0
  store ptr %3029, ptr %5, align 8
  %3030 = extractvalue { ptr, i32 } %3028, 1
  store i32 %3030, ptr %6, align 4
  br label %3035

3031:                                             ; preds = %3012
  %3032 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3033 = extractvalue { ptr, i32 } %3032, 0
  store ptr %3033, ptr %5, align 8
  %3034 = extractvalue { ptr, i32 } %3032, 1
  store i32 %3034, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #11
  br label %3035

3035:                                             ; preds = %3031, %3027
  %3036 = load i32, ptr %6, align 4
  %3037 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %3038 = icmp eq i32 %3036, %3037
  br i1 %3038, label %3039, label %3067

3039:                                             ; preds = %3035
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #11
  %3040 = load ptr, ptr %5, align 8
  %3041 = call ptr @__cxa_begin_catch(ptr %3040) #11
  store ptr %3041, ptr %238, align 8
  %3042 = load ptr, ptr %238, align 8, !tbaa !5
  %3043 = load ptr, ptr %3042, align 8, !tbaa !13
  %3044 = getelementptr inbounds ptr, ptr %3043, i64 2
  %3045 = load ptr, ptr %3044, align 8
  %3046 = call noundef ptr %3045(ptr noundef nonnull align 8 dereferenceable(16) %3042) #11
  %3047 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef %3046)
          to label %3048 unwind label %3084

3048:                                             ; preds = %3039
  br i1 %3047, label %3049, label %3092

3049:                                             ; preds = %3048
  %3050 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %229, ptr noundef nonnull align 1 dereferenceable(91) @.str.968)
          to label %3051 unwind label %3084

3051:                                             ; preds = %3049
  %3052 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3050, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %3053 unwind label %3084

3053:                                             ; preds = %3051
  %3054 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3052, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %3055 unwind label %3084

3055:                                             ; preds = %3053
  %3056 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3054, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3057 unwind label %3084

3057:                                             ; preds = %3055
  %3058 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3056, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3059 unwind label %3084

3059:                                             ; preds = %3057
  call void @llvm.lifetime.start.p0(i64 8, ptr %239) #11
  %3060 = load ptr, ptr %238, align 8, !tbaa !5
  %3061 = load ptr, ptr %3060, align 8, !tbaa !13
  %3062 = getelementptr inbounds ptr, ptr %3061, i64 2
  %3063 = load ptr, ptr %3062, align 8
  %3064 = call noundef ptr %3063(ptr noundef nonnull align 8 dereferenceable(16) %3060) #11
  store ptr %3064, ptr %239, align 8, !tbaa !5
  %3065 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3058, ptr noundef nonnull align 8 dereferenceable(8) %239)
          to label %3066 unwind label %3088

3066:                                             ; preds = %3059
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #11
  store i32 19, ptr %15, align 4
  br label %3093

3067:                                             ; preds = %3035
  %3068 = load ptr, ptr %5, align 8
  %3069 = call ptr @__cxa_begin_catch(ptr %3068) #11
  %3070 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %229, ptr noundef nonnull align 1 dereferenceable(134) @.str.967)
          to label %3071 unwind label %3074

3071:                                             ; preds = %3067
  store i32 19, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %3078 unwind label %3079

3072:                                             ; preds = %2994
  br label %3073

3073:                                             ; preds = %3072, %3017
  br label %3097

3074:                                             ; preds = %3067
  %3075 = landingpad { ptr, i32 }
          cleanup
  %3076 = extractvalue { ptr, i32 } %3075, 0
  store ptr %3076, ptr %5, align 8
  %3077 = extractvalue { ptr, i32 } %3075, 1
  store i32 %3077, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %3083 unwind label %5007

3078:                                             ; preds = %3071
  br label %3111

3079:                                             ; preds = %3100, %3071
  %3080 = landingpad { ptr, i32 }
          cleanup
  %3081 = extractvalue { ptr, i32 } %3080, 0
  store ptr %3081, ptr %5, align 8
  %3082 = extractvalue { ptr, i32 } %3080, 1
  store i32 %3082, ptr %6, align 4
  br label %3114

3083:                                             ; preds = %3074
  br label %3114

3084:                                             ; preds = %3057, %3055, %3053, %3051, %3049, %3039
  %3085 = landingpad { ptr, i32 }
          cleanup
  %3086 = extractvalue { ptr, i32 } %3085, 0
  store ptr %3086, ptr %5, align 8
  %3087 = extractvalue { ptr, i32 } %3085, 1
  store i32 %3087, ptr %6, align 4
  br label %3107

3088:                                             ; preds = %3059
  %3089 = landingpad { ptr, i32 }
          cleanup
  %3090 = extractvalue { ptr, i32 } %3089, 0
  store ptr %3090, ptr %5, align 8
  %3091 = extractvalue { ptr, i32 } %3089, 1
  store i32 %3091, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #11
  br label %3107

3092:                                             ; preds = %3048
  store i8 1, ptr %232, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %3093

3093:                                             ; preds = %3092, %3066
  invoke void @__cxa_end_catch()
          to label %3094 unwind label %3103

3094:                                             ; preds = %3093
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #11
  %3095 = load i32, ptr %15, align 4
  switch i32 %3095, label %3111 [
    i32 0, label %3096
  ]

3096:                                             ; preds = %3094
  br label %3097

3097:                                             ; preds = %3096, %3073
  %3098 = load i8, ptr %232, align 1, !tbaa !9, !range !15, !noundef !16
  %3099 = trunc i8 %3098 to i1
  br i1 %3099, label %3110, label %3100

3100:                                             ; preds = %3097
  %3101 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %229, ptr noundef nonnull align 1 dereferenceable(125) @.str.969)
          to label %3102 unwind label %3079

3102:                                             ; preds = %3100
  store i32 19, ptr %15, align 4
  br label %3111

3103:                                             ; preds = %3093
  %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 %3109

3107:                                             ; preds = %3088, %3084
  invoke void @__cxa_end_catch()
          to label %3108 unwind label %5007

3108:                                             ; preds = %3107
  br label %3109

3109:                                             ; preds = %3108, %3103
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #11
  br label %3114

3110:                                             ; preds = %3097
  store i32 0, ptr %15, align 4
  br label %3111

3111:                                             ; preds = %3110, %3102, %3094, %3078
  call void @llvm.lifetime.end.p0(i64 1, ptr %232) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #11
  %3112 = load i32, ptr %15, align 4
  switch i32 %3112, label %5010 [
    i32 0, label %3113
    i32 19, label %3117
  ]

3113:                                             ; preds = %3111
  br label %3137

3114:                                             ; preds = %3109, %3083, %3079
  call void @llvm.lifetime.end.p0(i64 1, ptr %232) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #11
  br label %3115

3115:                                             ; preds = %3114, %3023
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #11
  br label %3167

3116:                                             ; preds = %2990
  br label %3117

3117:                                             ; preds = %3116, %3111
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %240)
          to label %3118 unwind label %3123

3118:                                             ; preds = %3117
  call void @llvm.lifetime.start.p0(i64 8, ptr %241) #11
  %3119 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %229)
          to label %3120 unwind label %3127

3120:                                             ; preds = %3118
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %241, i32 noundef 1, ptr noundef @.str.3, i32 noundef 940, ptr noundef %3119)
          to label %3121 unwind label %3127

3121:                                             ; preds = %3120
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %241, ptr noundef nonnull align 8 dereferenceable(8) %240)
          to label %3122 unwind label %3131

3122:                                             ; preds = %3121
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %241) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %240) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #11
  br label %3137

3123:                                             ; preds = %3117
  %3124 = landingpad { ptr, i32 }
          cleanup
  %3125 = extractvalue { ptr, i32 } %3124, 0
  store ptr %3125, ptr %5, align 8
  %3126 = extractvalue { ptr, i32 } %3124, 1
  store i32 %3126, ptr %6, align 4
  br label %3136

3127:                                             ; preds = %3120, %3118
  %3128 = landingpad { ptr, i32 }
          cleanup
  %3129 = extractvalue { ptr, i32 } %3128, 0
  store ptr %3129, ptr %5, align 8
  %3130 = extractvalue { ptr, i32 } %3128, 1
  store i32 %3130, ptr %6, align 4
  br label %3135

3131:                                             ; preds = %3121
  %3132 = landingpad { ptr, i32 }
          cleanup
  %3133 = extractvalue { ptr, i32 } %3132, 0
  store ptr %3133, ptr %5, align 8
  %3134 = extractvalue { ptr, i32 } %3132, 1
  store i32 %3134, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %241) #11
  br label %3135

3135:                                             ; preds = %3131, %3127
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %240) #11
  br label %3136

3136:                                             ; preds = %3135, %3123
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #11
  br label %3167

3137:                                             ; preds = %3122, %3113
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %229) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %229) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %242) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %242)
  %3138 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %242)
          to label %3139 unwind label %3168

3139:                                             ; preds = %3137
  br i1 %3138, label %3140, label %3265

3140:                                             ; preds = %3139
  call void @llvm.lifetime.start.p0(i64 32, ptr %243) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %244) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %244)
          to label %3141 unwind label %3172

3141:                                             ; preds = %3140
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %244) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %245) #11
  store i8 0, ptr %245, align 1, !tbaa !9
  %3142 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %3143 unwind label %3176

3143:                                             ; preds = %3141
  br i1 %3142, label %3144, label %3221

3144:                                             ; preds = %3143
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %249, ptr noundef @.str.939)
          to label %3145 unwind label %3176

3145:                                             ; preds = %3144
  %3146 = getelementptr inbounds { ptr, i64 }, ptr %249, i32 0, i32 0
  %3147 = load ptr, ptr %3146, align 8
  %3148 = getelementptr inbounds { ptr, i64 }, ptr %249, i32 0, i32 1
  %3149 = load i64, ptr %3148, align 8
  %3150 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %3147, i64 %3149)
          to label %3151 unwind label %3176

3151:                                             ; preds = %3145
  %3152 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %248, i32 0, i32 0
  %3153 = getelementptr inbounds { ptr, i64 }, ptr %3152, i32 0, i32 0
  %3154 = extractvalue { ptr, i64 } %3150, 0
  store ptr %3154, ptr %3153, align 8
  %3155 = getelementptr inbounds { ptr, i64 }, ptr %3152, i32 0, i32 1
  %3156 = extractvalue { ptr, i64 } %3150, 1
  store i64 %3156, ptr %3155, align 8
  %3157 = getelementptr inbounds { ptr, i64 }, ptr %248, i32 0, i32 0
  %3158 = load ptr, ptr %3157, align 8
  %3159 = getelementptr inbounds { ptr, i64 }, ptr %248, i32 0, i32 1
  %3160 = load i64, ptr %3159, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJyEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %247, ptr %3158, i64 %3160)
          to label %3161 unwind label %3176

3161:                                             ; preds = %3151
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #11
  store i64 42, ptr %250, align 8, !tbaa !22
  %3162 = getelementptr inbounds { ptr, i64 }, ptr %247, i32 0, i32 0
  %3163 = load ptr, ptr %3162, align 8
  %3164 = getelementptr inbounds { ptr, i64 }, ptr %247, i32 0, i32 1
  %3165 = load i64, ptr %3164, align 8
  invoke void @_ZN3fmt3v106formatIJyEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %246, ptr %3163, i64 %3165, ptr noundef nonnull align 8 dereferenceable(8) %250)
          to label %3166 unwind label %3180

3166:                                             ; preds = %3161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #11
  br label %3222

3167:                                             ; preds = %3136, %3115, %3019
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %229) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %229) #11
  br label %5000

3168:                                             ; preds = %3137
  %3169 = landingpad { ptr, i32 }
          cleanup
  %3170 = extractvalue { ptr, i32 } %3169, 0
  store ptr %3170, ptr %5, align 8
  %3171 = extractvalue { ptr, i32 } %3169, 1
  store i32 %3171, ptr %6, align 4
  br label %3316

3172:                                             ; preds = %3140
  %3173 = landingpad { ptr, i32 }
          cleanup
  %3174 = extractvalue { ptr, i32 } %3173, 0
  store ptr %3174, ptr %5, align 8
  %3175 = extractvalue { ptr, i32 } %3173, 1
  store i32 %3175, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %244) #11
  br label %3264

3176:                                             ; preds = %3151, %3145, %3144, %3141
  %3177 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3178 = extractvalue { ptr, i32 } %3177, 0
  store ptr %3178, ptr %5, align 8
  %3179 = extractvalue { ptr, i32 } %3177, 1
  store i32 %3179, ptr %6, align 4
  br label %3184

3180:                                             ; preds = %3161
  %3181 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3182 = extractvalue { ptr, i32 } %3181, 0
  store ptr %3182, ptr %5, align 8
  %3183 = extractvalue { ptr, i32 } %3181, 1
  store i32 %3183, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #11
  br label %3184

3184:                                             ; preds = %3180, %3176
  %3185 = load i32, ptr %6, align 4
  %3186 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %3187 = icmp eq i32 %3185, %3186
  br i1 %3187, label %3188, label %3216

3188:                                             ; preds = %3184
  call void @llvm.lifetime.start.p0(i64 8, ptr %251) #11
  %3189 = load ptr, ptr %5, align 8
  %3190 = call ptr @__cxa_begin_catch(ptr %3189) #11
  store ptr %3190, ptr %251, align 8
  %3191 = load ptr, ptr %251, align 8, !tbaa !5
  %3192 = load ptr, ptr %3191, align 8, !tbaa !13
  %3193 = getelementptr inbounds ptr, ptr %3192, i64 2
  %3194 = load ptr, ptr %3193, align 8
  %3195 = call noundef ptr %3194(ptr noundef nonnull align 8 dereferenceable(16) %3191) #11
  %3196 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef %3195)
          to label %3197 unwind label %3233

3197:                                             ; preds = %3188
  br i1 %3196, label %3198, label %3241

3198:                                             ; preds = %3197
  %3199 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA92_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %242, ptr noundef nonnull align 1 dereferenceable(92) @.str.971)
          to label %3200 unwind label %3233

3200:                                             ; preds = %3198
  %3201 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3199, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %3202 unwind label %3233

3202:                                             ; preds = %3200
  %3203 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3201, ptr noundef nonnull align 8 dereferenceable(32) %243)
          to label %3204 unwind label %3233

3204:                                             ; preds = %3202
  %3205 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3203, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3206 unwind label %3233

3206:                                             ; preds = %3204
  %3207 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3205, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3208 unwind label %3233

3208:                                             ; preds = %3206
  call void @llvm.lifetime.start.p0(i64 8, ptr %252) #11
  %3209 = load ptr, ptr %251, align 8, !tbaa !5
  %3210 = load ptr, ptr %3209, align 8, !tbaa !13
  %3211 = getelementptr inbounds ptr, ptr %3210, i64 2
  %3212 = load ptr, ptr %3211, align 8
  %3213 = call noundef ptr %3212(ptr noundef nonnull align 8 dereferenceable(16) %3209) #11
  store ptr %3213, ptr %252, align 8, !tbaa !5
  %3214 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3207, ptr noundef nonnull align 8 dereferenceable(8) %252)
          to label %3215 unwind label %3237

3215:                                             ; preds = %3208
  call void @llvm.lifetime.end.p0(i64 8, ptr %252) #11
  store i32 20, ptr %15, align 4
  br label %3242

3216:                                             ; preds = %3184
  %3217 = load ptr, ptr %5, align 8
  %3218 = call ptr @__cxa_begin_catch(ptr %3217) #11
  %3219 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA135_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %242, ptr noundef nonnull align 1 dereferenceable(135) @.str.970)
          to label %3220 unwind label %3223

3220:                                             ; preds = %3216
  store i32 20, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %3227 unwind label %3228

3221:                                             ; preds = %3143
  br label %3222

3222:                                             ; preds = %3221, %3166
  br label %3246

3223:                                             ; preds = %3216
  %3224 = landingpad { ptr, i32 }
          cleanup
  %3225 = extractvalue { ptr, i32 } %3224, 0
  store ptr %3225, ptr %5, align 8
  %3226 = extractvalue { ptr, i32 } %3224, 1
  store i32 %3226, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %3232 unwind label %5007

3227:                                             ; preds = %3220
  br label %3260

3228:                                             ; preds = %3249, %3220
  %3229 = landingpad { ptr, i32 }
          cleanup
  %3230 = extractvalue { ptr, i32 } %3229, 0
  store ptr %3230, ptr %5, align 8
  %3231 = extractvalue { ptr, i32 } %3229, 1
  store i32 %3231, ptr %6, align 4
  br label %3263

3232:                                             ; preds = %3223
  br label %3263

3233:                                             ; preds = %3206, %3204, %3202, %3200, %3198, %3188
  %3234 = landingpad { ptr, i32 }
          cleanup
  %3235 = extractvalue { ptr, i32 } %3234, 0
  store ptr %3235, ptr %5, align 8
  %3236 = extractvalue { ptr, i32 } %3234, 1
  store i32 %3236, ptr %6, align 4
  br label %3256

3237:                                             ; preds = %3208
  %3238 = landingpad { ptr, i32 }
          cleanup
  %3239 = extractvalue { ptr, i32 } %3238, 0
  store ptr %3239, ptr %5, align 8
  %3240 = extractvalue { ptr, i32 } %3238, 1
  store i32 %3240, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %252) #11
  br label %3256

3241:                                             ; preds = %3197
  store i8 1, ptr %245, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %3242

3242:                                             ; preds = %3241, %3215
  invoke void @__cxa_end_catch()
          to label %3243 unwind label %3252

3243:                                             ; preds = %3242
  call void @llvm.lifetime.end.p0(i64 8, ptr %251) #11
  %3244 = load i32, ptr %15, align 4
  switch i32 %3244, label %3260 [
    i32 0, label %3245
  ]

3245:                                             ; preds = %3243
  br label %3246

3246:                                             ; preds = %3245, %3222
  %3247 = load i8, ptr %245, align 1, !tbaa !9, !range !15, !noundef !16
  %3248 = trunc i8 %3247 to i1
  br i1 %3248, label %3259, label %3249

3249:                                             ; preds = %3246
  %3250 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA126_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %242, ptr noundef nonnull align 1 dereferenceable(126) @.str.972)
          to label %3251 unwind label %3228

3251:                                             ; preds = %3249
  store i32 20, ptr %15, align 4
  br label %3260

3252:                                             ; preds = %3242
  %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 %3258

3256:                                             ; preds = %3237, %3233
  invoke void @__cxa_end_catch()
          to label %3257 unwind label %5007

3257:                                             ; preds = %3256
  br label %3258

3258:                                             ; preds = %3257, %3252
  call void @llvm.lifetime.end.p0(i64 8, ptr %251) #11
  br label %3263

3259:                                             ; preds = %3246
  store i32 0, ptr %15, align 4
  br label %3260

3260:                                             ; preds = %3259, %3251, %3243, %3227
  call void @llvm.lifetime.end.p0(i64 1, ptr %245) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #11
  %3261 = load i32, ptr %15, align 4
  switch i32 %3261, label %5010 [
    i32 0, label %3262
    i32 20, label %3266
  ]

3262:                                             ; preds = %3260
  br label %3286

3263:                                             ; preds = %3258, %3232, %3228
  call void @llvm.lifetime.end.p0(i64 1, ptr %245) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #11
  br label %3264

3264:                                             ; preds = %3263, %3172
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #11
  br label %3316

3265:                                             ; preds = %3139
  br label %3266

3266:                                             ; preds = %3265, %3260
  call void @llvm.lifetime.start.p0(i64 8, ptr %253) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %253)
          to label %3267 unwind label %3272

3267:                                             ; preds = %3266
  call void @llvm.lifetime.start.p0(i64 8, ptr %254) #11
  %3268 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %242)
          to label %3269 unwind label %3276

3269:                                             ; preds = %3267
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %254, i32 noundef 1, ptr noundef @.str.3, i32 noundef 942, ptr noundef %3268)
          to label %3270 unwind label %3276

3270:                                             ; preds = %3269
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %254, ptr noundef nonnull align 8 dereferenceable(8) %253)
          to label %3271 unwind label %3280

3271:                                             ; preds = %3270
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %254) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %253) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %253) #11
  br label %3286

3272:                                             ; preds = %3266
  %3273 = landingpad { ptr, i32 }
          cleanup
  %3274 = extractvalue { ptr, i32 } %3273, 0
  store ptr %3274, ptr %5, align 8
  %3275 = extractvalue { ptr, i32 } %3273, 1
  store i32 %3275, ptr %6, align 4
  br label %3285

3276:                                             ; preds = %3269, %3267
  %3277 = landingpad { ptr, i32 }
          cleanup
  %3278 = extractvalue { ptr, i32 } %3277, 0
  store ptr %3278, ptr %5, align 8
  %3279 = extractvalue { ptr, i32 } %3277, 1
  store i32 %3279, ptr %6, align 4
  br label %3284

3280:                                             ; preds = %3270
  %3281 = landingpad { ptr, i32 }
          cleanup
  %3282 = extractvalue { ptr, i32 } %3281, 0
  store ptr %3282, ptr %5, align 8
  %3283 = extractvalue { ptr, i32 } %3281, 1
  store i32 %3283, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %254) #11
  br label %3284

3284:                                             ; preds = %3280, %3276
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %253) #11
  br label %3285

3285:                                             ; preds = %3284, %3272
  call void @llvm.lifetime.end.p0(i64 8, ptr %253) #11
  br label %3316

3286:                                             ; preds = %3271, %3262
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %242) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %242) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %255) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %255)
  %3287 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %255)
          to label %3288 unwind label %3317

3288:                                             ; preds = %3286
  br i1 %3287, label %3289, label %3414

3289:                                             ; preds = %3288
  call void @llvm.lifetime.start.p0(i64 32, ptr %256) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %257) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %257)
          to label %3290 unwind label %3321

3290:                                             ; preds = %3289
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %257) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %258) #11
  store i8 0, ptr %258, align 1, !tbaa !9
  %3291 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %3292 unwind label %3325

3292:                                             ; preds = %3290
  br i1 %3291, label %3293, label %3370

3293:                                             ; preds = %3292
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %262, ptr noundef @.str.973)
          to label %3294 unwind label %3325

3294:                                             ; preds = %3293
  %3295 = getelementptr inbounds { ptr, i64 }, ptr %262, i32 0, i32 0
  %3296 = load ptr, ptr %3295, align 8
  %3297 = getelementptr inbounds { ptr, i64 }, ptr %262, i32 0, i32 1
  %3298 = load i64, ptr %3297, align 8
  %3299 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %3296, i64 %3298)
          to label %3300 unwind label %3325

3300:                                             ; preds = %3294
  %3301 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %261, i32 0, i32 0
  %3302 = getelementptr inbounds { ptr, i64 }, ptr %3301, i32 0, i32 0
  %3303 = extractvalue { ptr, i64 } %3299, 0
  store ptr %3303, ptr %3302, align 8
  %3304 = getelementptr inbounds { ptr, i64 }, ptr %3301, i32 0, i32 1
  %3305 = extractvalue { ptr, i64 } %3299, 1
  store i64 %3305, ptr %3304, align 8
  %3306 = getelementptr inbounds { ptr, i64 }, ptr %261, i32 0, i32 0
  %3307 = load ptr, ptr %3306, align 8
  %3308 = getelementptr inbounds { ptr, i64 }, ptr %261, i32 0, i32 1
  %3309 = load i64, ptr %3308, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %260, ptr %3307, i64 %3309)
          to label %3310 unwind label %3325

3310:                                             ; preds = %3300
  call void @llvm.lifetime.start.p0(i64 1, ptr %263) #11
  store i8 120, ptr %263, align 1, !tbaa !19
  %3311 = getelementptr inbounds { ptr, i64 }, ptr %260, i32 0, i32 0
  %3312 = load ptr, ptr %3311, align 8
  %3313 = getelementptr inbounds { ptr, i64 }, ptr %260, i32 0, i32 1
  %3314 = load i64, ptr %3313, align 8
  invoke void @_ZN3fmt3v106formatIJcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %259, ptr %3312, i64 %3314, ptr noundef nonnull align 1 dereferenceable(1) %263)
          to label %3315 unwind label %3329

3315:                                             ; preds = %3310
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %263) #11
  br label %3371

3316:                                             ; preds = %3285, %3264, %3168
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %242) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %242) #11
  br label %5000

3317:                                             ; preds = %3286
  %3318 = landingpad { ptr, i32 }
          cleanup
  %3319 = extractvalue { ptr, i32 } %3318, 0
  store ptr %3319, ptr %5, align 8
  %3320 = extractvalue { ptr, i32 } %3318, 1
  store i32 %3320, ptr %6, align 4
  br label %3444

3321:                                             ; preds = %3289
  %3322 = landingpad { ptr, i32 }
          cleanup
  %3323 = extractvalue { ptr, i32 } %3322, 0
  store ptr %3323, ptr %5, align 8
  %3324 = extractvalue { ptr, i32 } %3322, 1
  store i32 %3324, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %257) #11
  br label %3413

3325:                                             ; preds = %3300, %3294, %3293, %3290
  %3326 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3327 = extractvalue { ptr, i32 } %3326, 0
  store ptr %3327, ptr %5, align 8
  %3328 = extractvalue { ptr, i32 } %3326, 1
  store i32 %3328, ptr %6, align 4
  br label %3333

3329:                                             ; preds = %3310
  %3330 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %3331 = extractvalue { ptr, i32 } %3330, 0
  store ptr %3331, ptr %5, align 8
  %3332 = extractvalue { ptr, i32 } %3330, 1
  store i32 %3332, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %263) #11
  br label %3333

3333:                                             ; preds = %3329, %3325
  %3334 = load i32, ptr %6, align 4
  %3335 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %3336 = icmp eq i32 %3334, %3335
  br i1 %3336, label %3337, label %3365

3337:                                             ; preds = %3333
  call void @llvm.lifetime.start.p0(i64 8, ptr %264) #11
  %3338 = load ptr, ptr %5, align 8
  %3339 = call ptr @__cxa_begin_catch(ptr %3338) #11
  store ptr %3339, ptr %264, align 8
  %3340 = load ptr, ptr %264, align 8, !tbaa !5
  %3341 = load ptr, ptr %3340, align 8, !tbaa !13
  %3342 = getelementptr inbounds ptr, ptr %3341, i64 2
  %3343 = load ptr, ptr %3342, align 8
  %3344 = call noundef ptr %3343(ptr noundef nonnull align 8 dereferenceable(16) %3340) #11
  %3345 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef %3344)
          to label %3346 unwind label %3382

3346:                                             ; preds = %3337
  br i1 %3345, label %3347, label %3390

3347:                                             ; preds = %3346
  %3348 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %255, ptr noundef nonnull align 1 dereferenceable(90) @.str.975)
          to label %3349 unwind label %3382

3349:                                             ; preds = %3347
  %3350 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3348, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %3351 unwind label %3382

3351:                                             ; preds = %3349
  %3352 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3350, ptr noundef nonnull align 8 dereferenceable(32) %256)
          to label %3353 unwind label %3382

3353:                                             ; preds = %3351
  %3354 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3352, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %3355 unwind label %3382

3355:                                             ; preds = %3353
  %3356 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3354, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %3357 unwind label %3382

3357:                                             ; preds = %3355
  call void @llvm.lifetime.start.p0(i64 8, ptr %265) #11
  %3358 = load ptr, ptr %264, align 8, !tbaa !5
  %3359 = load ptr, ptr %3358, align 8, !tbaa !13
  %3360 = getelementptr inbounds ptr, ptr %3359, i64 2
  %3361 = load ptr, ptr %3360, align 8
  %3362 = call noundef ptr %3361(ptr noundef nonnull align 8 dereferenceable(16) %3358) #11
  store ptr %3362, ptr %265, align 8, !tbaa !5
  %3363 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %3356, ptr noundef nonnull align 8 dereferenceable(8) %265)
          to label %3364 unwind label %3386

3364:                                             ; preds = %3357
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #11
  store i32 21, ptr %15, align 4
  br label %3391

3365:                                             ; preds = %3333
  %3366 = load ptr, ptr %5, align 8
  %3367 = call ptr @__cxa_begin_catch(ptr %3366) #11
  %3368 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %255, ptr noundef nonnull align 1 dereferenceable(133) @.str.974)
          to label %3369 unwind label %3372

3369:                                             ; preds = %3365
  store i32 21, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %3376 unwind label %3377

3370:                                             ; preds = %3292
  br label %3371

3371:                                             ; preds = %3370, %3315
  br label %3395

3372:                                             ; preds = %3365
  %3373 = landingpad { ptr, i32 }
          cleanup
  %3374 = extractvalue { ptr, i32 } %3373, 0
  store ptr %3374, ptr %5, align 8
  %3375 = extractvalue { ptr, i32 } %3373, 1
  store i32 %3375, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %3381 unwind label %5007

3376:                                             ; preds = %3369
  br label %3409

3377:                                             ; preds = %3398, %3369
  %3378 = landingpad { ptr, i32 }
          cleanup
  %3379 = extractvalue { ptr, i32 } %3378, 0
  store ptr %3379, ptr %5, align 8
  %3380 = extractvalue { ptr, i32 } %3378, 1
  store i32 %3380, ptr %6, align 4
  br label %3412

3381:                                             ; preds = %3372
  br label %3412

3382:                                             ; preds = %3355, %3353, %3351, %3349, %3347, %3337
  %3383 = landingpad { ptr, i32 }
          cleanup
  %3384 = extractvalue { ptr, i32 } %3383, 0
  store ptr %3384, ptr %5, align 8
  %3385 = extractvalue { ptr, i32 } %3383, 1
  store i32 %3385, ptr %6, align 4
  br label %3405

3386:                                             ; preds = %3357
  %3387 = landingpad { ptr, i32 }
          cleanup
  %3388 = extractvalue { ptr, i32 } %3387, 0
  store ptr %3388, ptr %5, align 8
  %3389 = extractvalue { ptr, i32 } %3387, 1
  store i32 %3389, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #11
  br label %3405

3390:                                             ; preds = %3346
  store i8 1, ptr %258, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %3391

3391:                                             ; preds = %3390, %3364
  invoke void @__cxa_end_catch()
          to label %3392 unwind label %3401

3392:                                             ; preds = %3391
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #11
  %3393 = load i32, ptr %15, align 4
  switch i32 %3393, label %3409 [
    i32 0, label %3394
  ]

3394:                                             ; preds = %3392
  br label %3395

3395:                                             ; preds = %3394, %3371
  %3396 = load i8, ptr %258, align 1, !tbaa !9, !range !15, !noundef !16
  %3397 = trunc i8 %3396 to i1
  br i1 %3397, label %3408, label %3398

3398:                                             ; preds = %3395
  %3399 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %255, ptr noundef nonnull align 1 dereferenceable(124) @.str.976)
          to label %3400 unwind label %3377

3400:                                             ; preds = %3398
  store i32 21, ptr %15, align 4
  br label %3409

3401:                                             ; preds = %3391
  %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 %3407

3405:                                             ; preds = %3386, %3382
  invoke void @__cxa_end_catch()
          to label %3406 unwind label %5007

3406:                                             ; preds = %3405
  br label %3407

3407:                                             ; preds = %3406, %3401
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #11
  br label %3412

3408:                                             ; preds = %3395
  store i32 0, ptr %15, align 4
  br label %3409

3409:                                             ; preds = %3408, %3400, %3392, %3376
  call void @llvm.lifetime.end.p0(i64 1, ptr %258) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #11
  %3410 = load i32, ptr %15, align 4
  switch i32 %3410, label %5010 [
    i32 0, label %3411
    i32 21, label %3415
  ]

3411:                                             ; preds = %3409
  br label %3435

3412:                                             ; preds = %3407, %3381, %3377
  call void @llvm.lifetime.end.p0(i64 1, ptr %258) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #11
  br label %3413

3413:                                             ; preds = %3412, %3321
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #11
  br label %3444

3414:                                             ; preds = %3288
  br label %3415

3415:                                             ; preds = %3414, %3409
  call void @llvm.lifetime.start.p0(i64 8, ptr %266) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %266)
          to label %3416 unwind label %3421

3416:                                             ; preds = %3415
  call void @llvm.lifetime.start.p0(i64 8, ptr %267) #11
  %3417 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %255)
          to label %3418 unwind label %3425

3418:                                             ; preds = %3416
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %267, i32 noundef 1, ptr noundef @.str.3, i32 noundef 944, ptr noundef %3417)
          to label %3419 unwind label %3425

3419:                                             ; preds = %3418
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %267, ptr noundef nonnull align 8 dereferenceable(8) %266)
          to label %3420 unwind label %3429

3420:                                             ; preds = %3419
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %267) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %267) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %266) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %266) #11
  br label %3435

3421:                                             ; preds = %3415
  %3422 = landingpad { ptr, i32 }
          cleanup
  %3423 = extractvalue { ptr, i32 } %3422, 0
  store ptr %3423, ptr %5, align 8
  %3424 = extractvalue { ptr, i32 } %3422, 1
  store i32 %3424, ptr %6, align 4
  br label %3434

3425:                                             ; preds = %3418, %3416
  %3426 = landingpad { ptr, i32 }
          cleanup
  %3427 = extractvalue { ptr, i32 } %3426, 0
  store ptr %3427, ptr %5, align 8
  %3428 = extractvalue { ptr, i32 } %3426, 1
  store i32 %3428, ptr %6, align 4
  br label %3433

3429:                                             ; preds = %3419
  %3430 = landingpad { ptr, i32 }
          cleanup
  %3431 = extractvalue { ptr, i32 } %3430, 0
  store ptr %3431, ptr %5, align 8
  %3432 = extractvalue { ptr, i32 } %3430, 1
  store i32 %3432, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %267) #11
  br label %3433

3433:                                             ; preds = %3429, %3425
  call void @llvm.lifetime.end.p0(i64 8, ptr %267) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %266) #11
  br label %3434

3434:                                             ; preds = %3433, %3421
  call void @llvm.lifetime.end.p0(i64 8, ptr %266) #11
  br label %3444

3435:                                             ; preds = %3420, %3411
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %255) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %255) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %268) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %269) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %270, ptr noundef nonnull align 1 dereferenceable(7) @.str.935)
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #11
  store double 1.234500e+00, ptr %271, align 8, !tbaa !11
  %3436 = getelementptr inbounds { ptr, i64 }, ptr %270, i32 0, i32 0
  %3437 = load ptr, ptr %3436, align 8
  %3438 = getelementptr inbounds { ptr, i64 }, ptr %270, i32 0, i32 1
  %3439 = load i64, ptr %3438, align 8
  call void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %269, ptr %3437, i64 %3439, ptr noundef nonnull align 8 dereferenceable(8) %271)
  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 %268, ptr noundef @.str.977, ptr noundef @.str.392, ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef nonnull align 1 dereferenceable(4) @.str.394)
          to label %3440 unwind label %3445

3440:                                             ; preds = %3435
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %269) #11
  %3441 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %268)
          to label %3442 unwind label %3449

3442:                                             ; preds = %3440
  br i1 %3441, label %3443, label %3453

3443:                                             ; preds = %3442
  br label %3473

3444:                                             ; preds = %3434, %3413, %3317
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %255) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %255) #11
  br label %5000

3445:                                             ; preds = %3435
  %3446 = landingpad { ptr, i32 }
          cleanup
  %3447 = extractvalue { ptr, i32 } %3446, 0
  store ptr %3447, ptr %5, align 8
  %3448 = extractvalue { ptr, i32 } %3446, 1
  store i32 %3448, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %269) #11
  br label %3483

3449:                                             ; preds = %3440
  %3450 = landingpad { ptr, i32 }
          cleanup
  %3451 = extractvalue { ptr, i32 } %3450, 0
  store ptr %3451, ptr %5, align 8
  %3452 = extractvalue { ptr, i32 } %3450, 1
  store i32 %3452, ptr %6, align 4
  br label %3482

3453:                                             ; preds = %3442
  call void @llvm.lifetime.start.p0(i64 8, ptr %272) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %272)
          to label %3454 unwind label %3459

3454:                                             ; preds = %3453
  call void @llvm.lifetime.start.p0(i64 8, ptr %273) #11
  %3455 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %268)
          to label %3456 unwind label %3463

3456:                                             ; preds = %3454
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %273, i32 noundef 1, ptr noundef @.str.3, i32 noundef 945, ptr noundef %3455)
          to label %3457 unwind label %3463

3457:                                             ; preds = %3456
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef nonnull align 8 dereferenceable(8) %272)
          to label %3458 unwind label %3467

3458:                                             ; preds = %3457
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %273) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %273) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %272) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #11
  br label %3473

3459:                                             ; preds = %3453
  %3460 = landingpad { ptr, i32 }
          cleanup
  %3461 = extractvalue { ptr, i32 } %3460, 0
  store ptr %3461, ptr %5, align 8
  %3462 = extractvalue { ptr, i32 } %3460, 1
  store i32 %3462, ptr %6, align 4
  br label %3472

3463:                                             ; preds = %3456, %3454
  %3464 = landingpad { ptr, i32 }
          cleanup
  %3465 = extractvalue { ptr, i32 } %3464, 0
  store ptr %3465, ptr %5, align 8
  %3466 = extractvalue { ptr, i32 } %3464, 1
  store i32 %3466, ptr %6, align 4
  br label %3471

3467:                                             ; preds = %3457
  %3468 = landingpad { ptr, i32 }
          cleanup
  %3469 = extractvalue { ptr, i32 } %3468, 0
  store ptr %3469, ptr %5, align 8
  %3470 = extractvalue { ptr, i32 } %3468, 1
  store i32 %3470, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %273) #11
  br label %3471

3471:                                             ; preds = %3467, %3463
  call void @llvm.lifetime.end.p0(i64 8, ptr %273) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %272) #11
  br label %3472

3472:                                             ; preds = %3471, %3459
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #11
  br label %3482

3473:                                             ; preds = %3458, %3443
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %268) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %268) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %274) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %275) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJeEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %276, ptr noundef nonnull align 1 dereferenceable(7) @.str.935)
  call void @llvm.lifetime.start.p0(i64 16, ptr %277) #11
  store x86_fp80 0xK3FFF9E04189374BC6A7F, ptr %277, align 16, !tbaa !24
  %3474 = getelementptr inbounds { ptr, i64 }, ptr %276, i32 0, i32 0
  %3475 = load ptr, ptr %3474, align 8
  %3476 = getelementptr inbounds { ptr, i64 }, ptr %276, i32 0, i32 1
  %3477 = load i64, ptr %3476, align 8
  call void @_ZN3fmt3v106formatIJeEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %275, ptr %3475, i64 %3477, ptr noundef nonnull align 16 dereferenceable(16) %277)
  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 %274, ptr noundef @.str.978, ptr noundef @.str.392, ptr noundef nonnull align 8 dereferenceable(32) %275, ptr noundef nonnull align 1 dereferenceable(4) @.str.394)
          to label %3478 unwind label %3484

3478:                                             ; preds = %3473
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %277) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %275) #11
  %3479 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %274)
          to label %3480 unwind label %3488

3480:                                             ; preds = %3478
  br i1 %3479, label %3481, label %3492

3481:                                             ; preds = %3480
  br label %3512

3482:                                             ; preds = %3472, %3449
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %268) #11
  br label %3483

3483:                                             ; preds = %3482, %3445
  call void @llvm.lifetime.end.p0(i64 16, ptr %268) #11
  br label %5000

3484:                                             ; preds = %3473
  %3485 = landingpad { ptr, i32 }
          cleanup
  %3486 = extractvalue { ptr, i32 } %3485, 0
  store ptr %3486, ptr %5, align 8
  %3487 = extractvalue { ptr, i32 } %3485, 1
  store i32 %3487, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %277) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %275) #11
  br label %3522

3488:                                             ; preds = %3478
  %3489 = landingpad { ptr, i32 }
          cleanup
  %3490 = extractvalue { ptr, i32 } %3489, 0
  store ptr %3490, ptr %5, align 8
  %3491 = extractvalue { ptr, i32 } %3489, 1
  store i32 %3491, ptr %6, align 4
  br label %3521

3492:                                             ; preds = %3480
  call void @llvm.lifetime.start.p0(i64 8, ptr %278) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %278)
          to label %3493 unwind label %3498

3493:                                             ; preds = %3492
  call void @llvm.lifetime.start.p0(i64 8, ptr %279) #11
  %3494 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %274)
          to label %3495 unwind label %3502

3495:                                             ; preds = %3493
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %279, i32 noundef 1, ptr noundef @.str.3, i32 noundef 946, ptr noundef %3494)
          to label %3496 unwind label %3502

3496:                                             ; preds = %3495
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %279, ptr noundef nonnull align 8 dereferenceable(8) %278)
          to label %3497 unwind label %3506

3497:                                             ; preds = %3496
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %279) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %278) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #11
  br label %3512

3498:                                             ; preds = %3492
  %3499 = landingpad { ptr, i32 }
          cleanup
  %3500 = extractvalue { ptr, i32 } %3499, 0
  store ptr %3500, ptr %5, align 8
  %3501 = extractvalue { ptr, i32 } %3499, 1
  store i32 %3501, ptr %6, align 4
  br label %3511

3502:                                             ; preds = %3495, %3493
  %3503 = landingpad { ptr, i32 }
          cleanup
  %3504 = extractvalue { ptr, i32 } %3503, 0
  store ptr %3504, ptr %5, align 8
  %3505 = extractvalue { ptr, i32 } %3503, 1
  store i32 %3505, ptr %6, align 4
  br label %3510

3506:                                             ; preds = %3496
  %3507 = landingpad { ptr, i32 }
          cleanup
  %3508 = extractvalue { ptr, i32 } %3507, 0
  store ptr %3508, ptr %5, align 8
  %3509 = extractvalue { ptr, i32 } %3507, 1
  store i32 %3509, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #11
  br label %3510

3510:                                             ; preds = %3506, %3502
  call void @llvm.lifetime.end.p0(i64 8, ptr %279) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %278) #11
  br label %3511

3511:                                             ; preds = %3510, %3498
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #11
  br label %3521

3512:                                             ; preds = %3497, %3481
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %274) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %274) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %280) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %281) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %282, ptr noundef nonnull align 1 dereferenceable(6) @.str.981)
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #11
  store double 1.234000e+56, ptr %283, align 8, !tbaa !11
  %3513 = getelementptr inbounds { ptr, i64 }, ptr %282, i32 0, i32 0
  %3514 = load ptr, ptr %3513, align 8
  %3515 = getelementptr inbounds { ptr, i64 }, ptr %282, i32 0, i32 1
  %3516 = load i64, ptr %3515, align 8
  call void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %281, ptr %3514, i64 %3516, ptr noundef nonnull align 8 dereferenceable(8) %283)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %280, ptr noundef @.str.979, ptr noundef @.str.980, ptr noundef nonnull align 8 dereferenceable(32) %281, ptr noundef nonnull align 1 dereferenceable(8) @.str.982)
          to label %3517 unwind label %3523

3517:                                             ; preds = %3512
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %281) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %281) #11
  %3518 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %280)
          to label %3519 unwind label %3527

3519:                                             ; preds = %3517
  br i1 %3518, label %3520, label %3531

3520:                                             ; preds = %3519
  br label %3551

3521:                                             ; preds = %3511, %3488
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %274) #11
  br label %3522

3522:                                             ; preds = %3521, %3484
  call void @llvm.lifetime.end.p0(i64 16, ptr %274) #11
  br label %5000

3523:                                             ; preds = %3512
  %3524 = landingpad { ptr, i32 }
          cleanup
  %3525 = extractvalue { ptr, i32 } %3524, 0
  store ptr %3525, ptr %5, align 8
  %3526 = extractvalue { ptr, i32 } %3524, 1
  store i32 %3526, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %281) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %281) #11
  br label %3561

3527:                                             ; preds = %3517
  %3528 = landingpad { ptr, i32 }
          cleanup
  %3529 = extractvalue { ptr, i32 } %3528, 0
  store ptr %3529, ptr %5, align 8
  %3530 = extractvalue { ptr, i32 } %3528, 1
  store i32 %3530, ptr %6, align 4
  br label %3560

3531:                                             ; preds = %3519
  call void @llvm.lifetime.start.p0(i64 8, ptr %284) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %284)
          to label %3532 unwind label %3537

3532:                                             ; preds = %3531
  call void @llvm.lifetime.start.p0(i64 8, ptr %285) #11
  %3533 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %280)
          to label %3534 unwind label %3541

3534:                                             ; preds = %3532
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %285, i32 noundef 1, ptr noundef @.str.3, i32 noundef 947, ptr noundef %3533)
          to label %3535 unwind label %3541

3535:                                             ; preds = %3534
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %285, ptr noundef nonnull align 8 dereferenceable(8) %284)
          to label %3536 unwind label %3545

3536:                                             ; preds = %3535
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %285) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %285) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %284) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %284) #11
  br label %3551

3537:                                             ; preds = %3531
  %3538 = landingpad { ptr, i32 }
          cleanup
  %3539 = extractvalue { ptr, i32 } %3538, 0
  store ptr %3539, ptr %5, align 8
  %3540 = extractvalue { ptr, i32 } %3538, 1
  store i32 %3540, ptr %6, align 4
  br label %3550

3541:                                             ; preds = %3534, %3532
  %3542 = landingpad { ptr, i32 }
          cleanup
  %3543 = extractvalue { ptr, i32 } %3542, 0
  store ptr %3543, ptr %5, align 8
  %3544 = extractvalue { ptr, i32 } %3542, 1
  store i32 %3544, ptr %6, align 4
  br label %3549

3545:                                             ; preds = %3535
  %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
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %285) #11
  br label %3549

3549:                                             ; preds = %3545, %3541
  call void @llvm.lifetime.end.p0(i64 8, ptr %285) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %284) #11
  br label %3550

3550:                                             ; preds = %3549, %3537
  call void @llvm.lifetime.end.p0(i64 8, ptr %284) #11
  br label %3560

3551:                                             ; preds = %3536, %3520
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %280) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %280) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %286) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %287) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %288, ptr noundef nonnull align 1 dereferenceable(7) @.str.985)
  call void @llvm.lifetime.start.p0(i64 8, ptr %289) #11
  store double 1.100000e+00, ptr %289, align 8, !tbaa !11
  %3552 = getelementptr inbounds { ptr, i64 }, ptr %288, i32 0, i32 0
  %3553 = load ptr, ptr %3552, align 8
  %3554 = getelementptr inbounds { ptr, i64 }, ptr %288, i32 0, i32 1
  %3555 = load i64, ptr %3554, align 8
  call void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %287, ptr %3553, i64 %3555, ptr noundef nonnull align 8 dereferenceable(8) %289)
  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 %286, ptr noundef @.str.983, ptr noundef @.str.984, ptr noundef nonnull align 8 dereferenceable(32) %287, ptr noundef nonnull align 1 dereferenceable(4) @.str.986)
          to label %3556 unwind label %3562

3556:                                             ; preds = %3551
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %287) #11
  %3557 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %286)
          to label %3558 unwind label %3566

3558:                                             ; preds = %3556
  br i1 %3557, label %3559, label %3570

3559:                                             ; preds = %3558
  br label %3590

3560:                                             ; preds = %3550, %3527
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %280) #11
  br label %3561

3561:                                             ; preds = %3560, %3523
  call void @llvm.lifetime.end.p0(i64 16, ptr %280) #11
  br label %5000

3562:                                             ; preds = %3551
  %3563 = landingpad { ptr, i32 }
          cleanup
  %3564 = extractvalue { ptr, i32 } %3563, 0
  store ptr %3564, ptr %5, align 8
  %3565 = extractvalue { ptr, i32 } %3563, 1
  store i32 %3565, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %287) #11
  br label %3600

3566:                                             ; preds = %3556
  %3567 = landingpad { ptr, i32 }
          cleanup
  %3568 = extractvalue { ptr, i32 } %3567, 0
  store ptr %3568, ptr %5, align 8
  %3569 = extractvalue { ptr, i32 } %3567, 1
  store i32 %3569, ptr %6, align 4
  br label %3599

3570:                                             ; preds = %3558
  call void @llvm.lifetime.start.p0(i64 8, ptr %290) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %290)
          to label %3571 unwind label %3576

3571:                                             ; preds = %3570
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #11
  %3572 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %286)
          to label %3573 unwind label %3580

3573:                                             ; preds = %3571
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %291, i32 noundef 1, ptr noundef @.str.3, i32 noundef 948, ptr noundef %3572)
          to label %3574 unwind label %3580

3574:                                             ; preds = %3573
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull align 8 dereferenceable(8) %290)
          to label %3575 unwind label %3584

3575:                                             ; preds = %3574
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %290) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #11
  br label %3590

3576:                                             ; preds = %3570
  %3577 = landingpad { ptr, i32 }
          cleanup
  %3578 = extractvalue { ptr, i32 } %3577, 0
  store ptr %3578, ptr %5, align 8
  %3579 = extractvalue { ptr, i32 } %3577, 1
  store i32 %3579, ptr %6, align 4
  br label %3589

3580:                                             ; preds = %3573, %3571
  %3581 = landingpad { ptr, i32 }
          cleanup
  %3582 = extractvalue { ptr, i32 } %3581, 0
  store ptr %3582, ptr %5, align 8
  %3583 = extractvalue { ptr, i32 } %3581, 1
  store i32 %3583, ptr %6, align 4
  br label %3588

3584:                                             ; preds = %3574
  %3585 = landingpad { ptr, i32 }
          cleanup
  %3586 = extractvalue { ptr, i32 } %3585, 0
  store ptr %3586, ptr %5, align 8
  %3587 = extractvalue { ptr, i32 } %3585, 1
  store i32 %3587, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #11
  br label %3588

3588:                                             ; preds = %3584, %3580
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %290) #11
  br label %3589

3589:                                             ; preds = %3588, %3576
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #11
  br label %3599

3590:                                             ; preds = %3575, %3559
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %286) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %286) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %292) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %293) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJeEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %294, ptr noundef nonnull align 1 dereferenceable(7) @.str.989)
  call void @llvm.lifetime.start.p0(i64 16, ptr %295) #11
  store x86_fp80 0xK3FFF8000000000000000, ptr %295, align 16, !tbaa !24
  %3591 = getelementptr inbounds { ptr, i64 }, ptr %294, i32 0, i32 0
  %3592 = load ptr, ptr %3591, align 8
  %3593 = getelementptr inbounds { ptr, i64 }, ptr %294, i32 0, i32 1
  %3594 = load i64, ptr %3593, align 8
  call void @_ZN3fmt3v106formatIJeEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %293, ptr %3592, i64 %3594, ptr noundef nonnull align 16 dereferenceable(16) %295)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA6_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %292, ptr noundef @.str.987, ptr noundef @.str.988, ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef nonnull align 1 dereferenceable(6) @.str.990)
          to label %3595 unwind label %3601

3595:                                             ; preds = %3590
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %295) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #11
  %3596 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %292)
          to label %3597 unwind label %3605

3597:                                             ; preds = %3595
  br i1 %3596, label %3598, label %3609

3598:                                             ; preds = %3597
  br label %3629

3599:                                             ; preds = %3589, %3566
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %286) #11
  br label %3600

3600:                                             ; preds = %3599, %3562
  call void @llvm.lifetime.end.p0(i64 16, ptr %286) #11
  br label %5000

3601:                                             ; preds = %3590
  %3602 = landingpad { ptr, i32 }
          cleanup
  %3603 = extractvalue { ptr, i32 } %3602, 0
  store ptr %3603, ptr %5, align 8
  %3604 = extractvalue { ptr, i32 } %3602, 1
  store i32 %3604, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %295) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #11
  br label %3639

3605:                                             ; preds = %3595
  %3606 = landingpad { ptr, i32 }
          cleanup
  %3607 = extractvalue { ptr, i32 } %3606, 0
  store ptr %3607, ptr %5, align 8
  %3608 = extractvalue { ptr, i32 } %3606, 1
  store i32 %3608, ptr %6, align 4
  br label %3638

3609:                                             ; preds = %3597
  call void @llvm.lifetime.start.p0(i64 8, ptr %296) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %296)
          to label %3610 unwind label %3615

3610:                                             ; preds = %3609
  call void @llvm.lifetime.start.p0(i64 8, ptr %297) #11
  %3611 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %292)
          to label %3612 unwind label %3619

3612:                                             ; preds = %3610
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %297, i32 noundef 1, ptr noundef @.str.3, i32 noundef 949, ptr noundef %3611)
          to label %3613 unwind label %3619

3613:                                             ; preds = %3612
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %297, ptr noundef nonnull align 8 dereferenceable(8) %296)
          to label %3614 unwind label %3623

3614:                                             ; preds = %3613
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %297) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %297) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %296) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #11
  br label %3629

3615:                                             ; preds = %3609
  %3616 = landingpad { ptr, i32 }
          cleanup
  %3617 = extractvalue { ptr, i32 } %3616, 0
  store ptr %3617, ptr %5, align 8
  %3618 = extractvalue { ptr, i32 } %3616, 1
  store i32 %3618, ptr %6, align 4
  br label %3628

3619:                                             ; preds = %3612, %3610
  %3620 = landingpad { ptr, i32 }
          cleanup
  %3621 = extractvalue { ptr, i32 } %3620, 0
  store ptr %3621, ptr %5, align 8
  %3622 = extractvalue { ptr, i32 } %3620, 1
  store i32 %3622, ptr %6, align 4
  br label %3627

3623:                                             ; preds = %3613
  %3624 = landingpad { ptr, i32 }
          cleanup
  %3625 = extractvalue { ptr, i32 } %3624, 0
  store ptr %3625, ptr %5, align 8
  %3626 = extractvalue { ptr, i32 } %3624, 1
  store i32 %3626, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %297) #11
  br label %3627

3627:                                             ; preds = %3623, %3619
  call void @llvm.lifetime.end.p0(i64 8, ptr %297) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %296) #11
  br label %3628

3628:                                             ; preds = %3627, %3615
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #11
  br label %3638

3629:                                             ; preds = %3614, %3598
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %292) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %292) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %298) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %299) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %300, ptr noundef nonnull align 1 dereferenceable(8) @.str.993)
  call void @llvm.lifetime.start.p0(i64 8, ptr %301) #11
  store double 0.000000e+00, ptr %301, align 8, !tbaa !11
  %3630 = getelementptr inbounds { ptr, i64 }, ptr %300, i32 0, i32 0
  %3631 = load ptr, ptr %3630, align 8
  %3632 = getelementptr inbounds { ptr, i64 }, ptr %300, i32 0, i32 1
  %3633 = load i64, ptr %3632, align 8
  call void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %299, ptr %3631, i64 %3633, ptr noundef nonnull align 8 dereferenceable(8) %301)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA10_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %298, ptr noundef @.str.991, ptr noundef @.str.992, ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef nonnull align 1 dereferenceable(10) @.str.994)
          to label %3634 unwind label %3640

3634:                                             ; preds = %3629
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #11
  %3635 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %298)
          to label %3636 unwind label %3644

3636:                                             ; preds = %3634
  br i1 %3635, label %3637, label %3648

3637:                                             ; preds = %3636
  br label %3668

3638:                                             ; preds = %3628, %3605
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %292) #11
  br label %3639

3639:                                             ; preds = %3638, %3601
  call void @llvm.lifetime.end.p0(i64 16, ptr %292) #11
  br label %5000

3640:                                             ; preds = %3629
  %3641 = landingpad { ptr, i32 }
          cleanup
  %3642 = extractvalue { ptr, i32 } %3641, 0
  store ptr %3642, ptr %5, align 8
  %3643 = extractvalue { ptr, i32 } %3641, 1
  store i32 %3643, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #11
  br label %3678

3644:                                             ; preds = %3634
  %3645 = landingpad { ptr, i32 }
          cleanup
  %3646 = extractvalue { ptr, i32 } %3645, 0
  store ptr %3646, ptr %5, align 8
  %3647 = extractvalue { ptr, i32 } %3645, 1
  store i32 %3647, ptr %6, align 4
  br label %3677

3648:                                             ; preds = %3636
  call void @llvm.lifetime.start.p0(i64 8, ptr %302) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %302)
          to label %3649 unwind label %3654

3649:                                             ; preds = %3648
  call void @llvm.lifetime.start.p0(i64 8, ptr %303) #11
  %3650 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %298)
          to label %3651 unwind label %3658

3651:                                             ; preds = %3649
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %303, i32 noundef 1, ptr noundef @.str.3, i32 noundef 950, ptr noundef %3650)
          to label %3652 unwind label %3658

3652:                                             ; preds = %3651
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %303, ptr noundef nonnull align 8 dereferenceable(8) %302)
          to label %3653 unwind label %3662

3653:                                             ; preds = %3652
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %302) #11
  br label %3668

3654:                                             ; preds = %3648
  %3655 = landingpad { ptr, i32 }
          cleanup
  %3656 = extractvalue { ptr, i32 } %3655, 0
  store ptr %3656, ptr %5, align 8
  %3657 = extractvalue { ptr, i32 } %3655, 1
  store i32 %3657, ptr %6, align 4
  br label %3667

3658:                                             ; preds = %3651, %3649
  %3659 = landingpad { ptr, i32 }
          cleanup
  %3660 = extractvalue { ptr, i32 } %3659, 0
  store ptr %3660, ptr %5, align 8
  %3661 = extractvalue { ptr, i32 } %3659, 1
  store i32 %3661, ptr %6, align 4
  br label %3666

3662:                                             ; preds = %3652
  %3663 = landingpad { ptr, i32 }
          cleanup
  %3664 = extractvalue { ptr, i32 } %3663, 0
  store ptr %3664, ptr %5, align 8
  %3665 = extractvalue { ptr, i32 } %3663, 1
  store i32 %3665, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #11
  br label %3666

3666:                                             ; preds = %3662, %3658
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #11
  br label %3667

3667:                                             ; preds = %3666, %3654
  call void @llvm.lifetime.end.p0(i64 8, ptr %302) #11
  br label %3677

3668:                                             ; preds = %3653, %3637
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %298) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %298) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %304) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %305) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %306, ptr noundef nonnull align 1 dereferenceable(8) @.str.997)
  call void @llvm.lifetime.start.p0(i64 8, ptr %307) #11
  store double 4.940660e-324, ptr %307, align 8, !tbaa !11
  %3669 = getelementptr inbounds { ptr, i64 }, ptr %306, i32 0, i32 0
  %3670 = load ptr, ptr %3669, align 8
  %3671 = getelementptr inbounds { ptr, i64 }, ptr %306, i32 0, i32 1
  %3672 = load i64, ptr %3671, align 8
  call void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %305, ptr %3670, i64 %3672, ptr noundef nonnull align 8 dereferenceable(8) %307)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA501_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %304, ptr noundef @.str.995, ptr noundef @.str.996, ptr noundef nonnull align 8 dereferenceable(32) %305, ptr noundef nonnull align 1 dereferenceable(501) @.str.998)
          to label %3673 unwind label %3679

3673:                                             ; preds = %3668
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %307) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %305) #11
  %3674 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %304)
          to label %3675 unwind label %3683

3675:                                             ; preds = %3673
  br i1 %3674, label %3676, label %3687

3676:                                             ; preds = %3675
  br label %3707

3677:                                             ; preds = %3667, %3644
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %298) #11
  br label %3678

3678:                                             ; preds = %3677, %3640
  call void @llvm.lifetime.end.p0(i64 16, ptr %298) #11
  br label %5000

3679:                                             ; preds = %3668
  %3680 = landingpad { ptr, i32 }
          cleanup
  %3681 = extractvalue { ptr, i32 } %3680, 0
  store ptr %3681, ptr %5, align 8
  %3682 = extractvalue { ptr, i32 } %3680, 1
  store i32 %3682, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %307) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %305) #11
  br label %3717

3683:                                             ; preds = %3673
  %3684 = landingpad { ptr, i32 }
          cleanup
  %3685 = extractvalue { ptr, i32 } %3684, 0
  store ptr %3685, ptr %5, align 8
  %3686 = extractvalue { ptr, i32 } %3684, 1
  store i32 %3686, ptr %6, align 4
  br label %3716

3687:                                             ; preds = %3675
  call void @llvm.lifetime.start.p0(i64 8, ptr %308) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %308)
          to label %3688 unwind label %3693

3688:                                             ; preds = %3687
  call void @llvm.lifetime.start.p0(i64 8, ptr %309) #11
  %3689 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %304)
          to label %3690 unwind label %3697

3690:                                             ; preds = %3688
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %309, i32 noundef 1, ptr noundef @.str.3, i32 noundef 959, ptr noundef %3689)
          to label %3691 unwind label %3697

3691:                                             ; preds = %3690
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull align 8 dereferenceable(8) %308)
          to label %3692 unwind label %3701

3692:                                             ; preds = %3691
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %309) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %309) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %308) #11
  br label %3707

3693:                                             ; preds = %3687
  %3694 = landingpad { ptr, i32 }
          cleanup
  %3695 = extractvalue { ptr, i32 } %3694, 0
  store ptr %3695, ptr %5, align 8
  %3696 = extractvalue { ptr, i32 } %3694, 1
  store i32 %3696, ptr %6, align 4
  br label %3706

3697:                                             ; preds = %3690, %3688
  %3698 = landingpad { ptr, i32 }
          cleanup
  %3699 = extractvalue { ptr, i32 } %3698, 0
  store ptr %3699, ptr %5, align 8
  %3700 = extractvalue { ptr, i32 } %3698, 1
  store i32 %3700, ptr %6, align 4
  br label %3705

3701:                                             ; preds = %3691
  %3702 = landingpad { ptr, i32 }
          cleanup
  %3703 = extractvalue { ptr, i32 } %3702, 0
  store ptr %3703, ptr %5, align 8
  %3704 = extractvalue { ptr, i32 } %3702, 1
  store i32 %3704, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %309) #11
  br label %3705

3705:                                             ; preds = %3701, %3697
  call void @llvm.lifetime.end.p0(i64 8, ptr %309) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #11
  br label %3706

3706:                                             ; preds = %3705, %3693
  call void @llvm.lifetime.end.p0(i64 8, ptr %308) #11
  br label %3716

3707:                                             ; preds = %3692, %3676
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %304) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %304) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %310) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %311) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA10_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %312, ptr noundef nonnull align 1 dereferenceable(10) @.str.1001)
  call void @llvm.lifetime.start.p0(i64 8, ptr %313) #11
  store double 0x7FFFFFFFFFFFF, ptr %313, align 8, !tbaa !11
  %3708 = getelementptr inbounds { ptr, i64 }, ptr %312, i32 0, i32 0
  %3709 = load ptr, ptr %3708, align 8
  %3710 = getelementptr inbounds { ptr, i64 }, ptr %312, i32 0, i32 1
  %3711 = load i64, ptr %3710, align 8
  call void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %311, ptr %3709, i64 %3711, ptr noundef nonnull align 8 dereferenceable(8) %313)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA1077_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %310, ptr noundef @.str.999, ptr noundef @.str.1000, ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef nonnull align 1 dereferenceable(1077) @.str.1002)
          to label %3712 unwind label %3718

3712:                                             ; preds = %3707
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %313) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %311) #11
  %3713 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %310)
          to label %3714 unwind label %3722

3714:                                             ; preds = %3712
  br i1 %3713, label %3715, label %3726

3715:                                             ; preds = %3714
  br label %3746

3716:                                             ; preds = %3706, %3683
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %304) #11
  br label %3717

3717:                                             ; preds = %3716, %3679
  call void @llvm.lifetime.end.p0(i64 16, ptr %304) #11
  br label %5000

3718:                                             ; preds = %3707
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %313) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %311) #11
  br label %3763

3722:                                             ; preds = %3712
  %3723 = landingpad { ptr, i32 }
          cleanup
  %3724 = extractvalue { ptr, i32 } %3723, 0
  store ptr %3724, ptr %5, align 8
  %3725 = extractvalue { ptr, i32 } %3723, 1
  store i32 %3725, ptr %6, align 4
  br label %3762

3726:                                             ; preds = %3714
  call void @llvm.lifetime.start.p0(i64 8, ptr %314) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %314)
          to label %3727 unwind label %3732

3727:                                             ; preds = %3726
  call void @llvm.lifetime.start.p0(i64 8, ptr %315) #11
  %3728 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %310)
          to label %3729 unwind label %3736

3729:                                             ; preds = %3727
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %315, i32 noundef 1, ptr noundef @.str.3, i32 noundef 976, ptr noundef %3728)
          to label %3730 unwind label %3736

3730:                                             ; preds = %3729
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %315, ptr noundef nonnull align 8 dereferenceable(8) %314)
          to label %3731 unwind label %3740

3731:                                             ; preds = %3730
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %315) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %315) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %314) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %314) #11
  br label %3746

3732:                                             ; preds = %3726
  %3733 = landingpad { ptr, i32 }
          cleanup
  %3734 = extractvalue { ptr, i32 } %3733, 0
  store ptr %3734, ptr %5, align 8
  %3735 = extractvalue { ptr, i32 } %3733, 1
  store i32 %3735, ptr %6, align 4
  br label %3745

3736:                                             ; preds = %3729, %3727
  %3737 = landingpad { ptr, i32 }
          cleanup
  %3738 = extractvalue { ptr, i32 } %3737, 0
  store ptr %3738, ptr %5, align 8
  %3739 = extractvalue { ptr, i32 } %3737, 1
  store i32 %3739, ptr %6, align 4
  br label %3744

3740:                                             ; preds = %3730
  %3741 = landingpad { ptr, i32 }
          cleanup
  %3742 = extractvalue { ptr, i32 } %3741, 0
  store ptr %3742, ptr %5, align 8
  %3743 = extractvalue { ptr, i32 } %3741, 1
  store i32 %3743, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %315) #11
  br label %3744

3744:                                             ; preds = %3740, %3736
  call void @llvm.lifetime.end.p0(i64 8, ptr %315) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %314) #11
  br label %3745

3745:                                             ; preds = %3744, %3732
  call void @llvm.lifetime.end.p0(i64 8, ptr %314) #11
  br label %3762

3746:                                             ; preds = %3731, %3715
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %310) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %310) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr %316) #11
  store i1 true, ptr %320, align 1
  store ptr %316, ptr %317, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %318) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef @.str.1003, ptr noundef nonnull align 1 dereferenceable(1) %318)
          to label %3747 unwind label %3764

3747:                                             ; preds = %3746
  %3748 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %316, i64 1
  store ptr %3748, ptr %317, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %319) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %319) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3748, ptr noundef @.str.1004, ptr noundef nonnull align 1 dereferenceable(1) %319)
          to label %3749 unwind label %3768

3749:                                             ; preds = %3747
  store i1 false, ptr %320, align 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %319) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %319) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %318) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %321) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %322) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %325, ptr noundef nonnull align 1 dereferenceable(9) @.str.1005)
          to label %3750 unwind label %3783

3750:                                             ; preds = %3749
  call void @llvm.lifetime.start.p0(i64 8, ptr %326) #11
  store double 0xC7E41FE3FFE71C9E, ptr %326, align 8, !tbaa !11
  %3751 = getelementptr inbounds { ptr, i64 }, ptr %325, i32 0, i32 0
  %3752 = load ptr, ptr %3751, align 8
  %3753 = getelementptr inbounds { ptr, i64 }, ptr %325, i32 0, i32 1
  %3754 = load i64, ptr %3753, 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 %324, ptr %3752, i64 %3754, ptr noundef nonnull align 8 dereferenceable(8) %326)
          to label %3755 unwind label %3787

3755:                                             ; preds = %3750
  invoke void @_ZN7testing8ContainsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8internal15ContainsMatcherIT_EES9_(ptr dead_on_unwind writable sret(%"class.testing::internal::ContainsMatcher") align 8 %323, ptr noundef %324)
          to label %3756 unwind label %3791

3756:                                             ; preds = %3755
  invoke void @_ZN7testing8internal33MakePredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_29PredicateFormatterFromMatcherIT_EESB_(ptr dead_on_unwind writable sret(%"class.testing::internal::PredicateFormatterFromMatcher") align 8 %322, ptr noundef %323)
          to label %3757 unwind label %3795

3757:                                             ; preds = %3756
  invoke void @_ZNK7testing8internal29PredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEclIA2_S8_EENS_15AssertionResultEPKcRKT_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %321, ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef @.str.1006, ptr noundef nonnull align 8 dereferenceable(64) %316)
          to label %3758 unwind label %3799

3758:                                             ; preds = %3757
  call void @_ZN7testing8internal29PredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #11
  call void @_ZN7testing8internal15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %326) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #11
  %3759 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %321)
          to label %3760 unwind label %3807

3760:                                             ; preds = %3758
  br i1 %3759, label %3761, label %3811

3761:                                             ; preds = %3760
  br label %3831

3762:                                             ; preds = %3745, %3722
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %310) #11
  br label %3763

3763:                                             ; preds = %3762, %3718
  call void @llvm.lifetime.end.p0(i64 16, ptr %310) #11
  br label %5000

3764:                                             ; preds = %3746
  %3765 = landingpad { ptr, i32 }
          cleanup
  %3766 = extractvalue { ptr, i32 } %3765, 0
  store ptr %3766, ptr %5, align 8
  %3767 = extractvalue { ptr, i32 } %3765, 1
  store i32 %3767, ptr %6, align 4
  br label %3772

3768:                                             ; preds = %3747
  %3769 = landingpad { ptr, i32 }
          cleanup
  %3770 = extractvalue { ptr, i32 } %3769, 0
  store ptr %3770, ptr %5, align 8
  %3771 = extractvalue { ptr, i32 } %3769, 1
  store i32 %3771, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %319) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %319) #11
  br label %3772

3772:                                             ; preds = %3768, %3764
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %318) #11
  %3773 = load i1, ptr %320, align 1
  br i1 %3773, label %3774, label %3782

3774:                                             ; preds = %3772
  %3775 = load ptr, ptr %317, align 8
  %3776 = icmp eq ptr %316, %3775
  br i1 %3776, label %3781, label %3777

3777:                                             ; preds = %3777, %3774
  %3778 = phi ptr [ %3775, %3774 ], [ %3779, %3777 ]
  %3779 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3778, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3779) #11
  %3780 = icmp eq ptr %3779, %316
  br i1 %3780, label %3781, label %3777

3781:                                             ; preds = %3777, %3774
  br label %3782

3782:                                             ; preds = %3781, %3772
  br label %4999

3783:                                             ; preds = %3749
  %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 %3806

3787:                                             ; preds = %3750
  %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
  br label %3805

3791:                                             ; preds = %3755
  %3792 = landingpad { ptr, i32 }
          cleanup
  %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 %3804

3795:                                             ; preds = %3756
  %3796 = landingpad { ptr, i32 }
          cleanup
  %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
  br label %3803

3799:                                             ; preds = %3757
  %3800 = landingpad { ptr, i32 }
          cleanup
  %3801 = extractvalue { ptr, i32 } %3800, 0
  store ptr %3801, ptr %5, align 8
  %3802 = extractvalue { ptr, i32 } %3800, 1
  store i32 %3802, ptr %6, align 4
  call void @_ZN7testing8internal29PredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #11
  br label %3803

3803:                                             ; preds = %3799, %3795
  call void @_ZN7testing8internal15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #11
  br label %3804

3804:                                             ; preds = %3803, %3791
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #11
  br label %3805

3805:                                             ; preds = %3804, %3787
  call void @llvm.lifetime.end.p0(i64 8, ptr %326) #11
  br label %3806

3806:                                             ; preds = %3805, %3783
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #11
  br label %3844

3807:                                             ; preds = %3758
  %3808 = landingpad { ptr, i32 }
          cleanup
  %3809 = extractvalue { ptr, i32 } %3808, 0
  store ptr %3809, ptr %5, align 8
  %3810 = extractvalue { ptr, i32 } %3808, 1
  store i32 %3810, ptr %6, align 4
  br label %3843

3811:                                             ; preds = %3760
  call void @llvm.lifetime.start.p0(i64 8, ptr %327) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %327)
          to label %3812 unwind label %3817

3812:                                             ; preds = %3811
  call void @llvm.lifetime.start.p0(i64 8, ptr %328) #11
  %3813 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %321)
          to label %3814 unwind label %3821

3814:                                             ; preds = %3812
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %328, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1004, ptr noundef %3813)
          to label %3815 unwind label %3821

3815:                                             ; preds = %3814
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %328, ptr noundef nonnull align 8 dereferenceable(8) %327)
          to label %3816 unwind label %3825

3816:                                             ; preds = %3815
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %328) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %328) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %327) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %327) #11
  br label %3831

3817:                                             ; preds = %3811
  %3818 = landingpad { ptr, i32 }
          cleanup
  %3819 = extractvalue { ptr, i32 } %3818, 0
  store ptr %3819, ptr %5, align 8
  %3820 = extractvalue { ptr, i32 } %3818, 1
  store i32 %3820, ptr %6, align 4
  br label %3830

3821:                                             ; preds = %3814, %3812
  %3822 = landingpad { ptr, i32 }
          cleanup
  %3823 = extractvalue { ptr, i32 } %3822, 0
  store ptr %3823, ptr %5, align 8
  %3824 = extractvalue { ptr, i32 } %3822, 1
  store i32 %3824, ptr %6, align 4
  br label %3829

3825:                                             ; preds = %3815
  %3826 = landingpad { ptr, i32 }
          cleanup
  %3827 = extractvalue { ptr, i32 } %3826, 0
  store ptr %3827, ptr %5, align 8
  %3828 = extractvalue { ptr, i32 } %3826, 1
  store i32 %3828, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %328) #11
  br label %3829

3829:                                             ; preds = %3825, %3821
  call void @llvm.lifetime.end.p0(i64 8, ptr %328) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %327) #11
  br label %3830

3830:                                             ; preds = %3829, %3817
  call void @llvm.lifetime.end.p0(i64 8, ptr %327) #11
  br label %3843

3831:                                             ; preds = %3816, %3761
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %321) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %321) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %329) #11
  %3832 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #11
  store x86_fp80 %3832, ptr %329, align 16, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 16, ptr %330) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %331) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJReEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES9_(ptr noundef nonnull align 8 dereferenceable(16) %332, ptr noundef nonnull align 1 dereferenceable(6) @.str.1009)
          to label %3833 unwind label %3845

3833:                                             ; preds = %3831
  %3834 = getelementptr inbounds { ptr, i64 }, ptr %332, i32 0, i32 0
  %3835 = load ptr, ptr %3834, align 8
  %3836 = getelementptr inbounds { ptr, i64 }, ptr %332, i32 0, i32 1
  %3837 = load i64, ptr %3836, align 8
  invoke void @_ZN3fmt3v106formatIJReEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %331, ptr %3835, i64 %3837, ptr noundef nonnull align 16 dereferenceable(16) %329)
          to label %3838 unwind label %3845

3838:                                             ; preds = %3833
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %330, ptr noundef @.str.1007, ptr noundef @.str.1008, ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull align 1 dereferenceable(8) @.str.1010)
          to label %3839 unwind label %3849

3839:                                             ; preds = %3838
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %331) #11
  %3840 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %330)
          to label %3841 unwind label %3854

3841:                                             ; preds = %3839
  br i1 %3840, label %3842, label %3858

3842:                                             ; preds = %3841
  br label %3878

3843:                                             ; preds = %3830, %3807
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %321) #11
  br label %3844

3844:                                             ; preds = %3843, %3806
  call void @llvm.lifetime.end.p0(i64 16, ptr %321) #11
  br label %4991

3845:                                             ; preds = %3833, %3831
  %3846 = landingpad { ptr, i32 }
          cleanup
  %3847 = extractvalue { ptr, i32 } %3846, 0
  store ptr %3847, ptr %5, align 8
  %3848 = extractvalue { ptr, i32 } %3846, 1
  store i32 %3848, ptr %6, align 4
  br label %3853

3849:                                             ; preds = %3838
  %3850 = landingpad { ptr, i32 }
          cleanup
  %3851 = extractvalue { ptr, i32 } %3850, 0
  store ptr %3851, ptr %5, align 8
  %3852 = extractvalue { ptr, i32 } %3850, 1
  store i32 %3852, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #11
  br label %3853

3853:                                             ; preds = %3849, %3845
  call void @llvm.lifetime.end.p0(i64 32, ptr %331) #11
  br label %3891

3854:                                             ; preds = %3839
  %3855 = landingpad { ptr, i32 }
          cleanup
  %3856 = extractvalue { ptr, i32 } %3855, 0
  store ptr %3856, ptr %5, align 8
  %3857 = extractvalue { ptr, i32 } %3855, 1
  store i32 %3857, ptr %6, align 4
  br label %3890

3858:                                             ; preds = %3841
  call void @llvm.lifetime.start.p0(i64 8, ptr %333) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %333)
          to label %3859 unwind label %3864

3859:                                             ; preds = %3858
  call void @llvm.lifetime.start.p0(i64 8, ptr %334) #11
  %3860 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %330)
          to label %3861 unwind label %3868

3861:                                             ; preds = %3859
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %334, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1008, ptr noundef %3860)
          to label %3862 unwind label %3868

3862:                                             ; preds = %3861
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %334, ptr noundef nonnull align 8 dereferenceable(8) %333)
          to label %3863 unwind label %3872

3863:                                             ; preds = %3862
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %334) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %334) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %333) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #11
  br label %3878

3864:                                             ; preds = %3858
  %3865 = landingpad { ptr, i32 }
          cleanup
  %3866 = extractvalue { ptr, i32 } %3865, 0
  store ptr %3866, ptr %5, align 8
  %3867 = extractvalue { ptr, i32 } %3865, 1
  store i32 %3867, ptr %6, align 4
  br label %3877

3868:                                             ; preds = %3861, %3859
  %3869 = landingpad { ptr, i32 }
          cleanup
  %3870 = extractvalue { ptr, i32 } %3869, 0
  store ptr %3870, ptr %5, align 8
  %3871 = extractvalue { ptr, i32 } %3869, 1
  store i32 %3871, ptr %6, align 4
  br label %3876

3872:                                             ; preds = %3862
  %3873 = landingpad { ptr, i32 }
          cleanup
  %3874 = extractvalue { ptr, i32 } %3873, 0
  store ptr %3874, ptr %5, align 8
  %3875 = extractvalue { ptr, i32 } %3873, 1
  store i32 %3875, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %334) #11
  br label %3876

3876:                                             ; preds = %3872, %3868
  call void @llvm.lifetime.end.p0(i64 8, ptr %334) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %333) #11
  br label %3877

3877:                                             ; preds = %3876, %3864
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #11
  br label %3890

3878:                                             ; preds = %3863, %3842
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %330) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %330) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %335) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %336) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJeEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %337, ptr noundef nonnull align 1 dereferenceable(6) @.str.1013)
          to label %3879 unwind label %3892

3879:                                             ; preds = %3878
  call void @llvm.lifetime.start.p0(i64 16, ptr %338) #11
  %3880 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE10denorm_minEv() #11
  store x86_fp80 %3880, ptr %338, align 16, !tbaa !24
  %3881 = getelementptr inbounds { ptr, i64 }, ptr %337, i32 0, i32 0
  %3882 = load ptr, ptr %3881, align 8
  %3883 = getelementptr inbounds { ptr, i64 }, ptr %337, i32 0, i32 1
  %3884 = load i64, ptr %3883, align 8
  invoke void @_ZN3fmt3v106formatIJeEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %336, ptr %3882, i64 %3884, ptr noundef nonnull align 16 dereferenceable(16) %338)
          to label %3885 unwind label %3896

3885:                                             ; preds = %3879
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA13_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %335, ptr noundef @.str.1011, ptr noundef @.str.1012, ptr noundef nonnull align 8 dereferenceable(32) %336, ptr noundef nonnull align 1 dereferenceable(13) @.str.1014)
          to label %3886 unwind label %3900

3886:                                             ; preds = %3885
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %336) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %338) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %336) #11
  %3887 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %335)
          to label %3888 unwind label %3906

3888:                                             ; preds = %3886
  br i1 %3887, label %3889, label %3910

3889:                                             ; preds = %3888
  br label %3930

3890:                                             ; preds = %3877, %3854
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %330) #11
  br label %3891

3891:                                             ; preds = %3890, %3853
  call void @llvm.lifetime.end.p0(i64 16, ptr %330) #11
  br label %3943

3892:                                             ; preds = %3878
  %3893 = landingpad { ptr, i32 }
          cleanup
  %3894 = extractvalue { ptr, i32 } %3893, 0
  store ptr %3894, ptr %5, align 8
  %3895 = extractvalue { ptr, i32 } %3893, 1
  store i32 %3895, ptr %6, align 4
  br label %3905

3896:                                             ; preds = %3879
  %3897 = landingpad { ptr, i32 }
          cleanup
  %3898 = extractvalue { ptr, i32 } %3897, 0
  store ptr %3898, ptr %5, align 8
  %3899 = extractvalue { ptr, i32 } %3897, 1
  store i32 %3899, ptr %6, align 4
  br label %3904

3900:                                             ; preds = %3885
  %3901 = landingpad { ptr, i32 }
          cleanup
  %3902 = extractvalue { ptr, i32 } %3901, 0
  store ptr %3902, ptr %5, align 8
  %3903 = extractvalue { ptr, i32 } %3901, 1
  store i32 %3903, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %336) #11
  br label %3904

3904:                                             ; preds = %3900, %3896
  call void @llvm.lifetime.end.p0(i64 16, ptr %338) #11
  br label %3905

3905:                                             ; preds = %3904, %3892
  call void @llvm.lifetime.end.p0(i64 32, ptr %336) #11
  br label %3942

3906:                                             ; preds = %3886
  %3907 = landingpad { ptr, i32 }
          cleanup
  %3908 = extractvalue { ptr, i32 } %3907, 0
  store ptr %3908, ptr %5, align 8
  %3909 = extractvalue { ptr, i32 } %3907, 1
  store i32 %3909, ptr %6, align 4
  br label %3941

3910:                                             ; preds = %3888
  call void @llvm.lifetime.start.p0(i64 8, ptr %339) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %339)
          to label %3911 unwind label %3916

3911:                                             ; preds = %3910
  call void @llvm.lifetime.start.p0(i64 8, ptr %340) #11
  %3912 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %335)
          to label %3913 unwind label %3920

3913:                                             ; preds = %3911
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %340, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1011, ptr noundef %3912)
          to label %3914 unwind label %3920

3914:                                             ; preds = %3913
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %340, ptr noundef nonnull align 8 dereferenceable(8) %339)
          to label %3915 unwind label %3924

3915:                                             ; preds = %3914
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %340) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %340) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %339) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %339) #11
  br label %3930

3916:                                             ; preds = %3910
  %3917 = landingpad { ptr, i32 }
          cleanup
  %3918 = extractvalue { ptr, i32 } %3917, 0
  store ptr %3918, ptr %5, align 8
  %3919 = extractvalue { ptr, i32 } %3917, 1
  store i32 %3919, ptr %6, align 4
  br label %3929

3920:                                             ; preds = %3913, %3911
  %3921 = landingpad { ptr, i32 }
          cleanup
  %3922 = extractvalue { ptr, i32 } %3921, 0
  store ptr %3922, ptr %5, align 8
  %3923 = extractvalue { ptr, i32 } %3921, 1
  store i32 %3923, ptr %6, align 4
  br label %3928

3924:                                             ; preds = %3914
  %3925 = landingpad { ptr, i32 }
          cleanup
  %3926 = extractvalue { ptr, i32 } %3925, 0
  store ptr %3926, ptr %5, align 8
  %3927 = extractvalue { ptr, i32 } %3925, 1
  store i32 %3927, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %340) #11
  br label %3928

3928:                                             ; preds = %3924, %3920
  call void @llvm.lifetime.end.p0(i64 8, ptr %340) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %339) #11
  br label %3929

3929:                                             ; preds = %3928, %3916
  call void @llvm.lifetime.end.p0(i64 8, ptr %339) #11
  br label %3941

3930:                                             ; preds = %3915, %3889
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %335) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %335) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %329) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %341) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %342) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %343, ptr noundef nonnull align 1 dereferenceable(8) @.str.717)
          to label %3931 unwind label %3944

3931:                                             ; preds = %3930
  call void @llvm.lifetime.start.p0(i64 8, ptr %344) #11
  store double 1.230000e+02, ptr %344, align 8, !tbaa !11
  %3932 = getelementptr inbounds { ptr, i64 }, ptr %343, i32 0, i32 0
  %3933 = load ptr, ptr %3932, align 8
  %3934 = getelementptr inbounds { ptr, i64 }, ptr %343, i32 0, i32 1
  %3935 = load i64, ptr %3934, 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 %342, ptr %3933, i64 %3935, ptr noundef nonnull align 8 dereferenceable(8) %344)
          to label %3936 unwind label %3948

3936:                                             ; preds = %3931
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %341, ptr noundef @.str.1015, ptr noundef @.str.1016, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 1 dereferenceable(5) @.str.1017)
          to label %3937 unwind label %3952

3937:                                             ; preds = %3936
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %344) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #11
  %3938 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %341)
          to label %3939 unwind label %3958

3939:                                             ; preds = %3937
  br i1 %3938, label %3940, label %3962

3940:                                             ; preds = %3939
  br label %3982

3941:                                             ; preds = %3929, %3906
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %335) #11
  br label %3942

3942:                                             ; preds = %3941, %3905
  call void @llvm.lifetime.end.p0(i64 16, ptr %335) #11
  br label %3943

3943:                                             ; preds = %3942, %3891
  call void @llvm.lifetime.end.p0(i64 16, ptr %329) #11
  br label %4991

3944:                                             ; preds = %3930
  %3945 = landingpad { ptr, i32 }
          cleanup
  %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
  br label %3957

3948:                                             ; preds = %3931
  %3949 = landingpad { ptr, i32 }
          cleanup
  %3950 = extractvalue { ptr, i32 } %3949, 0
  store ptr %3950, ptr %5, align 8
  %3951 = extractvalue { ptr, i32 } %3949, 1
  store i32 %3951, ptr %6, align 4
  br label %3956

3952:                                             ; preds = %3936
  %3953 = landingpad { ptr, i32 }
          cleanup
  %3954 = extractvalue { ptr, i32 } %3953, 0
  store ptr %3954, ptr %5, align 8
  %3955 = extractvalue { ptr, i32 } %3953, 1
  store i32 %3955, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #11
  br label %3956

3956:                                             ; preds = %3952, %3948
  call void @llvm.lifetime.end.p0(i64 8, ptr %344) #11
  br label %3957

3957:                                             ; preds = %3956, %3944
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #11
  br label %3994

3958:                                             ; preds = %3937
  %3959 = landingpad { ptr, i32 }
          cleanup
  %3960 = extractvalue { ptr, i32 } %3959, 0
  store ptr %3960, ptr %5, align 8
  %3961 = extractvalue { ptr, i32 } %3959, 1
  store i32 %3961, ptr %6, align 4
  br label %3993

3962:                                             ; preds = %3939
  call void @llvm.lifetime.start.p0(i64 8, ptr %345) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %345)
          to label %3963 unwind label %3968

3963:                                             ; preds = %3962
  call void @llvm.lifetime.start.p0(i64 8, ptr %346) #11
  %3964 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %341)
          to label %3965 unwind label %3972

3965:                                             ; preds = %3963
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %346, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1014, ptr noundef %3964)
          to label %3966 unwind label %3972

3966:                                             ; preds = %3965
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %346, ptr noundef nonnull align 8 dereferenceable(8) %345)
          to label %3967 unwind label %3976

3967:                                             ; preds = %3966
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %346) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %346) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %345) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %345) #11
  br label %3982

3968:                                             ; preds = %3962
  %3969 = landingpad { ptr, i32 }
          cleanup
  %3970 = extractvalue { ptr, i32 } %3969, 0
  store ptr %3970, ptr %5, align 8
  %3971 = extractvalue { ptr, i32 } %3969, 1
  store i32 %3971, ptr %6, align 4
  br label %3981

3972:                                             ; preds = %3965, %3963
  %3973 = landingpad { ptr, i32 }
          cleanup
  %3974 = extractvalue { ptr, i32 } %3973, 0
  store ptr %3974, ptr %5, align 8
  %3975 = extractvalue { ptr, i32 } %3973, 1
  store i32 %3975, ptr %6, align 4
  br label %3980

3976:                                             ; preds = %3966
  %3977 = landingpad { ptr, i32 }
          cleanup
  %3978 = extractvalue { ptr, i32 } %3977, 0
  store ptr %3978, ptr %5, align 8
  %3979 = extractvalue { ptr, i32 } %3977, 1
  store i32 %3979, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %346) #11
  br label %3980

3980:                                             ; preds = %3976, %3972
  call void @llvm.lifetime.end.p0(i64 8, ptr %346) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %345) #11
  br label %3981

3981:                                             ; preds = %3980, %3968
  call void @llvm.lifetime.end.p0(i64 8, ptr %345) #11
  br label %3993

3982:                                             ; preds = %3967, %3940
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %341) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %341) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %347) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %348) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %349, ptr noundef nonnull align 1 dereferenceable(8) @.str.1020)
          to label %3983 unwind label %3995

3983:                                             ; preds = %3982
  call void @llvm.lifetime.start.p0(i64 8, ptr %350) #11
  store double 1.234000e+00, ptr %350, align 8, !tbaa !11
  %3984 = getelementptr inbounds { ptr, i64 }, ptr %349, i32 0, i32 0
  %3985 = load ptr, ptr %3984, align 8
  %3986 = getelementptr inbounds { ptr, i64 }, ptr %349, i32 0, i32 1
  %3987 = load i64, ptr %3986, 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 %348, ptr %3985, i64 %3987, ptr noundef nonnull align 8 dereferenceable(8) %350)
          to label %3988 unwind label %3999

3988:                                             ; preds = %3983
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %347, ptr noundef @.str.1018, ptr noundef @.str.1019, ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull align 1 dereferenceable(5) @.str.1021)
          to label %3989 unwind label %4003

3989:                                             ; preds = %3988
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %350) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %348) #11
  %3990 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %347)
          to label %3991 unwind label %4009

3991:                                             ; preds = %3989
  br i1 %3990, label %3992, label %4013

3992:                                             ; preds = %3991
  br label %4033

3993:                                             ; preds = %3981, %3958
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %341) #11
  br label %3994

3994:                                             ; preds = %3993, %3957
  call void @llvm.lifetime.end.p0(i64 16, ptr %341) #11
  br label %4991

3995:                                             ; preds = %3982
  %3996 = landingpad { ptr, i32 }
          cleanup
  %3997 = extractvalue { ptr, i32 } %3996, 0
  store ptr %3997, ptr %5, align 8
  %3998 = extractvalue { ptr, i32 } %3996, 1
  store i32 %3998, ptr %6, align 4
  br label %4008

3999:                                             ; preds = %3983
  %4000 = landingpad { ptr, i32 }
          cleanup
  %4001 = extractvalue { ptr, i32 } %4000, 0
  store ptr %4001, ptr %5, align 8
  %4002 = extractvalue { ptr, i32 } %4000, 1
  store i32 %4002, ptr %6, align 4
  br label %4007

4003:                                             ; preds = %3988
  %4004 = landingpad { ptr, i32 }
          cleanup
  %4005 = extractvalue { ptr, i32 } %4004, 0
  store ptr %4005, ptr %5, align 8
  %4006 = extractvalue { ptr, i32 } %4004, 1
  store i32 %4006, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #11
  br label %4007

4007:                                             ; preds = %4003, %3999
  call void @llvm.lifetime.end.p0(i64 8, ptr %350) #11
  br label %4008

4008:                                             ; preds = %4007, %3995
  call void @llvm.lifetime.end.p0(i64 32, ptr %348) #11
  br label %4045

4009:                                             ; preds = %3989
  %4010 = landingpad { ptr, i32 }
          cleanup
  %4011 = extractvalue { ptr, i32 } %4010, 0
  store ptr %4011, ptr %5, align 8
  %4012 = extractvalue { ptr, i32 } %4010, 1
  store i32 %4012, ptr %6, align 4
  br label %4044

4013:                                             ; preds = %3991
  call void @llvm.lifetime.start.p0(i64 8, ptr %351) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %351)
          to label %4014 unwind label %4019

4014:                                             ; preds = %4013
  call void @llvm.lifetime.start.p0(i64 8, ptr %352) #11
  %4015 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %347)
          to label %4016 unwind label %4023

4016:                                             ; preds = %4014
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %352, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1015, ptr noundef %4015)
          to label %4017 unwind label %4023

4017:                                             ; preds = %4016
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %352, ptr noundef nonnull align 8 dereferenceable(8) %351)
          to label %4018 unwind label %4027

4018:                                             ; preds = %4017
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %352) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %352) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %351) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %351) #11
  br label %4033

4019:                                             ; preds = %4013
  %4020 = landingpad { ptr, i32 }
          cleanup
  %4021 = extractvalue { ptr, i32 } %4020, 0
  store ptr %4021, ptr %5, align 8
  %4022 = extractvalue { ptr, i32 } %4020, 1
  store i32 %4022, ptr %6, align 4
  br label %4032

4023:                                             ; preds = %4016, %4014
  %4024 = landingpad { ptr, i32 }
          cleanup
  %4025 = extractvalue { ptr, i32 } %4024, 0
  store ptr %4025, ptr %5, align 8
  %4026 = extractvalue { ptr, i32 } %4024, 1
  store i32 %4026, ptr %6, align 4
  br label %4031

4027:                                             ; preds = %4017
  %4028 = landingpad { ptr, i32 }
          cleanup
  %4029 = extractvalue { ptr, i32 } %4028, 0
  store ptr %4029, ptr %5, align 8
  %4030 = extractvalue { ptr, i32 } %4028, 1
  store i32 %4030, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %352) #11
  br label %4031

4031:                                             ; preds = %4027, %4023
  call void @llvm.lifetime.end.p0(i64 8, ptr %352) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %351) #11
  br label %4032

4032:                                             ; preds = %4031, %4019
  call void @llvm.lifetime.end.p0(i64 8, ptr %351) #11
  br label %4044

4033:                                             ; preds = %4018, %3992
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %347) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %347) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %353) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %354) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %355, ptr noundef nonnull align 1 dereferenceable(7) @.str.1024)
          to label %4034 unwind label %4046

4034:                                             ; preds = %4033
  call void @llvm.lifetime.start.p0(i64 8, ptr %356) #11
  store double 1.000000e-03, ptr %356, align 8, !tbaa !11
  %4035 = getelementptr inbounds { ptr, i64 }, ptr %355, i32 0, i32 0
  %4036 = load ptr, ptr %4035, align 8
  %4037 = getelementptr inbounds { ptr, i64 }, ptr %355, i32 0, i32 1
  %4038 = load i64, ptr %4037, 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 %354, ptr %4036, i64 %4038, ptr noundef nonnull align 8 dereferenceable(8) %356)
          to label %4039 unwind label %4050

4039:                                             ; preds = %4034
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA6_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %353, ptr noundef @.str.1022, ptr noundef @.str.1023, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 1 dereferenceable(6) @.str.1025)
          to label %4040 unwind label %4054

4040:                                             ; preds = %4039
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %356) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #11
  %4041 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %353)
          to label %4042 unwind label %4060

4042:                                             ; preds = %4040
  br i1 %4041, label %4043, label %4064

4043:                                             ; preds = %4042
  br label %4084

4044:                                             ; preds = %4032, %4009
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %347) #11
  br label %4045

4045:                                             ; preds = %4044, %4008
  call void @llvm.lifetime.end.p0(i64 16, ptr %347) #11
  br label %4991

4046:                                             ; preds = %4033
  %4047 = landingpad { ptr, i32 }
          cleanup
  %4048 = extractvalue { ptr, i32 } %4047, 0
  store ptr %4048, ptr %5, align 8
  %4049 = extractvalue { ptr, i32 } %4047, 1
  store i32 %4049, ptr %6, align 4
  br label %4059

4050:                                             ; preds = %4034
  %4051 = landingpad { ptr, i32 }
          cleanup
  %4052 = extractvalue { ptr, i32 } %4051, 0
  store ptr %4052, ptr %5, align 8
  %4053 = extractvalue { ptr, i32 } %4051, 1
  store i32 %4053, ptr %6, align 4
  br label %4058

4054:                                             ; preds = %4039
  %4055 = landingpad { ptr, i32 }
          cleanup
  %4056 = extractvalue { ptr, i32 } %4055, 0
  store ptr %4056, ptr %5, align 8
  %4057 = extractvalue { ptr, i32 } %4055, 1
  store i32 %4057, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #11
  br label %4058

4058:                                             ; preds = %4054, %4050
  call void @llvm.lifetime.end.p0(i64 8, ptr %356) #11
  br label %4059

4059:                                             ; preds = %4058, %4046
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #11
  br label %4096

4060:                                             ; preds = %4040
  %4061 = landingpad { ptr, i32 }
          cleanup
  %4062 = extractvalue { ptr, i32 } %4061, 0
  store ptr %4062, ptr %5, align 8
  %4063 = extractvalue { ptr, i32 } %4061, 1
  store i32 %4063, ptr %6, align 4
  br label %4095

4064:                                             ; preds = %4042
  call void @llvm.lifetime.start.p0(i64 8, ptr %357) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %357)
          to label %4065 unwind label %4070

4065:                                             ; preds = %4064
  call void @llvm.lifetime.start.p0(i64 8, ptr %358) #11
  %4066 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %353)
          to label %4067 unwind label %4074

4067:                                             ; preds = %4065
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %358, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1016, ptr noundef %4066)
          to label %4068 unwind label %4074

4068:                                             ; preds = %4067
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull align 8 dereferenceable(8) %357)
          to label %4069 unwind label %4078

4069:                                             ; preds = %4068
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %358) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %357) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %357) #11
  br label %4084

4070:                                             ; preds = %4064
  %4071 = landingpad { ptr, i32 }
          cleanup
  %4072 = extractvalue { ptr, i32 } %4071, 0
  store ptr %4072, ptr %5, align 8
  %4073 = extractvalue { ptr, i32 } %4071, 1
  store i32 %4073, ptr %6, align 4
  br label %4083

4074:                                             ; preds = %4067, %4065
  %4075 = landingpad { ptr, i32 }
          cleanup
  %4076 = extractvalue { ptr, i32 } %4075, 0
  store ptr %4076, ptr %5, align 8
  %4077 = extractvalue { ptr, i32 } %4075, 1
  store i32 %4077, ptr %6, align 4
  br label %4082

4078:                                             ; preds = %4068
  %4079 = landingpad { ptr, i32 }
          cleanup
  %4080 = extractvalue { ptr, i32 } %4079, 0
  store ptr %4080, ptr %5, align 8
  %4081 = extractvalue { ptr, i32 } %4079, 1
  store i32 %4081, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %358) #11
  br label %4082

4082:                                             ; preds = %4078, %4074
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %357) #11
  br label %4083

4083:                                             ; preds = %4082, %4070
  call void @llvm.lifetime.end.p0(i64 8, ptr %357) #11
  br label %4095

4084:                                             ; preds = %4069, %4043
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %353) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %353) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %359) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %360) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJfEEC2IA3_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %361, ptr noundef nonnull align 1 dereferenceable(3) @.str.223)
          to label %4085 unwind label %4097

4085:                                             ; preds = %4084
  call void @llvm.lifetime.start.p0(i64 4, ptr %362) #11
  store float 0x41CE637000000000, ptr %362, align 4, !tbaa !26
  %4086 = getelementptr inbounds { ptr, i64 }, ptr %361, i32 0, i32 0
  %4087 = load ptr, ptr %4086, align 8
  %4088 = getelementptr inbounds { ptr, i64 }, ptr %361, i32 0, i32 1
  %4089 = load i64, ptr %4088, align 8
  invoke void @_ZN3fmt3v106formatIJfEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %360, ptr %4087, i64 %4089, ptr noundef nonnull align 4 dereferenceable(4) %362)
          to label %4090 unwind label %4101

4090:                                             ; preds = %4085
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA11_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %359, ptr noundef @.str.1026, ptr noundef @.str.1027, ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef nonnull align 1 dereferenceable(11) @.str.1028)
          to label %4091 unwind label %4105

4091:                                             ; preds = %4090
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %362) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #11
  %4092 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %359)
          to label %4093 unwind label %4111

4093:                                             ; preds = %4091
  br i1 %4092, label %4094, label %4115

4094:                                             ; preds = %4093
  br label %4135

4095:                                             ; preds = %4083, %4060
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %353) #11
  br label %4096

4096:                                             ; preds = %4095, %4059
  call void @llvm.lifetime.end.p0(i64 16, ptr %353) #11
  br label %4991

4097:                                             ; preds = %4084
  %4098 = landingpad { ptr, i32 }
          cleanup
  %4099 = extractvalue { ptr, i32 } %4098, 0
  store ptr %4099, ptr %5, align 8
  %4100 = extractvalue { ptr, i32 } %4098, 1
  store i32 %4100, ptr %6, align 4
  br label %4110

4101:                                             ; preds = %4085
  %4102 = landingpad { ptr, i32 }
          cleanup
  %4103 = extractvalue { ptr, i32 } %4102, 0
  store ptr %4103, ptr %5, align 8
  %4104 = extractvalue { ptr, i32 } %4102, 1
  store i32 %4104, ptr %6, align 4
  br label %4109

4105:                                             ; preds = %4090
  %4106 = landingpad { ptr, i32 }
          cleanup
  %4107 = extractvalue { ptr, i32 } %4106, 0
  store ptr %4107, ptr %5, align 8
  %4108 = extractvalue { ptr, i32 } %4106, 1
  store i32 %4108, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #11
  br label %4109

4109:                                             ; preds = %4105, %4101
  call void @llvm.lifetime.end.p0(i64 4, ptr %362) #11
  br label %4110

4110:                                             ; preds = %4109, %4097
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #11
  br label %4147

4111:                                             ; preds = %4091
  %4112 = landingpad { ptr, i32 }
          cleanup
  %4113 = extractvalue { ptr, i32 } %4112, 0
  store ptr %4113, ptr %5, align 8
  %4114 = extractvalue { ptr, i32 } %4112, 1
  store i32 %4114, ptr %6, align 4
  br label %4146

4115:                                             ; preds = %4093
  call void @llvm.lifetime.start.p0(i64 8, ptr %363) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %363)
          to label %4116 unwind label %4121

4116:                                             ; preds = %4115
  call void @llvm.lifetime.start.p0(i64 8, ptr %364) #11
  %4117 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %359)
          to label %4118 unwind label %4125

4118:                                             ; preds = %4116
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %364, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1017, ptr noundef %4117)
          to label %4119 unwind label %4125

4119:                                             ; preds = %4118
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef nonnull align 8 dereferenceable(8) %363)
          to label %4120 unwind label %4129

4120:                                             ; preds = %4119
  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 %4135

4121:                                             ; preds = %4115
  %4122 = landingpad { ptr, i32 }
          cleanup
  %4123 = extractvalue { ptr, i32 } %4122, 0
  store ptr %4123, ptr %5, align 8
  %4124 = extractvalue { ptr, i32 } %4122, 1
  store i32 %4124, ptr %6, align 4
  br label %4134

4125:                                             ; preds = %4118, %4116
  %4126 = landingpad { ptr, i32 }
          cleanup
  %4127 = extractvalue { ptr, i32 } %4126, 0
  store ptr %4127, ptr %5, align 8
  %4128 = extractvalue { ptr, i32 } %4126, 1
  store i32 %4128, ptr %6, align 4
  br label %4133

4129:                                             ; preds = %4119
  %4130 = landingpad { ptr, i32 }
          cleanup
  %4131 = extractvalue { ptr, i32 } %4130, 0
  store ptr %4131, ptr %5, align 8
  %4132 = extractvalue { ptr, i32 } %4130, 1
  store i32 %4132, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %364) #11
  br label %4133

4133:                                             ; preds = %4129, %4125
  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 %4134

4134:                                             ; preds = %4133, %4121
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #11
  br label %4146

4135:                                             ; preds = %4120, %4094
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %359) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %359) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %365) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %366) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %367, ptr noundef nonnull align 1 dereferenceable(7) @.str.989)
          to label %4136 unwind label %4148

4136:                                             ; preds = %4135
  call void @llvm.lifetime.start.p0(i64 8, ptr %368) #11
  store double 9.500000e+00, ptr %368, align 8, !tbaa !11
  %4137 = getelementptr inbounds { ptr, i64 }, ptr %367, i32 0, i32 0
  %4138 = load ptr, ptr %4137, align 8
  %4139 = getelementptr inbounds { ptr, i64 }, ptr %367, i32 0, i32 1
  %4140 = load i64, ptr %4139, 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 %366, ptr %4138, i64 %4140, ptr noundef nonnull align 8 dereferenceable(8) %368)
          to label %4141 unwind label %4152

4141:                                             ; preds = %4136
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA6_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %365, ptr noundef @.str.1029, ptr noundef @.str.1030, ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef nonnull align 1 dereferenceable(6) @.str.1031)
          to label %4142 unwind label %4156

4142:                                             ; preds = %4141
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #11
  %4143 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %365)
          to label %4144 unwind label %4162

4144:                                             ; preds = %4142
  br i1 %4143, label %4145, label %4166

4145:                                             ; preds = %4144
  br label %4186

4146:                                             ; preds = %4134, %4111
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %359) #11
  br label %4147

4147:                                             ; preds = %4146, %4110
  call void @llvm.lifetime.end.p0(i64 16, ptr %359) #11
  br label %4991

4148:                                             ; preds = %4135
  %4149 = landingpad { ptr, i32 }
          cleanup
  %4150 = extractvalue { ptr, i32 } %4149, 0
  store ptr %4150, ptr %5, align 8
  %4151 = extractvalue { ptr, i32 } %4149, 1
  store i32 %4151, ptr %6, align 4
  br label %4161

4152:                                             ; preds = %4136
  %4153 = landingpad { ptr, i32 }
          cleanup
  %4154 = extractvalue { ptr, i32 } %4153, 0
  store ptr %4154, ptr %5, align 8
  %4155 = extractvalue { ptr, i32 } %4153, 1
  store i32 %4155, ptr %6, align 4
  br label %4160

4156:                                             ; preds = %4141
  %4157 = landingpad { ptr, i32 }
          cleanup
  %4158 = extractvalue { ptr, i32 } %4157, 0
  store ptr %4158, ptr %5, align 8
  %4159 = extractvalue { ptr, i32 } %4157, 1
  store i32 %4159, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #11
  br label %4160

4160:                                             ; preds = %4156, %4152
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #11
  br label %4161

4161:                                             ; preds = %4160, %4148
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #11
  br label %4198

4162:                                             ; preds = %4142
  %4163 = landingpad { ptr, i32 }
          cleanup
  %4164 = extractvalue { ptr, i32 } %4163, 0
  store ptr %4164, ptr %5, align 8
  %4165 = extractvalue { ptr, i32 } %4163, 1
  store i32 %4165, ptr %6, align 4
  br label %4197

4166:                                             ; preds = %4144
  call void @llvm.lifetime.start.p0(i64 8, ptr %369) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %369)
          to label %4167 unwind label %4172

4167:                                             ; preds = %4166
  call void @llvm.lifetime.start.p0(i64 8, ptr %370) #11
  %4168 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %365)
          to label %4169 unwind label %4176

4169:                                             ; preds = %4167
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %370, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1018, ptr noundef %4168)
          to label %4170 unwind label %4176

4170:                                             ; preds = %4169
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %370, ptr noundef nonnull align 8 dereferenceable(8) %369)
          to label %4171 unwind label %4180

4171:                                             ; preds = %4170
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %370) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %370) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %369) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #11
  br label %4186

4172:                                             ; preds = %4166
  %4173 = landingpad { ptr, i32 }
          cleanup
  %4174 = extractvalue { ptr, i32 } %4173, 0
  store ptr %4174, ptr %5, align 8
  %4175 = extractvalue { ptr, i32 } %4173, 1
  store i32 %4175, ptr %6, align 4
  br label %4185

4176:                                             ; preds = %4169, %4167
  %4177 = landingpad { ptr, i32 }
          cleanup
  %4178 = extractvalue { ptr, i32 } %4177, 0
  store ptr %4178, ptr %5, align 8
  %4179 = extractvalue { ptr, i32 } %4177, 1
  store i32 %4179, ptr %6, align 4
  br label %4184

4180:                                             ; preds = %4170
  %4181 = landingpad { ptr, i32 }
          cleanup
  %4182 = extractvalue { ptr, i32 } %4181, 0
  store ptr %4182, ptr %5, align 8
  %4183 = extractvalue { ptr, i32 } %4181, 1
  store i32 %4183, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %370) #11
  br label %4184

4184:                                             ; preds = %4180, %4176
  call void @llvm.lifetime.end.p0(i64 8, ptr %370) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %369) #11
  br label %4185

4185:                                             ; preds = %4184, %4172
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #11
  br label %4197

4186:                                             ; preds = %4171, %4145
  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 %371) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %372) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %373, ptr noundef nonnull align 1 dereferenceable(7) @.str.1034)
          to label %4187 unwind label %4199

4187:                                             ; preds = %4186
  call void @llvm.lifetime.start.p0(i64 8, ptr %374) #11
  store double 0x38E09D8792FB4C49, ptr %374, align 8, !tbaa !11
  %4188 = getelementptr inbounds { ptr, i64 }, ptr %373, i32 0, i32 0
  %4189 = load ptr, ptr %4188, align 8
  %4190 = getelementptr inbounds { ptr, i64 }, ptr %373, i32 0, i32 1
  %4191 = load i64, ptr %4190, 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 %372, ptr %4189, i64 %4191, ptr noundef nonnull align 8 dereferenceable(8) %374)
          to label %4192 unwind label %4203

4192:                                             ; preds = %4187
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %371, ptr noundef @.str.1032, ptr noundef @.str.1033, ptr noundef nonnull align 8 dereferenceable(32) %372, ptr noundef nonnull align 1 dereferenceable(8) @.str.1035)
          to label %4193 unwind label %4207

4193:                                             ; preds = %4192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %374) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %372) #11
  %4194 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %371)
          to label %4195 unwind label %4213

4195:                                             ; preds = %4193
  br i1 %4194, label %4196, label %4217

4196:                                             ; preds = %4195
  br label %4237

4197:                                             ; preds = %4185, %4162
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %365) #11
  br label %4198

4198:                                             ; preds = %4197, %4161
  call void @llvm.lifetime.end.p0(i64 16, ptr %365) #11
  br label %4991

4199:                                             ; preds = %4186
  %4200 = landingpad { ptr, i32 }
          cleanup
  %4201 = extractvalue { ptr, i32 } %4200, 0
  store ptr %4201, ptr %5, align 8
  %4202 = extractvalue { ptr, i32 } %4200, 1
  store i32 %4202, ptr %6, align 4
  br label %4212

4203:                                             ; preds = %4187
  %4204 = landingpad { ptr, i32 }
          cleanup
  %4205 = extractvalue { ptr, i32 } %4204, 0
  store ptr %4205, ptr %5, align 8
  %4206 = extractvalue { ptr, i32 } %4204, 1
  store i32 %4206, ptr %6, align 4
  br label %4211

4207:                                             ; preds = %4192
  %4208 = landingpad { ptr, i32 }
          cleanup
  %4209 = extractvalue { ptr, i32 } %4208, 0
  store ptr %4209, ptr %5, align 8
  %4210 = extractvalue { ptr, i32 } %4208, 1
  store i32 %4210, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #11
  br label %4211

4211:                                             ; preds = %4207, %4203
  call void @llvm.lifetime.end.p0(i64 8, ptr %374) #11
  br label %4212

4212:                                             ; preds = %4211, %4199
  call void @llvm.lifetime.end.p0(i64 32, ptr %372) #11
  br label %4269

4213:                                             ; preds = %4193
  %4214 = landingpad { ptr, i32 }
          cleanup
  %4215 = extractvalue { ptr, i32 } %4214, 0
  store ptr %4215, ptr %5, align 8
  %4216 = extractvalue { ptr, i32 } %4214, 1
  store i32 %4216, ptr %6, align 4
  br label %4268

4217:                                             ; preds = %4195
  call void @llvm.lifetime.start.p0(i64 8, ptr %375) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %375)
          to label %4218 unwind label %4223

4218:                                             ; preds = %4217
  call void @llvm.lifetime.start.p0(i64 8, ptr %376) #11
  %4219 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %371)
          to label %4220 unwind label %4227

4220:                                             ; preds = %4218
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %376, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1019, ptr noundef %4219)
          to label %4221 unwind label %4227

4221:                                             ; preds = %4220
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %376, ptr noundef nonnull align 8 dereferenceable(8) %375)
          to label %4222 unwind label %4231

4222:                                             ; preds = %4221
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %376) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %375) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #11
  br label %4237

4223:                                             ; preds = %4217
  %4224 = landingpad { ptr, i32 }
          cleanup
  %4225 = extractvalue { ptr, i32 } %4224, 0
  store ptr %4225, ptr %5, align 8
  %4226 = extractvalue { ptr, i32 } %4224, 1
  store i32 %4226, ptr %6, align 4
  br label %4236

4227:                                             ; preds = %4220, %4218
  %4228 = landingpad { ptr, i32 }
          cleanup
  %4229 = extractvalue { ptr, i32 } %4228, 0
  store ptr %4229, ptr %5, align 8
  %4230 = extractvalue { ptr, i32 } %4228, 1
  store i32 %4230, ptr %6, align 4
  br label %4235

4231:                                             ; preds = %4221
  %4232 = landingpad { ptr, i32 }
          cleanup
  %4233 = extractvalue { ptr, i32 } %4232, 0
  store ptr %4233, ptr %5, align 8
  %4234 = extractvalue { ptr, i32 } %4232, 1
  store i32 %4234, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %376) #11
  br label %4235

4235:                                             ; preds = %4231, %4227
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %375) #11
  br label %4236

4236:                                             ; preds = %4235, %4223
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #11
  br label %4268

4237:                                             ; preds = %4222, %4196
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %371) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %371) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %377) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %377)
          to label %4238 unwind label %4270

4238:                                             ; preds = %4237
  %4239 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %377)
          to label %4240 unwind label %4274

4240:                                             ; preds = %4238
  br i1 %4239, label %4241, label %4371

4241:                                             ; preds = %4240
  call void @llvm.lifetime.start.p0(i64 32, ptr %378) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %379) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %379) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %379)
          to label %4242 unwind label %4278

4242:                                             ; preds = %4241
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %379) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %379) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %380) #11
  store i8 0, ptr %380, align 1, !tbaa !9
  %4243 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %4244 unwind label %4282

4244:                                             ; preds = %4242
  br i1 %4243, label %4245, label %4327

4245:                                             ; preds = %4244
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %384, ptr noundef @.str.935)
          to label %4246 unwind label %4282

4246:                                             ; preds = %4245
  %4247 = getelementptr inbounds { ptr, i64 }, ptr %384, i32 0, i32 0
  %4248 = load ptr, ptr %4247, align 8
  %4249 = getelementptr inbounds { ptr, i64 }, ptr %384, i32 0, i32 1
  %4250 = load i64, ptr %4249, align 8
  %4251 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %4248, i64 %4250)
          to label %4252 unwind label %4282

4252:                                             ; preds = %4246
  %4253 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %383, i32 0, i32 0
  %4254 = getelementptr inbounds { ptr, i64 }, ptr %4253, i32 0, i32 0
  %4255 = extractvalue { ptr, i64 } %4251, 0
  store ptr %4255, ptr %4254, align 8
  %4256 = getelementptr inbounds { ptr, i64 }, ptr %4253, i32 0, i32 1
  %4257 = extractvalue { ptr, i64 } %4251, 1
  store i64 %4257, ptr %4256, align 8
  %4258 = getelementptr inbounds { ptr, i64 }, ptr %383, i32 0, i32 0
  %4259 = load ptr, ptr %4258, align 8
  %4260 = getelementptr inbounds { ptr, i64 }, ptr %383, i32 0, i32 1
  %4261 = load i64, ptr %4260, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJPvEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %382, ptr %4259, i64 %4261)
          to label %4262 unwind label %4282

4262:                                             ; preds = %4252
  call void @llvm.lifetime.start.p0(i64 8, ptr %385) #11
  store ptr inttoptr (i64 51966 to ptr), ptr %385, align 8, !tbaa !5
  %4263 = getelementptr inbounds { ptr, i64 }, ptr %382, i32 0, i32 0
  %4264 = load ptr, ptr %4263, align 8
  %4265 = getelementptr inbounds { ptr, i64 }, ptr %382, i32 0, i32 1
  %4266 = load i64, ptr %4265, align 8
  invoke void @_ZN3fmt3v106formatIJPvEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %381, ptr %4264, i64 %4266, ptr noundef nonnull align 8 dereferenceable(8) %385)
          to label %4267 unwind label %4286

4267:                                             ; preds = %4262
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %381) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %385) #11
  br label %4328

4268:                                             ; preds = %4236, %4213
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %371) #11
  br label %4269

4269:                                             ; preds = %4268, %4212
  call void @llvm.lifetime.end.p0(i64 16, ptr %371) #11
  br label %4991

4270:                                             ; preds = %4237
  %4271 = landingpad { ptr, i32 }
          cleanup
  %4272 = extractvalue { ptr, i32 } %4271, 0
  store ptr %4272, ptr %5, align 8
  %4273 = extractvalue { ptr, i32 } %4271, 1
  store i32 %4273, ptr %6, align 4
  br label %4424

4274:                                             ; preds = %4238
  %4275 = landingpad { ptr, i32 }
          cleanup
  %4276 = extractvalue { ptr, i32 } %4275, 0
  store ptr %4276, ptr %5, align 8
  %4277 = extractvalue { ptr, i32 } %4275, 1
  store i32 %4277, ptr %6, align 4
  br label %4423

4278:                                             ; preds = %4241
  %4279 = landingpad { ptr, i32 }
          cleanup
  %4280 = extractvalue { ptr, i32 } %4279, 0
  store ptr %4280, ptr %5, align 8
  %4281 = extractvalue { ptr, i32 } %4279, 1
  store i32 %4281, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %379) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %379) #11
  br label %4370

4282:                                             ; preds = %4252, %4246, %4245, %4242
  %4283 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4284 = extractvalue { ptr, i32 } %4283, 0
  store ptr %4284, ptr %5, align 8
  %4285 = extractvalue { ptr, i32 } %4283, 1
  store i32 %4285, ptr %6, align 4
  br label %4290

4286:                                             ; preds = %4262
  %4287 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4288 = extractvalue { ptr, i32 } %4287, 0
  store ptr %4288, ptr %5, align 8
  %4289 = extractvalue { ptr, i32 } %4287, 1
  store i32 %4289, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %385) #11
  br label %4290

4290:                                             ; preds = %4286, %4282
  %4291 = load i32, ptr %6, align 4
  %4292 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %4293 = icmp eq i32 %4291, %4292
  br i1 %4293, label %4294, label %4322

4294:                                             ; preds = %4290
  call void @llvm.lifetime.start.p0(i64 8, ptr %386) #11
  %4295 = load ptr, ptr %5, align 8
  %4296 = call ptr @__cxa_begin_catch(ptr %4295) #11
  store ptr %4296, ptr %386, align 8
  %4297 = load ptr, ptr %386, align 8, !tbaa !5
  %4298 = load ptr, ptr %4297, align 8, !tbaa !13
  %4299 = getelementptr inbounds ptr, ptr %4298, i64 2
  %4300 = load ptr, ptr %4299, align 8
  %4301 = call noundef ptr %4300(ptr noundef nonnull align 8 dereferenceable(16) %4297) #11
  %4302 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef %4301)
          to label %4303 unwind label %4339

4303:                                             ; preds = %4294
  br i1 %4302, label %4304, label %4347

4304:                                             ; preds = %4303
  %4305 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA117_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %377, ptr noundef nonnull align 1 dereferenceable(117) @.str.1037)
          to label %4306 unwind label %4339

4306:                                             ; preds = %4304
  %4307 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4305, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %4308 unwind label %4339

4308:                                             ; preds = %4306
  %4309 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4307, ptr noundef nonnull align 8 dereferenceable(32) %378)
          to label %4310 unwind label %4339

4310:                                             ; preds = %4308
  %4311 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4309, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %4312 unwind label %4339

4312:                                             ; preds = %4310
  %4313 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4311, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %4314 unwind label %4339

4314:                                             ; preds = %4312
  call void @llvm.lifetime.start.p0(i64 8, ptr %387) #11
  %4315 = load ptr, ptr %386, align 8, !tbaa !5
  %4316 = load ptr, ptr %4315, align 8, !tbaa !13
  %4317 = getelementptr inbounds ptr, ptr %4316, i64 2
  %4318 = load ptr, ptr %4317, align 8
  %4319 = call noundef ptr %4318(ptr noundef nonnull align 8 dereferenceable(16) %4315) #11
  store ptr %4319, ptr %387, align 8, !tbaa !5
  %4320 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4313, ptr noundef nonnull align 8 dereferenceable(8) %387)
          to label %4321 unwind label %4343

4321:                                             ; preds = %4314
  call void @llvm.lifetime.end.p0(i64 8, ptr %387) #11
  store i32 22, ptr %15, align 4
  br label %4348

4322:                                             ; preds = %4290
  %4323 = load ptr, ptr %5, align 8
  %4324 = call ptr @__cxa_begin_catch(ptr %4323) #11
  %4325 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA160_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %377, ptr noundef nonnull align 1 dereferenceable(160) @.str.1036)
          to label %4326 unwind label %4329

4326:                                             ; preds = %4322
  store i32 22, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %4333 unwind label %4334

4327:                                             ; preds = %4244
  br label %4328

4328:                                             ; preds = %4327, %4267
  br label %4352

4329:                                             ; preds = %4322
  %4330 = landingpad { ptr, i32 }
          cleanup
  %4331 = extractvalue { ptr, i32 } %4330, 0
  store ptr %4331, ptr %5, align 8
  %4332 = extractvalue { ptr, i32 } %4330, 1
  store i32 %4332, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %4338 unwind label %5007

4333:                                             ; preds = %4326
  br label %4366

4334:                                             ; preds = %4355, %4326
  %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 %4369

4338:                                             ; preds = %4329
  br label %4369

4339:                                             ; preds = %4312, %4310, %4308, %4306, %4304, %4294
  %4340 = landingpad { ptr, i32 }
          cleanup
  %4341 = extractvalue { ptr, i32 } %4340, 0
  store ptr %4341, ptr %5, align 8
  %4342 = extractvalue { ptr, i32 } %4340, 1
  store i32 %4342, ptr %6, align 4
  br label %4362

4343:                                             ; preds = %4314
  %4344 = landingpad { ptr, i32 }
          cleanup
  %4345 = extractvalue { ptr, i32 } %4344, 0
  store ptr %4345, ptr %5, align 8
  %4346 = extractvalue { ptr, i32 } %4344, 1
  store i32 %4346, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %387) #11
  br label %4362

4347:                                             ; preds = %4303
  store i8 1, ptr %380, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4348

4348:                                             ; preds = %4347, %4321
  invoke void @__cxa_end_catch()
          to label %4349 unwind label %4358

4349:                                             ; preds = %4348
  call void @llvm.lifetime.end.p0(i64 8, ptr %386) #11
  %4350 = load i32, ptr %15, align 4
  switch i32 %4350, label %4366 [
    i32 0, label %4351
  ]

4351:                                             ; preds = %4349
  br label %4352

4352:                                             ; preds = %4351, %4328
  %4353 = load i8, ptr %380, align 1, !tbaa !9, !range !15, !noundef !16
  %4354 = trunc i8 %4353 to i1
  br i1 %4354, label %4365, label %4355

4355:                                             ; preds = %4352
  %4356 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA151_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %377, ptr noundef nonnull align 1 dereferenceable(151) @.str.1038)
          to label %4357 unwind label %4334

4357:                                             ; preds = %4355
  store i32 22, ptr %15, align 4
  br label %4366

4358:                                             ; preds = %4348
  %4359 = landingpad { ptr, i32 }
          cleanup
  %4360 = extractvalue { ptr, i32 } %4359, 0
  store ptr %4360, ptr %5, align 8
  %4361 = extractvalue { ptr, i32 } %4359, 1
  store i32 %4361, ptr %6, align 4
  br label %4364

4362:                                             ; preds = %4343, %4339
  invoke void @__cxa_end_catch()
          to label %4363 unwind label %5007

4363:                                             ; preds = %4362
  br label %4364

4364:                                             ; preds = %4363, %4358
  call void @llvm.lifetime.end.p0(i64 8, ptr %386) #11
  br label %4369

4365:                                             ; preds = %4352
  store i32 0, ptr %15, align 4
  br label %4366

4366:                                             ; preds = %4365, %4357, %4349, %4333
  call void @llvm.lifetime.end.p0(i64 1, ptr %380) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %378) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %378) #11
  %4367 = load i32, ptr %15, align 4
  switch i32 %4367, label %5010 [
    i32 0, label %4368
    i32 22, label %4372
  ]

4368:                                             ; preds = %4366
  br label %4392

4369:                                             ; preds = %4364, %4338, %4334
  call void @llvm.lifetime.end.p0(i64 1, ptr %380) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %378) #11
  br label %4370

4370:                                             ; preds = %4369, %4278
  call void @llvm.lifetime.end.p0(i64 32, ptr %378) #11
  br label %4423

4371:                                             ; preds = %4240
  br label %4372

4372:                                             ; preds = %4371, %4366
  call void @llvm.lifetime.start.p0(i64 8, ptr %388) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %388)
          to label %4373 unwind label %4378

4373:                                             ; preds = %4372
  call void @llvm.lifetime.start.p0(i64 8, ptr %389) #11
  %4374 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %377)
          to label %4375 unwind label %4382

4375:                                             ; preds = %4373
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %389, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1023, ptr noundef %4374)
          to label %4376 unwind label %4382

4376:                                             ; preds = %4375
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %389, ptr noundef nonnull align 8 dereferenceable(8) %388)
          to label %4377 unwind label %4386

4377:                                             ; preds = %4376
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %389) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %389) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %388) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %388) #11
  br label %4392

4378:                                             ; preds = %4372
  %4379 = landingpad { ptr, i32 }
          cleanup
  %4380 = extractvalue { ptr, i32 } %4379, 0
  store ptr %4380, ptr %5, align 8
  %4381 = extractvalue { ptr, i32 } %4379, 1
  store i32 %4381, ptr %6, align 4
  br label %4391

4382:                                             ; preds = %4375, %4373
  %4383 = landingpad { ptr, i32 }
          cleanup
  %4384 = extractvalue { ptr, i32 } %4383, 0
  store ptr %4384, ptr %5, align 8
  %4385 = extractvalue { ptr, i32 } %4383, 1
  store i32 %4385, ptr %6, align 4
  br label %4390

4386:                                             ; preds = %4376
  %4387 = landingpad { ptr, i32 }
          cleanup
  %4388 = extractvalue { ptr, i32 } %4387, 0
  store ptr %4388, ptr %5, align 8
  %4389 = extractvalue { ptr, i32 } %4387, 1
  store i32 %4389, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %389) #11
  br label %4390

4390:                                             ; preds = %4386, %4382
  call void @llvm.lifetime.end.p0(i64 8, ptr %389) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %388) #11
  br label %4391

4391:                                             ; preds = %4390, %4378
  call void @llvm.lifetime.end.p0(i64 8, ptr %388) #11
  br label %4423

4392:                                             ; preds = %4377, %4368
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %377) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %377) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %390) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %390)
          to label %4393 unwind label %4425

4393:                                             ; preds = %4392
  %4394 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %390)
          to label %4395 unwind label %4429

4395:                                             ; preds = %4393
  br i1 %4394, label %4396, label %4526

4396:                                             ; preds = %4395
  call void @llvm.lifetime.start.p0(i64 32, ptr %391) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %392) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %392)
          to label %4397 unwind label %4433

4397:                                             ; preds = %4396
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %392) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %393) #11
  store i8 0, ptr %393, align 1, !tbaa !9
  %4398 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %4399 unwind label %4437

4399:                                             ; preds = %4397
  br i1 %4398, label %4400, label %4482

4400:                                             ; preds = %4399
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %397, ptr noundef @.str.939)
          to label %4401 unwind label %4437

4401:                                             ; preds = %4400
  %4402 = getelementptr inbounds { ptr, i64 }, ptr %397, i32 0, i32 0
  %4403 = load ptr, ptr %4402, align 8
  %4404 = getelementptr inbounds { ptr, i64 }, ptr %397, i32 0, i32 1
  %4405 = load i64, ptr %4404, align 8
  %4406 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %4403, i64 %4405)
          to label %4407 unwind label %4437

4407:                                             ; preds = %4401
  %4408 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %396, i32 0, i32 0
  %4409 = getelementptr inbounds { ptr, i64 }, ptr %4408, i32 0, i32 0
  %4410 = extractvalue { ptr, i64 } %4406, 0
  store ptr %4410, ptr %4409, align 8
  %4411 = getelementptr inbounds { ptr, i64 }, ptr %4408, i32 0, i32 1
  %4412 = extractvalue { ptr, i64 } %4406, 1
  store i64 %4412, ptr %4411, align 8
  %4413 = getelementptr inbounds { ptr, i64 }, ptr %396, i32 0, i32 0
  %4414 = load ptr, ptr %4413, align 8
  %4415 = getelementptr inbounds { ptr, i64 }, ptr %396, i32 0, i32 1
  %4416 = load i64, ptr %4415, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJPvEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %395, ptr %4414, i64 %4416)
          to label %4417 unwind label %4437

4417:                                             ; preds = %4407
  call void @llvm.lifetime.start.p0(i64 8, ptr %398) #11
  store ptr inttoptr (i64 51966 to ptr), ptr %398, align 8, !tbaa !5
  %4418 = getelementptr inbounds { ptr, i64 }, ptr %395, i32 0, i32 0
  %4419 = load ptr, ptr %4418, align 8
  %4420 = getelementptr inbounds { ptr, i64 }, ptr %395, i32 0, i32 1
  %4421 = load i64, ptr %4420, align 8
  invoke void @_ZN3fmt3v106formatIJPvEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %394, ptr %4419, i64 %4421, ptr noundef nonnull align 8 dereferenceable(8) %398)
          to label %4422 unwind label %4441

4422:                                             ; preds = %4417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %394) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %398) #11
  br label %4483

4423:                                             ; preds = %4391, %4370, %4274
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %377) #11
  br label %4424

4424:                                             ; preds = %4423, %4270
  call void @llvm.lifetime.end.p0(i64 16, ptr %377) #11
  br label %4991

4425:                                             ; preds = %4392
  %4426 = landingpad { ptr, i32 }
          cleanup
  %4427 = extractvalue { ptr, i32 } %4426, 0
  store ptr %4427, ptr %5, align 8
  %4428 = extractvalue { ptr, i32 } %4426, 1
  store i32 %4428, ptr %6, align 4
  br label %4581

4429:                                             ; preds = %4393
  %4430 = landingpad { ptr, i32 }
          cleanup
  %4431 = extractvalue { ptr, i32 } %4430, 0
  store ptr %4431, ptr %5, align 8
  %4432 = extractvalue { ptr, i32 } %4430, 1
  store i32 %4432, ptr %6, align 4
  br label %4580

4433:                                             ; preds = %4396
  %4434 = landingpad { ptr, i32 }
          cleanup
  %4435 = extractvalue { ptr, i32 } %4434, 0
  store ptr %4435, ptr %5, align 8
  %4436 = extractvalue { ptr, i32 } %4434, 1
  store i32 %4436, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %392) #11
  br label %4525

4437:                                             ; preds = %4407, %4401, %4400, %4397
  %4438 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4439 = extractvalue { ptr, i32 } %4438, 0
  store ptr %4439, ptr %5, align 8
  %4440 = extractvalue { ptr, i32 } %4438, 1
  store i32 %4440, ptr %6, align 4
  br label %4445

4441:                                             ; preds = %4417
  %4442 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4443 = extractvalue { ptr, i32 } %4442, 0
  store ptr %4443, ptr %5, align 8
  %4444 = extractvalue { ptr, i32 } %4442, 1
  store i32 %4444, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %398) #11
  br label %4445

4445:                                             ; preds = %4441, %4437
  %4446 = load i32, ptr %6, align 4
  %4447 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %4448 = icmp eq i32 %4446, %4447
  br i1 %4448, label %4449, label %4477

4449:                                             ; preds = %4445
  call void @llvm.lifetime.start.p0(i64 8, ptr %399) #11
  %4450 = load ptr, ptr %5, align 8
  %4451 = call ptr @__cxa_begin_catch(ptr %4450) #11
  store ptr %4451, ptr %399, align 8
  %4452 = load ptr, ptr %399, align 8, !tbaa !5
  %4453 = load ptr, ptr %4452, align 8, !tbaa !13
  %4454 = getelementptr inbounds ptr, ptr %4453, i64 2
  %4455 = load ptr, ptr %4454, align 8
  %4456 = call noundef ptr %4455(ptr noundef nonnull align 8 dereferenceable(16) %4452) #11
  %4457 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef %4456)
          to label %4458 unwind label %4494

4458:                                             ; preds = %4449
  br i1 %4457, label %4459, label %4502

4459:                                             ; preds = %4458
  %4460 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA118_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %390, ptr noundef nonnull align 1 dereferenceable(118) @.str.1040)
          to label %4461 unwind label %4494

4461:                                             ; preds = %4459
  %4462 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4460, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %4463 unwind label %4494

4463:                                             ; preds = %4461
  %4464 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4462, ptr noundef nonnull align 8 dereferenceable(32) %391)
          to label %4465 unwind label %4494

4465:                                             ; preds = %4463
  %4466 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4464, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %4467 unwind label %4494

4467:                                             ; preds = %4465
  %4468 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4466, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %4469 unwind label %4494

4469:                                             ; preds = %4467
  call void @llvm.lifetime.start.p0(i64 8, ptr %400) #11
  %4470 = load ptr, ptr %399, align 8, !tbaa !5
  %4471 = load ptr, ptr %4470, align 8, !tbaa !13
  %4472 = getelementptr inbounds ptr, ptr %4471, i64 2
  %4473 = load ptr, ptr %4472, align 8
  %4474 = call noundef ptr %4473(ptr noundef nonnull align 8 dereferenceable(16) %4470) #11
  store ptr %4474, ptr %400, align 8, !tbaa !5
  %4475 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4468, ptr noundef nonnull align 8 dereferenceable(8) %400)
          to label %4476 unwind label %4498

4476:                                             ; preds = %4469
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #11
  store i32 23, ptr %15, align 4
  br label %4503

4477:                                             ; preds = %4445
  %4478 = load ptr, ptr %5, align 8
  %4479 = call ptr @__cxa_begin_catch(ptr %4478) #11
  %4480 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA161_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %390, ptr noundef nonnull align 1 dereferenceable(161) @.str.1039)
          to label %4481 unwind label %4484

4481:                                             ; preds = %4477
  store i32 23, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %4488 unwind label %4489

4482:                                             ; preds = %4399
  br label %4483

4483:                                             ; preds = %4482, %4422
  br label %4507

4484:                                             ; preds = %4477
  %4485 = landingpad { ptr, i32 }
          cleanup
  %4486 = extractvalue { ptr, i32 } %4485, 0
  store ptr %4486, ptr %5, align 8
  %4487 = extractvalue { ptr, i32 } %4485, 1
  store i32 %4487, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %4493 unwind label %5007

4488:                                             ; preds = %4481
  br label %4521

4489:                                             ; preds = %4510, %4481
  %4490 = landingpad { ptr, i32 }
          cleanup
  %4491 = extractvalue { ptr, i32 } %4490, 0
  store ptr %4491, ptr %5, align 8
  %4492 = extractvalue { ptr, i32 } %4490, 1
  store i32 %4492, ptr %6, align 4
  br label %4524

4493:                                             ; preds = %4484
  br label %4524

4494:                                             ; preds = %4467, %4465, %4463, %4461, %4459, %4449
  %4495 = landingpad { ptr, i32 }
          cleanup
  %4496 = extractvalue { ptr, i32 } %4495, 0
  store ptr %4496, ptr %5, align 8
  %4497 = extractvalue { ptr, i32 } %4495, 1
  store i32 %4497, ptr %6, align 4
  br label %4517

4498:                                             ; preds = %4469
  %4499 = landingpad { ptr, i32 }
          cleanup
  %4500 = extractvalue { ptr, i32 } %4499, 0
  store ptr %4500, ptr %5, align 8
  %4501 = extractvalue { ptr, i32 } %4499, 1
  store i32 %4501, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #11
  br label %4517

4502:                                             ; preds = %4458
  store i8 1, ptr %393, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4503

4503:                                             ; preds = %4502, %4476
  invoke void @__cxa_end_catch()
          to label %4504 unwind label %4513

4504:                                             ; preds = %4503
  call void @llvm.lifetime.end.p0(i64 8, ptr %399) #11
  %4505 = load i32, ptr %15, align 4
  switch i32 %4505, label %4521 [
    i32 0, label %4506
  ]

4506:                                             ; preds = %4504
  br label %4507

4507:                                             ; preds = %4506, %4483
  %4508 = load i8, ptr %393, align 1, !tbaa !9, !range !15, !noundef !16
  %4509 = trunc i8 %4508 to i1
  br i1 %4509, label %4520, label %4510

4510:                                             ; preds = %4507
  %4511 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA152_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %390, ptr noundef nonnull align 1 dereferenceable(152) @.str.1041)
          to label %4512 unwind label %4489

4512:                                             ; preds = %4510
  store i32 23, ptr %15, align 4
  br label %4521

4513:                                             ; preds = %4503
  %4514 = landingpad { ptr, i32 }
          cleanup
  %4515 = extractvalue { ptr, i32 } %4514, 0
  store ptr %4515, ptr %5, align 8
  %4516 = extractvalue { ptr, i32 } %4514, 1
  store i32 %4516, ptr %6, align 4
  br label %4519

4517:                                             ; preds = %4498, %4494
  invoke void @__cxa_end_catch()
          to label %4518 unwind label %5007

4518:                                             ; preds = %4517
  br label %4519

4519:                                             ; preds = %4518, %4513
  call void @llvm.lifetime.end.p0(i64 8, ptr %399) #11
  br label %4524

4520:                                             ; preds = %4507
  store i32 0, ptr %15, align 4
  br label %4521

4521:                                             ; preds = %4520, %4512, %4504, %4488
  call void @llvm.lifetime.end.p0(i64 1, ptr %393) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #11
  %4522 = load i32, ptr %15, align 4
  switch i32 %4522, label %5010 [
    i32 0, label %4523
    i32 23, label %4527
  ]

4523:                                             ; preds = %4521
  br label %4547

4524:                                             ; preds = %4519, %4493, %4489
  call void @llvm.lifetime.end.p0(i64 1, ptr %393) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #11
  br label %4525

4525:                                             ; preds = %4524, %4433
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #11
  br label %4580

4526:                                             ; preds = %4395
  br label %4527

4527:                                             ; preds = %4526, %4521
  call void @llvm.lifetime.start.p0(i64 8, ptr %401) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %401)
          to label %4528 unwind label %4533

4528:                                             ; preds = %4527
  call void @llvm.lifetime.start.p0(i64 8, ptr %402) #11
  %4529 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %390)
          to label %4530 unwind label %4537

4530:                                             ; preds = %4528
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %402, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1026, ptr noundef %4529)
          to label %4531 unwind label %4537

4531:                                             ; preds = %4530
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %402, ptr noundef nonnull align 8 dereferenceable(8) %401)
          to label %4532 unwind label %4541

4532:                                             ; preds = %4531
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %402) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %402) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %401) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %401) #11
  br label %4547

4533:                                             ; preds = %4527
  %4534 = landingpad { ptr, i32 }
          cleanup
  %4535 = extractvalue { ptr, i32 } %4534, 0
  store ptr %4535, ptr %5, align 8
  %4536 = extractvalue { ptr, i32 } %4534, 1
  store i32 %4536, ptr %6, align 4
  br label %4546

4537:                                             ; preds = %4530, %4528
  %4538 = landingpad { ptr, i32 }
          cleanup
  %4539 = extractvalue { ptr, i32 } %4538, 0
  store ptr %4539, ptr %5, align 8
  %4540 = extractvalue { ptr, i32 } %4538, 1
  store i32 %4540, ptr %6, align 4
  br label %4545

4541:                                             ; preds = %4531
  %4542 = landingpad { ptr, i32 }
          cleanup
  %4543 = extractvalue { ptr, i32 } %4542, 0
  store ptr %4543, ptr %5, align 8
  %4544 = extractvalue { ptr, i32 } %4542, 1
  store i32 %4544, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %402) #11
  br label %4545

4545:                                             ; preds = %4541, %4537
  call void @llvm.lifetime.end.p0(i64 8, ptr %402) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %401) #11
  br label %4546

4546:                                             ; preds = %4545, %4533
  call void @llvm.lifetime.end.p0(i64 8, ptr %401) #11
  br label %4580

4547:                                             ; preds = %4532, %4523
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %390) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %390) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %403) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %403)
          to label %4548 unwind label %4582

4548:                                             ; preds = %4547
  %4549 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %403)
          to label %4550 unwind label %4586

4550:                                             ; preds = %4548
  br i1 %4549, label %4551, label %4683

4551:                                             ; preds = %4550
  call void @llvm.lifetime.start.p0(i64 32, ptr %404) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %405) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef @.str.785, ptr noundef nonnull align 1 dereferenceable(1) %405)
          to label %4552 unwind label %4590

4552:                                             ; preds = %4551
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %405) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %406) #11
  store i8 0, ptr %406, align 1, !tbaa !9
  %4553 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %4554 unwind label %4594

4554:                                             ; preds = %4552
  br i1 %4553, label %4555, label %4639

4555:                                             ; preds = %4554
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %410, ptr noundef @.str.1042)
          to label %4556 unwind label %4594

4556:                                             ; preds = %4555
  %4557 = getelementptr inbounds { ptr, i64 }, ptr %410, i32 0, i32 0
  %4558 = load ptr, ptr %4557, align 8
  %4559 = getelementptr inbounds { ptr, i64 }, ptr %410, i32 0, i32 1
  %4560 = load i64, ptr %4559, align 8
  %4561 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %4558, i64 %4560)
          to label %4562 unwind label %4594

4562:                                             ; preds = %4556
  %4563 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %409, i32 0, i32 0
  %4564 = getelementptr inbounds { ptr, i64 }, ptr %4563, i32 0, i32 0
  %4565 = extractvalue { ptr, i64 } %4561, 0
  store ptr %4565, ptr %4564, align 8
  %4566 = getelementptr inbounds { ptr, i64 }, ptr %4563, i32 0, i32 1
  %4567 = extractvalue { ptr, i64 } %4561, 1
  store i64 %4567, ptr %4566, align 8
  %4568 = getelementptr inbounds { ptr, i64 }, ptr %409, i32 0, i32 0
  %4569 = load ptr, ptr %4568, align 8
  %4570 = getelementptr inbounds { ptr, i64 }, ptr %409, i32 0, i32 1
  %4571 = load i64, ptr %4570, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %408, ptr %4569, i64 %4571)
          to label %4572 unwind label %4594

4572:                                             ; preds = %4562
  call void @llvm.lifetime.start.p0(i64 8, ptr %411) #11
  store double 4.200000e+01, ptr %411, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %412) #11
  %4573 = invoke noundef i32 @_ZN3fmt3v106detail9max_valueIiEET_v()
          to label %4574 unwind label %4598

4574:                                             ; preds = %4572
  store i32 %4573, ptr %412, align 4, !tbaa !20
  %4575 = getelementptr inbounds { ptr, i64 }, ptr %408, i32 0, i32 0
  %4576 = load ptr, ptr %4575, align 8
  %4577 = getelementptr inbounds { ptr, i64 }, ptr %408, i32 0, i32 1
  %4578 = load i64, ptr %4577, 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 %407, ptr %4576, i64 %4578, ptr noundef nonnull align 8 dereferenceable(8) %411, ptr noundef nonnull align 4 dereferenceable(4) %412)
          to label %4579 unwind label %4598

4579:                                             ; preds = %4574
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %407) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %412) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %411) #11
  br label %4640

4580:                                             ; preds = %4546, %4525, %4429
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %390) #11
  br label %4581

4581:                                             ; preds = %4580, %4425
  call void @llvm.lifetime.end.p0(i64 16, ptr %390) #11
  br label %4991

4582:                                             ; preds = %4547
  %4583 = landingpad { ptr, i32 }
          cleanup
  %4584 = extractvalue { ptr, i32 } %4583, 0
  store ptr %4584, ptr %5, align 8
  %4585 = extractvalue { ptr, i32 } %4583, 1
  store i32 %4585, ptr %6, align 4
  br label %4720

4586:                                             ; preds = %4548
  %4587 = landingpad { ptr, i32 }
          cleanup
  %4588 = extractvalue { ptr, i32 } %4587, 0
  store ptr %4588, ptr %5, align 8
  %4589 = extractvalue { ptr, i32 } %4587, 1
  store i32 %4589, ptr %6, align 4
  br label %4719

4590:                                             ; preds = %4551
  %4591 = landingpad { ptr, i32 }
          cleanup
  %4592 = extractvalue { ptr, i32 } %4591, 0
  store ptr %4592, ptr %5, align 8
  %4593 = extractvalue { ptr, i32 } %4591, 1
  store i32 %4593, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %405) #11
  br label %4682

4594:                                             ; preds = %4562, %4556, %4555, %4552
  %4595 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4596 = extractvalue { ptr, i32 } %4595, 0
  store ptr %4596, ptr %5, align 8
  %4597 = extractvalue { ptr, i32 } %4595, 1
  store i32 %4597, ptr %6, align 4
  br label %4602

4598:                                             ; preds = %4574, %4572
  %4599 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4600 = extractvalue { ptr, i32 } %4599, 0
  store ptr %4600, ptr %5, align 8
  %4601 = extractvalue { ptr, i32 } %4599, 1
  store i32 %4601, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %412) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %411) #11
  br label %4602

4602:                                             ; preds = %4598, %4594
  %4603 = load i32, ptr %6, align 4
  %4604 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %4605 = icmp eq i32 %4603, %4604
  br i1 %4605, label %4606, label %4634

4606:                                             ; preds = %4602
  call void @llvm.lifetime.start.p0(i64 8, ptr %413) #11
  %4607 = load ptr, ptr %5, align 8
  %4608 = call ptr @__cxa_begin_catch(ptr %4607) #11
  store ptr %4608, ptr %413, align 8
  %4609 = load ptr, ptr %413, align 8, !tbaa !5
  %4610 = load ptr, ptr %4609, align 8, !tbaa !13
  %4611 = getelementptr inbounds ptr, ptr %4610, i64 2
  %4612 = load ptr, ptr %4611, align 8
  %4613 = call noundef ptr %4612(ptr noundef nonnull align 8 dereferenceable(16) %4609) #11
  %4614 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef %4613)
          to label %4615 unwind label %4651

4615:                                             ; preds = %4606
  br i1 %4614, label %4616, label %4659

4616:                                             ; preds = %4615
  %4617 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %403, ptr noundef nonnull align 1 dereferenceable(122) @.str.1044)
          to label %4618 unwind label %4651

4618:                                             ; preds = %4616
  %4619 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4617, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %4620 unwind label %4651

4620:                                             ; preds = %4618
  %4621 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4619, ptr noundef nonnull align 8 dereferenceable(32) %404)
          to label %4622 unwind label %4651

4622:                                             ; preds = %4620
  %4623 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4621, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %4624 unwind label %4651

4624:                                             ; preds = %4622
  %4625 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4623, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %4626 unwind label %4651

4626:                                             ; preds = %4624
  call void @llvm.lifetime.start.p0(i64 8, ptr %414) #11
  %4627 = load ptr, ptr %413, align 8, !tbaa !5
  %4628 = load ptr, ptr %4627, align 8, !tbaa !13
  %4629 = getelementptr inbounds ptr, ptr %4628, i64 2
  %4630 = load ptr, ptr %4629, align 8
  %4631 = call noundef ptr %4630(ptr noundef nonnull align 8 dereferenceable(16) %4627) #11
  store ptr %4631, ptr %414, align 8, !tbaa !5
  %4632 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4625, ptr noundef nonnull align 8 dereferenceable(8) %414)
          to label %4633 unwind label %4655

4633:                                             ; preds = %4626
  call void @llvm.lifetime.end.p0(i64 8, ptr %414) #11
  store i32 24, ptr %15, align 4
  br label %4660

4634:                                             ; preds = %4602
  %4635 = load ptr, ptr %5, align 8
  %4636 = call ptr @__cxa_begin_catch(ptr %4635) #11
  %4637 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA165_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %403, ptr noundef nonnull align 1 dereferenceable(165) @.str.1043)
          to label %4638 unwind label %4641

4638:                                             ; preds = %4634
  store i32 24, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %4645 unwind label %4646

4639:                                             ; preds = %4554
  br label %4640

4640:                                             ; preds = %4639, %4579
  br label %4664

4641:                                             ; preds = %4634
  %4642 = landingpad { ptr, i32 }
          cleanup
  %4643 = extractvalue { ptr, i32 } %4642, 0
  store ptr %4643, ptr %5, align 8
  %4644 = extractvalue { ptr, i32 } %4642, 1
  store i32 %4644, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %4650 unwind label %5007

4645:                                             ; preds = %4638
  br label %4678

4646:                                             ; preds = %4667, %4638
  %4647 = landingpad { ptr, i32 }
          cleanup
  %4648 = extractvalue { ptr, i32 } %4647, 0
  store ptr %4648, ptr %5, align 8
  %4649 = extractvalue { ptr, i32 } %4647, 1
  store i32 %4649, ptr %6, align 4
  br label %4681

4650:                                             ; preds = %4641
  br label %4681

4651:                                             ; preds = %4624, %4622, %4620, %4618, %4616, %4606
  %4652 = landingpad { ptr, i32 }
          cleanup
  %4653 = extractvalue { ptr, i32 } %4652, 0
  store ptr %4653, ptr %5, align 8
  %4654 = extractvalue { ptr, i32 } %4652, 1
  store i32 %4654, ptr %6, align 4
  br label %4674

4655:                                             ; preds = %4626
  %4656 = landingpad { ptr, i32 }
          cleanup
  %4657 = extractvalue { ptr, i32 } %4656, 0
  store ptr %4657, ptr %5, align 8
  %4658 = extractvalue { ptr, i32 } %4656, 1
  store i32 %4658, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %414) #11
  br label %4674

4659:                                             ; preds = %4615
  store i8 1, ptr %406, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4660

4660:                                             ; preds = %4659, %4633
  invoke void @__cxa_end_catch()
          to label %4661 unwind label %4670

4661:                                             ; preds = %4660
  call void @llvm.lifetime.end.p0(i64 8, ptr %413) #11
  %4662 = load i32, ptr %15, align 4
  switch i32 %4662, label %4678 [
    i32 0, label %4663
  ]

4663:                                             ; preds = %4661
  br label %4664

4664:                                             ; preds = %4663, %4640
  %4665 = load i8, ptr %406, align 1, !tbaa !9, !range !15, !noundef !16
  %4666 = trunc i8 %4665 to i1
  br i1 %4666, label %4677, label %4667

4667:                                             ; preds = %4664
  %4668 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA156_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %403, ptr noundef nonnull align 1 dereferenceable(156) @.str.1045)
          to label %4669 unwind label %4646

4669:                                             ; preds = %4667
  store i32 24, ptr %15, align 4
  br label %4678

4670:                                             ; preds = %4660
  %4671 = landingpad { ptr, i32 }
          cleanup
  %4672 = extractvalue { ptr, i32 } %4671, 0
  store ptr %4672, ptr %5, align 8
  %4673 = extractvalue { ptr, i32 } %4671, 1
  store i32 %4673, ptr %6, align 4
  br label %4676

4674:                                             ; preds = %4655, %4651
  invoke void @__cxa_end_catch()
          to label %4675 unwind label %5007

4675:                                             ; preds = %4674
  br label %4676

4676:                                             ; preds = %4675, %4670
  call void @llvm.lifetime.end.p0(i64 8, ptr %413) #11
  br label %4681

4677:                                             ; preds = %4664
  store i32 0, ptr %15, align 4
  br label %4678

4678:                                             ; preds = %4677, %4669, %4661, %4645
  call void @llvm.lifetime.end.p0(i64 1, ptr %406) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %404) #11
  %4679 = load i32, ptr %15, align 4
  switch i32 %4679, label %5010 [
    i32 0, label %4680
    i32 24, label %4684
  ]

4680:                                             ; preds = %4678
  br label %4704

4681:                                             ; preds = %4676, %4650, %4646
  call void @llvm.lifetime.end.p0(i64 1, ptr %406) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #11
  br label %4682

4682:                                             ; preds = %4681, %4590
  call void @llvm.lifetime.end.p0(i64 32, ptr %404) #11
  br label %4719

4683:                                             ; preds = %4550
  br label %4684

4684:                                             ; preds = %4683, %4678
  call void @llvm.lifetime.start.p0(i64 8, ptr %415) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %415)
          to label %4685 unwind label %4690

4685:                                             ; preds = %4684
  call void @llvm.lifetime.start.p0(i64 8, ptr %416) #11
  %4686 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %403)
          to label %4687 unwind label %4694

4687:                                             ; preds = %4685
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %416, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1029, ptr noundef %4686)
          to label %4688 unwind label %4694

4688:                                             ; preds = %4687
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %416, ptr noundef nonnull align 8 dereferenceable(8) %415)
          to label %4689 unwind label %4698

4689:                                             ; preds = %4688
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %416) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %416) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %415) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %415) #11
  br label %4704

4690:                                             ; preds = %4684
  %4691 = landingpad { ptr, i32 }
          cleanup
  %4692 = extractvalue { ptr, i32 } %4691, 0
  store ptr %4692, ptr %5, align 8
  %4693 = extractvalue { ptr, i32 } %4691, 1
  store i32 %4693, ptr %6, align 4
  br label %4703

4694:                                             ; preds = %4687, %4685
  %4695 = landingpad { ptr, i32 }
          cleanup
  %4696 = extractvalue { ptr, i32 } %4695, 0
  store ptr %4696, ptr %5, align 8
  %4697 = extractvalue { ptr, i32 } %4695, 1
  store i32 %4697, ptr %6, align 4
  br label %4702

4698:                                             ; preds = %4688
  %4699 = landingpad { ptr, i32 }
          cleanup
  %4700 = extractvalue { ptr, i32 } %4699, 0
  store ptr %4700, ptr %5, align 8
  %4701 = extractvalue { ptr, i32 } %4699, 1
  store i32 %4701, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %416) #11
  br label %4702

4702:                                             ; preds = %4698, %4694
  call void @llvm.lifetime.end.p0(i64 8, ptr %416) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %415) #11
  br label %4703

4703:                                             ; preds = %4702, %4690
  call void @llvm.lifetime.end.p0(i64 8, ptr %415) #11
  br label %4719

4704:                                             ; preds = %4689, %4680
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %403) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %403) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %417) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %417)
          to label %4705 unwind label %4721

4705:                                             ; preds = %4704
  %4706 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %417)
          to label %4707 unwind label %4725

4707:                                             ; preds = %4705
  br i1 %4706, label %4708, label %4822

4708:                                             ; preds = %4707
  call void @llvm.lifetime.start.p0(i64 32, ptr %418) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %419) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %419) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %418, ptr noundef @.str.785, ptr noundef nonnull align 1 dereferenceable(1) %419)
          to label %4709 unwind label %4729

4709:                                             ; preds = %4708
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %419) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %419) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %420) #11
  store i8 0, ptr %420, align 1, !tbaa !9
  %4710 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %4711 unwind label %4733

4711:                                             ; preds = %4709
  br i1 %4710, label %4712, label %4778

4712:                                             ; preds = %4711
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA16_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %422, ptr noundef nonnull align 1 dereferenceable(16) @.str.1046)
          to label %4713 unwind label %4733

4713:                                             ; preds = %4712
  call void @llvm.lifetime.start.p0(i64 8, ptr %423) #11
  store double 0xFF2020FFFFFF2020, ptr %423, align 8, !tbaa !11
  %4714 = getelementptr inbounds { ptr, i64 }, ptr %422, i32 0, i32 0
  %4715 = load ptr, ptr %4714, align 8
  %4716 = getelementptr inbounds { ptr, i64 }, ptr %422, i32 0, i32 1
  %4717 = load i64, ptr %4716, 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 %421, ptr %4715, i64 %4717, ptr noundef nonnull align 8 dereferenceable(8) %423)
          to label %4718 unwind label %4737

4718:                                             ; preds = %4713
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %423) #11
  br label %4779

4719:                                             ; preds = %4703, %4682, %4586
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %403) #11
  br label %4720

4720:                                             ; preds = %4719, %4582
  call void @llvm.lifetime.end.p0(i64 16, ptr %403) #11
  br label %4991

4721:                                             ; preds = %4704
  %4722 = landingpad { ptr, i32 }
          cleanup
  %4723 = extractvalue { ptr, i32 } %4722, 0
  store ptr %4723, ptr %5, align 8
  %4724 = extractvalue { ptr, i32 } %4722, 1
  store i32 %4724, ptr %6, align 4
  br label %4855

4725:                                             ; preds = %4705
  %4726 = landingpad { ptr, i32 }
          cleanup
  %4727 = extractvalue { ptr, i32 } %4726, 0
  store ptr %4727, ptr %5, align 8
  %4728 = extractvalue { ptr, i32 } %4726, 1
  store i32 %4728, ptr %6, align 4
  br label %4854

4729:                                             ; preds = %4708
  %4730 = landingpad { ptr, i32 }
          cleanup
  %4731 = extractvalue { ptr, i32 } %4730, 0
  store ptr %4731, ptr %5, align 8
  %4732 = extractvalue { ptr, i32 } %4730, 1
  store i32 %4732, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %419) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %419) #11
  br label %4821

4733:                                             ; preds = %4712, %4709
  %4734 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %4735 = extractvalue { ptr, i32 } %4734, 0
  store ptr %4735, ptr %5, align 8
  %4736 = extractvalue { ptr, i32 } %4734, 1
  store i32 %4736, ptr %6, align 4
  br label %4741

4737:                                             ; preds = %4713
  %4738 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %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
  call void @llvm.lifetime.end.p0(i64 8, ptr %423) #11
  br label %4741

4741:                                             ; preds = %4737, %4733
  %4742 = load i32, ptr %6, align 4
  %4743 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %4744 = icmp eq i32 %4742, %4743
  br i1 %4744, label %4745, label %4773

4745:                                             ; preds = %4741
  call void @llvm.lifetime.start.p0(i64 8, ptr %424) #11
  %4746 = load ptr, ptr %5, align 8
  %4747 = call ptr @__cxa_begin_catch(ptr %4746) #11
  store ptr %4747, ptr %424, align 8
  %4748 = load ptr, ptr %424, align 8, !tbaa !5
  %4749 = load ptr, ptr %4748, align 8, !tbaa !13
  %4750 = getelementptr inbounds ptr, ptr %4749, i64 2
  %4751 = load ptr, ptr %4750, align 8
  %4752 = call noundef ptr %4751(ptr noundef nonnull align 8 dereferenceable(16) %4748) #11
  %4753 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %418, ptr noundef %4752)
          to label %4754 unwind label %4790

4754:                                             ; preds = %4745
  br i1 %4753, label %4755, label %4798

4755:                                             ; preds = %4754
  %4756 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA110_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %417, ptr noundef nonnull align 1 dereferenceable(110) @.str.1048)
          to label %4757 unwind label %4790

4757:                                             ; preds = %4755
  %4758 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4756, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %4759 unwind label %4790

4759:                                             ; preds = %4757
  %4760 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4758, ptr noundef nonnull align 8 dereferenceable(32) %418)
          to label %4761 unwind label %4790

4761:                                             ; preds = %4759
  %4762 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4760, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %4763 unwind label %4790

4763:                                             ; preds = %4761
  %4764 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4762, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %4765 unwind label %4790

4765:                                             ; preds = %4763
  call void @llvm.lifetime.start.p0(i64 8, ptr %425) #11
  %4766 = load ptr, ptr %424, align 8, !tbaa !5
  %4767 = load ptr, ptr %4766, align 8, !tbaa !13
  %4768 = getelementptr inbounds ptr, ptr %4767, i64 2
  %4769 = load ptr, ptr %4768, align 8
  %4770 = call noundef ptr %4769(ptr noundef nonnull align 8 dereferenceable(16) %4766) #11
  store ptr %4770, ptr %425, align 8, !tbaa !5
  %4771 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %4764, ptr noundef nonnull align 8 dereferenceable(8) %425)
          to label %4772 unwind label %4794

4772:                                             ; preds = %4765
  call void @llvm.lifetime.end.p0(i64 8, ptr %425) #11
  store i32 25, ptr %15, align 4
  br label %4799

4773:                                             ; preds = %4741
  %4774 = load ptr, ptr %5, align 8
  %4775 = call ptr @__cxa_begin_catch(ptr %4774) #11
  %4776 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA153_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %417, ptr noundef nonnull align 1 dereferenceable(153) @.str.1047)
          to label %4777 unwind label %4780

4777:                                             ; preds = %4773
  store i32 25, ptr %15, align 4
  invoke void @__cxa_end_catch()
          to label %4784 unwind label %4785

4778:                                             ; preds = %4711
  br label %4779

4779:                                             ; preds = %4778, %4718
  br label %4803

4780:                                             ; preds = %4773
  %4781 = landingpad { ptr, i32 }
          cleanup
  %4782 = extractvalue { ptr, i32 } %4781, 0
  store ptr %4782, ptr %5, align 8
  %4783 = extractvalue { ptr, i32 } %4781, 1
  store i32 %4783, ptr %6, align 4
  invoke void @__cxa_end_catch()
          to label %4789 unwind label %5007

4784:                                             ; preds = %4777
  br label %4817

4785:                                             ; preds = %4806, %4777
  %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 %4820

4789:                                             ; preds = %4780
  br label %4820

4790:                                             ; preds = %4763, %4761, %4759, %4757, %4755, %4745
  %4791 = landingpad { ptr, i32 }
          cleanup
  %4792 = extractvalue { ptr, i32 } %4791, 0
  store ptr %4792, ptr %5, align 8
  %4793 = extractvalue { ptr, i32 } %4791, 1
  store i32 %4793, ptr %6, align 4
  br label %4813

4794:                                             ; preds = %4765
  %4795 = landingpad { ptr, i32 }
          cleanup
  %4796 = extractvalue { ptr, i32 } %4795, 0
  store ptr %4796, ptr %5, align 8
  %4797 = extractvalue { ptr, i32 } %4795, 1
  store i32 %4797, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %425) #11
  br label %4813

4798:                                             ; preds = %4754
  store i8 1, ptr %420, align 1, !tbaa !9
  store i32 0, ptr %15, align 4
  br label %4799

4799:                                             ; preds = %4798, %4772
  invoke void @__cxa_end_catch()
          to label %4800 unwind label %4809

4800:                                             ; preds = %4799
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #11
  %4801 = load i32, ptr %15, align 4
  switch i32 %4801, label %4817 [
    i32 0, label %4802
  ]

4802:                                             ; preds = %4800
  br label %4803

4803:                                             ; preds = %4802, %4779
  %4804 = load i8, ptr %420, align 1, !tbaa !9, !range !15, !noundef !16
  %4805 = trunc i8 %4804 to i1
  br i1 %4805, label %4816, label %4806

4806:                                             ; preds = %4803
  %4807 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA144_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %417, ptr noundef nonnull align 1 dereferenceable(144) @.str.1049)
          to label %4808 unwind label %4785

4808:                                             ; preds = %4806
  store i32 25, ptr %15, align 4
  br label %4817

4809:                                             ; preds = %4799
  %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 %4815

4813:                                             ; preds = %4794, %4790
  invoke void @__cxa_end_catch()
          to label %4814 unwind label %5007

4814:                                             ; preds = %4813
  br label %4815

4815:                                             ; preds = %4814, %4809
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #11
  br label %4820

4816:                                             ; preds = %4803
  store i32 0, ptr %15, align 4
  br label %4817

4817:                                             ; preds = %4816, %4808, %4800, %4784
  call void @llvm.lifetime.end.p0(i64 1, ptr %420) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %418) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %418) #11
  %4818 = load i32, ptr %15, align 4
  switch i32 %4818, label %5010 [
    i32 0, label %4819
    i32 25, label %4823
  ]

4819:                                             ; preds = %4817
  br label %4843

4820:                                             ; preds = %4815, %4789, %4785
  call void @llvm.lifetime.end.p0(i64 1, ptr %420) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %418) #11
  br label %4821

4821:                                             ; preds = %4820, %4729
  call void @llvm.lifetime.end.p0(i64 32, ptr %418) #11
  br label %4854

4822:                                             ; preds = %4707
  br label %4823

4823:                                             ; preds = %4822, %4817
  call void @llvm.lifetime.start.p0(i64 8, ptr %426) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %426)
          to label %4824 unwind label %4829

4824:                                             ; preds = %4823
  call void @llvm.lifetime.start.p0(i64 8, ptr %427) #11
  %4825 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %417)
          to label %4826 unwind label %4833

4826:                                             ; preds = %4824
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %427, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1032, ptr noundef %4825)
          to label %4827 unwind label %4833

4827:                                             ; preds = %4826
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %427, ptr noundef nonnull align 8 dereferenceable(8) %426)
          to label %4828 unwind label %4837

4828:                                             ; preds = %4827
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %427) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %427) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %426) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %426) #11
  br label %4843

4829:                                             ; preds = %4823
  %4830 = landingpad { ptr, i32 }
          cleanup
  %4831 = extractvalue { ptr, i32 } %4830, 0
  store ptr %4831, ptr %5, align 8
  %4832 = extractvalue { ptr, i32 } %4830, 1
  store i32 %4832, ptr %6, align 4
  br label %4842

4833:                                             ; preds = %4826, %4824
  %4834 = landingpad { ptr, i32 }
          cleanup
  %4835 = extractvalue { ptr, i32 } %4834, 0
  store ptr %4835, ptr %5, align 8
  %4836 = extractvalue { ptr, i32 } %4834, 1
  store i32 %4836, ptr %6, align 4
  br label %4841

4837:                                             ; preds = %4827
  %4838 = landingpad { ptr, i32 }
          cleanup
  %4839 = extractvalue { ptr, i32 } %4838, 0
  store ptr %4839, ptr %5, align 8
  %4840 = extractvalue { ptr, i32 } %4838, 1
  store i32 %4840, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %427) #11
  br label %4841

4841:                                             ; preds = %4837, %4833
  call void @llvm.lifetime.end.p0(i64 8, ptr %427) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %426) #11
  br label %4842

4842:                                             ; preds = %4841, %4829
  call void @llvm.lifetime.end.p0(i64 8, ptr %426) #11
  br label %4854

4843:                                             ; preds = %4828, %4819
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %417) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %417) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %428) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %429) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA4_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %430, ptr noundef nonnull align 1 dereferenceable(7) @.str.935)
          to label %4844 unwind label %4856

4844:                                             ; preds = %4843
  %4845 = getelementptr inbounds { ptr, i64 }, ptr %430, i32 0, i32 0
  %4846 = load ptr, ptr %4845, align 8
  %4847 = getelementptr inbounds { ptr, i64 }, ptr %430, i32 0, i32 1
  %4848 = load i64, ptr %4847, align 8
  invoke void @_ZN3fmt3v106formatIJRA4_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %429, ptr %4846, i64 %4848, ptr noundef nonnull align 1 dereferenceable(4) @.str.135)
          to label %4849 unwind label %4856

4849:                                             ; preds = %4844
  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 %428, ptr noundef @.str.1050, ptr noundef @.str.341, ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef nonnull align 1 dereferenceable(3) @.str.343)
          to label %4850 unwind label %4860

4850:                                             ; preds = %4849
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %429) #11
  %4851 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %428)
          to label %4852 unwind label %4865

4852:                                             ; preds = %4850
  br i1 %4851, label %4853, label %4869

4853:                                             ; preds = %4852
  br label %4889

4854:                                             ; preds = %4842, %4821, %4725
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %417) #11
  br label %4855

4855:                                             ; preds = %4854, %4721
  call void @llvm.lifetime.end.p0(i64 16, ptr %417) #11
  br label %4991

4856:                                             ; preds = %4844, %4843
  %4857 = landingpad { ptr, i32 }
          cleanup
  %4858 = extractvalue { ptr, i32 } %4857, 0
  store ptr %4858, ptr %5, align 8
  %4859 = extractvalue { ptr, i32 } %4857, 1
  store i32 %4859, ptr %6, align 4
  br label %4864

4860:                                             ; preds = %4849
  %4861 = landingpad { ptr, i32 }
          cleanup
  %4862 = extractvalue { ptr, i32 } %4861, 0
  store ptr %4862, ptr %5, align 8
  %4863 = extractvalue { ptr, i32 } %4861, 1
  store i32 %4863, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #11
  br label %4864

4864:                                             ; preds = %4860, %4856
  call void @llvm.lifetime.end.p0(i64 32, ptr %429) #11
  br label %4901

4865:                                             ; preds = %4850
  %4866 = landingpad { ptr, i32 }
          cleanup
  %4867 = extractvalue { ptr, i32 } %4866, 0
  store ptr %4867, ptr %5, align 8
  %4868 = extractvalue { ptr, i32 } %4866, 1
  store i32 %4868, ptr %6, align 4
  br label %4900

4869:                                             ; preds = %4852
  call void @llvm.lifetime.start.p0(i64 8, ptr %431) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %431)
          to label %4870 unwind label %4875

4870:                                             ; preds = %4869
  call void @llvm.lifetime.start.p0(i64 8, ptr %432) #11
  %4871 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %428)
          to label %4872 unwind label %4879

4872:                                             ; preds = %4870
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %432, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1034, ptr noundef %4871)
          to label %4873 unwind label %4879

4873:                                             ; preds = %4872
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %432, ptr noundef nonnull align 8 dereferenceable(8) %431)
          to label %4874 unwind label %4883

4874:                                             ; preds = %4873
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %432) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %431) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %431) #11
  br label %4889

4875:                                             ; preds = %4869
  %4876 = landingpad { ptr, i32 }
          cleanup
  %4877 = extractvalue { ptr, i32 } %4876, 0
  store ptr %4877, ptr %5, align 8
  %4878 = extractvalue { ptr, i32 } %4876, 1
  store i32 %4878, ptr %6, align 4
  br label %4888

4879:                                             ; preds = %4872, %4870
  %4880 = landingpad { ptr, i32 }
          cleanup
  %4881 = extractvalue { ptr, i32 } %4880, 0
  store ptr %4881, ptr %5, align 8
  %4882 = extractvalue { ptr, i32 } %4880, 1
  store i32 %4882, ptr %6, align 4
  br label %4887

4883:                                             ; preds = %4873
  %4884 = landingpad { ptr, i32 }
          cleanup
  %4885 = extractvalue { ptr, i32 } %4884, 0
  store ptr %4885, ptr %5, align 8
  %4886 = extractvalue { ptr, i32 } %4884, 1
  store i32 %4886, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %432) #11
  br label %4887

4887:                                             ; preds = %4883, %4879
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %431) #11
  br label %4888

4888:                                             ; preds = %4887, %4875
  call void @llvm.lifetime.end.p0(i64 8, ptr %431) #11
  br label %4900

4889:                                             ; preds = %4874, %4853
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %428) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %428) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %433) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %434) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA13_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %435, ptr noundef nonnull align 1 dereferenceable(7) @.str.1053)
          to label %4890 unwind label %4902

4890:                                             ; preds = %4889
  %4891 = getelementptr inbounds { ptr, i64 }, ptr %435, i32 0, i32 0
  %4892 = load ptr, ptr %4891, align 8
  %4893 = getelementptr inbounds { ptr, i64 }, ptr %435, i32 0, i32 1
  %4894 = load i64, ptr %4893, align 8
  invoke void @_ZN3fmt3v106formatIJRA13_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %434, ptr %4892, i64 %4894, ptr noundef nonnull align 1 dereferenceable(13) @.str.1054)
          to label %4895 unwind label %4902

4895:                                             ; preds = %4890
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA11_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %433, ptr noundef @.str.1051, ptr noundef @.str.1052, ptr noundef nonnull align 8 dereferenceable(32) %434, ptr noundef nonnull align 1 dereferenceable(11) @.str.60)
          to label %4896 unwind label %4906

4896:                                             ; preds = %4895
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %434) #11
  %4897 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %433)
          to label %4898 unwind label %4911

4898:                                             ; preds = %4896
  br i1 %4897, label %4899, label %4915

4899:                                             ; preds = %4898
  br label %4935

4900:                                             ; preds = %4888, %4865
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %428) #11
  br label %4901

4901:                                             ; preds = %4900, %4864
  call void @llvm.lifetime.end.p0(i64 16, ptr %428) #11
  br label %4991

4902:                                             ; preds = %4890, %4889
  %4903 = landingpad { ptr, i32 }
          cleanup
  %4904 = extractvalue { ptr, i32 } %4903, 0
  store ptr %4904, ptr %5, align 8
  %4905 = extractvalue { ptr, i32 } %4903, 1
  store i32 %4905, ptr %6, align 4
  br label %4910

4906:                                             ; preds = %4895
  %4907 = landingpad { ptr, i32 }
          cleanup
  %4908 = extractvalue { ptr, i32 } %4907, 0
  store ptr %4908, ptr %5, align 8
  %4909 = extractvalue { ptr, i32 } %4907, 1
  store i32 %4909, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #11
  br label %4910

4910:                                             ; preds = %4906, %4902
  call void @llvm.lifetime.end.p0(i64 32, ptr %434) #11
  br label %4947

4911:                                             ; preds = %4896
  %4912 = landingpad { ptr, i32 }
          cleanup
  %4913 = extractvalue { ptr, i32 } %4912, 0
  store ptr %4913, ptr %5, align 8
  %4914 = extractvalue { ptr, i32 } %4912, 1
  store i32 %4914, ptr %6, align 4
  br label %4946

4915:                                             ; preds = %4898
  call void @llvm.lifetime.start.p0(i64 8, ptr %436) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %436)
          to label %4916 unwind label %4921

4916:                                             ; preds = %4915
  call void @llvm.lifetime.start.p0(i64 8, ptr %437) #11
  %4917 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %433)
          to label %4918 unwind label %4925

4918:                                             ; preds = %4916
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %437, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1035, ptr noundef %4917)
          to label %4919 unwind label %4925

4919:                                             ; preds = %4918
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %437, ptr noundef nonnull align 8 dereferenceable(8) %436)
          to label %4920 unwind label %4929

4920:                                             ; preds = %4919
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %437) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %437) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %436) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %436) #11
  br label %4935

4921:                                             ; preds = %4915
  %4922 = landingpad { ptr, i32 }
          cleanup
  %4923 = extractvalue { ptr, i32 } %4922, 0
  store ptr %4923, ptr %5, align 8
  %4924 = extractvalue { ptr, i32 } %4922, 1
  store i32 %4924, ptr %6, align 4
  br label %4934

4925:                                             ; preds = %4918, %4916
  %4926 = landingpad { ptr, i32 }
          cleanup
  %4927 = extractvalue { ptr, i32 } %4926, 0
  store ptr %4927, ptr %5, align 8
  %4928 = extractvalue { ptr, i32 } %4926, 1
  store i32 %4928, ptr %6, align 4
  br label %4933

4929:                                             ; preds = %4919
  %4930 = landingpad { ptr, i32 }
          cleanup
  %4931 = extractvalue { ptr, i32 } %4930, 0
  store ptr %4931, ptr %5, align 8
  %4932 = extractvalue { ptr, i32 } %4930, 1
  store i32 %4932, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %437) #11
  br label %4933

4933:                                             ; preds = %4929, %4925
  call void @llvm.lifetime.end.p0(i64 8, ptr %437) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %436) #11
  br label %4934

4934:                                             ; preds = %4933, %4921
  call void @llvm.lifetime.end.p0(i64 8, ptr %436) #11
  br label %4946

4935:                                             ; preds = %4920, %4899
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %433) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %433) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %438) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %439) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA8_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %440, ptr noundef nonnull align 1 dereferenceable(7) @.str.1057)
          to label %4936 unwind label %4948

4936:                                             ; preds = %4935
  %4937 = getelementptr inbounds { ptr, i64 }, ptr %440, i32 0, i32 0
  %4938 = load ptr, ptr %4937, align 8
  %4939 = getelementptr inbounds { ptr, i64 }, ptr %440, i32 0, i32 1
  %4940 = load i64, ptr %4939, align 8
  invoke void @_ZN3fmt3v106formatIJRA8_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %439, ptr %4938, i64 %4940, ptr noundef nonnull align 1 dereferenceable(8) @.str.1058)
          to label %4941 unwind label %4948

4941:                                             ; preds = %4936
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA7_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %438, ptr noundef @.str.1055, ptr noundef @.str.1056, ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull align 1 dereferenceable(7) @.str.88)
          to label %4942 unwind label %4952

4942:                                             ; preds = %4941
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %439) #11
  %4943 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %438)
          to label %4944 unwind label %4957

4944:                                             ; preds = %4942
  br i1 %4943, label %4945, label %4961

4945:                                             ; preds = %4944
  br label %4981

4946:                                             ; preds = %4934, %4911
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %433) #11
  br label %4947

4947:                                             ; preds = %4946, %4910
  call void @llvm.lifetime.end.p0(i64 16, ptr %433) #11
  br label %4991

4948:                                             ; preds = %4936, %4935
  %4949 = landingpad { ptr, i32 }
          cleanup
  %4950 = extractvalue { ptr, i32 } %4949, 0
  store ptr %4950, ptr %5, align 8
  %4951 = extractvalue { ptr, i32 } %4949, 1
  store i32 %4951, ptr %6, align 4
  br label %4956

4952:                                             ; preds = %4941
  %4953 = landingpad { ptr, i32 }
          cleanup
  %4954 = extractvalue { ptr, i32 } %4953, 0
  store ptr %4954, ptr %5, align 8
  %4955 = extractvalue { ptr, i32 } %4953, 1
  store i32 %4955, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #11
  br label %4956

4956:                                             ; preds = %4952, %4948
  call void @llvm.lifetime.end.p0(i64 32, ptr %439) #11
  br label %4990

4957:                                             ; preds = %4942
  %4958 = landingpad { ptr, i32 }
          cleanup
  %4959 = extractvalue { ptr, i32 } %4958, 0
  store ptr %4959, ptr %5, align 8
  %4960 = extractvalue { ptr, i32 } %4958, 1
  store i32 %4960, ptr %6, align 4
  br label %4989

4961:                                             ; preds = %4944
  call void @llvm.lifetime.start.p0(i64 8, ptr %441) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %441)
          to label %4962 unwind label %4967

4962:                                             ; preds = %4961
  call void @llvm.lifetime.start.p0(i64 8, ptr %442) #11
  %4963 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %438)
          to label %4964 unwind label %4971

4964:                                             ; preds = %4962
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %442, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1036, ptr noundef %4963)
          to label %4965 unwind label %4971

4965:                                             ; preds = %4964
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef nonnull align 8 dereferenceable(8) %441)
          to label %4966 unwind label %4975

4966:                                             ; preds = %4965
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %442) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %441) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %441) #11
  br label %4981

4967:                                             ; preds = %4961
  %4968 = landingpad { ptr, i32 }
          cleanup
  %4969 = extractvalue { ptr, i32 } %4968, 0
  store ptr %4969, ptr %5, align 8
  %4970 = extractvalue { ptr, i32 } %4968, 1
  store i32 %4970, ptr %6, align 4
  br label %4980

4971:                                             ; preds = %4964, %4962
  %4972 = landingpad { ptr, i32 }
          cleanup
  %4973 = extractvalue { ptr, i32 } %4972, 0
  store ptr %4973, ptr %5, align 8
  %4974 = extractvalue { ptr, i32 } %4972, 1
  store i32 %4974, ptr %6, align 4
  br label %4979

4975:                                             ; preds = %4965
  %4976 = landingpad { ptr, i32 }
          cleanup
  %4977 = extractvalue { ptr, i32 } %4976, 0
  store ptr %4977, ptr %5, align 8
  %4978 = extractvalue { ptr, i32 } %4976, 1
  store i32 %4978, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %442) #11
  br label %4979

4979:                                             ; preds = %4975, %4971
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %441) #11
  br label %4980

4980:                                             ; preds = %4979, %4967
  call void @llvm.lifetime.end.p0(i64 8, ptr %441) #11
  br label %4989

4981:                                             ; preds = %4966, %4945
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %438) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %438) #11
  %4982 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %316, i32 0, i32 0
  %4983 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4982, i64 2
  br label %4984

4984:                                             ; preds = %4984, %4981
  %4985 = phi ptr [ %4983, %4981 ], [ %4986, %4984 ]
  %4986 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4985, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4986) #11
  %4987 = icmp eq ptr %4986, %4982
  br i1 %4987, label %4988, label %4984

4988:                                             ; preds = %4984
  call void @llvm.lifetime.end.p0(i64 64, ptr %316) #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

4989:                                             ; preds = %4980, %4957
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %438) #11
  br label %4990

4990:                                             ; preds = %4989, %4956
  call void @llvm.lifetime.end.p0(i64 16, ptr %438) #11
  br label %4991

4991:                                             ; preds = %4990, %4947, %4901, %4855, %4720, %4581, %4424, %4269, %4198, %4147, %4096, %4045, %3994, %3943, %3844
  %4992 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %316, i32 0, i32 0
  %4993 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4992, i64 2
  br label %4994

4994:                                             ; preds = %4994, %4991
  %4995 = phi ptr [ %4993, %4991 ], [ %4996, %4994 ]
  %4996 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4995, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4996) #11
  %4997 = icmp eq ptr %4996, %4992
  br i1 %4997, label %4998, label %4994

4998:                                             ; preds = %4994
  br label %4999

4999:                                             ; preds = %4998, %3782
  call void @llvm.lifetime.end.p0(i64 64, ptr %316) #11
  br label %5000

5000:                                             ; preds = %4999, %3763, %3717, %3678, %3639, %3600, %3561, %3522, %3483, %3444, %3316, %3167, %3018, %2869, %2720, %2571, %2422, %2273, %2124, %1975, %1826, %1677, %1528, %1379, %1230, %1081, %932, %782
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #11
  br label %5001

5001:                                             ; preds = %5000, %632
  call void @llvm.lifetime.end.p0(i64 256, ptr %3) #11
  br label %5002

5002:                                             ; preds = %5001
  %5003 = load ptr, ptr %5, align 8
  %5004 = load i32, ptr %6, align 4
  %5005 = insertvalue { ptr, i32 } poison, ptr %5003, 0
  %5006 = insertvalue { ptr, i32 } %5005, i32 %5004, 1
  resume { ptr, i32 } %5006

5007:                                             ; preds = %4813, %4780, %4674, %4641, %4517, %4484, %4362, %4329, %3405, %3372, %3256, %3223, %3107, %3074, %2958, %2925, %2809, %2776, %2660, %2627, %2511, %2478, %2362, %2329, %2213, %2180, %2064, %2031, %1915, %1882, %1766, %1733, %1617, %1584, %1468, %1435, %1319, %1286, %1170, %1137, %1021, %988, %871, %838, %721, %688, %564, %531
  %5008 = landingpad { ptr, i32 }
          catch ptr null
  %5009 = extractvalue { ptr, i32 } %5008, 0
  call void @__clang_call_terminate(ptr %5009) #13
  unreachable

5010:                                             ; preds = %4817, %4678, %4521, %4366, %3409, %3260, %3111, %2962, %2813, %2664, %2515, %2366, %2217, %2068, %1919, %1770, %1621, %1472, %1323, %1174, %1025, %875, %725, %568
  unreachable
}

; 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 nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJlEEC2ENS0_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_stringIcJxEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA501_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(501)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA1077_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(1077)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7testing8internal33MakePredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_29PredicateFormatterFromMatcherIT_EESB_(ptr dead_on_unwind noalias writable sret(%"class.testing::internal::PredicateFormatterFromMatcher") align 8, ptr noundef) #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7testing8ContainsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8internal15ContainsMatcherIT_EES9_(ptr dead_on_unwind noalias writable sret(%"class.testing::internal::ContainsMatcher") align 8, ptr noundef) #10

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA9_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 uwtable
declare dso_local void @_ZNK7testing8internal29PredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEclIA2_S8_EENS_15AssertionResultEPKcRKT_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJReEEENSt7__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 16 dereferenceable(16)) #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE10denorm_minEv() #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJfEEENSt7__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)) #7

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN3fmt3v106detail9max_valueIiEET_v() #1

; 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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA16_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(16)) unnamed_addr #7 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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA13_KcEEENSt7__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(13)) #7

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA8_KcEEENSt7__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(8)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJRA8_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(7)) 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}
!26 = !{!27, !27, i64 0}
!27 = !{!"float", !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.122" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.143" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.144" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.145" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.146" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.147" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.150" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.149" = type { %"class.fmt::v10::basic_string_view" }
%"class.testing::internal::PredicateFormatterFromMatcher" = type { %"class.testing::internal::ContainsMatcher" }
%"class.testing::internal::ContainsMatcher" = type { %"class.std::__cxx11::basic_string" }
%"class.fmt::v10::basic_format_string.184" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.185" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.152" = 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.151" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.186" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.187" = type { %"class.fmt::v10::basic_string_view" }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [11 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.88 = external hidden unnamed_addr constant [7 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.223 = external hidden unnamed_addr constant [3 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.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.717 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.785 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.917 = external hidden unnamed_addr constant [7 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.921 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.922 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.923 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.924 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.925 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.926 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.927 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.928 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.929 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.930 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.931 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.932 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.933 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.934 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.935 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.936 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.937 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.938 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.939 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.940 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.941 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.942 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.943 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.944 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.945 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.946 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.947 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.948 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.949 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.950 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.951 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.952 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.953 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.954 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.955 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.956 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.957 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.958 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.959 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.960 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.961 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.962 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.963 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.964 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.965 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.966 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.967 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.968 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.969 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.970 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.971 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.972 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.973 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.974 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.975 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.976 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.977 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.978 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.979 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.980 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.981 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.982 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.983 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.984 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.985 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.986 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.987 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.988 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.989 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.990 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.991 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.992 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.993 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.994 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.995 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.996 = external hidden unnamed_addr constant [521 x i8], align 1
@.str.997 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.998 = external hidden unnamed_addr constant [501 x i8], align 1
@.str.999 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.1000 = external hidden unnamed_addr constant [1121 x i8], align 1
@.str.1001 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1002 = external hidden unnamed_addr constant [1077 x i8], align 1
@.str.1003 = external hidden unnamed_addr constant [849 x i8], align 1
@.str.1004 = external hidden unnamed_addr constant [849 x i8], align 1
@.str.1005 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1006 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1007 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1008 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1009 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1010 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1011 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.1012 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1013 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1014 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1015 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1016 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1017 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1018 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1019 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1020 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1021 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1022 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.1023 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1024 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1025 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1026 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1027 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1028 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1029 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1030 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1031 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1032 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.1033 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1034 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1035 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1036 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.1037 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.1038 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.1039 = external hidden unnamed_addr constant [161 x i8], align 1
@.str.1040 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.1041 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.1042 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1043 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.1044 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.1045 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.1046 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.1047 = external hidden unnamed_addr constant [153 x i8], align 1
@.str.1048 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.1049 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.1050 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.1051 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.1052 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1053 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1054 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1055 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1056 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1057 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1058 = external hidden unnamed_addr constant [8 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 @_ZN7testing15AssertionResultlsIA86_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(86)) local_unnamed_addr #2 align 2

; 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 void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA6_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(6)) 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_traitsIcESaIcEEEA8_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(8)) 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: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_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(5)) local_unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJiEEENSt7__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)) local_unnamed_addr #7

; 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 void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA10_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(10)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(124)) 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 nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJiEEC2ENS0_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 @_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 @_ZN7testing15AssertionResultlsIA120_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(120)) 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 @_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 @_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 @_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: 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 @_ZN3fmt3v106formatIJjEEENSt7__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)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJlEEENSt7__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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJmEEENSt7__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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJxEEENSt7__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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJyEEENSt7__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: 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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(7)) unnamed_addr #7 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJeEEENSt7__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 16 dereferenceable(16)) local_unnamed_addr #7

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJcEEENSt7__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)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA4_KcEEENSt7__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)) local_unnamed_addr #7

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJPvEEENSt7__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)) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA7_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(7)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJcEEC2ENS0_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 @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(133)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJjEEC2ENS0_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 @_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 nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJmEEC2ENS0_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_stringIcJyEEC2ENS0_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_stringIcJdEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(6)) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJPvEEC2ENS0_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 @_ZN7testing15AssertionResultlsIA87_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(87)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA121_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(121)) 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 void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA11_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(11)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA13_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(13)) local_unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA10_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(10)) unnamed_addr #7 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: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA151_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(151)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN26format_test_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.122", align 8
  %68 = alloca %"class.fmt::v10::basic_string_view", align 8
  %69 = alloca i32, align 4
  %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 %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %78 = alloca %"class.fmt::v10::basic_string_view", align 8
  %79 = alloca i32, align 4
  %80 = alloca ptr, align 8
  %81 = alloca %"class.testing::Message", align 8
  %82 = alloca %"class.testing::internal::AssertHelper", align 8
  %83 = alloca %"class.testing::AssertionResult", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator", align 1
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %88 = alloca %"class.fmt::v10::basic_string_view", align 8
  %89 = alloca i32, align 4
  %90 = alloca ptr, align 8
  %91 = alloca %"class.testing::Message", align 8
  %92 = alloca %"class.testing::internal::AssertHelper", align 8
  %93 = alloca %"class.testing::AssertionResult", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator", align 1
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.fmt::v10::basic_format_string.143", align 8
  %98 = alloca %"class.fmt::v10::basic_string_view", align 8
  %99 = alloca i32, align 4
  %100 = alloca ptr, align 8
  %101 = alloca %"class.testing::Message", align 8
  %102 = alloca %"class.testing::internal::AssertHelper", align 8
  %103 = alloca %"class.testing::AssertionResult", align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::allocator", align 1
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.fmt::v10::basic_format_string.143", align 8
  %108 = alloca %"class.fmt::v10::basic_string_view", align 8
  %109 = alloca i32, align 4
  %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 %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.fmt::v10::basic_format_string.144", align 8
  %118 = alloca %"class.fmt::v10::basic_string_view", align 8
  %119 = alloca i64, align 8
  %120 = alloca ptr, align 8
  %121 = alloca %"class.testing::Message", align 8
  %122 = alloca %"class.testing::internal::AssertHelper", align 8
  %123 = alloca %"class.testing::AssertionResult", align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::allocator", align 1
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.fmt::v10::basic_format_string.144", align 8
  %128 = alloca %"class.fmt::v10::basic_string_view", align 8
  %129 = alloca i64, align 8
  %130 = alloca ptr, align 8
  %131 = alloca %"class.testing::Message", align 8
  %132 = alloca %"class.testing::internal::AssertHelper", align 8
  %133 = alloca %"class.testing::AssertionResult", align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::allocator", align 1
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.fmt::v10::basic_format_string.145", align 8
  %138 = alloca %"class.fmt::v10::basic_string_view", align 8
  %139 = alloca i64, align 8
  %140 = alloca ptr, align 8
  %141 = alloca %"class.testing::Message", align 8
  %142 = alloca %"class.testing::internal::AssertHelper", align 8
  %143 = alloca %"class.testing::AssertionResult", align 8
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::allocator", align 1
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.fmt::v10::basic_format_string.145", align 8
  %148 = alloca %"class.fmt::v10::basic_string_view", align 8
  %149 = alloca i64, align 8
  %150 = alloca ptr, align 8
  %151 = alloca %"class.testing::Message", align 8
  %152 = alloca %"class.testing::internal::AssertHelper", align 8
  %153 = alloca %"class.testing::AssertionResult", align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::allocator", align 1
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.fmt::v10::basic_format_string.146", align 8
  %158 = alloca %"class.fmt::v10::basic_string_view", align 8
  %159 = alloca i64, align 8
  %160 = alloca ptr, align 8
  %161 = alloca %"class.testing::Message", align 8
  %162 = alloca %"class.testing::internal::AssertHelper", align 8
  %163 = alloca %"class.testing::AssertionResult", align 8
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca %"class.std::allocator", align 1
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.fmt::v10::basic_format_string.146", align 8
  %168 = alloca %"class.fmt::v10::basic_string_view", align 8
  %169 = alloca i64, align 8
  %170 = alloca ptr, align 8
  %171 = alloca %"class.testing::Message", align 8
  %172 = alloca %"class.testing::internal::AssertHelper", align 8
  %173 = alloca %"class.testing::AssertionResult", align 8
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.std::allocator", align 1
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.fmt::v10::basic_format_string.147", align 8
  %178 = alloca %"class.fmt::v10::basic_string_view", align 8
  %179 = alloca i64, 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 %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.fmt::v10::basic_format_string.147", align 8
  %188 = alloca %"class.fmt::v10::basic_string_view", align 8
  %189 = alloca i64, align 8
  %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.150", align 8
  %198 = alloca %"class.fmt::v10::basic_string_view", align 8
  %199 = alloca i8, align 1
  %200 = alloca ptr, align 8
  %201 = alloca %"class.testing::Message", align 8
  %202 = alloca %"class.testing::internal::AssertHelper", align 8
  %203 = alloca %"class.testing::AssertionResult", align 8
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %206 = alloca double, align 8
  %207 = alloca %"class.testing::Message", align 8
  %208 = alloca %"class.testing::internal::AssertHelper", align 8
  %209 = alloca %"class.testing::AssertionResult", align 8
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.fmt::v10::basic_format_string.149", align 8
  %212 = alloca x86_fp80, align 16
  %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.fmt::v10::basic_format_string.148", align 8
  %218 = alloca double, align 8
  %219 = alloca %"class.testing::Message", align 8
  %220 = alloca %"class.testing::internal::AssertHelper", align 8
  %221 = alloca %"class.testing::AssertionResult", align 8
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %224 = alloca double, align 8
  %225 = alloca %"class.testing::Message", align 8
  %226 = alloca %"class.testing::internal::AssertHelper", align 8
  %227 = alloca %"class.testing::AssertionResult", align 8
  %228 = alloca %"class.std::__cxx11::basic_string", align 8
  %229 = alloca %"class.fmt::v10::basic_format_string.149", align 8
  %230 = alloca x86_fp80, align 16
  %231 = alloca %"class.testing::Message", align 8
  %232 = alloca %"class.testing::internal::AssertHelper", align 8
  %233 = alloca %"class.testing::AssertionResult", align 8
  %234 = alloca %"class.std::__cxx11::basic_string", align 8
  %235 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %236 = alloca double, 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.fmt::v10::basic_format_string.148", align 8
  %242 = alloca double, align 8
  %243 = alloca %"class.testing::Message", align 8
  %244 = alloca %"class.testing::internal::AssertHelper", align 8
  %245 = alloca %"class.testing::AssertionResult", align 8
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %248 = alloca double, align 8
  %249 = alloca %"class.testing::Message", align 8
  %250 = alloca %"class.testing::internal::AssertHelper", align 8
  %251 = alloca [2 x %"class.std::__cxx11::basic_string"], align 16
  %252 = alloca %"class.std::allocator", align 1
  %253 = alloca %"class.std::allocator", align 1
  %254 = alloca %"class.testing::AssertionResult", align 8
  %255 = alloca %"class.testing::internal::PredicateFormatterFromMatcher", align 8
  %256 = alloca %"class.testing::internal::ContainsMatcher", align 8
  %257 = alloca %"class.std::__cxx11::basic_string", align 8
  %258 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %259 = alloca double, align 8
  %260 = alloca %"class.testing::Message", align 8
  %261 = alloca %"class.testing::internal::AssertHelper", align 8
  %262 = alloca x86_fp80, align 16
  %263 = alloca %"class.testing::AssertionResult", align 8
  %264 = alloca %"class.std::__cxx11::basic_string", align 8
  %265 = alloca %"class.fmt::v10::basic_format_string.184", align 8
  %266 = alloca %"class.testing::Message", align 8
  %267 = alloca %"class.testing::internal::AssertHelper", align 8
  %268 = alloca %"class.testing::AssertionResult", align 8
  %269 = alloca %"class.std::__cxx11::basic_string", align 8
  %270 = alloca %"class.fmt::v10::basic_format_string.149", align 8
  %271 = alloca x86_fp80, align 16
  %272 = alloca %"class.testing::Message", align 8
  %273 = alloca %"class.testing::internal::AssertHelper", align 8
  %274 = alloca %"class.testing::AssertionResult", align 8
  %275 = alloca %"class.std::__cxx11::basic_string", align 8
  %276 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %277 = alloca double, align 8
  %278 = alloca %"class.testing::Message", align 8
  %279 = alloca %"class.testing::internal::AssertHelper", align 8
  %280 = alloca %"class.testing::AssertionResult", align 8
  %281 = alloca %"class.std::__cxx11::basic_string", align 8
  %282 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %283 = alloca double, align 8
  %284 = alloca %"class.testing::Message", align 8
  %285 = alloca %"class.testing::internal::AssertHelper", align 8
  %286 = alloca %"class.testing::AssertionResult", align 8
  %287 = alloca %"class.std::__cxx11::basic_string", align 8
  %288 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %289 = alloca double, 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.fmt::v10::basic_format_string.185", align 8
  %295 = alloca float, align 4
  %296 = alloca %"class.testing::Message", align 8
  %297 = alloca %"class.testing::internal::AssertHelper", align 8
  %298 = alloca %"class.testing::AssertionResult", align 8
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %301 = alloca double, align 8
  %302 = alloca %"class.testing::Message", align 8
  %303 = alloca %"class.testing::internal::AssertHelper", align 8
  %304 = alloca %"class.testing::AssertionResult", align 8
  %305 = alloca %"class.std::__cxx11::basic_string", align 8
  %306 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %307 = alloca double, align 8
  %308 = alloca %"class.testing::Message", align 8
  %309 = alloca %"class.testing::internal::AssertHelper", align 8
  %310 = alloca %"class.testing::AssertionResult", align 8
  %311 = alloca %"class.std::__cxx11::basic_string", align 8
  %312 = alloca %"class.std::allocator", align 1
  %313 = alloca %"class.std::__cxx11::basic_string", align 8
  %314 = alloca %"class.fmt::v10::basic_format_string.152", align 8
  %315 = alloca %"class.fmt::v10::basic_string_view", align 8
  %316 = alloca ptr, align 8
  %317 = alloca ptr, align 8
  %318 = alloca %"class.testing::Message", align 8
  %319 = alloca %"class.testing::internal::AssertHelper", align 8
  %320 = alloca %"class.testing::AssertionResult", align 8
  %321 = alloca %"class.std::__cxx11::basic_string", align 8
  %322 = alloca %"class.std::allocator", align 1
  %323 = alloca %"class.std::__cxx11::basic_string", align 8
  %324 = alloca %"class.fmt::v10::basic_format_string.152", align 8
  %325 = alloca %"class.fmt::v10::basic_string_view", align 8
  %326 = alloca ptr, align 8
  %327 = alloca ptr, align 8
  %328 = alloca %"class.testing::Message", align 8
  %329 = alloca %"class.testing::internal::AssertHelper", align 8
  %330 = alloca %"class.testing::AssertionResult", align 8
  %331 = alloca %"class.std::__cxx11::basic_string", align 8
  %332 = alloca %"class.std::allocator", align 1
  %333 = alloca %"class.std::__cxx11::basic_string", align 8
  %334 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %335 = alloca %"class.fmt::v10::basic_string_view", align 8
  %336 = alloca double, align 8
  %337 = alloca i32, align 4
  %338 = alloca ptr, align 8
  %339 = alloca %"class.testing::Message", align 8
  %340 = alloca %"class.testing::internal::AssertHelper", align 8
  %341 = alloca %"class.testing::AssertionResult", align 8
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::allocator", align 1
  %344 = alloca %"class.std::__cxx11::basic_string", align 8
  %345 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %346 = alloca double, align 8
  %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.151", align 8
  %353 = alloca %"class.testing::Message", align 8
  %354 = alloca %"class.testing::internal::AssertHelper", align 8
  %355 = alloca %"class.testing::AssertionResult", align 8
  %356 = alloca %"class.std::__cxx11::basic_string", align 8
  %357 = alloca %"class.fmt::v10::basic_format_string.186", align 8
  %358 = alloca %"class.testing::Message", align 8
  %359 = alloca %"class.testing::internal::AssertHelper", align 8
  %360 = alloca %"class.testing::AssertionResult", align 8
  %361 = alloca %"class.std::__cxx11::basic_string", align 8
  %362 = alloca %"class.fmt::v10::basic_format_string.187", align 8
  %363 = alloca %"class.testing::Message", align 8
  %364 = 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.917, i32 noundef -1)
  %365 = getelementptr inbounds i8, ptr %2, i64 4
  call void @_Z9incrementPc(ptr noundef nonnull %365)
  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)
  %366 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
  br i1 %366, label %367, label %436

367:                                              ; 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.785, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %368 unwind label %383

368:                                              ; preds = %367
  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
  %369 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %370 unwind label %385

370:                                              ; preds = %368
  br i1 %369, label %371, label %.critedge

371:                                              ; preds = %370
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull %2)
          to label %372 unwind label %385

372:                                              ; preds = %371
  %373 = load ptr, ptr %8, align 8
  %374 = getelementptr inbounds i8, ptr %8, i64 8
  %375 = load i64, ptr %374, align 8
  %376 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %373, i64 %375)
  %377 = extractvalue { ptr, i64 } %376, 0
  %378 = extractvalue { ptr, i64 } %376, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr %377, i64 %378)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #11
  store double 0.000000e+00, ptr %9, align 8, !tbaa !5
  %379 = load ptr, ptr %7, align 8
  %380 = getelementptr inbounds i8, ptr %7, i64 8
  %381 = load i64, ptr %380, 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 %379, i64 %381, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %382 unwind label %387

382:                                              ; preds = %372
  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

383:                                              ; preds = %367
  %384 = 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 %435

385:                                              ; preds = %371, %368
  %386 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %389

387:                                              ; preds = %372
  %388 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  br label %389

389:                                              ; preds = %387, %385
  %.pn = phi { ptr, i32 } [ %388, %387 ], [ %386, %385 ]
  %.0 = extractvalue { ptr, i32 } %.pn, 0
  %.0268 = extractvalue { ptr, i32 } %.pn, 1
  %390 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %391 = icmp eq i32 %.0268, %390
  %392 = call ptr @__cxa_begin_catch(ptr %.0) #11
  br i1 %391, label %393, label %417

393:                                              ; preds = %389
  %394 = load ptr, ptr %392, align 8, !tbaa !9
  %395 = getelementptr inbounds i8, ptr %394, i64 16
  %396 = load ptr, ptr %395, align 8
  %397 = call noundef ptr %396(ptr noundef nonnull align 8 dereferenceable(16) %392) #11
  %398 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef %397)
          to label %399 unwind label %424

399:                                              ; preds = %393
  br i1 %398, label %400, label %428

400:                                              ; preds = %399
  %401 = 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 %402 unwind label %424

402:                                              ; preds = %400
  %403 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %401, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %404 unwind label %424

404:                                              ; preds = %402
  %405 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %403, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %406 unwind label %424

406:                                              ; preds = %404
  %407 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %405, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %408 unwind label %424

408:                                              ; preds = %406
  %409 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %407, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %410 unwind label %424

410:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  %411 = load ptr, ptr %392, align 8, !tbaa !9
  %412 = getelementptr inbounds i8, ptr %411, i64 16
  %413 = load ptr, ptr %412, align 8
  %414 = call noundef ptr %413(ptr noundef nonnull align 8 dereferenceable(16) %392) #11
  store ptr %414, ptr %10, align 8, !tbaa !11
  %415 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %409, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %416 unwind label %426

416:                                              ; preds = %410
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  br label %428

417:                                              ; preds = %389
  %418 = 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 %419 unwind label %420

419:                                              ; preds = %417
  invoke void @__cxa_end_catch()
          to label %.thread unwind label %422

420:                                              ; preds = %417
  %421 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %434 unwind label %2984

422:                                              ; preds = %.critedge, %419
  %423 = landingpad { ptr, i32 }
          cleanup
  br label %434

424:                                              ; preds = %408, %406, %404, %402, %400, %393
  %425 = landingpad { ptr, i32 }
          cleanup
  br label %433

426:                                              ; preds = %410
  %427 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  br label %433

428:                                              ; preds = %399, %416
  invoke void @__cxa_end_catch()
          to label %429 unwind label %431

429:                                              ; preds = %428
  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 %398, label %436, label %.thread1201

.critedge:                                        ; preds = %370, %382
  %430 = 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 %422

431:                                              ; preds = %428
  %432 = landingpad { ptr, i32 }
          cleanup
  br label %434

433:                                              ; preds = %426, %424
  %.pn649 = phi { ptr, i32 } [ %427, %426 ], [ %425, %424 ]
  invoke void @__cxa_end_catch()
          to label %434 unwind label %2984

.thread:                                          ; preds = %419, %.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 %436

434:                                              ; preds = %431, %433, %420, %422
  %.pn653 = phi { ptr, i32 } [ %423, %422 ], [ %421, %420 ], [ %432, %431 ], [ %.pn649, %433 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  br label %435

435:                                              ; preds = %434, %383
  %.pn653.pn = phi { ptr, i32 } [ %.pn653, %434 ], [ %384, %383 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  br label %471

436:                                              ; preds = %429, %.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 %437 unwind label %442

437:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #11
  %438 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
          to label %439 unwind label %444

439:                                              ; preds = %437
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %12, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 898, ptr noundef %438)
          to label %440 unwind label %444

440:                                              ; preds = %439
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %441 unwind label %446

441:                                              ; preds = %440
  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 %.thread1201

442:                                              ; preds = %436
  %443 = landingpad { ptr, i32 }
          cleanup
  br label %449

444:                                              ; preds = %439, %437
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %448

446:                                              ; preds = %440
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #11
  br label %448

448:                                              ; preds = %446, %444
  %.pn656 = phi { ptr, i32 } [ %447, %446 ], [ %445, %444 ]
  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 %449

449:                                              ; preds = %448, %442
  %.pn656.pn = phi { ptr, i32 } [ %.pn656, %448 ], [ %443, %442 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  br label %471

.thread1201:                                      ; preds = %429, %441
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #11
  %450 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #12
  %451 = getelementptr inbounds [256 x i8], ptr %2, i64 0, i64 %450
  store i8 125, ptr %451, align 1, !tbaa !13
  %452 = add i64 %450, 1
  %453 = getelementptr inbounds [256 x i8], ptr %2, i64 0, i64 %452
  store i8 0, ptr %453, 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)
  %454 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
  br i1 %454, label %455, label %525

455:                                              ; preds = %.thread1201
  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.785, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %456 unwind label %472

456:                                              ; preds = %455
  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
  %457 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %458 unwind label %474

458:                                              ; preds = %456
  br i1 %457, label %459, label %.critedge1085

459:                                              ; preds = %458
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull %2)
          to label %460 unwind label %474

460:                                              ; preds = %459
  %461 = load ptr, ptr %18, align 8
  %462 = getelementptr inbounds i8, ptr %18, i64 8
  %463 = load i64, ptr %462, align 8
  %464 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %461, i64 %463)
  %465 = extractvalue { ptr, i64 } %464, 0
  %466 = extractvalue { ptr, i64 } %464, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr %465, i64 %466)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #11
  store double 0.000000e+00, ptr %19, align 8, !tbaa !5
  %467 = load ptr, ptr %17, align 8
  %468 = getelementptr inbounds i8, ptr %17, i64 8
  %469 = load i64, ptr %468, 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 %467, i64 %469, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %470 unwind label %476

470:                                              ; preds = %460
  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 %.critedge1085

471:                                              ; preds = %449, %435
  %.pn656.pn.pn = phi { ptr, i32 } [ %.pn656.pn, %449 ], [ %.pn653.pn, %435 ]
  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 %2983

472:                                              ; preds = %455
  %473 = 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 %524

474:                                              ; preds = %459, %456
  %475 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %478

476:                                              ; preds = %460
  %477 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  br label %478

478:                                              ; preds = %476, %474
  %.pn660 = phi { ptr, i32 } [ %477, %476 ], [ %475, %474 ]
  %.8 = extractvalue { ptr, i32 } %.pn660, 0
  %.8276 = extractvalue { ptr, i32 } %.pn660, 1
  %479 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %480 = icmp eq i32 %.8276, %479
  %481 = call ptr @__cxa_begin_catch(ptr %.8) #11
  br i1 %480, label %482, label %506

482:                                              ; preds = %478
  %483 = load ptr, ptr %481, align 8, !tbaa !9
  %484 = getelementptr inbounds i8, ptr %483, i64 16
  %485 = load ptr, ptr %484, align 8
  %486 = call noundef ptr %485(ptr noundef nonnull align 8 dereferenceable(16) %481) #11
  %487 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %486)
          to label %488 unwind label %513

488:                                              ; preds = %482
  br i1 %487, label %489, label %517

489:                                              ; preds = %488
  %490 = 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 %491 unwind label %513

491:                                              ; preds = %489
  %492 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %490, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %493 unwind label %513

493:                                              ; preds = %491
  %494 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %492, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %495 unwind label %513

495:                                              ; preds = %493
  %496 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %494, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %497 unwind label %513

497:                                              ; preds = %495
  %498 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %496, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %499 unwind label %513

499:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  %500 = load ptr, ptr %481, align 8, !tbaa !9
  %501 = getelementptr inbounds i8, ptr %500, i64 16
  %502 = load ptr, ptr %501, align 8
  %503 = call noundef ptr %502(ptr noundef nonnull align 8 dereferenceable(16) %481) #11
  store ptr %503, ptr %20, align 8, !tbaa !11
  %504 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %498, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %505 unwind label %515

505:                                              ; preds = %499
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  br label %517

506:                                              ; preds = %478
  %507 = 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 %508 unwind label %509

508:                                              ; preds = %506
  invoke void @__cxa_end_catch()
          to label %.thread1206 unwind label %511

509:                                              ; preds = %506
  %510 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %523 unwind label %2984

511:                                              ; preds = %.critedge1085, %508
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %523

513:                                              ; preds = %497, %495, %493, %491, %489, %482
  %514 = landingpad { ptr, i32 }
          cleanup
  br label %522

515:                                              ; preds = %499
  %516 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  br label %522

517:                                              ; preds = %488, %505
  invoke void @__cxa_end_catch()
          to label %518 unwind label %520

518:                                              ; preds = %517
  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 %487, label %525, label %.thread1209

.critedge1085:                                    ; preds = %458, %470
  %519 = 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 %.thread1206 unwind label %511

520:                                              ; preds = %517
  %521 = landingpad { ptr, i32 }
          cleanup
  br label %523

522:                                              ; preds = %515, %513
  %.pn662 = phi { ptr, i32 } [ %516, %515 ], [ %514, %513 ]
  invoke void @__cxa_end_catch()
          to label %523 unwind label %2984

.thread1206:                                      ; preds = %508, %.critedge1085
  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 %525

523:                                              ; preds = %520, %522, %509, %511
  %.pn666 = phi { ptr, i32 } [ %512, %511 ], [ %510, %509 ], [ %521, %520 ], [ %.pn662, %522 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  br label %524

524:                                              ; preds = %523, %472
  %.pn666.pn = phi { ptr, i32 } [ %.pn666, %523 ], [ %473, %472 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  br label %556

525:                                              ; preds = %518, %.thread1206, %.thread1201
  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 %526 unwind label %531

526:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %527 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %528 unwind label %533

528:                                              ; preds = %526
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %22, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 903, ptr noundef %527)
          to label %529 unwind label %533

529:                                              ; preds = %528
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %530 unwind label %535

530:                                              ; preds = %529
  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 %.thread1209

531:                                              ; preds = %525
  %532 = landingpad { ptr, i32 }
          cleanup
  br label %538

533:                                              ; preds = %528, %526
  %534 = landingpad { ptr, i32 }
          cleanup
  br label %537

535:                                              ; preds = %529
  %536 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #11
  br label %537

537:                                              ; preds = %535, %533
  %.pn669 = phi { ptr, i32 } [ %536, %535 ], [ %534, %533 ]
  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 %538

538:                                              ; preds = %537, %531
  %.pn669.pn = phi { ptr, i32 } [ %.pn669, %537 ], [ %532, %531 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  br label %556

.thread1209:                                      ; preds = %518, %530
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #11
  call void (ptr, ptr, ...) @_Z12safe_sprintfILm256EEvRAT__cPKcz(ptr noundef nonnull align 1 dereferenceable(256) %2, ptr noundef nonnull @.str.917, i32 noundef -2147483648)
  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)
  %539 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
  br i1 %539, label %540, label %610

540:                                              ; preds = %.thread1209
  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.785, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %541 unwind label %557

541:                                              ; preds = %540
  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
  %542 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %543 unwind label %559

543:                                              ; preds = %541
  br i1 %542, label %544, label %.critedge1089

544:                                              ; preds = %543
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull %2)
          to label %545 unwind label %559

545:                                              ; preds = %544
  %546 = load ptr, ptr %28, align 8
  %547 = getelementptr inbounds i8, ptr %28, i64 8
  %548 = load i64, ptr %547, align 8
  %549 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %546, i64 %548)
  %550 = extractvalue { ptr, i64 } %549, 0
  %551 = extractvalue { ptr, i64 } %549, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr %550, i64 %551)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #11
  store double 0.000000e+00, ptr %29, align 8, !tbaa !5
  %552 = load ptr, ptr %27, align 8
  %553 = getelementptr inbounds i8, ptr %27, i64 8
  %554 = load i64, ptr %553, 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 %552, i64 %554, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %555 unwind label %561

555:                                              ; preds = %545
  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 %.critedge1089

556:                                              ; preds = %538, %524
  %.pn669.pn.pn = phi { ptr, i32 } [ %.pn669.pn, %538 ], [ %.pn666.pn, %524 ]
  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 %2983

557:                                              ; preds = %540
  %558 = 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 %609

559:                                              ; preds = %544, %541
  %560 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %563

561:                                              ; preds = %545
  %562 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  br label %563

563:                                              ; preds = %561, %559
  %.pn673 = phi { ptr, i32 } [ %562, %561 ], [ %560, %559 ]
  %.16 = extractvalue { ptr, i32 } %.pn673, 0
  %.16284 = extractvalue { ptr, i32 } %.pn673, 1
  %564 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %565 = icmp eq i32 %.16284, %564
  %566 = call ptr @__cxa_begin_catch(ptr %.16) #11
  br i1 %565, label %567, label %591

567:                                              ; preds = %563
  %568 = load ptr, ptr %566, align 8, !tbaa !9
  %569 = getelementptr inbounds i8, ptr %568, i64 16
  %570 = load ptr, ptr %569, align 8
  %571 = call noundef ptr %570(ptr noundef nonnull align 8 dereferenceable(16) %566) #11
  %572 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef %571)
          to label %573 unwind label %598

573:                                              ; preds = %567
  br i1 %572, label %574, label %602

574:                                              ; preds = %573
  %575 = 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 %576 unwind label %598

576:                                              ; preds = %574
  %577 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %575, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %578 unwind label %598

578:                                              ; preds = %576
  %579 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %577, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %580 unwind label %598

580:                                              ; preds = %578
  %581 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %579, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %582 unwind label %598

582:                                              ; preds = %580
  %583 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %581, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %584 unwind label %598

584:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #11
  %585 = load ptr, ptr %566, align 8, !tbaa !9
  %586 = getelementptr inbounds i8, ptr %585, i64 16
  %587 = load ptr, ptr %586, align 8
  %588 = call noundef ptr %587(ptr noundef nonnull align 8 dereferenceable(16) %566) #11
  store ptr %588, ptr %30, align 8, !tbaa !11
  %589 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %583, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %590 unwind label %600

590:                                              ; preds = %584
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  br label %602

591:                                              ; preds = %563
  %592 = 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 %593 unwind label %594

593:                                              ; preds = %591
  invoke void @__cxa_end_catch()
          to label %.thread1214 unwind label %596

594:                                              ; preds = %591
  %595 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %608 unwind label %2984

596:                                              ; preds = %.critedge1089, %593
  %597 = landingpad { ptr, i32 }
          cleanup
  br label %608

598:                                              ; preds = %582, %580, %578, %576, %574, %567
  %599 = landingpad { ptr, i32 }
          cleanup
  br label %607

600:                                              ; preds = %584
  %601 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  br label %607

602:                                              ; preds = %573, %590
  invoke void @__cxa_end_catch()
          to label %603 unwind label %605

603:                                              ; preds = %602
  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 %572, label %610, label %.thread1217

.critedge1089:                                    ; preds = %543, %555
  %604 = 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 %.thread1214 unwind label %596

605:                                              ; preds = %602
  %606 = landingpad { ptr, i32 }
          cleanup
  br label %608

607:                                              ; preds = %600, %598
  %.pn675 = phi { ptr, i32 } [ %601, %600 ], [ %599, %598 ]
  invoke void @__cxa_end_catch()
          to label %608 unwind label %2984

.thread1214:                                      ; preds = %593, %.critedge1089
  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 %610

608:                                              ; preds = %605, %607, %594, %596
  %.pn679 = phi { ptr, i32 } [ %597, %596 ], [ %595, %594 ], [ %606, %605 ], [ %.pn675, %607 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  br label %609

609:                                              ; preds = %608, %557
  %.pn679.pn = phi { ptr, i32 } [ %.pn679, %608 ], [ %558, %557 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #11
  br label %641

610:                                              ; preds = %603, %.thread1214, %.thread1209
  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 %611 unwind label %616

611:                                              ; preds = %610
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #11
  %612 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %613 unwind label %618

613:                                              ; preds = %611
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %32, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 907, ptr noundef %612)
          to label %614 unwind label %618

614:                                              ; preds = %613
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %615 unwind label %620

615:                                              ; preds = %614
  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 %.thread1217

616:                                              ; preds = %610
  %617 = landingpad { ptr, i32 }
          cleanup
  br label %623

618:                                              ; preds = %613, %611
  %619 = landingpad { ptr, i32 }
          cleanup
  br label %622

620:                                              ; preds = %614
  %621 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  br label %622

622:                                              ; preds = %620, %618
  %.pn682 = phi { ptr, i32 } [ %621, %620 ], [ %619, %618 ]
  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 %623

623:                                              ; preds = %622, %616
  %.pn682.pn = phi { ptr, i32 } [ %.pn682, %622 ], [ %617, %616 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #11
  br label %641

.thread1217:                                      ; preds = %603, %615
  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 (ptr, ptr, ...) @_Z12safe_sprintfILm256EEvRAT__cPKcz(ptr noundef nonnull align 1 dereferenceable(256) %2, ptr noundef nonnull @.str.921, i32 noundef -2147483648)
  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)
  %624 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
  br i1 %624, label %625, label %695

625:                                              ; preds = %.thread1217
  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.785, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %626 unwind label %642

626:                                              ; preds = %625
  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
  %627 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %628 unwind label %644

628:                                              ; preds = %626
  br i1 %627, label %629, label %.critedge1093

629:                                              ; preds = %628
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull %2)
          to label %630 unwind label %644

630:                                              ; preds = %629
  %631 = load ptr, ptr %38, align 8
  %632 = getelementptr inbounds i8, ptr %38, i64 8
  %633 = load i64, ptr %632, align 8
  %634 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %631, i64 %633)
  %635 = extractvalue { ptr, i64 } %634, 0
  %636 = extractvalue { ptr, i64 } %634, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr %635, i64 %636)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #11
  store double 0.000000e+00, ptr %39, align 8, !tbaa !5
  %637 = load ptr, ptr %37, align 8
  %638 = getelementptr inbounds i8, ptr %37, i64 8
  %639 = load i64, ptr %638, 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 %637, i64 %639, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %640 unwind label %646

640:                                              ; preds = %630
  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 %.critedge1093

641:                                              ; preds = %623, %609
  %.pn682.pn.pn = phi { ptr, i32 } [ %.pn682.pn, %623 ], [ %.pn679.pn, %609 ]
  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 %2983

642:                                              ; preds = %625
  %643 = 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 %694

644:                                              ; preds = %629, %626
  %645 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %648

646:                                              ; preds = %630
  %647 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #11
  br label %648

648:                                              ; preds = %646, %644
  %.pn686 = phi { ptr, i32 } [ %647, %646 ], [ %645, %644 ]
  %.24 = extractvalue { ptr, i32 } %.pn686, 0
  %.24292 = extractvalue { ptr, i32 } %.pn686, 1
  %649 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %650 = icmp eq i32 %.24292, %649
  %651 = call ptr @__cxa_begin_catch(ptr %.24) #11
  br i1 %650, label %652, label %676

652:                                              ; preds = %648
  %653 = load ptr, ptr %651, align 8, !tbaa !9
  %654 = getelementptr inbounds i8, ptr %653, i64 16
  %655 = load ptr, ptr %654, align 8
  %656 = call noundef ptr %655(ptr noundef nonnull align 8 dereferenceable(16) %651) #11
  %657 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef %656)
          to label %658 unwind label %683

658:                                              ; preds = %652
  br i1 %657, label %659, label %687

659:                                              ; preds = %658
  %660 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 1 dereferenceable(91) @.str.919)
          to label %661 unwind label %683

661:                                              ; preds = %659
  %662 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %660, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %663 unwind label %683

663:                                              ; preds = %661
  %664 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %662, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %665 unwind label %683

665:                                              ; preds = %663
  %666 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %664, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %667 unwind label %683

667:                                              ; preds = %665
  %668 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %666, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %669 unwind label %683

669:                                              ; preds = %667
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #11
  %670 = load ptr, ptr %651, align 8, !tbaa !9
  %671 = getelementptr inbounds i8, ptr %670, i64 16
  %672 = load ptr, ptr %671, align 8
  %673 = call noundef ptr %672(ptr noundef nonnull align 8 dereferenceable(16) %651) #11
  store ptr %673, ptr %40, align 8, !tbaa !11
  %674 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %668, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %675 unwind label %685

675:                                              ; preds = %669
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  br label %687

676:                                              ; preds = %648
  %677 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 1 dereferenceable(134) @.str.918)
          to label %678 unwind label %679

678:                                              ; preds = %676
  invoke void @__cxa_end_catch()
          to label %.thread1222 unwind label %681

679:                                              ; preds = %676
  %680 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %693 unwind label %2984

681:                                              ; preds = %.critedge1093, %678
  %682 = landingpad { ptr, i32 }
          cleanup
  br label %693

683:                                              ; preds = %667, %665, %663, %661, %659, %652
  %684 = landingpad { ptr, i32 }
          cleanup
  br label %692

685:                                              ; preds = %669
  %686 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  br label %692

687:                                              ; preds = %658, %675
  invoke void @__cxa_end_catch()
          to label %688 unwind label %690

688:                                              ; preds = %687
  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 %657, label %695, label %.thread1225

.critedge1093:                                    ; preds = %628, %640
  %689 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 1 dereferenceable(125) @.str.920)
          to label %.thread1222 unwind label %681

690:                                              ; preds = %687
  %691 = landingpad { ptr, i32 }
          cleanup
  br label %693

692:                                              ; preds = %685, %683
  %.pn688 = phi { ptr, i32 } [ %686, %685 ], [ %684, %683 ]
  invoke void @__cxa_end_catch()
          to label %693 unwind label %2984

.thread1222:                                      ; preds = %678, %.critedge1093
  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 %695

693:                                              ; preds = %690, %692, %679, %681
  %.pn692 = phi { ptr, i32 } [ %682, %681 ], [ %680, %679 ], [ %691, %690 ], [ %.pn688, %692 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  br label %694

694:                                              ; preds = %693, %642
  %.pn692.pn = phi { ptr, i32 } [ %.pn692, %693 ], [ %643, %642 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #11
  br label %726

695:                                              ; preds = %688, %.thread1222, %.thread1217
  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 %696 unwind label %701

696:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #11
  %697 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %698 unwind label %703

698:                                              ; preds = %696
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %42, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 910, ptr noundef %697)
          to label %699 unwind label %703

699:                                              ; preds = %698
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %700 unwind label %705

700:                                              ; preds = %699
  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 %.thread1225

701:                                              ; preds = %695
  %702 = landingpad { ptr, i32 }
          cleanup
  br label %708

703:                                              ; preds = %698, %696
  %704 = landingpad { ptr, i32 }
          cleanup
  br label %707

705:                                              ; preds = %699
  %706 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #11
  br label %707

707:                                              ; preds = %705, %703
  %.pn695 = phi { ptr, i32 } [ %706, %705 ], [ %704, %703 ]
  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 %708

708:                                              ; preds = %707, %701
  %.pn695.pn = phi { ptr, i32 } [ %.pn695, %707 ], [ %702, %701 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #11
  br label %726

.thread1225:                                      ; preds = %688, %700
  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)
  %709 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
  br i1 %709, label %710, label %780

710:                                              ; preds = %.thread1225
  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.922, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %711 unwind label %727

711:                                              ; preds = %710
  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
  %712 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %713 unwind label %729

713:                                              ; preds = %711
  br i1 %712, label %714, label %.critedge1097

714:                                              ; preds = %713
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull @.str.923)
          to label %715 unwind label %729

715:                                              ; preds = %714
  %716 = load ptr, ptr %48, align 8
  %717 = getelementptr inbounds i8, ptr %48, i64 8
  %718 = load i64, ptr %717, align 8
  %719 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %716, i64 %718)
  %720 = extractvalue { ptr, i64 } %719, 0
  %721 = extractvalue { ptr, i64 } %719, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr %720, i64 %721)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #11
  store double 0.000000e+00, ptr %49, align 8, !tbaa !5
  %722 = load ptr, ptr %47, align 8
  %723 = getelementptr inbounds i8, ptr %47, i64 8
  %724 = load i64, ptr %723, 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 %722, i64 %724, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %725 unwind label %731

725:                                              ; preds = %715
  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 %.critedge1097

726:                                              ; preds = %708, %694
  %.pn695.pn.pn = phi { ptr, i32 } [ %.pn695.pn, %708 ], [ %.pn692.pn, %694 ]
  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 %2983

727:                                              ; preds = %710
  %728 = 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 %779

729:                                              ; preds = %714, %711
  %730 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %733

731:                                              ; preds = %715
  %732 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #11
  br label %733

733:                                              ; preds = %731, %729
  %.pn699 = phi { ptr, i32 } [ %732, %731 ], [ %730, %729 ]
  %.32 = extractvalue { ptr, i32 } %.pn699, 0
  %.32300 = extractvalue { ptr, i32 } %.pn699, 1
  %734 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %735 = icmp eq i32 %.32300, %734
  %736 = call ptr @__cxa_begin_catch(ptr %.32) #11
  br i1 %735, label %737, label %761

737:                                              ; preds = %733
  %738 = load ptr, ptr %736, align 8, !tbaa !9
  %739 = getelementptr inbounds i8, ptr %738, i64 16
  %740 = load ptr, ptr %739, align 8
  %741 = call noundef ptr %740(ptr noundef nonnull align 8 dereferenceable(16) %736) #11
  %742 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef %741)
          to label %743 unwind label %768

743:                                              ; preds = %737
  br i1 %742, label %744, label %772

744:                                              ; preds = %743
  %745 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA87_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 1 dereferenceable(87) @.str.925)
          to label %746 unwind label %768

746:                                              ; preds = %744
  %747 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %745, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %748 unwind label %768

748:                                              ; preds = %746
  %749 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %747, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %750 unwind label %768

750:                                              ; preds = %748
  %751 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %749, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %752 unwind label %768

752:                                              ; preds = %750
  %753 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %751, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %754 unwind label %768

754:                                              ; preds = %752
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #11
  %755 = load ptr, ptr %736, align 8, !tbaa !9
  %756 = getelementptr inbounds i8, ptr %755, i64 16
  %757 = load ptr, ptr %756, align 8
  %758 = call noundef ptr %757(ptr noundef nonnull align 8 dereferenceable(16) %736) #11
  store ptr %758, ptr %50, align 8, !tbaa !11
  %759 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %753, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %760 unwind label %770

760:                                              ; preds = %754
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #11
  br label %772

761:                                              ; preds = %733
  %762 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 1 dereferenceable(130) @.str.924)
          to label %763 unwind label %764

763:                                              ; preds = %761
  invoke void @__cxa_end_catch()
          to label %.thread1230 unwind label %766

764:                                              ; preds = %761
  %765 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %778 unwind label %2984

766:                                              ; preds = %.critedge1097, %763
  %767 = landingpad { ptr, i32 }
          cleanup
  br label %778

768:                                              ; preds = %752, %750, %748, %746, %744, %737
  %769 = landingpad { ptr, i32 }
          cleanup
  br label %777

770:                                              ; preds = %754
  %771 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #11
  br label %777

772:                                              ; preds = %743, %760
  invoke void @__cxa_end_catch()
          to label %773 unwind label %775

773:                                              ; preds = %772
  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 %742, label %780, label %.thread1233

.critedge1097:                                    ; preds = %713, %725
  %774 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA121_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 1 dereferenceable(121) @.str.926)
          to label %.thread1230 unwind label %766

775:                                              ; preds = %772
  %776 = landingpad { ptr, i32 }
          cleanup
  br label %778

777:                                              ; preds = %770, %768
  %.pn701 = phi { ptr, i32 } [ %771, %770 ], [ %769, %768 ]
  invoke void @__cxa_end_catch()
          to label %778 unwind label %2984

.thread1230:                                      ; preds = %763, %.critedge1097
  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 %780

778:                                              ; preds = %775, %777, %764, %766
  %.pn705 = phi { ptr, i32 } [ %767, %766 ], [ %765, %764 ], [ %776, %775 ], [ %.pn701, %777 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #11
  br label %779

779:                                              ; preds = %778, %727
  %.pn705.pn = phi { ptr, i32 } [ %.pn705, %778 ], [ %728, %727 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #11
  br label %811

780:                                              ; preds = %773, %.thread1230, %.thread1225
  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 %781 unwind label %786

781:                                              ; preds = %780
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #11
  %782 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %783 unwind label %788

783:                                              ; preds = %781
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %52, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 913, ptr noundef %782)
          to label %784 unwind label %788

784:                                              ; preds = %783
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %785 unwind label %790

785:                                              ; preds = %784
  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 %.thread1233

786:                                              ; preds = %780
  %787 = landingpad { ptr, i32 }
          cleanup
  br label %793

788:                                              ; preds = %783, %781
  %789 = landingpad { ptr, i32 }
          cleanup
  br label %792

790:                                              ; preds = %784
  %791 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #11
  br label %792

792:                                              ; preds = %790, %788
  %.pn708 = phi { ptr, i32 } [ %791, %790 ], [ %789, %788 ]
  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 %793

793:                                              ; preds = %792, %786
  %.pn708.pn = phi { ptr, i32 } [ %.pn708, %792 ], [ %787, %786 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #11
  br label %811

.thread1233:                                      ; preds = %773, %785
  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)
  %794 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %53)
  br i1 %794, label %795, label %865

795:                                              ; preds = %.thread1233
  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.922, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %796 unwind label %812

796:                                              ; preds = %795
  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
  %797 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %798 unwind label %814

798:                                              ; preds = %796
  br i1 %797, label %799, label %.critedge1101

799:                                              ; preds = %798
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull @.str.927)
          to label %800 unwind label %814

800:                                              ; preds = %799
  %801 = load ptr, ptr %58, align 8
  %802 = getelementptr inbounds i8, ptr %58, i64 8
  %803 = load i64, ptr %802, align 8
  %804 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %801, i64 %803)
  %805 = extractvalue { ptr, i64 } %804, 0
  %806 = extractvalue { ptr, i64 } %804, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr %805, i64 %806)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #11
  store double 0.000000e+00, ptr %59, align 8, !tbaa !5
  %807 = load ptr, ptr %57, align 8
  %808 = getelementptr inbounds i8, ptr %57, i64 8
  %809 = load i64, ptr %808, 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 %807, i64 %809, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %810 unwind label %816

810:                                              ; preds = %800
  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 %.critedge1101

811:                                              ; preds = %793, %779
  %.pn708.pn.pn = phi { ptr, i32 } [ %.pn708.pn, %793 ], [ %.pn705.pn, %779 ]
  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 %2983

812:                                              ; preds = %795
  %813 = 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 %864

814:                                              ; preds = %799, %796
  %815 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %818

816:                                              ; preds = %800
  %817 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #11
  br label %818

818:                                              ; preds = %816, %814
  %.pn712 = phi { ptr, i32 } [ %817, %816 ], [ %815, %814 ]
  %.40 = extractvalue { ptr, i32 } %.pn712, 0
  %.40308 = extractvalue { ptr, i32 } %.pn712, 1
  %819 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %820 = icmp eq i32 %.40308, %819
  %821 = call ptr @__cxa_begin_catch(ptr %.40) #11
  br i1 %820, label %822, label %846

822:                                              ; preds = %818
  %823 = load ptr, ptr %821, align 8, !tbaa !9
  %824 = getelementptr inbounds i8, ptr %823, i64 16
  %825 = load ptr, ptr %824, align 8
  %826 = call noundef ptr %825(ptr noundef nonnull align 8 dereferenceable(16) %821) #11
  %827 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef %826)
          to label %828 unwind label %853

828:                                              ; preds = %822
  br i1 %827, label %829, label %857

829:                                              ; preds = %828
  %830 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 1 dereferenceable(88) @.str.929)
          to label %831 unwind label %853

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

833:                                              ; preds = %831
  %834 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %832, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %835 unwind label %853

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

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

839:                                              ; preds = %837
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #11
  %840 = load ptr, ptr %821, align 8, !tbaa !9
  %841 = getelementptr inbounds i8, ptr %840, i64 16
  %842 = load ptr, ptr %841, align 8
  %843 = call noundef ptr %842(ptr noundef nonnull align 8 dereferenceable(16) %821) #11
  store ptr %843, ptr %60, align 8, !tbaa !11
  %844 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %838, ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %845 unwind label %855

845:                                              ; preds = %839
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #11
  br label %857

846:                                              ; preds = %818
  %847 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 1 dereferenceable(131) @.str.928)
          to label %848 unwind label %849

848:                                              ; preds = %846
  invoke void @__cxa_end_catch()
          to label %.thread1238 unwind label %851

849:                                              ; preds = %846
  %850 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %863 unwind label %2984

851:                                              ; preds = %.critedge1101, %848
  %852 = landingpad { ptr, i32 }
          cleanup
  br label %863

853:                                              ; preds = %837, %835, %833, %831, %829, %822
  %854 = landingpad { ptr, i32 }
          cleanup
  br label %862

855:                                              ; preds = %839
  %856 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #11
  br label %862

857:                                              ; preds = %828, %845
  invoke void @__cxa_end_catch()
          to label %858 unwind label %860

858:                                              ; preds = %857
  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 %827, label %865, label %.thread1241

.critedge1101:                                    ; preds = %798, %810
  %859 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 1 dereferenceable(122) @.str.930)
          to label %.thread1238 unwind label %851

860:                                              ; preds = %857
  %861 = landingpad { ptr, i32 }
          cleanup
  br label %863

862:                                              ; preds = %855, %853
  %.pn714 = phi { ptr, i32 } [ %856, %855 ], [ %854, %853 ]
  invoke void @__cxa_end_catch()
          to label %863 unwind label %2984

.thread1238:                                      ; preds = %848, %.critedge1101
  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 %865

863:                                              ; preds = %860, %862, %849, %851
  %.pn718 = phi { ptr, i32 } [ %852, %851 ], [ %850, %849 ], [ %861, %860 ], [ %.pn714, %862 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  br label %864

864:                                              ; preds = %863, %812
  %.pn718.pn = phi { ptr, i32 } [ %.pn718, %863 ], [ %813, %812 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #11
  br label %896

865:                                              ; preds = %858, %.thread1238, %.thread1233
  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 %866 unwind label %871

866:                                              ; preds = %865
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #11
  %867 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %53)
          to label %868 unwind label %873

868:                                              ; preds = %866
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %62, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 915, ptr noundef %867)
          to label %869 unwind label %873

869:                                              ; preds = %868
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %870 unwind label %875

870:                                              ; preds = %869
  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 %.thread1241

871:                                              ; preds = %865
  %872 = landingpad { ptr, i32 }
          cleanup
  br label %878

873:                                              ; preds = %868, %866
  %874 = landingpad { ptr, i32 }
          cleanup
  br label %877

875:                                              ; preds = %869
  %876 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #11
  br label %877

877:                                              ; preds = %875, %873
  %.pn721 = phi { ptr, i32 } [ %876, %875 ], [ %874, %873 ]
  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 %878

878:                                              ; preds = %877, %871
  %.pn721.pn = phi { ptr, i32 } [ %.pn721, %877 ], [ %872, %871 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #11
  br label %896

.thread1241:                                      ; preds = %858, %870
  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)
  %879 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %63)
  br i1 %879, label %880, label %950

880:                                              ; preds = %.thread1241
  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 %881 unwind label %897

881:                                              ; preds = %880
  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
  %882 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %883 unwind label %899

883:                                              ; preds = %881
  br i1 %882, label %884, label %.critedge1105

884:                                              ; preds = %883
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef nonnull @.str.931)
          to label %885 unwind label %899

885:                                              ; preds = %884
  %886 = load ptr, ptr %68, align 8
  %887 = getelementptr inbounds i8, ptr %68, i64 8
  %888 = load i64, ptr %887, align 8
  %889 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %886, i64 %888)
  %890 = extractvalue { ptr, i64 } %889, 0
  %891 = extractvalue { ptr, i64 } %889, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr %890, i64 %891)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %69) #11
  store i32 0, ptr %69, align 4, !tbaa !14
  %892 = load ptr, ptr %67, align 8
  %893 = getelementptr inbounds i8, ptr %67, i64 8
  %894 = load i64, ptr %893, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__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 %892, i64 %894, ptr noundef nonnull align 4 dereferenceable(4) %69)
          to label %895 unwind label %901

895:                                              ; preds = %885
  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 %69) #11
  br label %.critedge1105

896:                                              ; preds = %878, %864
  %.pn721.pn.pn = phi { ptr, i32 } [ %.pn721.pn, %878 ], [ %.pn718.pn, %864 ]
  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 %2983

897:                                              ; preds = %880
  %898 = 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 %949

899:                                              ; preds = %884, %881
  %900 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %903

901:                                              ; preds = %885
  %902 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %69) #11
  br label %903

903:                                              ; preds = %901, %899
  %.pn725 = phi { ptr, i32 } [ %902, %901 ], [ %900, %899 ]
  %.48 = extractvalue { ptr, i32 } %.pn725, 0
  %.48316 = extractvalue { ptr, i32 } %.pn725, 1
  %904 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %905 = icmp eq i32 %.48316, %904
  %906 = call ptr @__cxa_begin_catch(ptr %.48) #11
  br i1 %905, label %907, label %931

907:                                              ; preds = %903
  %908 = load ptr, ptr %906, align 8, !tbaa !9
  %909 = getelementptr inbounds i8, ptr %908, i64 16
  %910 = load ptr, ptr %909, align 8
  %911 = call noundef ptr %910(ptr noundef nonnull align 8 dereferenceable(16) %906) #11
  %912 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef %911)
          to label %913 unwind label %938

913:                                              ; preds = %907
  br i1 %912, label %914, label %942

914:                                              ; preds = %913
  %915 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA86_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 1 dereferenceable(86) @.str.933)
          to label %916 unwind label %938

916:                                              ; preds = %914
  %917 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %915, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %918 unwind label %938

918:                                              ; preds = %916
  %919 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %917, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %920 unwind label %938

920:                                              ; preds = %918
  %921 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %919, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %922 unwind label %938

922:                                              ; preds = %920
  %923 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %921, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %924 unwind label %938

924:                                              ; preds = %922
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #11
  %925 = load ptr, ptr %906, align 8, !tbaa !9
  %926 = getelementptr inbounds i8, ptr %925, i64 16
  %927 = load ptr, ptr %926, align 8
  %928 = call noundef ptr %927(ptr noundef nonnull align 8 dereferenceable(16) %906) #11
  store ptr %928, ptr %70, align 8, !tbaa !11
  %929 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %923, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %930 unwind label %940

930:                                              ; preds = %924
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #11
  br label %942

931:                                              ; preds = %903
  %932 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA129_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 1 dereferenceable(129) @.str.932)
          to label %933 unwind label %934

933:                                              ; preds = %931
  invoke void @__cxa_end_catch()
          to label %.thread1246 unwind label %936

934:                                              ; preds = %931
  %935 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %948 unwind label %2984

936:                                              ; preds = %.critedge1105, %933
  %937 = landingpad { ptr, i32 }
          cleanup
  br label %948

938:                                              ; preds = %922, %920, %918, %916, %914, %907
  %939 = landingpad { ptr, i32 }
          cleanup
  br label %947

940:                                              ; preds = %924
  %941 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #11
  br label %947

942:                                              ; preds = %913, %930
  invoke void @__cxa_end_catch()
          to label %943 unwind label %945

943:                                              ; preds = %942
  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 %912, label %950, label %.thread1249

.critedge1105:                                    ; preds = %883, %895
  %944 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA120_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 1 dereferenceable(120) @.str.934)
          to label %.thread1246 unwind label %936

945:                                              ; preds = %942
  %946 = landingpad { ptr, i32 }
          cleanup
  br label %948

947:                                              ; preds = %940, %938
  %.pn727 = phi { ptr, i32 } [ %941, %940 ], [ %939, %938 ]
  invoke void @__cxa_end_catch()
          to label %948 unwind label %2984

.thread1246:                                      ; preds = %933, %.critedge1105
  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 %950

948:                                              ; preds = %945, %947, %934, %936
  %.pn731 = phi { ptr, i32 } [ %937, %936 ], [ %935, %934 ], [ %946, %945 ], [ %.pn727, %947 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  br label %949

949:                                              ; preds = %948, %897
  %.pn731.pn = phi { ptr, i32 } [ %.pn731, %948 ], [ %898, %897 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #11
  br label %981

950:                                              ; preds = %943, %.thread1246, %.thread1241
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %951 unwind label %956

951:                                              ; preds = %950
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #11
  %952 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %63)
          to label %953 unwind label %958

953:                                              ; preds = %951
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %72, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 918, ptr noundef %952)
          to label %954 unwind label %958

954:                                              ; preds = %953
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %955 unwind label %960

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

956:                                              ; preds = %950
  %957 = landingpad { ptr, i32 }
          cleanup
  br label %963

958:                                              ; preds = %953, %951
  %959 = landingpad { ptr, i32 }
          cleanup
  br label %962

960:                                              ; preds = %954
  %961 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #11
  br label %962

962:                                              ; preds = %960, %958
  %.pn734 = phi { ptr, i32 } [ %961, %960 ], [ %959, %958 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #11
  br label %963

963:                                              ; preds = %962, %956
  %.pn734.pn = phi { ptr, i32 } [ %.pn734, %962 ], [ %957, %956 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #11
  br label %981

.thread1249:                                      ; preds = %943, %955
  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 %73) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %73)
  %964 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
  br i1 %964, label %965, label %1035

965:                                              ; preds = %.thread1249
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %966 unwind label %982

966:                                              ; preds = %965
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #11
  %967 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %968 unwind label %984

968:                                              ; preds = %966
  br i1 %967, label %969, label %.critedge1109

969:                                              ; preds = %968
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr noundef nonnull @.str.935)
          to label %970 unwind label %984

970:                                              ; preds = %969
  %971 = load ptr, ptr %78, align 8
  %972 = getelementptr inbounds i8, ptr %78, i64 8
  %973 = load i64, ptr %972, align 8
  %974 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %971, i64 %973)
  %975 = extractvalue { ptr, i64 } %974, 0
  %976 = extractvalue { ptr, i64 } %974, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %77, ptr %975, i64 %976)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %79) #11
  store i32 42, ptr %79, align 4, !tbaa !14
  %977 = load ptr, ptr %77, align 8
  %978 = getelementptr inbounds i8, ptr %77, i64 8
  %979 = load i64, ptr %978, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr %977, i64 %979, ptr noundef nonnull align 4 dereferenceable(4) %79)
          to label %980 unwind label %986

980:                                              ; preds = %970
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #11
  br label %.critedge1109

981:                                              ; preds = %963, %949
  %.pn734.pn.pn = phi { ptr, i32 } [ %.pn734.pn, %963 ], [ %.pn731.pn, %949 ]
  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 %2983

982:                                              ; preds = %965
  %983 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #11
  br label %1034

984:                                              ; preds = %969, %966
  %985 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %988

986:                                              ; preds = %970
  %987 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #11
  br label %988

988:                                              ; preds = %986, %984
  %.pn738 = phi { ptr, i32 } [ %987, %986 ], [ %985, %984 ]
  %.56 = extractvalue { ptr, i32 } %.pn738, 0
  %.56324 = extractvalue { ptr, i32 } %.pn738, 1
  %989 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %990 = icmp eq i32 %.56324, %989
  %991 = call ptr @__cxa_begin_catch(ptr %.56) #11
  br i1 %990, label %992, label %1016

992:                                              ; preds = %988
  %993 = load ptr, ptr %991, align 8, !tbaa !9
  %994 = getelementptr inbounds i8, ptr %993, i64 16
  %995 = load ptr, ptr %994, align 8
  %996 = call noundef ptr %995(ptr noundef nonnull align 8 dereferenceable(16) %991) #11
  %997 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef %996)
          to label %998 unwind label %1023

998:                                              ; preds = %992
  br i1 %997, label %999, label %1027

999:                                              ; preds = %998
  %1000 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 1 dereferenceable(88) @.str.937)
          to label %1001 unwind label %1023

1001:                                             ; preds = %999
  %1002 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1000, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1003 unwind label %1023

1003:                                             ; preds = %1001
  %1004 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1002, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %1005 unwind label %1023

1005:                                             ; preds = %1003
  %1006 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1004, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1007 unwind label %1023

1007:                                             ; preds = %1005
  %1008 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1006, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1009 unwind label %1023

1009:                                             ; preds = %1007
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #11
  %1010 = load ptr, ptr %991, align 8, !tbaa !9
  %1011 = getelementptr inbounds i8, ptr %1010, i64 16
  %1012 = load ptr, ptr %1011, align 8
  %1013 = call noundef ptr %1012(ptr noundef nonnull align 8 dereferenceable(16) %991) #11
  store ptr %1013, ptr %80, align 8, !tbaa !11
  %1014 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1008, ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %1015 unwind label %1025

1015:                                             ; preds = %1009
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #11
  br label %1027

1016:                                             ; preds = %988
  %1017 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 1 dereferenceable(131) @.str.936)
          to label %1018 unwind label %1019

1018:                                             ; preds = %1016
  invoke void @__cxa_end_catch()
          to label %.thread1254 unwind label %1021

1019:                                             ; preds = %1016
  %1020 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1033 unwind label %2984

1021:                                             ; preds = %.critedge1109, %1018
  %1022 = landingpad { ptr, i32 }
          cleanup
  br label %1033

1023:                                             ; preds = %1007, %1005, %1003, %1001, %999, %992
  %1024 = landingpad { ptr, i32 }
          cleanup
  br label %1032

1025:                                             ; preds = %1009
  %1026 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #11
  br label %1032

1027:                                             ; preds = %998, %1015
  invoke void @__cxa_end_catch()
          to label %1028 unwind label %1030

1028:                                             ; preds = %1027
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #11
  br i1 %997, label %1035, label %.thread1257

.critedge1109:                                    ; preds = %968, %980
  %1029 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 1 dereferenceable(122) @.str.938)
          to label %.thread1254 unwind label %1021

1030:                                             ; preds = %1027
  %1031 = landingpad { ptr, i32 }
          cleanup
  br label %1033

1032:                                             ; preds = %1025, %1023
  %.pn740 = phi { ptr, i32 } [ %1026, %1025 ], [ %1024, %1023 ]
  invoke void @__cxa_end_catch()
          to label %1033 unwind label %2984

.thread1254:                                      ; preds = %1018, %.critedge1109
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #11
  br label %1035

1033:                                             ; preds = %1030, %1032, %1019, %1021
  %.pn744 = phi { ptr, i32 } [ %1022, %1021 ], [ %1020, %1019 ], [ %1031, %1030 ], [ %.pn740, %1032 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  br label %1034

1034:                                             ; preds = %1033, %982
  %.pn744.pn = phi { ptr, i32 } [ %.pn744, %1033 ], [ %983, %982 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #11
  br label %1066

1035:                                             ; preds = %1028, %.thread1254, %.thread1249
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %1036 unwind label %1041

1036:                                             ; preds = %1035
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #11
  %1037 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %1038 unwind label %1043

1038:                                             ; preds = %1036
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %82, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 920, ptr noundef %1037)
          to label %1039 unwind label %1043

1039:                                             ; preds = %1038
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %1040 unwind label %1045

1040:                                             ; preds = %1039
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #11
  br label %.thread1257

1041:                                             ; preds = %1035
  %1042 = landingpad { ptr, i32 }
          cleanup
  br label %1048

1043:                                             ; preds = %1038, %1036
  %1044 = landingpad { ptr, i32 }
          cleanup
  br label %1047

1045:                                             ; preds = %1039
  %1046 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #11
  br label %1047

1047:                                             ; preds = %1045, %1043
  %.pn747 = phi { ptr, i32 } [ %1046, %1045 ], [ %1044, %1043 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #11
  br label %1048

1048:                                             ; preds = %1047, %1041
  %.pn747.pn = phi { ptr, i32 } [ %.pn747, %1047 ], [ %1042, %1041 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #11
  br label %1066

.thread1257:                                      ; preds = %1028, %1040
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %83) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %83)
  %1049 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %83)
  br i1 %1049, label %1050, label %1120

1050:                                             ; preds = %.thread1257
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %85) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %1051 unwind label %1067

1051:                                             ; preds = %1050
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #11
  %1052 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1053 unwind label %1069

1053:                                             ; preds = %1051
  br i1 %1052, label %1054, label %.critedge1113

1054:                                             ; preds = %1053
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %88, ptr noundef nonnull @.str.939)
          to label %1055 unwind label %1069

1055:                                             ; preds = %1054
  %1056 = load ptr, ptr %88, align 8
  %1057 = getelementptr inbounds i8, ptr %88, i64 8
  %1058 = load i64, ptr %1057, align 8
  %1059 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1056, i64 %1058)
  %1060 = extractvalue { ptr, i64 } %1059, 0
  %1061 = extractvalue { ptr, i64 } %1059, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %87, ptr %1060, i64 %1061)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %89) #11
  store i32 42, ptr %89, align 4, !tbaa !14
  %1062 = load ptr, ptr %87, align 8
  %1063 = getelementptr inbounds i8, ptr %87, i64 8
  %1064 = load i64, ptr %1063, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr %1062, i64 %1064, ptr noundef nonnull align 4 dereferenceable(4) %89)
          to label %1065 unwind label %1071

1065:                                             ; preds = %1055
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %89) #11
  br label %.critedge1113

1066:                                             ; preds = %1048, %1034
  %.pn747.pn.pn = phi { ptr, i32 } [ %.pn747.pn, %1048 ], [ %.pn744.pn, %1034 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #11
  br label %2983

1067:                                             ; preds = %1050
  %1068 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #11
  br label %1119

1069:                                             ; preds = %1054, %1051
  %1070 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1073

1071:                                             ; preds = %1055
  %1072 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %89) #11
  br label %1073

1073:                                             ; preds = %1071, %1069
  %.pn751 = phi { ptr, i32 } [ %1072, %1071 ], [ %1070, %1069 ]
  %.64 = extractvalue { ptr, i32 } %.pn751, 0
  %.64332 = extractvalue { ptr, i32 } %.pn751, 1
  %1074 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1075 = icmp eq i32 %.64332, %1074
  %1076 = call ptr @__cxa_begin_catch(ptr %.64) #11
  br i1 %1075, label %1077, label %1101

1077:                                             ; preds = %1073
  %1078 = load ptr, ptr %1076, align 8, !tbaa !9
  %1079 = getelementptr inbounds i8, ptr %1078, i64 16
  %1080 = load ptr, ptr %1079, align 8
  %1081 = call noundef ptr %1080(ptr noundef nonnull align 8 dereferenceable(16) %1076) #11
  %1082 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef %1081)
          to label %1083 unwind label %1108

1083:                                             ; preds = %1077
  br i1 %1082, label %1084, label %1112

1084:                                             ; preds = %1083
  %1085 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull align 1 dereferenceable(89) @.str.941)
          to label %1086 unwind label %1108

1086:                                             ; preds = %1084
  %1087 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1085, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1088 unwind label %1108

1088:                                             ; preds = %1086
  %1089 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1087, ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %1090 unwind label %1108

1090:                                             ; preds = %1088
  %1091 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1089, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1092 unwind label %1108

1092:                                             ; preds = %1090
  %1093 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1091, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1094 unwind label %1108

1094:                                             ; preds = %1092
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #11
  %1095 = load ptr, ptr %1076, align 8, !tbaa !9
  %1096 = getelementptr inbounds i8, ptr %1095, i64 16
  %1097 = load ptr, ptr %1096, align 8
  %1098 = call noundef ptr %1097(ptr noundef nonnull align 8 dereferenceable(16) %1076) #11
  store ptr %1098, ptr %90, align 8, !tbaa !11
  %1099 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1093, ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %1100 unwind label %1110

1100:                                             ; preds = %1094
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #11
  br label %1112

1101:                                             ; preds = %1073
  %1102 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull align 1 dereferenceable(132) @.str.940)
          to label %1103 unwind label %1104

1103:                                             ; preds = %1101
  invoke void @__cxa_end_catch()
          to label %.thread1262 unwind label %1106

1104:                                             ; preds = %1101
  %1105 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1118 unwind label %2984

1106:                                             ; preds = %.critedge1113, %1103
  %1107 = landingpad { ptr, i32 }
          cleanup
  br label %1118

1108:                                             ; preds = %1092, %1090, %1088, %1086, %1084, %1077
  %1109 = landingpad { ptr, i32 }
          cleanup
  br label %1117

1110:                                             ; preds = %1094
  %1111 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #11
  br label %1117

1112:                                             ; preds = %1083, %1100
  invoke void @__cxa_end_catch()
          to label %1113 unwind label %1115

1113:                                             ; preds = %1112
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #11
  br i1 %1082, label %1120, label %.thread1265

.critedge1113:                                    ; preds = %1053, %1065
  %1114 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull align 1 dereferenceable(123) @.str.942)
          to label %.thread1262 unwind label %1106

1115:                                             ; preds = %1112
  %1116 = landingpad { ptr, i32 }
          cleanup
  br label %1118

1117:                                             ; preds = %1110, %1108
  %.pn753 = phi { ptr, i32 } [ %1111, %1110 ], [ %1109, %1108 ]
  invoke void @__cxa_end_catch()
          to label %1118 unwind label %2984

.thread1262:                                      ; preds = %1103, %.critedge1113
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #11
  br label %1120

1118:                                             ; preds = %1115, %1117, %1104, %1106
  %.pn757 = phi { ptr, i32 } [ %1107, %1106 ], [ %1105, %1104 ], [ %1116, %1115 ], [ %.pn753, %1117 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #11
  br label %1119

1119:                                             ; preds = %1118, %1067
  %.pn757.pn = phi { ptr, i32 } [ %.pn757, %1118 ], [ %1068, %1067 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #11
  br label %1151

1120:                                             ; preds = %1113, %.thread1262, %.thread1257
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %1121 unwind label %1126

1121:                                             ; preds = %1120
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #11
  %1122 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %83)
          to label %1123 unwind label %1128

1123:                                             ; preds = %1121
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %92, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 922, ptr noundef %1122)
          to label %1124 unwind label %1128

1124:                                             ; preds = %1123
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %1125 unwind label %1130

1125:                                             ; preds = %1124
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #11
  br label %.thread1265

1126:                                             ; preds = %1120
  %1127 = landingpad { ptr, i32 }
          cleanup
  br label %1133

1128:                                             ; preds = %1123, %1121
  %1129 = landingpad { ptr, i32 }
          cleanup
  br label %1132

1130:                                             ; preds = %1124
  %1131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #11
  br label %1132

1132:                                             ; preds = %1130, %1128
  %.pn760 = phi { ptr, i32 } [ %1131, %1130 ], [ %1129, %1128 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #11
  br label %1133

1133:                                             ; preds = %1132, %1126
  %.pn760.pn = phi { ptr, i32 } [ %.pn760, %1132 ], [ %1127, %1126 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #11
  br label %1151

.thread1265:                                      ; preds = %1113, %1125
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %93) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %93)
  %1134 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %93)
  br i1 %1134, label %1135, label %1205

1135:                                             ; preds = %.thread1265
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %95) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %1136 unwind label %1152

1136:                                             ; preds = %1135
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %95) #11
  %1137 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1138 unwind label %1154

1138:                                             ; preds = %1136
  br i1 %1137, label %1139, label %.critedge1117

1139:                                             ; preds = %1138
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %98, ptr noundef nonnull @.str.935)
          to label %1140 unwind label %1154

1140:                                             ; preds = %1139
  %1141 = load ptr, ptr %98, align 8
  %1142 = getelementptr inbounds i8, ptr %98, i64 8
  %1143 = load i64, ptr %1142, align 8
  %1144 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1141, i64 %1143)
  %1145 = extractvalue { ptr, i64 } %1144, 0
  %1146 = extractvalue { ptr, i64 } %1144, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJjEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %97, ptr %1145, i64 %1146)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %99) #11
  store i32 42, ptr %99, align 4, !tbaa !14
  %1147 = load ptr, ptr %97, align 8
  %1148 = getelementptr inbounds i8, ptr %97, i64 8
  %1149 = load i64, ptr %1148, align 8
  invoke void @_ZN3fmt3v106formatIJjEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr %1147, i64 %1149, ptr noundef nonnull align 4 dereferenceable(4) %99)
          to label %1150 unwind label %1156

1150:                                             ; preds = %1140
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %99) #11
  br label %.critedge1117

1151:                                             ; preds = %1133, %1119
  %.pn760.pn.pn = phi { ptr, i32 } [ %.pn760.pn, %1133 ], [ %.pn757.pn, %1119 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #11
  br label %2983

1152:                                             ; preds = %1135
  %1153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %95) #11
  br label %1204

1154:                                             ; preds = %1139, %1136
  %1155 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1158

1156:                                             ; preds = %1140
  %1157 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %99) #11
  br label %1158

1158:                                             ; preds = %1156, %1154
  %.pn764 = phi { ptr, i32 } [ %1157, %1156 ], [ %1155, %1154 ]
  %.72 = extractvalue { ptr, i32 } %.pn764, 0
  %.72340 = extractvalue { ptr, i32 } %.pn764, 1
  %1159 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1160 = icmp eq i32 %.72340, %1159
  %1161 = call ptr @__cxa_begin_catch(ptr %.72) #11
  br i1 %1160, label %1162, label %1186

1162:                                             ; preds = %1158
  %1163 = load ptr, ptr %1161, align 8, !tbaa !9
  %1164 = getelementptr inbounds i8, ptr %1163, i64 16
  %1165 = load ptr, ptr %1164, align 8
  %1166 = call noundef ptr %1165(ptr noundef nonnull align 8 dereferenceable(16) %1161) #11
  %1167 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef %1166)
          to label %1168 unwind label %1193

1168:                                             ; preds = %1162
  br i1 %1167, label %1169, label %1197

1169:                                             ; preds = %1168
  %1170 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef nonnull align 1 dereferenceable(89) @.str.944)
          to label %1171 unwind label %1193

1171:                                             ; preds = %1169
  %1172 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1170, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1173 unwind label %1193

1173:                                             ; preds = %1171
  %1174 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1172, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1175 unwind label %1193

1175:                                             ; preds = %1173
  %1176 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1174, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1177 unwind label %1193

1177:                                             ; preds = %1175
  %1178 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1176, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1179 unwind label %1193

1179:                                             ; preds = %1177
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %100) #11
  %1180 = load ptr, ptr %1161, align 8, !tbaa !9
  %1181 = getelementptr inbounds i8, ptr %1180, i64 16
  %1182 = load ptr, ptr %1181, align 8
  %1183 = call noundef ptr %1182(ptr noundef nonnull align 8 dereferenceable(16) %1161) #11
  store ptr %1183, ptr %100, align 8, !tbaa !11
  %1184 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1178, ptr noundef nonnull align 8 dereferenceable(8) %100)
          to label %1185 unwind label %1195

1185:                                             ; preds = %1179
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #11
  br label %1197

1186:                                             ; preds = %1158
  %1187 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef nonnull align 1 dereferenceable(132) @.str.943)
          to label %1188 unwind label %1189

1188:                                             ; preds = %1186
  invoke void @__cxa_end_catch()
          to label %.thread1270 unwind label %1191

1189:                                             ; preds = %1186
  %1190 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1203 unwind label %2984

1191:                                             ; preds = %.critedge1117, %1188
  %1192 = landingpad { ptr, i32 }
          cleanup
  br label %1203

1193:                                             ; preds = %1177, %1175, %1173, %1171, %1169, %1162
  %1194 = landingpad { ptr, i32 }
          cleanup
  br label %1202

1195:                                             ; preds = %1179
  %1196 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #11
  br label %1202

1197:                                             ; preds = %1168, %1185
  invoke void @__cxa_end_catch()
          to label %1198 unwind label %1200

1198:                                             ; preds = %1197
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #11
  br i1 %1167, label %1205, label %.thread1273

.critedge1117:                                    ; preds = %1138, %1150
  %1199 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef nonnull align 1 dereferenceable(123) @.str.945)
          to label %.thread1270 unwind label %1191

1200:                                             ; preds = %1197
  %1201 = landingpad { ptr, i32 }
          cleanup
  br label %1203

1202:                                             ; preds = %1195, %1193
  %.pn766 = phi { ptr, i32 } [ %1196, %1195 ], [ %1194, %1193 ]
  invoke void @__cxa_end_catch()
          to label %1203 unwind label %2984

.thread1270:                                      ; preds = %1188, %.critedge1117
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #11
  br label %1205

1203:                                             ; preds = %1200, %1202, %1189, %1191
  %.pn770 = phi { ptr, i32 } [ %1192, %1191 ], [ %1190, %1189 ], [ %1201, %1200 ], [ %.pn766, %1202 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #11
  br label %1204

1204:                                             ; preds = %1203, %1152
  %.pn770.pn = phi { ptr, i32 } [ %.pn770, %1203 ], [ %1153, %1152 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #11
  br label %1236

1205:                                             ; preds = %1198, %.thread1270, %.thread1265
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %1206 unwind label %1211

1206:                                             ; preds = %1205
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #11
  %1207 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %93)
          to label %1208 unwind label %1213

1208:                                             ; preds = %1206
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %102, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 924, ptr noundef %1207)
          to label %1209 unwind label %1213

1209:                                             ; preds = %1208
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %1210 unwind label %1215

1210:                                             ; preds = %1209
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #11
  br label %.thread1273

1211:                                             ; preds = %1205
  %1212 = landingpad { ptr, i32 }
          cleanup
  br label %1218

1213:                                             ; preds = %1208, %1206
  %1214 = landingpad { ptr, i32 }
          cleanup
  br label %1217

1215:                                             ; preds = %1209
  %1216 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #11
  br label %1217

1217:                                             ; preds = %1215, %1213
  %.pn773 = phi { ptr, i32 } [ %1216, %1215 ], [ %1214, %1213 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #11
  br label %1218

1218:                                             ; preds = %1217, %1211
  %.pn773.pn = phi { ptr, i32 } [ %.pn773, %1217 ], [ %1212, %1211 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #11
  br label %1236

.thread1273:                                      ; preds = %1198, %1210
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %103) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %103)
  %1219 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %103)
  br i1 %1219, label %1220, label %1290

1220:                                             ; preds = %.thread1273
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %104) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %105) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %1221 unwind label %1237

1221:                                             ; preds = %1220
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %105) #11
  %1222 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1223 unwind label %1239

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

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

1225:                                             ; preds = %1224
  %1226 = load ptr, ptr %108, align 8
  %1227 = getelementptr inbounds i8, ptr %108, i64 8
  %1228 = load i64, ptr %1227, align 8
  %1229 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1226, i64 %1228)
  %1230 = extractvalue { ptr, i64 } %1229, 0
  %1231 = extractvalue { ptr, i64 } %1229, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJjEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr %1230, i64 %1231)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %109) #11
  store i32 42, ptr %109, align 4, !tbaa !14
  %1232 = load ptr, ptr %107, align 8
  %1233 = getelementptr inbounds i8, ptr %107, i64 8
  %1234 = load i64, ptr %1233, align 8
  invoke void @_ZN3fmt3v106formatIJjEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr %1232, i64 %1234, ptr noundef nonnull align 4 dereferenceable(4) %109)
          to label %1235 unwind label %1241

1235:                                             ; preds = %1225
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %109) #11
  br label %.critedge1121

1236:                                             ; preds = %1218, %1204
  %.pn773.pn.pn = phi { ptr, i32 } [ %.pn773.pn, %1218 ], [ %.pn770.pn, %1204 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #11
  br label %2983

1237:                                             ; preds = %1220
  %1238 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %105) #11
  br label %1289

1239:                                             ; preds = %1224, %1221
  %1240 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1243

1241:                                             ; preds = %1225
  %1242 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %109) #11
  br label %1243

1243:                                             ; preds = %1241, %1239
  %.pn777 = phi { ptr, i32 } [ %1242, %1241 ], [ %1240, %1239 ]
  %.80 = extractvalue { ptr, i32 } %.pn777, 0
  %.80348 = extractvalue { ptr, i32 } %.pn777, 1
  %1244 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1245 = icmp eq i32 %.80348, %1244
  %1246 = call ptr @__cxa_begin_catch(ptr %.80) #11
  br i1 %1245, label %1247, label %1271

1247:                                             ; preds = %1243
  %1248 = load ptr, ptr %1246, align 8, !tbaa !9
  %1249 = getelementptr inbounds i8, ptr %1248, i64 16
  %1250 = load ptr, ptr %1249, align 8
  %1251 = call noundef ptr %1250(ptr noundef nonnull align 8 dereferenceable(16) %1246) #11
  %1252 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef %1251)
          to label %1253 unwind label %1278

1253:                                             ; preds = %1247
  br i1 %1252, label %1254, label %1282

1254:                                             ; preds = %1253
  %1255 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %103, ptr noundef nonnull align 1 dereferenceable(90) @.str.947)
          to label %1256 unwind label %1278

1256:                                             ; preds = %1254
  %1257 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1255, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1258 unwind label %1278

1258:                                             ; preds = %1256
  %1259 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1257, ptr noundef nonnull align 8 dereferenceable(32) %104)
          to label %1260 unwind label %1278

1260:                                             ; preds = %1258
  %1261 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1259, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1262 unwind label %1278

1262:                                             ; preds = %1260
  %1263 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1261, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1264 unwind label %1278

1264:                                             ; preds = %1262
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %110) #11
  %1265 = load ptr, ptr %1246, align 8, !tbaa !9
  %1266 = getelementptr inbounds i8, ptr %1265, i64 16
  %1267 = load ptr, ptr %1266, align 8
  %1268 = call noundef ptr %1267(ptr noundef nonnull align 8 dereferenceable(16) %1246) #11
  store ptr %1268, ptr %110, align 8, !tbaa !11
  %1269 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1263, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %1270 unwind label %1280

1270:                                             ; preds = %1264
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #11
  br label %1282

1271:                                             ; preds = %1243
  %1272 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %103, ptr noundef nonnull align 1 dereferenceable(133) @.str.946)
          to label %1273 unwind label %1274

1273:                                             ; preds = %1271
  invoke void @__cxa_end_catch()
          to label %.thread1278 unwind label %1276

1274:                                             ; preds = %1271
  %1275 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1288 unwind label %2984

1276:                                             ; preds = %.critedge1121, %1273
  %1277 = landingpad { ptr, i32 }
          cleanup
  br label %1288

1278:                                             ; preds = %1262, %1260, %1258, %1256, %1254, %1247
  %1279 = landingpad { ptr, i32 }
          cleanup
  br label %1287

1280:                                             ; preds = %1264
  %1281 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #11
  br label %1287

1282:                                             ; preds = %1253, %1270
  invoke void @__cxa_end_catch()
          to label %1283 unwind label %1285

1283:                                             ; preds = %1282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #11
  br i1 %1252, label %1290, label %.thread1281

.critedge1121:                                    ; preds = %1223, %1235
  %1284 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %103, ptr noundef nonnull align 1 dereferenceable(124) @.str.948)
          to label %.thread1278 unwind label %1276

1285:                                             ; preds = %1282
  %1286 = landingpad { ptr, i32 }
          cleanup
  br label %1288

1287:                                             ; preds = %1280, %1278
  %.pn779 = phi { ptr, i32 } [ %1281, %1280 ], [ %1279, %1278 ]
  invoke void @__cxa_end_catch()
          to label %1288 unwind label %2984

.thread1278:                                      ; preds = %1273, %.critedge1121
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #11
  br label %1290

1288:                                             ; preds = %1285, %1287, %1274, %1276
  %.pn783 = phi { ptr, i32 } [ %1277, %1276 ], [ %1275, %1274 ], [ %1286, %1285 ], [ %.pn779, %1287 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #11
  br label %1289

1289:                                             ; preds = %1288, %1237
  %.pn783.pn = phi { ptr, i32 } [ %.pn783, %1288 ], [ %1238, %1237 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #11
  br label %1321

1290:                                             ; preds = %1283, %.thread1278, %.thread1273
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %111) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %111)
          to label %1291 unwind label %1296

1291:                                             ; preds = %1290
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %112) #11
  %1292 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %103)
          to label %1293 unwind label %1298

1293:                                             ; preds = %1291
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %112, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 926, ptr noundef %1292)
          to label %1294 unwind label %1298

1294:                                             ; preds = %1293
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(8) %111)
          to label %1295 unwind label %1300

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

1296:                                             ; preds = %1290
  %1297 = landingpad { ptr, i32 }
          cleanup
  br label %1303

1298:                                             ; preds = %1293, %1291
  %1299 = landingpad { ptr, i32 }
          cleanup
  br label %1302

1300:                                             ; preds = %1294
  %1301 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #11
  br label %1302

1302:                                             ; preds = %1300, %1298
  %.pn786 = phi { ptr, i32 } [ %1301, %1300 ], [ %1299, %1298 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #11
  br label %1303

1303:                                             ; preds = %1302, %1296
  %.pn786.pn = phi { ptr, i32 } [ %.pn786, %1302 ], [ %1297, %1296 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #11
  br label %1321

.thread1281:                                      ; preds = %1283, %1295
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %113) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %113)
  %1304 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %113)
  br i1 %1304, label %1305, label %1375

1305:                                             ; preds = %.thread1281
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %1306 unwind label %1322

1306:                                             ; preds = %1305
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #11
  %1307 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1308 unwind label %1324

1308:                                             ; preds = %1306
  br i1 %1307, label %1309, label %.critedge1125

1309:                                             ; preds = %1308
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %118, ptr noundef nonnull @.str.935)
          to label %1310 unwind label %1324

1310:                                             ; preds = %1309
  %1311 = load ptr, ptr %118, align 8
  %1312 = getelementptr inbounds i8, ptr %118, i64 8
  %1313 = load i64, ptr %1312, align 8
  %1314 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1311, i64 %1313)
  %1315 = extractvalue { ptr, i64 } %1314, 0
  %1316 = extractvalue { ptr, i64 } %1314, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJlEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %117, ptr %1315, i64 %1316)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %119) #11
  store i64 42, ptr %119, align 8, !tbaa !16
  %1317 = load ptr, ptr %117, align 8
  %1318 = getelementptr inbounds i8, ptr %117, i64 8
  %1319 = load i64, ptr %1318, align 8
  invoke void @_ZN3fmt3v106formatIJlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr %1317, i64 %1319, ptr noundef nonnull align 8 dereferenceable(8) %119)
          to label %1320 unwind label %1326

1320:                                             ; preds = %1310
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #11
  br label %.critedge1125

1321:                                             ; preds = %1303, %1289
  %.pn786.pn.pn = phi { ptr, i32 } [ %.pn786.pn, %1303 ], [ %.pn783.pn, %1289 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #11
  br label %2983

1322:                                             ; preds = %1305
  %1323 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #11
  br label %1374

1324:                                             ; preds = %1309, %1306
  %1325 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1328

1326:                                             ; preds = %1310
  %1327 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #11
  br label %1328

1328:                                             ; preds = %1326, %1324
  %.pn790 = phi { ptr, i32 } [ %1327, %1326 ], [ %1325, %1324 ]
  %.88 = extractvalue { ptr, i32 } %.pn790, 0
  %.88356 = extractvalue { ptr, i32 } %.pn790, 1
  %1329 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1330 = icmp eq i32 %.88356, %1329
  %1331 = call ptr @__cxa_begin_catch(ptr %.88) #11
  br i1 %1330, label %1332, label %1356

1332:                                             ; preds = %1328
  %1333 = load ptr, ptr %1331, align 8, !tbaa !9
  %1334 = getelementptr inbounds i8, ptr %1333, i64 16
  %1335 = load ptr, ptr %1334, align 8
  %1336 = call noundef ptr %1335(ptr noundef nonnull align 8 dereferenceable(16) %1331) #11
  %1337 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef %1336)
          to label %1338 unwind label %1363

1338:                                             ; preds = %1332
  br i1 %1337, label %1339, label %1367

1339:                                             ; preds = %1338
  %1340 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %113, ptr noundef nonnull align 1 dereferenceable(89) @.str.950)
          to label %1341 unwind label %1363

1341:                                             ; preds = %1339
  %1342 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1340, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1343 unwind label %1363

1343:                                             ; preds = %1341
  %1344 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1342, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %1345 unwind label %1363

1345:                                             ; preds = %1343
  %1346 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1344, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1347 unwind label %1363

1347:                                             ; preds = %1345
  %1348 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1346, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1349 unwind label %1363

1349:                                             ; preds = %1347
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %120) #11
  %1350 = load ptr, ptr %1331, align 8, !tbaa !9
  %1351 = getelementptr inbounds i8, ptr %1350, i64 16
  %1352 = load ptr, ptr %1351, align 8
  %1353 = call noundef ptr %1352(ptr noundef nonnull align 8 dereferenceable(16) %1331) #11
  store ptr %1353, ptr %120, align 8, !tbaa !11
  %1354 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1348, ptr noundef nonnull align 8 dereferenceable(8) %120)
          to label %1355 unwind label %1365

1355:                                             ; preds = %1349
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #11
  br label %1367

1356:                                             ; preds = %1328
  %1357 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %113, ptr noundef nonnull align 1 dereferenceable(132) @.str.949)
          to label %1358 unwind label %1359

1358:                                             ; preds = %1356
  invoke void @__cxa_end_catch()
          to label %.thread1286 unwind label %1361

1359:                                             ; preds = %1356
  %1360 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1373 unwind label %2984

1361:                                             ; preds = %.critedge1125, %1358
  %1362 = landingpad { ptr, i32 }
          cleanup
  br label %1373

1363:                                             ; preds = %1347, %1345, %1343, %1341, %1339, %1332
  %1364 = landingpad { ptr, i32 }
          cleanup
  br label %1372

1365:                                             ; preds = %1349
  %1366 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #11
  br label %1372

1367:                                             ; preds = %1338, %1355
  invoke void @__cxa_end_catch()
          to label %1368 unwind label %1370

1368:                                             ; preds = %1367
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #11
  br i1 %1337, label %1375, label %.thread1289

.critedge1125:                                    ; preds = %1308, %1320
  %1369 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %113, ptr noundef nonnull align 1 dereferenceable(123) @.str.951)
          to label %.thread1286 unwind label %1361

1370:                                             ; preds = %1367
  %1371 = landingpad { ptr, i32 }
          cleanup
  br label %1373

1372:                                             ; preds = %1365, %1363
  %.pn792 = phi { ptr, i32 } [ %1366, %1365 ], [ %1364, %1363 ]
  invoke void @__cxa_end_catch()
          to label %1373 unwind label %2984

.thread1286:                                      ; preds = %1358, %.critedge1125
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #11
  br label %1375

1373:                                             ; preds = %1370, %1372, %1359, %1361
  %.pn796 = phi { ptr, i32 } [ %1362, %1361 ], [ %1360, %1359 ], [ %1371, %1370 ], [ %.pn792, %1372 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  br label %1374

1374:                                             ; preds = %1373, %1322
  %.pn796.pn = phi { ptr, i32 } [ %.pn796, %1373 ], [ %1323, %1322 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #11
  br label %1406

1375:                                             ; preds = %1368, %.thread1286, %.thread1281
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %121) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %121)
          to label %1376 unwind label %1381

1376:                                             ; preds = %1375
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %122) #11
  %1377 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %113)
          to label %1378 unwind label %1383

1378:                                             ; preds = %1376
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %122, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 928, ptr noundef %1377)
          to label %1379 unwind label %1383

1379:                                             ; preds = %1378
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 8 dereferenceable(8) %121)
          to label %1380 unwind label %1385

1380:                                             ; preds = %1379
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #11
  br label %.thread1289

1381:                                             ; preds = %1375
  %1382 = landingpad { ptr, i32 }
          cleanup
  br label %1388

1383:                                             ; preds = %1378, %1376
  %1384 = landingpad { ptr, i32 }
          cleanup
  br label %1387

1385:                                             ; preds = %1379
  %1386 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #11
  br label %1387

1387:                                             ; preds = %1385, %1383
  %.pn799 = phi { ptr, i32 } [ %1386, %1385 ], [ %1384, %1383 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #11
  br label %1388

1388:                                             ; preds = %1387, %1381
  %.pn799.pn = phi { ptr, i32 } [ %.pn799, %1387 ], [ %1382, %1381 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #11
  br label %1406

.thread1289:                                      ; preds = %1368, %1380
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %113) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %123) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %123)
  %1389 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %123)
  br i1 %1389, label %1390, label %1460

1390:                                             ; preds = %.thread1289
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %124) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %125) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %125)
          to label %1391 unwind label %1407

1391:                                             ; preds = %1390
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %125) #11
  %1392 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1393 unwind label %1409

1393:                                             ; preds = %1391
  br i1 %1392, label %1394, label %.critedge1129

1394:                                             ; preds = %1393
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %128, ptr noundef nonnull @.str.939)
          to label %1395 unwind label %1409

1395:                                             ; preds = %1394
  %1396 = load ptr, ptr %128, align 8
  %1397 = getelementptr inbounds i8, ptr %128, i64 8
  %1398 = load i64, ptr %1397, align 8
  %1399 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1396, i64 %1398)
  %1400 = extractvalue { ptr, i64 } %1399, 0
  %1401 = extractvalue { ptr, i64 } %1399, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJlEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %127, ptr %1400, i64 %1401)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %129) #11
  store i64 42, ptr %129, align 8, !tbaa !16
  %1402 = load ptr, ptr %127, align 8
  %1403 = getelementptr inbounds i8, ptr %127, i64 8
  %1404 = load i64, ptr %1403, align 8
  invoke void @_ZN3fmt3v106formatIJlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr %1402, i64 %1404, ptr noundef nonnull align 8 dereferenceable(8) %129)
          to label %1405 unwind label %1411

1405:                                             ; preds = %1395
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %129) #11
  br label %.critedge1129

1406:                                             ; preds = %1388, %1374
  %.pn799.pn.pn = phi { ptr, i32 } [ %.pn799.pn, %1388 ], [ %.pn796.pn, %1374 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %113) #11
  br label %2983

1407:                                             ; preds = %1390
  %1408 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %125) #11
  br label %1459

1409:                                             ; preds = %1394, %1391
  %1410 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1413

1411:                                             ; preds = %1395
  %1412 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %129) #11
  br label %1413

1413:                                             ; preds = %1411, %1409
  %.pn803 = phi { ptr, i32 } [ %1412, %1411 ], [ %1410, %1409 ]
  %.96 = extractvalue { ptr, i32 } %.pn803, 0
  %.96364 = extractvalue { ptr, i32 } %.pn803, 1
  %1414 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1415 = icmp eq i32 %.96364, %1414
  %1416 = call ptr @__cxa_begin_catch(ptr %.96) #11
  br i1 %1415, label %1417, label %1441

1417:                                             ; preds = %1413
  %1418 = load ptr, ptr %1416, align 8, !tbaa !9
  %1419 = getelementptr inbounds i8, ptr %1418, i64 16
  %1420 = load ptr, ptr %1419, align 8
  %1421 = call noundef ptr %1420(ptr noundef nonnull align 8 dereferenceable(16) %1416) #11
  %1422 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef %1421)
          to label %1423 unwind label %1448

1423:                                             ; preds = %1417
  br i1 %1422, label %1424, label %1452

1424:                                             ; preds = %1423
  %1425 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %123, ptr noundef nonnull align 1 dereferenceable(90) @.str.953)
          to label %1426 unwind label %1448

1426:                                             ; preds = %1424
  %1427 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1425, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1428 unwind label %1448

1428:                                             ; preds = %1426
  %1429 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1427, ptr noundef nonnull align 8 dereferenceable(32) %124)
          to label %1430 unwind label %1448

1430:                                             ; preds = %1428
  %1431 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1429, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1432 unwind label %1448

1432:                                             ; preds = %1430
  %1433 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1431, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1434 unwind label %1448

1434:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %130) #11
  %1435 = load ptr, ptr %1416, align 8, !tbaa !9
  %1436 = getelementptr inbounds i8, ptr %1435, i64 16
  %1437 = load ptr, ptr %1436, align 8
  %1438 = call noundef ptr %1437(ptr noundef nonnull align 8 dereferenceable(16) %1416) #11
  store ptr %1438, ptr %130, align 8, !tbaa !11
  %1439 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1433, ptr noundef nonnull align 8 dereferenceable(8) %130)
          to label %1440 unwind label %1450

1440:                                             ; preds = %1434
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %130) #11
  br label %1452

1441:                                             ; preds = %1413
  %1442 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %123, ptr noundef nonnull align 1 dereferenceable(133) @.str.952)
          to label %1443 unwind label %1444

1443:                                             ; preds = %1441
  invoke void @__cxa_end_catch()
          to label %.thread1294 unwind label %1446

1444:                                             ; preds = %1441
  %1445 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1458 unwind label %2984

1446:                                             ; preds = %.critedge1129, %1443
  %1447 = landingpad { ptr, i32 }
          cleanup
  br label %1458

1448:                                             ; preds = %1432, %1430, %1428, %1426, %1424, %1417
  %1449 = landingpad { ptr, i32 }
          cleanup
  br label %1457

1450:                                             ; preds = %1434
  %1451 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %130) #11
  br label %1457

1452:                                             ; preds = %1423, %1440
  invoke void @__cxa_end_catch()
          to label %1453 unwind label %1455

1453:                                             ; preds = %1452
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #11
  br i1 %1422, label %1460, label %.thread1297

.critedge1129:                                    ; preds = %1393, %1405
  %1454 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %123, ptr noundef nonnull align 1 dereferenceable(124) @.str.954)
          to label %.thread1294 unwind label %1446

1455:                                             ; preds = %1452
  %1456 = landingpad { ptr, i32 }
          cleanup
  br label %1458

1457:                                             ; preds = %1450, %1448
  %.pn805 = phi { ptr, i32 } [ %1451, %1450 ], [ %1449, %1448 ]
  invoke void @__cxa_end_catch()
          to label %1458 unwind label %2984

.thread1294:                                      ; preds = %1443, %.critedge1129
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #11
  br label %1460

1458:                                             ; preds = %1455, %1457, %1444, %1446
  %.pn809 = phi { ptr, i32 } [ %1447, %1446 ], [ %1445, %1444 ], [ %1456, %1455 ], [ %.pn805, %1457 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #11
  br label %1459

1459:                                             ; preds = %1458, %1407
  %.pn809.pn = phi { ptr, i32 } [ %.pn809, %1458 ], [ %1408, %1407 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #11
  br label %1491

1460:                                             ; preds = %1453, %.thread1294, %.thread1289
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %131) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %131)
          to label %1461 unwind label %1466

1461:                                             ; preds = %1460
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %132) #11
  %1462 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %123)
          to label %1463 unwind label %1468

1463:                                             ; preds = %1461
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %132, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 930, ptr noundef %1462)
          to label %1464 unwind label %1468

1464:                                             ; preds = %1463
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull align 8 dereferenceable(8) %131)
          to label %1465 unwind label %1470

1465:                                             ; preds = %1464
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %132) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %131) #11
  br label %.thread1297

1466:                                             ; preds = %1460
  %1467 = landingpad { ptr, i32 }
          cleanup
  br label %1473

1468:                                             ; preds = %1463, %1461
  %1469 = landingpad { ptr, i32 }
          cleanup
  br label %1472

1470:                                             ; preds = %1464
  %1471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #11
  br label %1472

1472:                                             ; preds = %1470, %1468
  %.pn812 = phi { ptr, i32 } [ %1471, %1470 ], [ %1469, %1468 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %132) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #11
  br label %1473

1473:                                             ; preds = %1472, %1466
  %.pn812.pn = phi { ptr, i32 } [ %.pn812, %1472 ], [ %1467, %1466 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %131) #11
  br label %1491

.thread1297:                                      ; preds = %1453, %1465
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %123) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %123) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %133) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %133)
  %1474 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %133)
  br i1 %1474, label %1475, label %1545

1475:                                             ; preds = %.thread1297
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %134) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %135) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %135)
          to label %1476 unwind label %1492

1476:                                             ; preds = %1475
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %135) #11
  %1477 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1478 unwind label %1494

1478:                                             ; preds = %1476
  br i1 %1477, label %1479, label %.critedge1133

1479:                                             ; preds = %1478
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull @.str.935)
          to label %1480 unwind label %1494

1480:                                             ; preds = %1479
  %1481 = load ptr, ptr %138, align 8
  %1482 = getelementptr inbounds i8, ptr %138, i64 8
  %1483 = load i64, ptr %1482, align 8
  %1484 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1481, i64 %1483)
  %1485 = extractvalue { ptr, i64 } %1484, 0
  %1486 = extractvalue { ptr, i64 } %1484, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJmEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %137, ptr %1485, i64 %1486)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %139) #11
  store i64 42, ptr %139, align 8, !tbaa !16
  %1487 = load ptr, ptr %137, align 8
  %1488 = getelementptr inbounds i8, ptr %137, i64 8
  %1489 = load i64, ptr %1488, align 8
  invoke void @_ZN3fmt3v106formatIJmEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %136, ptr %1487, i64 %1489, ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %1490 unwind label %1496

1490:                                             ; preds = %1480
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %139) #11
  br label %.critedge1133

1491:                                             ; preds = %1473, %1459
  %.pn812.pn.pn = phi { ptr, i32 } [ %.pn812.pn, %1473 ], [ %.pn809.pn, %1459 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %123) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %123) #11
  br label %2983

1492:                                             ; preds = %1475
  %1493 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %135) #11
  br label %1544

1494:                                             ; preds = %1479, %1476
  %1495 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1498

1496:                                             ; preds = %1480
  %1497 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %139) #11
  br label %1498

1498:                                             ; preds = %1496, %1494
  %.pn816 = phi { ptr, i32 } [ %1497, %1496 ], [ %1495, %1494 ]
  %.104 = extractvalue { ptr, i32 } %.pn816, 0
  %.104372 = extractvalue { ptr, i32 } %.pn816, 1
  %1499 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1500 = icmp eq i32 %.104372, %1499
  %1501 = call ptr @__cxa_begin_catch(ptr %.104) #11
  br i1 %1500, label %1502, label %1526

1502:                                             ; preds = %1498
  %1503 = load ptr, ptr %1501, align 8, !tbaa !9
  %1504 = getelementptr inbounds i8, ptr %1503, i64 16
  %1505 = load ptr, ptr %1504, align 8
  %1506 = call noundef ptr %1505(ptr noundef nonnull align 8 dereferenceable(16) %1501) #11
  %1507 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef %1506)
          to label %1508 unwind label %1533

1508:                                             ; preds = %1502
  br i1 %1507, label %1509, label %1537

1509:                                             ; preds = %1508
  %1510 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %133, ptr noundef nonnull align 1 dereferenceable(90) @.str.956)
          to label %1511 unwind label %1533

1511:                                             ; preds = %1509
  %1512 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1510, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1513 unwind label %1533

1513:                                             ; preds = %1511
  %1514 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1512, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1515 unwind label %1533

1515:                                             ; preds = %1513
  %1516 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1514, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1517 unwind label %1533

1517:                                             ; preds = %1515
  %1518 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1516, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1519 unwind label %1533

1519:                                             ; preds = %1517
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %140) #11
  %1520 = load ptr, ptr %1501, align 8, !tbaa !9
  %1521 = getelementptr inbounds i8, ptr %1520, i64 16
  %1522 = load ptr, ptr %1521, align 8
  %1523 = call noundef ptr %1522(ptr noundef nonnull align 8 dereferenceable(16) %1501) #11
  store ptr %1523, ptr %140, align 8, !tbaa !11
  %1524 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1518, ptr noundef nonnull align 8 dereferenceable(8) %140)
          to label %1525 unwind label %1535

1525:                                             ; preds = %1519
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #11
  br label %1537

1526:                                             ; preds = %1498
  %1527 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %133, ptr noundef nonnull align 1 dereferenceable(133) @.str.955)
          to label %1528 unwind label %1529

1528:                                             ; preds = %1526
  invoke void @__cxa_end_catch()
          to label %.thread1302 unwind label %1531

1529:                                             ; preds = %1526
  %1530 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1543 unwind label %2984

1531:                                             ; preds = %.critedge1133, %1528
  %1532 = landingpad { ptr, i32 }
          cleanup
  br label %1543

1533:                                             ; preds = %1517, %1515, %1513, %1511, %1509, %1502
  %1534 = landingpad { ptr, i32 }
          cleanup
  br label %1542

1535:                                             ; preds = %1519
  %1536 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #11
  br label %1542

1537:                                             ; preds = %1508, %1525
  invoke void @__cxa_end_catch()
          to label %1538 unwind label %1540

1538:                                             ; preds = %1537
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #11
  br i1 %1507, label %1545, label %.thread1305

.critedge1133:                                    ; preds = %1478, %1490
  %1539 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %133, ptr noundef nonnull align 1 dereferenceable(124) @.str.957)
          to label %.thread1302 unwind label %1531

1540:                                             ; preds = %1537
  %1541 = landingpad { ptr, i32 }
          cleanup
  br label %1543

1542:                                             ; preds = %1535, %1533
  %.pn818 = phi { ptr, i32 } [ %1536, %1535 ], [ %1534, %1533 ]
  invoke void @__cxa_end_catch()
          to label %1543 unwind label %2984

.thread1302:                                      ; preds = %1528, %.critedge1133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #11
  br label %1545

1543:                                             ; preds = %1540, %1542, %1529, %1531
  %.pn822 = phi { ptr, i32 } [ %1532, %1531 ], [ %1530, %1529 ], [ %1541, %1540 ], [ %.pn818, %1542 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #11
  br label %1544

1544:                                             ; preds = %1543, %1492
  %.pn822.pn = phi { ptr, i32 } [ %.pn822, %1543 ], [ %1493, %1492 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #11
  br label %1576

1545:                                             ; preds = %1538, %.thread1302, %.thread1297
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %141) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %141)
          to label %1546 unwind label %1551

1546:                                             ; preds = %1545
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %142) #11
  %1547 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %133)
          to label %1548 unwind label %1553

1548:                                             ; preds = %1546
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %142, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 932, ptr noundef %1547)
          to label %1549 unwind label %1553

1549:                                             ; preds = %1548
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef nonnull align 8 dereferenceable(8) %141)
          to label %1550 unwind label %1555

1550:                                             ; preds = %1549
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %142) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %141) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %141) #11
  br label %.thread1305

1551:                                             ; preds = %1545
  %1552 = landingpad { ptr, i32 }
          cleanup
  br label %1558

1553:                                             ; preds = %1548, %1546
  %1554 = landingpad { ptr, i32 }
          cleanup
  br label %1557

1555:                                             ; preds = %1549
  %1556 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %142) #11
  br label %1557

1557:                                             ; preds = %1555, %1553
  %.pn825 = phi { ptr, i32 } [ %1556, %1555 ], [ %1554, %1553 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %141) #11
  br label %1558

1558:                                             ; preds = %1557, %1551
  %.pn825.pn = phi { ptr, i32 } [ %.pn825, %1557 ], [ %1552, %1551 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %141) #11
  br label %1576

.thread1305:                                      ; preds = %1538, %1550
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %133) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %143) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %143)
  %1559 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %143)
  br i1 %1559, label %1560, label %1630

1560:                                             ; preds = %.thread1305
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %144) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %145) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %145)
          to label %1561 unwind label %1577

1561:                                             ; preds = %1560
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #11
  %1562 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1563 unwind label %1579

1563:                                             ; preds = %1561
  br i1 %1562, label %1564, label %.critedge1137

1564:                                             ; preds = %1563
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %148, ptr noundef nonnull @.str.939)
          to label %1565 unwind label %1579

1565:                                             ; preds = %1564
  %1566 = load ptr, ptr %148, align 8
  %1567 = getelementptr inbounds i8, ptr %148, i64 8
  %1568 = load i64, ptr %1567, align 8
  %1569 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1566, i64 %1568)
  %1570 = extractvalue { ptr, i64 } %1569, 0
  %1571 = extractvalue { ptr, i64 } %1569, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJmEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %147, ptr %1570, i64 %1571)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %149) #11
  store i64 42, ptr %149, align 8, !tbaa !16
  %1572 = load ptr, ptr %147, align 8
  %1573 = getelementptr inbounds i8, ptr %147, i64 8
  %1574 = load i64, ptr %1573, align 8
  invoke void @_ZN3fmt3v106formatIJmEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %146, ptr %1572, i64 %1574, ptr noundef nonnull align 8 dereferenceable(8) %149)
          to label %1575 unwind label %1581

1575:                                             ; preds = %1565
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #11
  br label %.critedge1137

1576:                                             ; preds = %1558, %1544
  %.pn825.pn.pn = phi { ptr, i32 } [ %.pn825.pn, %1558 ], [ %.pn822.pn, %1544 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %133) #11
  br label %2983

1577:                                             ; preds = %1560
  %1578 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #11
  br label %1629

1579:                                             ; preds = %1564, %1561
  %1580 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1583

1581:                                             ; preds = %1565
  %1582 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #11
  br label %1583

1583:                                             ; preds = %1581, %1579
  %.pn829 = phi { ptr, i32 } [ %1582, %1581 ], [ %1580, %1579 ]
  %.112 = extractvalue { ptr, i32 } %.pn829, 0
  %.112380 = extractvalue { ptr, i32 } %.pn829, 1
  %1584 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1585 = icmp eq i32 %.112380, %1584
  %1586 = call ptr @__cxa_begin_catch(ptr %.112) #11
  br i1 %1585, label %1587, label %1611

1587:                                             ; preds = %1583
  %1588 = load ptr, ptr %1586, align 8, !tbaa !9
  %1589 = getelementptr inbounds i8, ptr %1588, i64 16
  %1590 = load ptr, ptr %1589, align 8
  %1591 = call noundef ptr %1590(ptr noundef nonnull align 8 dereferenceable(16) %1586) #11
  %1592 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef %1591)
          to label %1593 unwind label %1618

1593:                                             ; preds = %1587
  br i1 %1592, label %1594, label %1622

1594:                                             ; preds = %1593
  %1595 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %143, ptr noundef nonnull align 1 dereferenceable(91) @.str.959)
          to label %1596 unwind label %1618

1596:                                             ; preds = %1594
  %1597 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1595, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1598 unwind label %1618

1598:                                             ; preds = %1596
  %1599 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1597, ptr noundef nonnull align 8 dereferenceable(32) %144)
          to label %1600 unwind label %1618

1600:                                             ; preds = %1598
  %1601 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1599, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1602 unwind label %1618

1602:                                             ; preds = %1600
  %1603 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1601, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1604 unwind label %1618

1604:                                             ; preds = %1602
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %150) #11
  %1605 = load ptr, ptr %1586, align 8, !tbaa !9
  %1606 = getelementptr inbounds i8, ptr %1605, i64 16
  %1607 = load ptr, ptr %1606, align 8
  %1608 = call noundef ptr %1607(ptr noundef nonnull align 8 dereferenceable(16) %1586) #11
  store ptr %1608, ptr %150, align 8, !tbaa !11
  %1609 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1603, ptr noundef nonnull align 8 dereferenceable(8) %150)
          to label %1610 unwind label %1620

1610:                                             ; preds = %1604
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #11
  br label %1622

1611:                                             ; preds = %1583
  %1612 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %143, ptr noundef nonnull align 1 dereferenceable(134) @.str.958)
          to label %1613 unwind label %1614

1613:                                             ; preds = %1611
  invoke void @__cxa_end_catch()
          to label %.thread1310 unwind label %1616

1614:                                             ; preds = %1611
  %1615 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1628 unwind label %2984

1616:                                             ; preds = %.critedge1137, %1613
  %1617 = landingpad { ptr, i32 }
          cleanup
  br label %1628

1618:                                             ; preds = %1602, %1600, %1598, %1596, %1594, %1587
  %1619 = landingpad { ptr, i32 }
          cleanup
  br label %1627

1620:                                             ; preds = %1604
  %1621 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #11
  br label %1627

1622:                                             ; preds = %1593, %1610
  invoke void @__cxa_end_catch()
          to label %1623 unwind label %1625

1623:                                             ; preds = %1622
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #11
  br i1 %1592, label %1630, label %.thread1313

.critedge1137:                                    ; preds = %1563, %1575
  %1624 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %143, ptr noundef nonnull align 1 dereferenceable(125) @.str.960)
          to label %.thread1310 unwind label %1616

1625:                                             ; preds = %1622
  %1626 = landingpad { ptr, i32 }
          cleanup
  br label %1628

1627:                                             ; preds = %1620, %1618
  %.pn831 = phi { ptr, i32 } [ %1621, %1620 ], [ %1619, %1618 ]
  invoke void @__cxa_end_catch()
          to label %1628 unwind label %2984

.thread1310:                                      ; preds = %1613, %.critedge1137
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #11
  br label %1630

1628:                                             ; preds = %1625, %1627, %1614, %1616
  %.pn835 = phi { ptr, i32 } [ %1617, %1616 ], [ %1615, %1614 ], [ %1626, %1625 ], [ %.pn831, %1627 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  br label %1629

1629:                                             ; preds = %1628, %1577
  %.pn835.pn = phi { ptr, i32 } [ %.pn835, %1628 ], [ %1578, %1577 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #11
  br label %1661

1630:                                             ; preds = %1623, %.thread1310, %.thread1305
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %151) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %1631 unwind label %1636

1631:                                             ; preds = %1630
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %152) #11
  %1632 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %143)
          to label %1633 unwind label %1638

1633:                                             ; preds = %1631
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %152, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 934, ptr noundef %1632)
          to label %1634 unwind label %1638

1634:                                             ; preds = %1633
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %1635 unwind label %1640

1635:                                             ; preds = %1634
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %152) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %151) #11
  br label %.thread1313

1636:                                             ; preds = %1630
  %1637 = landingpad { ptr, i32 }
          cleanup
  br label %1643

1638:                                             ; preds = %1633, %1631
  %1639 = landingpad { ptr, i32 }
          cleanup
  br label %1642

1640:                                             ; preds = %1634
  %1641 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #11
  br label %1642

1642:                                             ; preds = %1640, %1638
  %.pn838 = phi { ptr, i32 } [ %1641, %1640 ], [ %1639, %1638 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %152) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #11
  br label %1643

1643:                                             ; preds = %1642, %1636
  %.pn838.pn = phi { ptr, i32 } [ %.pn838, %1642 ], [ %1637, %1636 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %151) #11
  br label %1661

.thread1313:                                      ; preds = %1623, %1635
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %143) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %153) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %153)
  %1644 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %153)
  br i1 %1644, label %1645, label %1715

1645:                                             ; preds = %.thread1313
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %154) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %155) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %155)
          to label %1646 unwind label %1662

1646:                                             ; preds = %1645
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %155) #11
  %1647 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1648 unwind label %1664

1648:                                             ; preds = %1646
  br i1 %1647, label %1649, label %.critedge1141

1649:                                             ; preds = %1648
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef nonnull @.str.935)
          to label %1650 unwind label %1664

1650:                                             ; preds = %1649
  %1651 = load ptr, ptr %158, align 8
  %1652 = getelementptr inbounds i8, ptr %158, i64 8
  %1653 = load i64, ptr %1652, align 8
  %1654 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1651, i64 %1653)
  %1655 = extractvalue { ptr, i64 } %1654, 0
  %1656 = extractvalue { ptr, i64 } %1654, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJxEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %157, ptr %1655, i64 %1656)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %159) #11
  store i64 42, ptr %159, align 8, !tbaa !18
  %1657 = load ptr, ptr %157, align 8
  %1658 = getelementptr inbounds i8, ptr %157, i64 8
  %1659 = load i64, ptr %1658, align 8
  invoke void @_ZN3fmt3v106formatIJxEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %156, ptr %1657, i64 %1659, ptr noundef nonnull align 8 dereferenceable(8) %159)
          to label %1660 unwind label %1666

1660:                                             ; preds = %1650
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %159) #11
  br label %.critedge1141

1661:                                             ; preds = %1643, %1629
  %.pn838.pn.pn = phi { ptr, i32 } [ %.pn838.pn, %1643 ], [ %.pn835.pn, %1629 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %143) #11
  br label %2983

1662:                                             ; preds = %1645
  %1663 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %155) #11
  br label %1714

1664:                                             ; preds = %1649, %1646
  %1665 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1668

1666:                                             ; preds = %1650
  %1667 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %159) #11
  br label %1668

1668:                                             ; preds = %1666, %1664
  %.pn842 = phi { ptr, i32 } [ %1667, %1666 ], [ %1665, %1664 ]
  %.120 = extractvalue { ptr, i32 } %.pn842, 0
  %.120388 = extractvalue { ptr, i32 } %.pn842, 1
  %1669 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1670 = icmp eq i32 %.120388, %1669
  %1671 = call ptr @__cxa_begin_catch(ptr %.120) #11
  br i1 %1670, label %1672, label %1696

1672:                                             ; preds = %1668
  %1673 = load ptr, ptr %1671, align 8, !tbaa !9
  %1674 = getelementptr inbounds i8, ptr %1673, i64 16
  %1675 = load ptr, ptr %1674, align 8
  %1676 = call noundef ptr %1675(ptr noundef nonnull align 8 dereferenceable(16) %1671) #11
  %1677 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef %1676)
          to label %1678 unwind label %1703

1678:                                             ; preds = %1672
  br i1 %1677, label %1679, label %1707

1679:                                             ; preds = %1678
  %1680 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %153, ptr noundef nonnull align 1 dereferenceable(90) @.str.962)
          to label %1681 unwind label %1703

1681:                                             ; preds = %1679
  %1682 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1680, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1683 unwind label %1703

1683:                                             ; preds = %1681
  %1684 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1682, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %1685 unwind label %1703

1685:                                             ; preds = %1683
  %1686 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1684, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1687 unwind label %1703

1687:                                             ; preds = %1685
  %1688 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1686, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1689 unwind label %1703

1689:                                             ; preds = %1687
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %160) #11
  %1690 = load ptr, ptr %1671, align 8, !tbaa !9
  %1691 = getelementptr inbounds i8, ptr %1690, i64 16
  %1692 = load ptr, ptr %1691, align 8
  %1693 = call noundef ptr %1692(ptr noundef nonnull align 8 dereferenceable(16) %1671) #11
  store ptr %1693, ptr %160, align 8, !tbaa !11
  %1694 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1688, ptr noundef nonnull align 8 dereferenceable(8) %160)
          to label %1695 unwind label %1705

1695:                                             ; preds = %1689
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #11
  br label %1707

1696:                                             ; preds = %1668
  %1697 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %153, ptr noundef nonnull align 1 dereferenceable(133) @.str.961)
          to label %1698 unwind label %1699

1698:                                             ; preds = %1696
  invoke void @__cxa_end_catch()
          to label %.thread1318 unwind label %1701

1699:                                             ; preds = %1696
  %1700 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1713 unwind label %2984

1701:                                             ; preds = %.critedge1141, %1698
  %1702 = landingpad { ptr, i32 }
          cleanup
  br label %1713

1703:                                             ; preds = %1687, %1685, %1683, %1681, %1679, %1672
  %1704 = landingpad { ptr, i32 }
          cleanup
  br label %1712

1705:                                             ; preds = %1689
  %1706 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #11
  br label %1712

1707:                                             ; preds = %1678, %1695
  invoke void @__cxa_end_catch()
          to label %1708 unwind label %1710

1708:                                             ; preds = %1707
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #11
  br i1 %1677, label %1715, label %.thread1321

.critedge1141:                                    ; preds = %1648, %1660
  %1709 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %153, ptr noundef nonnull align 1 dereferenceable(124) @.str.963)
          to label %.thread1318 unwind label %1701

1710:                                             ; preds = %1707
  %1711 = landingpad { ptr, i32 }
          cleanup
  br label %1713

1712:                                             ; preds = %1705, %1703
  %.pn844 = phi { ptr, i32 } [ %1706, %1705 ], [ %1704, %1703 ]
  invoke void @__cxa_end_catch()
          to label %1713 unwind label %2984

.thread1318:                                      ; preds = %1698, %.critedge1141
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #11
  br label %1715

1713:                                             ; preds = %1710, %1712, %1699, %1701
  %.pn848 = phi { ptr, i32 } [ %1702, %1701 ], [ %1700, %1699 ], [ %1711, %1710 ], [ %.pn844, %1712 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  br label %1714

1714:                                             ; preds = %1713, %1662
  %.pn848.pn = phi { ptr, i32 } [ %.pn848, %1713 ], [ %1663, %1662 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #11
  br label %1746

1715:                                             ; preds = %1708, %.thread1318, %.thread1313
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %161) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %1716 unwind label %1721

1716:                                             ; preds = %1715
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %162) #11
  %1717 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %153)
          to label %1718 unwind label %1723

1718:                                             ; preds = %1716
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %162, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 936, ptr noundef %1717)
          to label %1719 unwind label %1723

1719:                                             ; preds = %1718
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %1720 unwind label %1725

1720:                                             ; preds = %1719
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %162) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %161) #11
  br label %.thread1321

1721:                                             ; preds = %1715
  %1722 = landingpad { ptr, i32 }
          cleanup
  br label %1728

1723:                                             ; preds = %1718, %1716
  %1724 = landingpad { ptr, i32 }
          cleanup
  br label %1727

1725:                                             ; preds = %1719
  %1726 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #11
  br label %1727

1727:                                             ; preds = %1725, %1723
  %.pn851 = phi { ptr, i32 } [ %1726, %1725 ], [ %1724, %1723 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %162) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #11
  br label %1728

1728:                                             ; preds = %1727, %1721
  %.pn851.pn = phi { ptr, i32 } [ %.pn851, %1727 ], [ %1722, %1721 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %161) #11
  br label %1746

.thread1321:                                      ; preds = %1708, %1720
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %153) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %163) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %163)
  %1729 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %163)
  br i1 %1729, label %1730, label %1800

1730:                                             ; preds = %.thread1321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %164) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %165) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %165)
          to label %1731 unwind label %1747

1731:                                             ; preds = %1730
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %165) #11
  %1732 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1733 unwind label %1749

1733:                                             ; preds = %1731
  br i1 %1732, label %1734, label %.critedge1145

1734:                                             ; preds = %1733
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %168, ptr noundef nonnull @.str.939)
          to label %1735 unwind label %1749

1735:                                             ; preds = %1734
  %1736 = load ptr, ptr %168, align 8
  %1737 = getelementptr inbounds i8, ptr %168, i64 8
  %1738 = load i64, ptr %1737, align 8
  %1739 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1736, i64 %1738)
  %1740 = extractvalue { ptr, i64 } %1739, 0
  %1741 = extractvalue { ptr, i64 } %1739, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJxEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %167, ptr %1740, i64 %1741)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %169) #11
  store i64 42, ptr %169, align 8, !tbaa !18
  %1742 = load ptr, ptr %167, align 8
  %1743 = getelementptr inbounds i8, ptr %167, i64 8
  %1744 = load i64, ptr %1743, align 8
  invoke void @_ZN3fmt3v106formatIJxEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %166, ptr %1742, i64 %1744, ptr noundef nonnull align 8 dereferenceable(8) %169)
          to label %1745 unwind label %1751

1745:                                             ; preds = %1735
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %169) #11
  br label %.critedge1145

1746:                                             ; preds = %1728, %1714
  %.pn851.pn.pn = phi { ptr, i32 } [ %.pn851.pn, %1728 ], [ %.pn848.pn, %1714 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %153) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #11
  br label %2983

1747:                                             ; preds = %1730
  %1748 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %165) #11
  br label %1799

1749:                                             ; preds = %1734, %1731
  %1750 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1753

1751:                                             ; preds = %1735
  %1752 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %169) #11
  br label %1753

1753:                                             ; preds = %1751, %1749
  %.pn855 = phi { ptr, i32 } [ %1752, %1751 ], [ %1750, %1749 ]
  %.128 = extractvalue { ptr, i32 } %.pn855, 0
  %.128396 = extractvalue { ptr, i32 } %.pn855, 1
  %1754 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1755 = icmp eq i32 %.128396, %1754
  %1756 = call ptr @__cxa_begin_catch(ptr %.128) #11
  br i1 %1755, label %1757, label %1781

1757:                                             ; preds = %1753
  %1758 = load ptr, ptr %1756, align 8, !tbaa !9
  %1759 = getelementptr inbounds i8, ptr %1758, i64 16
  %1760 = load ptr, ptr %1759, align 8
  %1761 = call noundef ptr %1760(ptr noundef nonnull align 8 dereferenceable(16) %1756) #11
  %1762 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef %1761)
          to label %1763 unwind label %1788

1763:                                             ; preds = %1757
  br i1 %1762, label %1764, label %1792

1764:                                             ; preds = %1763
  %1765 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %163, ptr noundef nonnull align 1 dereferenceable(91) @.str.965)
          to label %1766 unwind label %1788

1766:                                             ; preds = %1764
  %1767 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1765, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1768 unwind label %1788

1768:                                             ; preds = %1766
  %1769 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1767, ptr noundef nonnull align 8 dereferenceable(32) %164)
          to label %1770 unwind label %1788

1770:                                             ; preds = %1768
  %1771 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1769, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1772 unwind label %1788

1772:                                             ; preds = %1770
  %1773 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1771, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1774 unwind label %1788

1774:                                             ; preds = %1772
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %170) #11
  %1775 = load ptr, ptr %1756, align 8, !tbaa !9
  %1776 = getelementptr inbounds i8, ptr %1775, i64 16
  %1777 = load ptr, ptr %1776, align 8
  %1778 = call noundef ptr %1777(ptr noundef nonnull align 8 dereferenceable(16) %1756) #11
  store ptr %1778, ptr %170, align 8, !tbaa !11
  %1779 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1773, ptr noundef nonnull align 8 dereferenceable(8) %170)
          to label %1780 unwind label %1790

1780:                                             ; preds = %1774
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %170) #11
  br label %1792

1781:                                             ; preds = %1753
  %1782 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %163, ptr noundef nonnull align 1 dereferenceable(134) @.str.964)
          to label %1783 unwind label %1784

1783:                                             ; preds = %1781
  invoke void @__cxa_end_catch()
          to label %.thread1326 unwind label %1786

1784:                                             ; preds = %1781
  %1785 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1798 unwind label %2984

1786:                                             ; preds = %.critedge1145, %1783
  %1787 = landingpad { ptr, i32 }
          cleanup
  br label %1798

1788:                                             ; preds = %1772, %1770, %1768, %1766, %1764, %1757
  %1789 = landingpad { ptr, i32 }
          cleanup
  br label %1797

1790:                                             ; preds = %1774
  %1791 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %170) #11
  br label %1797

1792:                                             ; preds = %1763, %1780
  invoke void @__cxa_end_catch()
          to label %1793 unwind label %1795

1793:                                             ; preds = %1792
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #11
  br i1 %1762, label %1800, label %.thread1329

.critedge1145:                                    ; preds = %1733, %1745
  %1794 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %163, ptr noundef nonnull align 1 dereferenceable(125) @.str.966)
          to label %.thread1326 unwind label %1786

1795:                                             ; preds = %1792
  %1796 = landingpad { ptr, i32 }
          cleanup
  br label %1798

1797:                                             ; preds = %1790, %1788
  %.pn857 = phi { ptr, i32 } [ %1791, %1790 ], [ %1789, %1788 ]
  invoke void @__cxa_end_catch()
          to label %1798 unwind label %2984

.thread1326:                                      ; preds = %1783, %.critedge1145
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #11
  br label %1800

1798:                                             ; preds = %1795, %1797, %1784, %1786
  %.pn861 = phi { ptr, i32 } [ %1787, %1786 ], [ %1785, %1784 ], [ %1796, %1795 ], [ %.pn857, %1797 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #11
  br label %1799

1799:                                             ; preds = %1798, %1747
  %.pn861.pn = phi { ptr, i32 } [ %.pn861, %1798 ], [ %1748, %1747 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #11
  br label %1831

1800:                                             ; preds = %1793, %.thread1326, %.thread1321
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %171) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %171)
          to label %1801 unwind label %1806

1801:                                             ; preds = %1800
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %172) #11
  %1802 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %163)
          to label %1803 unwind label %1808

1803:                                             ; preds = %1801
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %172, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 938, ptr noundef %1802)
          to label %1804 unwind label %1808

1804:                                             ; preds = %1803
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull align 8 dereferenceable(8) %171)
          to label %1805 unwind label %1810

1805:                                             ; preds = %1804
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %172) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %172) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %171) #11
  br label %.thread1329

1806:                                             ; preds = %1800
  %1807 = landingpad { ptr, i32 }
          cleanup
  br label %1813

1808:                                             ; preds = %1803, %1801
  %1809 = landingpad { ptr, i32 }
          cleanup
  br label %1812

1810:                                             ; preds = %1804
  %1811 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %172) #11
  br label %1812

1812:                                             ; preds = %1810, %1808
  %.pn864 = phi { ptr, i32 } [ %1811, %1810 ], [ %1809, %1808 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %172) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #11
  br label %1813

1813:                                             ; preds = %1812, %1806
  %.pn864.pn = phi { ptr, i32 } [ %.pn864, %1812 ], [ %1807, %1806 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %171) #11
  br label %1831

.thread1329:                                      ; preds = %1793, %1805
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %163) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %163) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %173) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %173)
  %1814 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %173)
  br i1 %1814, label %1815, label %1885

1815:                                             ; preds = %.thread1329
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %174) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %175) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %175)
          to label %1816 unwind label %1832

1816:                                             ; preds = %1815
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %175) #11
  %1817 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1818 unwind label %1834

1818:                                             ; preds = %1816
  br i1 %1817, label %1819, label %.critedge1149

1819:                                             ; preds = %1818
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %178, ptr noundef nonnull @.str.935)
          to label %1820 unwind label %1834

1820:                                             ; preds = %1819
  %1821 = load ptr, ptr %178, align 8
  %1822 = getelementptr inbounds i8, ptr %178, i64 8
  %1823 = load i64, ptr %1822, align 8
  %1824 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1821, i64 %1823)
  %1825 = extractvalue { ptr, i64 } %1824, 0
  %1826 = extractvalue { ptr, i64 } %1824, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJyEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %177, ptr %1825, i64 %1826)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %179) #11
  store i64 42, ptr %179, align 8, !tbaa !18
  %1827 = load ptr, ptr %177, align 8
  %1828 = getelementptr inbounds i8, ptr %177, i64 8
  %1829 = load i64, ptr %1828, align 8
  invoke void @_ZN3fmt3v106formatIJyEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %176, ptr %1827, i64 %1829, ptr noundef nonnull align 8 dereferenceable(8) %179)
          to label %1830 unwind label %1836

1830:                                             ; preds = %1820
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %179) #11
  br label %.critedge1149

1831:                                             ; preds = %1813, %1799
  %.pn864.pn.pn = phi { ptr, i32 } [ %.pn864.pn, %1813 ], [ %.pn861.pn, %1799 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %163) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %163) #11
  br label %2983

1832:                                             ; preds = %1815
  %1833 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %175) #11
  br label %1884

1834:                                             ; preds = %1819, %1816
  %1835 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1838

1836:                                             ; preds = %1820
  %1837 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %179) #11
  br label %1838

1838:                                             ; preds = %1836, %1834
  %.pn868 = phi { ptr, i32 } [ %1837, %1836 ], [ %1835, %1834 ]
  %.136 = extractvalue { ptr, i32 } %.pn868, 0
  %.136404 = extractvalue { ptr, i32 } %.pn868, 1
  %1839 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1840 = icmp eq i32 %.136404, %1839
  %1841 = call ptr @__cxa_begin_catch(ptr %.136) #11
  br i1 %1840, label %1842, label %1866

1842:                                             ; preds = %1838
  %1843 = load ptr, ptr %1841, align 8, !tbaa !9
  %1844 = getelementptr inbounds i8, ptr %1843, i64 16
  %1845 = load ptr, ptr %1844, align 8
  %1846 = call noundef ptr %1845(ptr noundef nonnull align 8 dereferenceable(16) %1841) #11
  %1847 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef %1846)
          to label %1848 unwind label %1873

1848:                                             ; preds = %1842
  br i1 %1847, label %1849, label %1877

1849:                                             ; preds = %1848
  %1850 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA91_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %173, ptr noundef nonnull align 1 dereferenceable(91) @.str.968)
          to label %1851 unwind label %1873

1851:                                             ; preds = %1849
  %1852 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1850, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1853 unwind label %1873

1853:                                             ; preds = %1851
  %1854 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1852, ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %1855 unwind label %1873

1855:                                             ; preds = %1853
  %1856 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1854, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1857 unwind label %1873

1857:                                             ; preds = %1855
  %1858 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1856, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1859 unwind label %1873

1859:                                             ; preds = %1857
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %180) #11
  %1860 = load ptr, ptr %1841, align 8, !tbaa !9
  %1861 = getelementptr inbounds i8, ptr %1860, i64 16
  %1862 = load ptr, ptr %1861, align 8
  %1863 = call noundef ptr %1862(ptr noundef nonnull align 8 dereferenceable(16) %1841) #11
  store ptr %1863, ptr %180, align 8, !tbaa !11
  %1864 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1858, ptr noundef nonnull align 8 dereferenceable(8) %180)
          to label %1865 unwind label %1875

1865:                                             ; preds = %1859
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %180) #11
  br label %1877

1866:                                             ; preds = %1838
  %1867 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA134_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %173, ptr noundef nonnull align 1 dereferenceable(134) @.str.967)
          to label %1868 unwind label %1869

1868:                                             ; preds = %1866
  invoke void @__cxa_end_catch()
          to label %.thread1334 unwind label %1871

1869:                                             ; preds = %1866
  %1870 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1883 unwind label %2984

1871:                                             ; preds = %.critedge1149, %1868
  %1872 = landingpad { ptr, i32 }
          cleanup
  br label %1883

1873:                                             ; preds = %1857, %1855, %1853, %1851, %1849, %1842
  %1874 = landingpad { ptr, i32 }
          cleanup
  br label %1882

1875:                                             ; preds = %1859
  %1876 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %180) #11
  br label %1882

1877:                                             ; preds = %1848, %1865
  invoke void @__cxa_end_catch()
          to label %1878 unwind label %1880

1878:                                             ; preds = %1877
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #11
  br i1 %1847, label %1885, label %.thread1337

.critedge1149:                                    ; preds = %1818, %1830
  %1879 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA125_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %173, ptr noundef nonnull align 1 dereferenceable(125) @.str.969)
          to label %.thread1334 unwind label %1871

1880:                                             ; preds = %1877
  %1881 = landingpad { ptr, i32 }
          cleanup
  br label %1883

1882:                                             ; preds = %1875, %1873
  %.pn870 = phi { ptr, i32 } [ %1876, %1875 ], [ %1874, %1873 ]
  invoke void @__cxa_end_catch()
          to label %1883 unwind label %2984

.thread1334:                                      ; preds = %1868, %.critedge1149
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #11
  br label %1885

1883:                                             ; preds = %1880, %1882, %1869, %1871
  %.pn874 = phi { ptr, i32 } [ %1872, %1871 ], [ %1870, %1869 ], [ %1881, %1880 ], [ %.pn870, %1882 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #11
  br label %1884

1884:                                             ; preds = %1883, %1832
  %.pn874.pn = phi { ptr, i32 } [ %.pn874, %1883 ], [ %1833, %1832 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #11
  br label %1916

1885:                                             ; preds = %1878, %.thread1334, %.thread1329
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %181) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %181)
          to label %1886 unwind label %1891

1886:                                             ; preds = %1885
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %182) #11
  %1887 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %173)
          to label %1888 unwind label %1893

1888:                                             ; preds = %1886
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %182, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 940, ptr noundef %1887)
          to label %1889 unwind label %1893

1889:                                             ; preds = %1888
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef nonnull align 8 dereferenceable(8) %181)
          to label %1890 unwind label %1895

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

1891:                                             ; preds = %1885
  %1892 = landingpad { ptr, i32 }
          cleanup
  br label %1898

1893:                                             ; preds = %1888, %1886
  %1894 = landingpad { ptr, i32 }
          cleanup
  br label %1897

1895:                                             ; preds = %1889
  %1896 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #11
  br label %1897

1897:                                             ; preds = %1895, %1893
  %.pn877 = phi { ptr, i32 } [ %1896, %1895 ], [ %1894, %1893 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %182) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #11
  br label %1898

1898:                                             ; preds = %1897, %1891
  %.pn877.pn = phi { ptr, i32 } [ %.pn877, %1897 ], [ %1892, %1891 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #11
  br label %1916

.thread1337:                                      ; preds = %1878, %1890
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %173) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %173) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %183) #11
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %183)
  %1899 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %183)
  br i1 %1899, label %1900, label %1970

1900:                                             ; preds = %.thread1337
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %184) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %185)
          to label %1901 unwind label %1917

1901:                                             ; preds = %1900
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %185) #11
  %1902 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1903 unwind label %1919

1903:                                             ; preds = %1901
  br i1 %1902, label %1904, label %.critedge1153

1904:                                             ; preds = %1903
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %188, ptr noundef nonnull @.str.939)
          to label %1905 unwind label %1919

1905:                                             ; preds = %1904
  %1906 = load ptr, ptr %188, align 8
  %1907 = getelementptr inbounds i8, ptr %188, i64 8
  %1908 = load i64, ptr %1907, align 8
  %1909 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1906, i64 %1908)
  %1910 = extractvalue { ptr, i64 } %1909, 0
  %1911 = extractvalue { ptr, i64 } %1909, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJyEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %187, ptr %1910, i64 %1911)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %189) #11
  store i64 42, ptr %189, align 8, !tbaa !18
  %1912 = load ptr, ptr %187, align 8
  %1913 = getelementptr inbounds i8, ptr %187, i64 8
  %1914 = load i64, ptr %1913, align 8
  invoke void @_ZN3fmt3v106formatIJyEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %186, ptr %1912, i64 %1914, ptr noundef nonnull align 8 dereferenceable(8) %189)
          to label %1915 unwind label %1921

1915:                                             ; preds = %1905
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %189) #11
  br label %.critedge1153

1916:                                             ; preds = %1898, %1884
  %.pn877.pn.pn = phi { ptr, i32 } [ %.pn877.pn, %1898 ], [ %.pn874.pn, %1884 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %173) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %173) #11
  br label %2983

1917:                                             ; preds = %1900
  %1918 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %185) #11
  br label %1969

1919:                                             ; preds = %1904, %1901
  %1920 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %1923

1921:                                             ; preds = %1905
  %1922 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %189) #11
  br label %1923

1923:                                             ; preds = %1921, %1919
  %.pn881 = phi { ptr, i32 } [ %1922, %1921 ], [ %1920, %1919 ]
  %.144 = extractvalue { ptr, i32 } %.pn881, 0
  %.144412 = extractvalue { ptr, i32 } %.pn881, 1
  %1924 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %1925 = icmp eq i32 %.144412, %1924
  %1926 = call ptr @__cxa_begin_catch(ptr %.144) #11
  br i1 %1925, label %1927, label %1951

1927:                                             ; preds = %1923
  %1928 = load ptr, ptr %1926, align 8, !tbaa !9
  %1929 = getelementptr inbounds i8, ptr %1928, i64 16
  %1930 = load ptr, ptr %1929, align 8
  %1931 = call noundef ptr %1930(ptr noundef nonnull align 8 dereferenceable(16) %1926) #11
  %1932 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef %1931)
          to label %1933 unwind label %1958

1933:                                             ; preds = %1927
  br i1 %1932, label %1934, label %1962

1934:                                             ; preds = %1933
  %1935 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA92_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %183, ptr noundef nonnull align 1 dereferenceable(92) @.str.971)
          to label %1936 unwind label %1958

1936:                                             ; preds = %1934
  %1937 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1935, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1938 unwind label %1958

1938:                                             ; preds = %1936
  %1939 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1937, ptr noundef nonnull align 8 dereferenceable(32) %184)
          to label %1940 unwind label %1958

1940:                                             ; preds = %1938
  %1941 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1939, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1942 unwind label %1958

1942:                                             ; preds = %1940
  %1943 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1941, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1944 unwind label %1958

1944:                                             ; preds = %1942
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %190) #11
  %1945 = load ptr, ptr %1926, align 8, !tbaa !9
  %1946 = getelementptr inbounds i8, ptr %1945, i64 16
  %1947 = load ptr, ptr %1946, align 8
  %1948 = call noundef ptr %1947(ptr noundef nonnull align 8 dereferenceable(16) %1926) #11
  store ptr %1948, ptr %190, align 8, !tbaa !11
  %1949 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1943, ptr noundef nonnull align 8 dereferenceable(8) %190)
          to label %1950 unwind label %1960

1950:                                             ; preds = %1944
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %190) #11
  br label %1962

1951:                                             ; preds = %1923
  %1952 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA135_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %183, ptr noundef nonnull align 1 dereferenceable(135) @.str.970)
          to label %1953 unwind label %1954

1953:                                             ; preds = %1951
  invoke void @__cxa_end_catch()
          to label %.thread1342 unwind label %1956

1954:                                             ; preds = %1951
  %1955 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1968 unwind label %2984

1956:                                             ; preds = %.critedge1153, %1953
  %1957 = landingpad { ptr, i32 }
          cleanup
  br label %1968

1958:                                             ; preds = %1942, %1940, %1938, %1936, %1934, %1927
  %1959 = landingpad { ptr, i32 }
          cleanup
  br label %1967

1960:                                             ; preds = %1944
  %1961 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %190) #11
  br label %1967

1962:                                             ; preds = %1933, %1950
  invoke void @__cxa_end_catch()
          to label %1963 unwind label %1965

1963:                                             ; preds = %1962
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #11
  br i1 %1932, label %1970, label %.thread1345

.critedge1153:                                    ; preds = %1903, %1915
  %1964 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA126_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %183, ptr noundef nonnull align 1 dereferenceable(126) @.str.972)
          to label %.thread1342 unwind label %1956

1965:                                             ; preds = %1962
  %1966 = landingpad { ptr, i32 }
          cleanup
  br label %1968

1967:                                             ; preds = %1960, %1958
  %.pn883 = phi { ptr, i32 } [ %1961, %1960 ], [ %1959, %1958 ]
  invoke void @__cxa_end_catch()
          to label %1968 unwind label %2984

.thread1342:                                      ; preds = %1953, %.critedge1153
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #11
  br label %1970

1968:                                             ; preds = %1965, %1967, %1954, %1956
  %.pn887 = phi { ptr, i32 } [ %1957, %1956 ], [ %1955, %1954 ], [ %1966, %1965 ], [ %.pn883, %1967 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #11
  br label %1969

1969:                                             ; preds = %1968, %1917
  %.pn887.pn = phi { ptr, i32 } [ %.pn887, %1968 ], [ %1918, %1917 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #11
  br label %2001

1970:                                             ; preds = %1963, %.thread1342, %.thread1337
  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 %1971 unwind label %1976

1971:                                             ; preds = %1970
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %192) #11
  %1972 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %183)
          to label %1973 unwind label %1978

1973:                                             ; preds = %1971
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %192, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 942, ptr noundef %1972)
          to label %1974 unwind label %1978

1974:                                             ; preds = %1973
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %192, ptr noundef nonnull align 8 dereferenceable(8) %191)
          to label %1975 unwind label %1980

1975:                                             ; preds = %1974
  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 %.thread1345

1976:                                             ; preds = %1970
  %1977 = landingpad { ptr, i32 }
          cleanup
  br label %1983

1978:                                             ; preds = %1973, %1971
  %1979 = landingpad { ptr, i32 }
          cleanup
  br label %1982

1980:                                             ; preds = %1974
  %1981 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %192) #11
  br label %1982

1982:                                             ; preds = %1980, %1978
  %.pn890 = phi { ptr, i32 } [ %1981, %1980 ], [ %1979, %1978 ]
  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 %1983

1983:                                             ; preds = %1982, %1976
  %.pn890.pn = phi { ptr, i32 } [ %.pn890, %1982 ], [ %1977, %1976 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %191) #11
  br label %2001

.thread1345:                                      ; preds = %1963, %1975
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %183) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %183) #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)
  %1984 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %193)
  br i1 %1984, label %1985, label %2055

1985:                                             ; preds = %.thread1345
  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 %1986 unwind label %2002

1986:                                             ; preds = %1985
  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
  %1987 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1988 unwind label %2004

1988:                                             ; preds = %1986
  br i1 %1987, label %1989, label %.critedge1157

1989:                                             ; preds = %1988
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %198, ptr noundef nonnull @.str.973)
          to label %1990 unwind label %2004

1990:                                             ; preds = %1989
  %1991 = load ptr, ptr %198, align 8
  %1992 = getelementptr inbounds i8, ptr %198, i64 8
  %1993 = load i64, ptr %1992, align 8
  %1994 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1991, i64 %1993)
  %1995 = extractvalue { ptr, i64 } %1994, 0
  %1996 = extractvalue { ptr, i64 } %1994, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr %1995, i64 %1996)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %199) #11
  store i8 120, ptr %199, align 1, !tbaa !13
  %1997 = load ptr, ptr %197, align 8
  %1998 = getelementptr inbounds i8, ptr %197, i64 8
  %1999 = load i64, ptr %1998, align 8
  invoke void @_ZN3fmt3v106formatIJcEEENSt7__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 %1997, i64 %1999, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %2000 unwind label %2006

2000:                                             ; preds = %1990
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #11
  br label %.critedge1157

2001:                                             ; preds = %1983, %1969
  %.pn890.pn.pn = phi { ptr, i32 } [ %.pn890.pn, %1983 ], [ %.pn887.pn, %1969 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %183) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %183) #11
  br label %2983

2002:                                             ; preds = %1985
  %2003 = 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 %2054

2004:                                             ; preds = %1989, %1986
  %2005 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2008

2006:                                             ; preds = %1990
  %2007 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #11
  br label %2008

2008:                                             ; preds = %2006, %2004
  %.pn894 = phi { ptr, i32 } [ %2007, %2006 ], [ %2005, %2004 ]
  %.152 = extractvalue { ptr, i32 } %.pn894, 0
  %.152420 = extractvalue { ptr, i32 } %.pn894, 1
  %2009 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2010 = icmp eq i32 %.152420, %2009
  %2011 = call ptr @__cxa_begin_catch(ptr %.152) #11
  br i1 %2010, label %2012, label %2036

2012:                                             ; preds = %2008
  %2013 = load ptr, ptr %2011, align 8, !tbaa !9
  %2014 = getelementptr inbounds i8, ptr %2013, i64 16
  %2015 = load ptr, ptr %2014, align 8
  %2016 = call noundef ptr %2015(ptr noundef nonnull align 8 dereferenceable(16) %2011) #11
  %2017 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef %2016)
          to label %2018 unwind label %2043

2018:                                             ; preds = %2012
  br i1 %2017, label %2019, label %2047

2019:                                             ; preds = %2018
  %2020 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %193, ptr noundef nonnull align 1 dereferenceable(90) @.str.975)
          to label %2021 unwind label %2043

2021:                                             ; preds = %2019
  %2022 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2020, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2023 unwind label %2043

2023:                                             ; preds = %2021
  %2024 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2022, ptr noundef nonnull align 8 dereferenceable(32) %194)
          to label %2025 unwind label %2043

2025:                                             ; preds = %2023
  %2026 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2024, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2027 unwind label %2043

2027:                                             ; preds = %2025
  %2028 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2026, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2029 unwind label %2043

2029:                                             ; preds = %2027
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %200) #11
  %2030 = load ptr, ptr %2011, align 8, !tbaa !9
  %2031 = getelementptr inbounds i8, ptr %2030, i64 16
  %2032 = load ptr, ptr %2031, align 8
  %2033 = call noundef ptr %2032(ptr noundef nonnull align 8 dereferenceable(16) %2011) #11
  store ptr %2033, ptr %200, align 8, !tbaa !11
  %2034 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2028, ptr noundef nonnull align 8 dereferenceable(8) %200)
          to label %2035 unwind label %2045

2035:                                             ; preds = %2029
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %200) #11
  br label %2047

2036:                                             ; preds = %2008
  %2037 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %193, ptr noundef nonnull align 1 dereferenceable(133) @.str.974)
          to label %2038 unwind label %2039

2038:                                             ; preds = %2036
  invoke void @__cxa_end_catch()
          to label %.thread1350 unwind label %2041

2039:                                             ; preds = %2036
  %2040 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2053 unwind label %2984

2041:                                             ; preds = %.critedge1157, %2038
  %2042 = landingpad { ptr, i32 }
          cleanup
  br label %2053

2043:                                             ; preds = %2027, %2025, %2023, %2021, %2019, %2012
  %2044 = landingpad { ptr, i32 }
          cleanup
  br label %2052

2045:                                             ; preds = %2029
  %2046 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %200) #11
  br label %2052

2047:                                             ; preds = %2018, %2035
  invoke void @__cxa_end_catch()
          to label %2048 unwind label %2050

2048:                                             ; preds = %2047
  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 %2017, label %2055, label %.thread1353

.critedge1157:                                    ; preds = %1988, %2000
  %2049 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %193, ptr noundef nonnull align 1 dereferenceable(124) @.str.976)
          to label %.thread1350 unwind label %2041

2050:                                             ; preds = %2047
  %2051 = landingpad { ptr, i32 }
          cleanup
  br label %2053

2052:                                             ; preds = %2045, %2043
  %.pn896 = phi { ptr, i32 } [ %2046, %2045 ], [ %2044, %2043 ]
  invoke void @__cxa_end_catch()
          to label %2053 unwind label %2984

.thread1350:                                      ; preds = %2038, %.critedge1157
  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 %2055

2053:                                             ; preds = %2050, %2052, %2039, %2041
  %.pn900 = phi { ptr, i32 } [ %2042, %2041 ], [ %2040, %2039 ], [ %2051, %2050 ], [ %.pn896, %2052 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #11
  br label %2054

2054:                                             ; preds = %2053, %2002
  %.pn900.pn = phi { ptr, i32 } [ %.pn900, %2053 ], [ %2003, %2002 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #11
  br label %2074

2055:                                             ; preds = %2048, %.thread1350, %.thread1345
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %201) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %201)
          to label %2056 unwind label %2061

2056:                                             ; preds = %2055
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %202) #11
  %2057 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %193)
          to label %2058 unwind label %2063

2058:                                             ; preds = %2056
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %202, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 944, ptr noundef %2057)
          to label %2059 unwind label %2063

2059:                                             ; preds = %2058
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %202, ptr noundef nonnull align 8 dereferenceable(8) %201)
          to label %2060 unwind label %2065

2060:                                             ; preds = %2059
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %202) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %201) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %201) #11
  br label %.thread1353

2061:                                             ; preds = %2055
  %2062 = landingpad { ptr, i32 }
          cleanup
  br label %2068

2063:                                             ; preds = %2058, %2056
  %2064 = landingpad { ptr, i32 }
          cleanup
  br label %2067

2065:                                             ; preds = %2059
  %2066 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #11
  br label %2067

2067:                                             ; preds = %2065, %2063
  %.pn903 = phi { ptr, i32 } [ %2066, %2065 ], [ %2064, %2063 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %202) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %201) #11
  br label %2068

2068:                                             ; preds = %2067, %2061
  %.pn903.pn = phi { ptr, i32 } [ %.pn903, %2067 ], [ %2062, %2061 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %201) #11
  br label %2074

.thread1353:                                      ; preds = %2048, %2060
  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 %203) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %204) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %205, ptr noundef nonnull align 1 dereferenceable(7) @.str.935)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %206) #11
  store double 1.234500e+00, ptr %206, align 8, !tbaa !5
  %2069 = load ptr, ptr %205, align 8
  %2070 = getelementptr inbounds i8, ptr %205, i64 8
  %2071 = load i64, ptr %2070, align 8
  call 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 %204, ptr %2069, i64 %2071, ptr noundef nonnull align 8 dereferenceable(8) %206)
  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 %203, ptr noundef nonnull @.str.977, ptr noundef nonnull @.str.392, ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 1 dereferenceable(4) @.str.394)
          to label %2072 unwind label %2075

2072:                                             ; preds = %.thread1353
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %206) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #11
  %2073 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %203)
  br i1 %2073, label %2091, label %2077

2074:                                             ; preds = %2068, %2054
  %.pn903.pn.pn = phi { ptr, i32 } [ %.pn903.pn, %2068 ], [ %.pn900.pn, %2054 ]
  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 %2983

2075:                                             ; preds = %.thread1353
  %2076 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %206) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #11
  br label %2097

2077:                                             ; preds = %2072
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %207) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %207)
          to label %2078 unwind label %2083

2078:                                             ; preds = %2077
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %208) #11
  %2079 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %203)
          to label %2080 unwind label %2085

2080:                                             ; preds = %2078
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %208, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 945, ptr noundef %2079)
          to label %2081 unwind label %2085

2081:                                             ; preds = %2080
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %208, ptr noundef nonnull align 8 dereferenceable(8) %207)
          to label %2082 unwind label %2087

2082:                                             ; preds = %2081
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %208) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %208) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %207) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %207) #11
  br label %2091

2083:                                             ; preds = %2077
  %2084 = landingpad { ptr, i32 }
          cleanup
  br label %2090

2085:                                             ; preds = %2080, %2078
  %2086 = landingpad { ptr, i32 }
          cleanup
  br label %2089

2087:                                             ; preds = %2081
  %2088 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %208) #11
  br label %2089

2089:                                             ; preds = %2087, %2085
  %.pn907 = phi { ptr, i32 } [ %2088, %2087 ], [ %2086, %2085 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %208) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %207) #11
  br label %2090

2090:                                             ; preds = %2089, %2083
  %.pn907.pn = phi { ptr, i32 } [ %.pn907, %2089 ], [ %2084, %2083 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %207) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203) #11
  br label %2097

2091:                                             ; preds = %2072, %2082
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %203) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %209) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %210) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJeEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %211, ptr noundef nonnull align 1 dereferenceable(7) @.str.935)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %212) #11
  store x86_fp80 0xK3FFF9E04189374BC6A7F, ptr %212, align 16, !tbaa !20
  %2092 = load ptr, ptr %211, align 8
  %2093 = getelementptr inbounds i8, ptr %211, i64 8
  %2094 = load i64, ptr %2093, align 8
  call void @_ZN3fmt3v106formatIJeEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %210, ptr %2092, i64 %2094, ptr noundef nonnull align 16 dereferenceable(16) %212)
  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 %209, ptr noundef nonnull @.str.978, ptr noundef nonnull @.str.392, ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull align 1 dereferenceable(4) @.str.394)
          to label %2095 unwind label %2098

2095:                                             ; preds = %2091
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %212) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #11
  %2096 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %209)
  br i1 %2096, label %2114, label %2100

2097:                                             ; preds = %2090, %2075
  %.pn907.pn.pn = phi { ptr, i32 } [ %.pn907.pn, %2090 ], [ %2076, %2075 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %203) #11
  br label %2983

2098:                                             ; preds = %2091
  %2099 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %212) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #11
  br label %2120

2100:                                             ; preds = %2095
  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 %2101 unwind label %2106

2101:                                             ; preds = %2100
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %214) #11
  %2102 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %209)
          to label %2103 unwind label %2108

2103:                                             ; preds = %2101
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %214, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 946, ptr noundef %2102)
          to label %2104 unwind label %2108

2104:                                             ; preds = %2103
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %214, ptr noundef nonnull align 8 dereferenceable(8) %213)
          to label %2105 unwind label %2110

2105:                                             ; preds = %2104
  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 %2114

2106:                                             ; preds = %2100
  %2107 = landingpad { ptr, i32 }
          cleanup
  br label %2113

2108:                                             ; preds = %2103, %2101
  %2109 = landingpad { ptr, i32 }
          cleanup
  br label %2112

2110:                                             ; preds = %2104
  %2111 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %214) #11
  br label %2112

2112:                                             ; preds = %2110, %2108
  %.pn911 = phi { ptr, i32 } [ %2111, %2110 ], [ %2109, %2108 ]
  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 %2113

2113:                                             ; preds = %2112, %2106
  %.pn911.pn = phi { ptr, i32 } [ %.pn911, %2112 ], [ %2107, %2106 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %213) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %209) #11
  br label %2120

2114:                                             ; preds = %2095, %2105
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %209) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %209) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %215) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %216) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %217, ptr noundef nonnull align 1 dereferenceable(6) @.str.981)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %218) #11
  store double 1.234000e+56, ptr %218, align 8, !tbaa !5
  %2115 = load ptr, ptr %217, align 8
  %2116 = getelementptr inbounds i8, ptr %217, i64 8
  %2117 = load i64, ptr %2116, align 8
  call 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 %216, ptr %2115, i64 %2117, ptr noundef nonnull align 8 dereferenceable(8) %218)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %215, ptr noundef nonnull @.str.979, ptr noundef nonnull @.str.980, ptr noundef nonnull align 8 dereferenceable(32) %216, ptr noundef nonnull align 1 dereferenceable(8) @.str.982)
          to label %2118 unwind label %2121

2118:                                             ; preds = %2114
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %218) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #11
  %2119 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %215)
  br i1 %2119, label %2137, label %2123

2120:                                             ; preds = %2113, %2098
  %.pn911.pn.pn = phi { ptr, i32 } [ %.pn911.pn, %2113 ], [ %2099, %2098 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %209) #11
  br label %2983

2121:                                             ; preds = %2114
  %2122 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %218) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #11
  br label %2143

2123:                                             ; preds = %2118
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %219) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %219)
          to label %2124 unwind label %2129

2124:                                             ; preds = %2123
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %220) #11
  %2125 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %215)
          to label %2126 unwind label %2131

2126:                                             ; preds = %2124
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %220, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 947, ptr noundef %2125)
          to label %2127 unwind label %2131

2127:                                             ; preds = %2126
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %220, ptr noundef nonnull align 8 dereferenceable(8) %219)
          to label %2128 unwind label %2133

2128:                                             ; preds = %2127
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %220) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %220) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %219) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %219) #11
  br label %2137

2129:                                             ; preds = %2123
  %2130 = landingpad { ptr, i32 }
          cleanup
  br label %2136

2131:                                             ; preds = %2126, %2124
  %2132 = landingpad { ptr, i32 }
          cleanup
  br label %2135

2133:                                             ; preds = %2127
  %2134 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %220) #11
  br label %2135

2135:                                             ; preds = %2133, %2131
  %.pn915 = phi { ptr, i32 } [ %2134, %2133 ], [ %2132, %2131 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %220) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %219) #11
  br label %2136

2136:                                             ; preds = %2135, %2129
  %.pn915.pn = phi { ptr, i32 } [ %.pn915, %2135 ], [ %2130, %2129 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %219) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %215) #11
  br label %2143

2137:                                             ; preds = %2118, %2128
  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 %221) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %222) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %223, ptr noundef nonnull align 1 dereferenceable(7) @.str.985)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %224) #11
  store double 1.100000e+00, ptr %224, align 8, !tbaa !5
  %2138 = load ptr, ptr %223, align 8
  %2139 = getelementptr inbounds i8, ptr %223, i64 8
  %2140 = load i64, ptr %2139, align 8
  call 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 %222, ptr %2138, i64 %2140, ptr noundef nonnull align 8 dereferenceable(8) %224)
  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 %221, ptr noundef nonnull @.str.983, ptr noundef nonnull @.str.984, ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull align 1 dereferenceable(4) @.str.986)
          to label %2141 unwind label %2144

2141:                                             ; preds = %2137
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %224) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #11
  %2142 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %221)
  br i1 %2142, label %2160, label %2146

2143:                                             ; preds = %2136, %2121
  %.pn915.pn.pn = phi { ptr, i32 } [ %.pn915.pn, %2136 ], [ %2122, %2121 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %215) #11
  br label %2983

2144:                                             ; preds = %2137
  %2145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %224) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #11
  br label %2166

2146:                                             ; preds = %2141
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %225) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %225)
          to label %2147 unwind label %2152

2147:                                             ; preds = %2146
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %226) #11
  %2148 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %221)
          to label %2149 unwind label %2154

2149:                                             ; preds = %2147
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %226, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 948, ptr noundef %2148)
          to label %2150 unwind label %2154

2150:                                             ; preds = %2149
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %226, ptr noundef nonnull align 8 dereferenceable(8) %225)
          to label %2151 unwind label %2156

2151:                                             ; preds = %2150
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %226) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %226) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %225) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %225) #11
  br label %2160

2152:                                             ; preds = %2146
  %2153 = landingpad { ptr, i32 }
          cleanup
  br label %2159

2154:                                             ; preds = %2149, %2147
  %2155 = landingpad { ptr, i32 }
          cleanup
  br label %2158

2156:                                             ; preds = %2150
  %2157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %226) #11
  br label %2158

2158:                                             ; preds = %2156, %2154
  %.pn919 = phi { ptr, i32 } [ %2157, %2156 ], [ %2155, %2154 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %226) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %225) #11
  br label %2159

2159:                                             ; preds = %2158, %2152
  %.pn919.pn = phi { ptr, i32 } [ %.pn919, %2158 ], [ %2153, %2152 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %225) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #11
  br label %2166

2160:                                             ; preds = %2141, %2151
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %221) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %227) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %228) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJeEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %229, ptr noundef nonnull align 1 dereferenceable(7) @.str.989)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %230) #11
  store x86_fp80 0xK3FFF8000000000000000, ptr %230, align 16, !tbaa !20
  %2161 = load ptr, ptr %229, align 8
  %2162 = getelementptr inbounds i8, ptr %229, i64 8
  %2163 = load i64, ptr %2162, align 8
  call void @_ZN3fmt3v106formatIJeEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %228, ptr %2161, i64 %2163, ptr noundef nonnull align 16 dereferenceable(16) %230)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA6_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %227, ptr noundef nonnull @.str.987, ptr noundef nonnull @.str.988, ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef nonnull align 1 dereferenceable(6) @.str.990)
          to label %2164 unwind label %2167

2164:                                             ; preds = %2160
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %230) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #11
  %2165 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %227)
  br i1 %2165, label %2183, label %2169

2166:                                             ; preds = %2159, %2144
  %.pn919.pn.pn = phi { ptr, i32 } [ %.pn919.pn, %2159 ], [ %2145, %2144 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %221) #11
  br label %2983

2167:                                             ; preds = %2160
  %2168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %230) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #11
  br label %2189

2169:                                             ; preds = %2164
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %231) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %231)
          to label %2170 unwind label %2175

2170:                                             ; preds = %2169
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %232) #11
  %2171 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %227)
          to label %2172 unwind label %2177

2172:                                             ; preds = %2170
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %232, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 949, ptr noundef %2171)
          to label %2173 unwind label %2177

2173:                                             ; preds = %2172
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %232, ptr noundef nonnull align 8 dereferenceable(8) %231)
          to label %2174 unwind label %2179

2174:                                             ; preds = %2173
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %232) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %232) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %231) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %231) #11
  br label %2183

2175:                                             ; preds = %2169
  %2176 = landingpad { ptr, i32 }
          cleanup
  br label %2182

2177:                                             ; preds = %2172, %2170
  %2178 = landingpad { ptr, i32 }
          cleanup
  br label %2181

2179:                                             ; preds = %2173
  %2180 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %232) #11
  br label %2181

2181:                                             ; preds = %2179, %2177
  %.pn923 = phi { ptr, i32 } [ %2180, %2179 ], [ %2178, %2177 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %232) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %231) #11
  br label %2182

2182:                                             ; preds = %2181, %2175
  %.pn923.pn = phi { ptr, i32 } [ %.pn923, %2181 ], [ %2176, %2175 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %231) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %227) #11
  br label %2189

2183:                                             ; preds = %2164, %2174
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %227) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %227) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %233) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %234) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %235, ptr noundef nonnull align 1 dereferenceable(8) @.str.993)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %236) #11
  store double 0.000000e+00, ptr %236, align 8, !tbaa !5
  %2184 = load ptr, ptr %235, align 8
  %2185 = getelementptr inbounds i8, ptr %235, i64 8
  %2186 = load i64, ptr %2185, align 8
  call 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 %234, ptr %2184, i64 %2186, ptr noundef nonnull align 8 dereferenceable(8) %236)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA10_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %233, ptr noundef nonnull @.str.991, ptr noundef nonnull @.str.992, ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef nonnull align 1 dereferenceable(10) @.str.994)
          to label %2187 unwind label %2190

2187:                                             ; preds = %2183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %236) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %234) #11
  %2188 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %233)
  br i1 %2188, label %2206, label %2192

2189:                                             ; preds = %2182, %2167
  %.pn923.pn.pn = phi { ptr, i32 } [ %.pn923.pn, %2182 ], [ %2168, %2167 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %227) #11
  br label %2983

2190:                                             ; preds = %2183
  %2191 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %236) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %234) #11
  br label %2212

2192:                                             ; preds = %2187
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %237) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %237)
          to label %2193 unwind label %2198

2193:                                             ; preds = %2192
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %238) #11
  %2194 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %233)
          to label %2195 unwind label %2200

2195:                                             ; preds = %2193
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %238, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 950, ptr noundef %2194)
          to label %2196 unwind label %2200

2196:                                             ; preds = %2195
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %238, ptr noundef nonnull align 8 dereferenceable(8) %237)
          to label %2197 unwind label %2202

2197:                                             ; preds = %2196
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %238) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %238) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %237) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %237) #11
  br label %2206

2198:                                             ; preds = %2192
  %2199 = landingpad { ptr, i32 }
          cleanup
  br label %2205

2200:                                             ; preds = %2195, %2193
  %2201 = landingpad { ptr, i32 }
          cleanup
  br label %2204

2202:                                             ; preds = %2196
  %2203 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %238) #11
  br label %2204

2204:                                             ; preds = %2202, %2200
  %.pn927 = phi { ptr, i32 } [ %2203, %2202 ], [ %2201, %2200 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %238) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %237) #11
  br label %2205

2205:                                             ; preds = %2204, %2198
  %.pn927.pn = phi { ptr, i32 } [ %.pn927, %2204 ], [ %2199, %2198 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %237) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %233) #11
  br label %2212

2206:                                             ; preds = %2187, %2197
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %233) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %233) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %239) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %240) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %241, ptr noundef nonnull align 1 dereferenceable(8) @.str.997)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %242) #11
  store double 4.940660e-324, ptr %242, align 8, !tbaa !5
  %2207 = load ptr, ptr %241, align 8
  %2208 = getelementptr inbounds i8, ptr %241, i64 8
  %2209 = load i64, ptr %2208, align 8
  call 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 %240, ptr %2207, i64 %2209, ptr noundef nonnull align 8 dereferenceable(8) %242)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA501_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %239, ptr noundef nonnull @.str.995, ptr noundef nonnull @.str.996, ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef nonnull align 1 dereferenceable(501) @.str.998)
          to label %2210 unwind label %2213

2210:                                             ; preds = %2206
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %242) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %240) #11
  %2211 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %239)
  br i1 %2211, label %2229, label %2215

2212:                                             ; preds = %2205, %2190
  %.pn927.pn.pn = phi { ptr, i32 } [ %.pn927.pn, %2205 ], [ %2191, %2190 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %233) #11
  br label %2983

2213:                                             ; preds = %2206
  %2214 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %242) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %240) #11
  br label %2235

2215:                                             ; preds = %2210
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %243) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %243)
          to label %2216 unwind label %2221

2216:                                             ; preds = %2215
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %244) #11
  %2217 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %239)
          to label %2218 unwind label %2223

2218:                                             ; preds = %2216
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %244, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 959, ptr noundef %2217)
          to label %2219 unwind label %2223

2219:                                             ; preds = %2218
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %244, ptr noundef nonnull align 8 dereferenceable(8) %243)
          to label %2220 unwind label %2225

2220:                                             ; preds = %2219
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %244) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %244) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %243) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %243) #11
  br label %2229

2221:                                             ; preds = %2215
  %2222 = landingpad { ptr, i32 }
          cleanup
  br label %2228

2223:                                             ; preds = %2218, %2216
  %2224 = landingpad { ptr, i32 }
          cleanup
  br label %2227

2225:                                             ; preds = %2219
  %2226 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %244) #11
  br label %2227

2227:                                             ; preds = %2225, %2223
  %.pn931 = phi { ptr, i32 } [ %2226, %2225 ], [ %2224, %2223 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %244) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %243) #11
  br label %2228

2228:                                             ; preds = %2227, %2221
  %.pn931.pn = phi { ptr, i32 } [ %.pn931, %2227 ], [ %2222, %2221 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %243) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %239) #11
  br label %2235

2229:                                             ; preds = %2210, %2220
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %239) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %239) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %245) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %246) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA10_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %247, ptr noundef nonnull align 1 dereferenceable(10) @.str.1001)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %248) #11
  store double 0x7FFFFFFFFFFFF, ptr %248, align 8, !tbaa !5
  %2230 = load ptr, ptr %247, align 8
  %2231 = getelementptr inbounds i8, ptr %247, i64 8
  %2232 = load i64, ptr %2231, align 8
  call 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 %246, ptr %2230, i64 %2232, ptr noundef nonnull align 8 dereferenceable(8) %248)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA1077_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %245, ptr noundef nonnull @.str.999, ptr noundef nonnull @.str.1000, ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull align 1 dereferenceable(1077) @.str.1002)
          to label %2233 unwind label %2236

2233:                                             ; preds = %2229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %248) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %246) #11
  %2234 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %245)
  br i1 %2234, label %2252, label %2238

2235:                                             ; preds = %2228, %2213
  %.pn931.pn.pn = phi { ptr, i32 } [ %.pn931.pn, %2228 ], [ %2214, %2213 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %239) #11
  br label %2983

2236:                                             ; preds = %2229
  %2237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %248) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %246) #11
  br label %2265

2238:                                             ; preds = %2233
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %249) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %249)
          to label %2239 unwind label %2244

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

2241:                                             ; preds = %2239
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %250, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 976, ptr noundef %2240)
          to label %2242 unwind label %2246

2242:                                             ; preds = %2241
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef nonnull align 8 dereferenceable(8) %249)
          to label %2243 unwind label %2248

2243:                                             ; preds = %2242
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %250) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %250) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %249) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %249) #11
  br label %2252

2244:                                             ; preds = %2238
  %2245 = landingpad { ptr, i32 }
          cleanup
  br label %2251

2246:                                             ; preds = %2241, %2239
  %2247 = landingpad { ptr, i32 }
          cleanup
  br label %2250

2248:                                             ; preds = %2242
  %2249 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %250) #11
  br label %2250

2250:                                             ; preds = %2248, %2246
  %.pn935 = phi { ptr, i32 } [ %2249, %2248 ], [ %2247, %2246 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %250) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %249) #11
  br label %2251

2251:                                             ; preds = %2250, %2244
  %.pn935.pn = phi { ptr, i32 } [ %.pn935, %2250 ], [ %2245, %2244 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %249) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %245) #11
  br label %2265

2252:                                             ; preds = %2233, %2243
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %245) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %245) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %251) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %252) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef nonnull @.str.1003, ptr noundef nonnull align 1 dereferenceable(1) %252)
          to label %2253 unwind label %.thread1356

2253:                                             ; preds = %2252
  %2254 = getelementptr inbounds i8, ptr %251, i64 32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %253) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %253) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %2254, ptr noundef nonnull @.str.1004, ptr noundef nonnull align 1 dereferenceable(1) %253)
          to label %2255 unwind label %.loopexit.loopexit1392

2255:                                             ; preds = %2253
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %253) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %253) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %252) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %254) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %255) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %258, ptr noundef nonnull align 1 dereferenceable(9) @.str.1005)
          to label %2256 unwind label %2268

2256:                                             ; preds = %2255
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %259) #11
  store double 0xC7E41FE3FFE71C9E, ptr %259, align 8, !tbaa !5
  %2257 = load ptr, ptr %258, align 8
  %2258 = getelementptr inbounds i8, ptr %258, i64 8
  %2259 = load i64, ptr %2258, 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 %257, ptr %2257, i64 %2259, ptr noundef nonnull align 8 dereferenceable(8) %259)
          to label %2260 unwind label %2270

2260:                                             ; preds = %2256
  invoke void @_ZN7testing8ContainsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8internal15ContainsMatcherIT_EES9_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::ContainsMatcher") align 8 %256, ptr noundef nonnull %257)
          to label %2261 unwind label %2272

2261:                                             ; preds = %2260
  invoke void @_ZN7testing8internal33MakePredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_29PredicateFormatterFromMatcherIT_EESB_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::PredicateFormatterFromMatcher") align 8 %255, ptr noundef nonnull %256)
          to label %2262 unwind label %2274

2262:                                             ; preds = %2261
  invoke void @_ZNK7testing8internal29PredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEclIA2_S8_EENS_15AssertionResultEPKcRKT_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %254, ptr noundef nonnull align 8 dereferenceable(32) %255, ptr noundef nonnull @.str.1006, ptr noundef nonnull align 8 dereferenceable(64) %251)
          to label %2263 unwind label %2276

2263:                                             ; preds = %2262
  call void @_ZN7testing8internal29PredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #11
  call void @_ZN7testing8internal15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %259) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %255) #11
  %2264 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %254)
  br i1 %2264, label %2296, label %2282

2265:                                             ; preds = %2251, %2236
  %.pn935.pn.pn = phi { ptr, i32 } [ %.pn935.pn, %2251 ], [ %2237, %2236 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %245) #11
  br label %2983

.thread1356:                                      ; preds = %2252
  %2266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %252) #11
  br label %.loopexit

.loopexit.loopexit1392:                           ; preds = %2253
  %2267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %253) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %253) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %252) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #11
  br label %.loopexit

2268:                                             ; preds = %2255
  %2269 = landingpad { ptr, i32 }
          cleanup
  br label %2281

2270:                                             ; preds = %2256
  %2271 = landingpad { ptr, i32 }
          cleanup
  br label %2280

2272:                                             ; preds = %2260
  %2273 = landingpad { ptr, i32 }
          cleanup
  br label %2279

2274:                                             ; preds = %2261
  %2275 = landingpad { ptr, i32 }
          cleanup
  br label %2278

2276:                                             ; preds = %2262
  %2277 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal29PredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #11
  br label %2278

2278:                                             ; preds = %2276, %2274
  %.pn941 = phi { ptr, i32 } [ %2277, %2276 ], [ %2275, %2274 ]
  call void @_ZN7testing8internal15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #11
  br label %2279

2279:                                             ; preds = %2278, %2272
  %.pn941.pn = phi { ptr, i32 } [ %.pn941, %2278 ], [ %2273, %2272 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #11
  br label %2280

2280:                                             ; preds = %2279, %2270
  %.pn941.pn.pn = phi { ptr, i32 } [ %.pn941.pn, %2279 ], [ %2271, %2270 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %259) #11
  br label %2281

2281:                                             ; preds = %2280, %2268
  %.pn941.pn.pn.pn = phi { ptr, i32 } [ %.pn941.pn.pn, %2280 ], [ %2269, %2268 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %255) #11
  br label %2305

2282:                                             ; preds = %2263
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %260) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %260)
          to label %2283 unwind label %2288

2283:                                             ; preds = %2282
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %261) #11
  %2284 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %254)
          to label %2285 unwind label %2290

2285:                                             ; preds = %2283
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %261, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1004, ptr noundef %2284)
          to label %2286 unwind label %2290

2286:                                             ; preds = %2285
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %261, ptr noundef nonnull align 8 dereferenceable(8) %260)
          to label %2287 unwind label %2292

2287:                                             ; preds = %2286
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %261) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %261) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %260) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %260) #11
  br label %2296

2288:                                             ; preds = %2282
  %2289 = landingpad { ptr, i32 }
          cleanup
  br label %2295

2290:                                             ; preds = %2285, %2283
  %2291 = landingpad { ptr, i32 }
          cleanup
  br label %2294

2292:                                             ; preds = %2286
  %2293 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %261) #11
  br label %2294

2294:                                             ; preds = %2292, %2290
  %.pn946 = phi { ptr, i32 } [ %2293, %2292 ], [ %2291, %2290 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %261) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %260) #11
  br label %2295

2295:                                             ; preds = %2294, %2288
  %.pn946.pn = phi { ptr, i32 } [ %.pn946, %2294 ], [ %2289, %2288 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %260) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %254) #11
  br label %2305

2296:                                             ; preds = %2263, %2287
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %254) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %254) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %262) #11
  %2297 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #11
  store x86_fp80 %2297, ptr %262, align 16, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %263) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %264) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJReEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES9_(ptr noundef nonnull align 8 dereferenceable(16) %265, ptr noundef nonnull align 1 dereferenceable(6) @.str.1009)
          to label %2298 unwind label %2306

2298:                                             ; preds = %2296
  %2299 = load ptr, ptr %265, align 8
  %2300 = getelementptr inbounds i8, ptr %265, i64 8
  %2301 = load i64, ptr %2300, align 8
  invoke void @_ZN3fmt3v106formatIJReEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %264, ptr %2299, i64 %2301, ptr noundef nonnull align 16 dereferenceable(16) %262)
          to label %2302 unwind label %2306

2302:                                             ; preds = %2298
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %263, ptr noundef nonnull @.str.1007, ptr noundef nonnull @.str.1008, ptr noundef nonnull align 8 dereferenceable(32) %264, ptr noundef nonnull align 1 dereferenceable(8) @.str.1010)
          to label %2303 unwind label %2308

2303:                                             ; preds = %2302
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %264) #11
  %2304 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %263)
  br i1 %2304, label %2325, label %2311

2305:                                             ; preds = %2295, %2281
  %.pn946.pn.pn = phi { ptr, i32 } [ %.pn946.pn, %2295 ], [ %.pn941.pn.pn.pn, %2281 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %254) #11
  br label %.loopexit.loopexit

2306:                                             ; preds = %2298, %2296
  %2307 = landingpad { ptr, i32 }
          cleanup
  br label %2310

2308:                                             ; preds = %2302
  %2309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #11
  br label %2310

2310:                                             ; preds = %2308, %2306
  %.pn950 = phi { ptr, i32 } [ %2309, %2308 ], [ %2307, %2306 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %264) #11
  br label %2334

2311:                                             ; preds = %2303
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %266) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %266)
          to label %2312 unwind label %2317

2312:                                             ; preds = %2311
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %267) #11
  %2313 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %263)
          to label %2314 unwind label %2319

2314:                                             ; preds = %2312
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %267, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1008, ptr noundef %2313)
          to label %2315 unwind label %2319

2315:                                             ; preds = %2314
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %267, ptr noundef nonnull align 8 dereferenceable(8) %266)
          to label %2316 unwind label %2321

2316:                                             ; preds = %2315
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %267) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %267) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %266) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %266) #11
  br label %2325

2317:                                             ; preds = %2311
  %2318 = landingpad { ptr, i32 }
          cleanup
  br label %2324

2319:                                             ; preds = %2314, %2312
  %2320 = landingpad { ptr, i32 }
          cleanup
  br label %2323

2321:                                             ; preds = %2315
  %2322 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %267) #11
  br label %2323

2323:                                             ; preds = %2321, %2319
  %.pn952 = phi { ptr, i32 } [ %2322, %2321 ], [ %2320, %2319 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %267) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %266) #11
  br label %2324

2324:                                             ; preds = %2323, %2317
  %.pn952.pn = phi { ptr, i32 } [ %.pn952, %2323 ], [ %2318, %2317 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %266) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %263) #11
  br label %2334

2325:                                             ; preds = %2303, %2316
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %263) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %263) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %268) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %269) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJeEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %270, ptr noundef nonnull align 1 dereferenceable(6) @.str.1013)
          to label %2326 unwind label %2335

2326:                                             ; preds = %2325
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %271) #11
  %2327 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE10denorm_minEv() #11
  store x86_fp80 %2327, ptr %271, align 16, !tbaa !20
  %2328 = load ptr, ptr %270, align 8
  %2329 = getelementptr inbounds i8, ptr %270, i64 8
  %2330 = load i64, ptr %2329, align 8
  invoke void @_ZN3fmt3v106formatIJeEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %269, ptr %2328, i64 %2330, ptr noundef nonnull align 16 dereferenceable(16) %271)
          to label %2331 unwind label %2337

2331:                                             ; preds = %2326
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA13_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %268, ptr noundef nonnull @.str.1011, ptr noundef nonnull @.str.1012, ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef nonnull align 1 dereferenceable(13) @.str.1014)
          to label %2332 unwind label %2339

2332:                                             ; preds = %2331
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %271) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %269) #11
  %2333 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %268)
  br i1 %2333, label %2357, label %2343

2334:                                             ; preds = %2324, %2310
  %.pn952.pn.pn = phi { ptr, i32 } [ %.pn952.pn, %2324 ], [ %.pn950, %2310 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %263) #11
  br label %2366

2335:                                             ; preds = %2325
  %2336 = landingpad { ptr, i32 }
          cleanup
  br label %2342

2337:                                             ; preds = %2326
  %2338 = landingpad { ptr, i32 }
          cleanup
  br label %2341

2339:                                             ; preds = %2331
  %2340 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #11
  br label %2341

2341:                                             ; preds = %2339, %2337
  %.pn956 = phi { ptr, i32 } [ %2340, %2339 ], [ %2338, %2337 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %271) #11
  br label %2342

2342:                                             ; preds = %2341, %2335
  %.pn956.pn = phi { ptr, i32 } [ %.pn956, %2341 ], [ %2336, %2335 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %269) #11
  br label %2365

2343:                                             ; preds = %2332
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %272) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %272)
          to label %2344 unwind label %2349

2344:                                             ; preds = %2343
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %273) #11
  %2345 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %268)
          to label %2346 unwind label %2351

2346:                                             ; preds = %2344
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %273, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1011, ptr noundef %2345)
          to label %2347 unwind label %2351

2347:                                             ; preds = %2346
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef nonnull align 8 dereferenceable(8) %272)
          to label %2348 unwind label %2353

2348:                                             ; preds = %2347
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %273) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %273) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %272) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %272) #11
  br label %2357

2349:                                             ; preds = %2343
  %2350 = landingpad { ptr, i32 }
          cleanup
  br label %2356

2351:                                             ; preds = %2346, %2344
  %2352 = landingpad { ptr, i32 }
          cleanup
  br label %2355

2353:                                             ; preds = %2347
  %2354 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %273) #11
  br label %2355

2355:                                             ; preds = %2353, %2351
  %.pn959 = phi { ptr, i32 } [ %2354, %2353 ], [ %2352, %2351 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %273) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %272) #11
  br label %2356

2356:                                             ; preds = %2355, %2349
  %.pn959.pn = phi { ptr, i32 } [ %.pn959, %2355 ], [ %2350, %2349 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %272) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %268) #11
  br label %2365

2357:                                             ; preds = %2332, %2348
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %268) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %268) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %262) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %274) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %275) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %276, ptr noundef nonnull align 1 dereferenceable(8) @.str.717)
          to label %2358 unwind label %2367

2358:                                             ; preds = %2357
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %277) #11
  store double 1.230000e+02, ptr %277, align 8, !tbaa !5
  %2359 = load ptr, ptr %276, align 8
  %2360 = getelementptr inbounds i8, ptr %276, i64 8
  %2361 = load i64, ptr %2360, 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 %275, ptr %2359, i64 %2361, ptr noundef nonnull align 8 dereferenceable(8) %277)
          to label %2362 unwind label %2369

2362:                                             ; preds = %2358
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %274, ptr noundef nonnull @.str.1015, ptr noundef nonnull @.str.1016, ptr noundef nonnull align 8 dereferenceable(32) %275, ptr noundef nonnull align 1 dereferenceable(5) @.str.1017)
          to label %2363 unwind label %2371

2363:                                             ; preds = %2362
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %277) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %275) #11
  %2364 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %274)
  br i1 %2364, label %2389, label %2375

2365:                                             ; preds = %2356, %2342
  %.pn959.pn.pn = phi { ptr, i32 } [ %.pn959.pn, %2356 ], [ %.pn956.pn, %2342 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %268) #11
  br label %2366

2366:                                             ; preds = %2365, %2334
  %.pn959.pn.pn.pn = phi { ptr, i32 } [ %.pn959.pn.pn, %2365 ], [ %.pn952.pn.pn, %2334 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %262) #11
  br label %.loopexit.loopexit

2367:                                             ; preds = %2357
  %2368 = landingpad { ptr, i32 }
          cleanup
  br label %2374

2369:                                             ; preds = %2358
  %2370 = landingpad { ptr, i32 }
          cleanup
  br label %2373

2371:                                             ; preds = %2362
  %2372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #11
  br label %2373

2373:                                             ; preds = %2371, %2369
  %.pn964 = phi { ptr, i32 } [ %2372, %2371 ], [ %2370, %2369 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %277) #11
  br label %2374

2374:                                             ; preds = %2373, %2367
  %.pn964.pn = phi { ptr, i32 } [ %.pn964, %2373 ], [ %2368, %2367 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %275) #11
  br label %2397

2375:                                             ; preds = %2363
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %278) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %278)
          to label %2376 unwind label %2381

2376:                                             ; preds = %2375
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %279) #11
  %2377 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %274)
          to label %2378 unwind label %2383

2378:                                             ; preds = %2376
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %279, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1014, ptr noundef %2377)
          to label %2379 unwind label %2383

2379:                                             ; preds = %2378
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %279, ptr noundef nonnull align 8 dereferenceable(8) %278)
          to label %2380 unwind label %2385

2380:                                             ; preds = %2379
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %279) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %278) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %278) #11
  br label %2389

2381:                                             ; preds = %2375
  %2382 = landingpad { ptr, i32 }
          cleanup
  br label %2388

2383:                                             ; preds = %2378, %2376
  %2384 = landingpad { ptr, i32 }
          cleanup
  br label %2387

2385:                                             ; preds = %2379
  %2386 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #11
  br label %2387

2387:                                             ; preds = %2385, %2383
  %.pn967 = phi { ptr, i32 } [ %2386, %2385 ], [ %2384, %2383 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %279) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %278) #11
  br label %2388

2388:                                             ; preds = %2387, %2381
  %.pn967.pn = phi { ptr, i32 } [ %.pn967, %2387 ], [ %2382, %2381 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %278) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %274) #11
  br label %2397

2389:                                             ; preds = %2363, %2380
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %274) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %274) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %280) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %281) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %282, ptr noundef nonnull align 1 dereferenceable(8) @.str.1020)
          to label %2390 unwind label %2398

2390:                                             ; preds = %2389
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %283) #11
  store double 1.234000e+00, ptr %283, align 8, !tbaa !5
  %2391 = load ptr, ptr %282, align 8
  %2392 = getelementptr inbounds i8, ptr %282, i64 8
  %2393 = load i64, ptr %2392, 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 %281, ptr %2391, i64 %2393, ptr noundef nonnull align 8 dereferenceable(8) %283)
          to label %2394 unwind label %2400

2394:                                             ; preds = %2390
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA5_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %280, ptr noundef nonnull @.str.1018, ptr noundef nonnull @.str.1019, ptr noundef nonnull align 8 dereferenceable(32) %281, ptr noundef nonnull align 1 dereferenceable(5) @.str.1021)
          to label %2395 unwind label %2402

2395:                                             ; preds = %2394
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %281) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %283) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %281) #11
  %2396 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %280)
  br i1 %2396, label %2420, label %2406

2397:                                             ; preds = %2388, %2374
  %.pn967.pn.pn = phi { ptr, i32 } [ %.pn967.pn, %2388 ], [ %.pn964.pn, %2374 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %274) #11
  br label %.loopexit.loopexit

2398:                                             ; preds = %2389
  %2399 = landingpad { ptr, i32 }
          cleanup
  br label %2405

2400:                                             ; preds = %2390
  %2401 = landingpad { ptr, i32 }
          cleanup
  br label %2404

2402:                                             ; preds = %2394
  %2403 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %281) #11
  br label %2404

2404:                                             ; preds = %2402, %2400
  %.pn971 = phi { ptr, i32 } [ %2403, %2402 ], [ %2401, %2400 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %283) #11
  br label %2405

2405:                                             ; preds = %2404, %2398
  %.pn971.pn = phi { ptr, i32 } [ %.pn971, %2404 ], [ %2399, %2398 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %281) #11
  br label %2428

2406:                                             ; preds = %2395
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %284) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %284)
          to label %2407 unwind label %2412

2407:                                             ; preds = %2406
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %285) #11
  %2408 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %280)
          to label %2409 unwind label %2414

2409:                                             ; preds = %2407
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %285, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1015, ptr noundef %2408)
          to label %2410 unwind label %2414

2410:                                             ; preds = %2409
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %285, ptr noundef nonnull align 8 dereferenceable(8) %284)
          to label %2411 unwind label %2416

2411:                                             ; preds = %2410
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %285) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %285) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %284) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %284) #11
  br label %2420

2412:                                             ; preds = %2406
  %2413 = landingpad { ptr, i32 }
          cleanup
  br label %2419

2414:                                             ; preds = %2409, %2407
  %2415 = landingpad { ptr, i32 }
          cleanup
  br label %2418

2416:                                             ; preds = %2410
  %2417 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %285) #11
  br label %2418

2418:                                             ; preds = %2416, %2414
  %.pn974 = phi { ptr, i32 } [ %2417, %2416 ], [ %2415, %2414 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %285) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %284) #11
  br label %2419

2419:                                             ; preds = %2418, %2412
  %.pn974.pn = phi { ptr, i32 } [ %.pn974, %2418 ], [ %2413, %2412 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %284) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %280) #11
  br label %2428

2420:                                             ; preds = %2395, %2411
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %280) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %280) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %286) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %287) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %288, ptr noundef nonnull align 1 dereferenceable(7) @.str.1024)
          to label %2421 unwind label %2429

2421:                                             ; preds = %2420
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %289) #11
  store double 1.000000e-03, ptr %289, align 8, !tbaa !5
  %2422 = load ptr, ptr %288, align 8
  %2423 = getelementptr inbounds i8, ptr %288, i64 8
  %2424 = load i64, ptr %2423, 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 %287, ptr %2422, i64 %2424, ptr noundef nonnull align 8 dereferenceable(8) %289)
          to label %2425 unwind label %2431

2425:                                             ; preds = %2421
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA6_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %286, ptr noundef nonnull @.str.1022, ptr noundef nonnull @.str.1023, ptr noundef nonnull align 8 dereferenceable(32) %287, ptr noundef nonnull align 1 dereferenceable(6) @.str.1025)
          to label %2426 unwind label %2433

2426:                                             ; preds = %2425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %289) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #11
  %2427 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %286)
  br i1 %2427, label %2451, label %2437

2428:                                             ; preds = %2419, %2405
  %.pn974.pn.pn = phi { ptr, i32 } [ %.pn974.pn, %2419 ], [ %.pn971.pn, %2405 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %280) #11
  br label %.loopexit.loopexit

2429:                                             ; preds = %2420
  %2430 = landingpad { ptr, i32 }
          cleanup
  br label %2436

2431:                                             ; preds = %2421
  %2432 = landingpad { ptr, i32 }
          cleanup
  br label %2435

2433:                                             ; preds = %2425
  %2434 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #11
  br label %2435

2435:                                             ; preds = %2433, %2431
  %.pn978 = phi { ptr, i32 } [ %2434, %2433 ], [ %2432, %2431 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %289) #11
  br label %2436

2436:                                             ; preds = %2435, %2429
  %.pn978.pn = phi { ptr, i32 } [ %.pn978, %2435 ], [ %2430, %2429 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #11
  br label %2459

2437:                                             ; preds = %2426
  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 %2438 unwind label %2443

2438:                                             ; preds = %2437
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %291) #11
  %2439 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %286)
          to label %2440 unwind label %2445

2440:                                             ; preds = %2438
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %291, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1016, ptr noundef %2439)
          to label %2441 unwind label %2445

2441:                                             ; preds = %2440
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull align 8 dereferenceable(8) %290)
          to label %2442 unwind label %2447

2442:                                             ; preds = %2441
  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 %2451

2443:                                             ; preds = %2437
  %2444 = landingpad { ptr, i32 }
          cleanup
  br label %2450

2445:                                             ; preds = %2440, %2438
  %2446 = landingpad { ptr, i32 }
          cleanup
  br label %2449

2447:                                             ; preds = %2441
  %2448 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #11
  br label %2449

2449:                                             ; preds = %2447, %2445
  %.pn981 = phi { ptr, i32 } [ %2448, %2447 ], [ %2446, %2445 ]
  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 %2450

2450:                                             ; preds = %2449, %2443
  %.pn981.pn = phi { ptr, i32 } [ %.pn981, %2449 ], [ %2444, %2443 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %290) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %286) #11
  br label %2459

2451:                                             ; preds = %2426, %2442
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %286) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %286) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %292) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %293) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJfEEC2IA3_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %294, ptr noundef nonnull align 1 dereferenceable(3) @.str.223)
          to label %2452 unwind label %2460

2452:                                             ; preds = %2451
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %295) #11
  store float 0x41CE637000000000, ptr %295, align 4, !tbaa !22
  %2453 = load ptr, ptr %294, align 8
  %2454 = getelementptr inbounds i8, ptr %294, i64 8
  %2455 = load i64, ptr %2454, align 8
  invoke void @_ZN3fmt3v106formatIJfEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %293, ptr %2453, i64 %2455, ptr noundef nonnull align 4 dereferenceable(4) %295)
          to label %2456 unwind label %2462

2456:                                             ; preds = %2452
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA11_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %292, ptr noundef nonnull @.str.1026, ptr noundef nonnull @.str.1027, ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef nonnull align 1 dereferenceable(11) @.str.1028)
          to label %2457 unwind label %2464

2457:                                             ; preds = %2456
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %295) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %293) #11
  %2458 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %292)
  br i1 %2458, label %2482, label %2468

2459:                                             ; preds = %2450, %2436
  %.pn981.pn.pn = phi { ptr, i32 } [ %.pn981.pn, %2450 ], [ %.pn978.pn, %2436 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %286) #11
  br label %.loopexit.loopexit

2460:                                             ; preds = %2451
  %2461 = landingpad { ptr, i32 }
          cleanup
  br label %2467

2462:                                             ; preds = %2452
  %2463 = landingpad { ptr, i32 }
          cleanup
  br label %2466

2464:                                             ; preds = %2456
  %2465 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #11
  br label %2466

2466:                                             ; preds = %2464, %2462
  %.pn985 = phi { ptr, i32 } [ %2465, %2464 ], [ %2463, %2462 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %295) #11
  br label %2467

2467:                                             ; preds = %2466, %2460
  %.pn985.pn = phi { ptr, i32 } [ %.pn985, %2466 ], [ %2461, %2460 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %293) #11
  br label %2490

2468:                                             ; preds = %2457
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %296) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %296)
          to label %2469 unwind label %2474

2469:                                             ; preds = %2468
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %297) #11
  %2470 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %292)
          to label %2471 unwind label %2476

2471:                                             ; preds = %2469
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %297, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1017, ptr noundef %2470)
          to label %2472 unwind label %2476

2472:                                             ; preds = %2471
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %297, ptr noundef nonnull align 8 dereferenceable(8) %296)
          to label %2473 unwind label %2478

2473:                                             ; preds = %2472
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %297) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %297) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %296) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %296) #11
  br label %2482

2474:                                             ; preds = %2468
  %2475 = landingpad { ptr, i32 }
          cleanup
  br label %2481

2476:                                             ; preds = %2471, %2469
  %2477 = landingpad { ptr, i32 }
          cleanup
  br label %2480

2478:                                             ; preds = %2472
  %2479 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %297) #11
  br label %2480

2480:                                             ; preds = %2478, %2476
  %.pn988 = phi { ptr, i32 } [ %2479, %2478 ], [ %2477, %2476 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %297) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %296) #11
  br label %2481

2481:                                             ; preds = %2480, %2474
  %.pn988.pn = phi { ptr, i32 } [ %.pn988, %2480 ], [ %2475, %2474 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %296) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %292) #11
  br label %2490

2482:                                             ; preds = %2457, %2473
  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 %298) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %299) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %300, ptr noundef nonnull align 1 dereferenceable(7) @.str.989)
          to label %2483 unwind label %2491

2483:                                             ; preds = %2482
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %301) #11
  store double 9.500000e+00, ptr %301, align 8, !tbaa !5
  %2484 = load ptr, ptr %300, align 8
  %2485 = getelementptr inbounds i8, ptr %300, i64 8
  %2486 = load i64, ptr %2485, 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 %299, ptr %2484, i64 %2486, ptr noundef nonnull align 8 dereferenceable(8) %301)
          to label %2487 unwind label %2493

2487:                                             ; preds = %2483
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA6_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %298, ptr noundef nonnull @.str.1029, ptr noundef nonnull @.str.1030, ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef nonnull align 1 dereferenceable(6) @.str.1031)
          to label %2488 unwind label %2495

2488:                                             ; preds = %2487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %301) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %299) #11
  %2489 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %298)
  br i1 %2489, label %2513, label %2499

2490:                                             ; preds = %2481, %2467
  %.pn988.pn.pn = phi { ptr, i32 } [ %.pn988.pn, %2481 ], [ %.pn985.pn, %2467 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %292) #11
  br label %.loopexit.loopexit

2491:                                             ; preds = %2482
  %2492 = landingpad { ptr, i32 }
          cleanup
  br label %2498

2493:                                             ; preds = %2483
  %2494 = landingpad { ptr, i32 }
          cleanup
  br label %2497

2495:                                             ; preds = %2487
  %2496 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #11
  br label %2497

2497:                                             ; preds = %2495, %2493
  %.pn992 = phi { ptr, i32 } [ %2496, %2495 ], [ %2494, %2493 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %301) #11
  br label %2498

2498:                                             ; preds = %2497, %2491
  %.pn992.pn = phi { ptr, i32 } [ %.pn992, %2497 ], [ %2492, %2491 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %299) #11
  br label %2521

2499:                                             ; preds = %2488
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %302) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %302)
          to label %2500 unwind label %2505

2500:                                             ; preds = %2499
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %303) #11
  %2501 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %298)
          to label %2502 unwind label %2507

2502:                                             ; preds = %2500
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %303, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1018, ptr noundef %2501)
          to label %2503 unwind label %2507

2503:                                             ; preds = %2502
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %303, ptr noundef nonnull align 8 dereferenceable(8) %302)
          to label %2504 unwind label %2509

2504:                                             ; preds = %2503
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %303) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %302) #11
  br label %2513

2505:                                             ; preds = %2499
  %2506 = landingpad { ptr, i32 }
          cleanup
  br label %2512

2507:                                             ; preds = %2502, %2500
  %2508 = landingpad { ptr, i32 }
          cleanup
  br label %2511

2509:                                             ; preds = %2503
  %2510 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #11
  br label %2511

2511:                                             ; preds = %2509, %2507
  %.pn995 = phi { ptr, i32 } [ %2510, %2509 ], [ %2508, %2507 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %303) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #11
  br label %2512

2512:                                             ; preds = %2511, %2505
  %.pn995.pn = phi { ptr, i32 } [ %.pn995, %2511 ], [ %2506, %2505 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %302) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %298) #11
  br label %2521

2513:                                             ; preds = %2488, %2504
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %298) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %298) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %304) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %305) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %306, ptr noundef nonnull align 1 dereferenceable(7) @.str.1034)
          to label %2514 unwind label %2522

2514:                                             ; preds = %2513
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %307) #11
  store double 0x38E09D8792FB4C49, ptr %307, align 8, !tbaa !5
  %2515 = load ptr, ptr %306, align 8
  %2516 = getelementptr inbounds i8, ptr %306, i64 8
  %2517 = load i64, ptr %2516, 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 %305, ptr %2515, i64 %2517, ptr noundef nonnull align 8 dereferenceable(8) %307)
          to label %2518 unwind label %2524

2518:                                             ; preds = %2514
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %304, ptr noundef nonnull @.str.1032, ptr noundef nonnull @.str.1033, ptr noundef nonnull align 8 dereferenceable(32) %305, ptr noundef nonnull align 1 dereferenceable(8) @.str.1035)
          to label %2519 unwind label %2526

2519:                                             ; preds = %2518
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %307) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %305) #11
  %2520 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %304)
  br i1 %2520, label %2544, label %2530

2521:                                             ; preds = %2512, %2498
  %.pn995.pn.pn = phi { ptr, i32 } [ %.pn995.pn, %2512 ], [ %.pn992.pn, %2498 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %298) #11
  br label %.loopexit.loopexit

2522:                                             ; preds = %2513
  %2523 = landingpad { ptr, i32 }
          cleanup
  br label %2529

2524:                                             ; preds = %2514
  %2525 = landingpad { ptr, i32 }
          cleanup
  br label %2528

2526:                                             ; preds = %2518
  %2527 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #11
  br label %2528

2528:                                             ; preds = %2526, %2524
  %.pn999 = phi { ptr, i32 } [ %2527, %2526 ], [ %2525, %2524 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %307) #11
  br label %2529

2529:                                             ; preds = %2528, %2522
  %.pn999.pn = phi { ptr, i32 } [ %.pn999, %2528 ], [ %2523, %2522 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %305) #11
  br label %2563

2530:                                             ; preds = %2519
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %308) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %308)
          to label %2531 unwind label %2536

2531:                                             ; preds = %2530
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %309) #11
  %2532 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %304)
          to label %2533 unwind label %2538

2533:                                             ; preds = %2531
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %309, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1019, ptr noundef %2532)
          to label %2534 unwind label %2538

2534:                                             ; preds = %2533
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull align 8 dereferenceable(8) %308)
          to label %2535 unwind label %2540

2535:                                             ; preds = %2534
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %309) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %309) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %308) #11
  br label %2544

2536:                                             ; preds = %2530
  %2537 = landingpad { ptr, i32 }
          cleanup
  br label %2543

2538:                                             ; preds = %2533, %2531
  %2539 = landingpad { ptr, i32 }
          cleanup
  br label %2542

2540:                                             ; preds = %2534
  %2541 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %309) #11
  br label %2542

2542:                                             ; preds = %2540, %2538
  %.pn1002 = phi { ptr, i32 } [ %2541, %2540 ], [ %2539, %2538 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %309) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #11
  br label %2543

2543:                                             ; preds = %2542, %2536
  %.pn1002.pn = phi { ptr, i32 } [ %.pn1002, %2542 ], [ %2537, %2536 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %308) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %304) #11
  br label %2563

2544:                                             ; preds = %2519, %2535
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %304) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %304) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %310) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %310)
          to label %2545 unwind label %2564

2545:                                             ; preds = %2544
  %2546 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %310)
  br i1 %2546, label %2547, label %2619

2547:                                             ; preds = %2545
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %311) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %312) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %312)
          to label %2548 unwind label %2566

2548:                                             ; preds = %2547
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %312) #11
  %2549 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2550 unwind label %2568

2550:                                             ; preds = %2548
  br i1 %2549, label %2551, label %.critedge1161

2551:                                             ; preds = %2550
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %315, ptr noundef nonnull @.str.935)
          to label %2552 unwind label %2568

2552:                                             ; preds = %2551
  %2553 = load ptr, ptr %315, align 8
  %2554 = getelementptr inbounds i8, ptr %315, i64 8
  %2555 = load i64, ptr %2554, align 8
  %2556 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2553, i64 %2555)
  %2557 = extractvalue { ptr, i64 } %2556, 0
  %2558 = extractvalue { ptr, i64 } %2556, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJPvEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %314, ptr %2557, i64 %2558)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %316) #11
  store ptr inttoptr (i64 51966 to ptr), ptr %316, align 8, !tbaa !11
  %2559 = load ptr, ptr %314, align 8
  %2560 = getelementptr inbounds i8, ptr %314, i64 8
  %2561 = load i64, ptr %2560, align 8
  invoke void @_ZN3fmt3v106formatIJPvEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %313, ptr %2559, i64 %2561, ptr noundef nonnull align 8 dereferenceable(8) %316)
          to label %2562 unwind label %2570

2562:                                             ; preds = %2552
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %316) #11
  br label %.critedge1161

2563:                                             ; preds = %2543, %2529
  %.pn1002.pn.pn = phi { ptr, i32 } [ %.pn1002.pn, %2543 ], [ %.pn999.pn, %2529 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %304) #11
  br label %.loopexit.loopexit

2564:                                             ; preds = %2544
  %2565 = landingpad { ptr, i32 }
          cleanup
  br label %2652

2566:                                             ; preds = %2547
  %2567 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %312) #11
  br label %2618

2568:                                             ; preds = %2551, %2548
  %2569 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2572

2570:                                             ; preds = %2552
  %2571 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %316) #11
  br label %2572

2572:                                             ; preds = %2570, %2568
  %.pn1006 = phi { ptr, i32 } [ %2571, %2570 ], [ %2569, %2568 ]
  %.232 = extractvalue { ptr, i32 } %.pn1006, 0
  %.232500 = extractvalue { ptr, i32 } %.pn1006, 1
  %2573 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2574 = icmp eq i32 %.232500, %2573
  %2575 = call ptr @__cxa_begin_catch(ptr %.232) #11
  br i1 %2574, label %2576, label %2600

2576:                                             ; preds = %2572
  %2577 = load ptr, ptr %2575, align 8, !tbaa !9
  %2578 = getelementptr inbounds i8, ptr %2577, i64 16
  %2579 = load ptr, ptr %2578, align 8
  %2580 = call noundef ptr %2579(ptr noundef nonnull align 8 dereferenceable(16) %2575) #11
  %2581 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef %2580)
          to label %2582 unwind label %2607

2582:                                             ; preds = %2576
  br i1 %2581, label %2583, label %2611

2583:                                             ; preds = %2582
  %2584 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA117_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %310, ptr noundef nonnull align 1 dereferenceable(117) @.str.1037)
          to label %2585 unwind label %2607

2585:                                             ; preds = %2583
  %2586 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2584, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2587 unwind label %2607

2587:                                             ; preds = %2585
  %2588 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2586, ptr noundef nonnull align 8 dereferenceable(32) %311)
          to label %2589 unwind label %2607

2589:                                             ; preds = %2587
  %2590 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2588, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2591 unwind label %2607

2591:                                             ; preds = %2589
  %2592 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2590, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2593 unwind label %2607

2593:                                             ; preds = %2591
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %317) #11
  %2594 = load ptr, ptr %2575, align 8, !tbaa !9
  %2595 = getelementptr inbounds i8, ptr %2594, i64 16
  %2596 = load ptr, ptr %2595, align 8
  %2597 = call noundef ptr %2596(ptr noundef nonnull align 8 dereferenceable(16) %2575) #11
  store ptr %2597, ptr %317, align 8, !tbaa !11
  %2598 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2592, ptr noundef nonnull align 8 dereferenceable(8) %317)
          to label %2599 unwind label %2609

2599:                                             ; preds = %2593
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %317) #11
  br label %2611

2600:                                             ; preds = %2572
  %2601 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA160_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %310, ptr noundef nonnull align 1 dereferenceable(160) @.str.1036)
          to label %2602 unwind label %2603

2602:                                             ; preds = %2600
  invoke void @__cxa_end_catch()
          to label %.thread1361 unwind label %2605

2603:                                             ; preds = %2600
  %2604 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2617 unwind label %2984

2605:                                             ; preds = %.critedge1161, %2602
  %2606 = landingpad { ptr, i32 }
          cleanup
  br label %2617

2607:                                             ; preds = %2591, %2589, %2587, %2585, %2583, %2576
  %2608 = landingpad { ptr, i32 }
          cleanup
  br label %2616

2609:                                             ; preds = %2593
  %2610 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %317) #11
  br label %2616

2611:                                             ; preds = %2582, %2599
  invoke void @__cxa_end_catch()
          to label %2612 unwind label %2614

2612:                                             ; preds = %2611
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %311) #11
  br i1 %2581, label %2619, label %.thread1364

.critedge1161:                                    ; preds = %2550, %2562
  %2613 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA151_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %310, ptr noundef nonnull align 1 dereferenceable(151) @.str.1038)
          to label %.thread1361 unwind label %2605

2614:                                             ; preds = %2611
  %2615 = landingpad { ptr, i32 }
          cleanup
  br label %2617

2616:                                             ; preds = %2609, %2607
  %.pn1008 = phi { ptr, i32 } [ %2610, %2609 ], [ %2608, %2607 ]
  invoke void @__cxa_end_catch()
          to label %2617 unwind label %2984

.thread1361:                                      ; preds = %2602, %.critedge1161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %311) #11
  br label %2619

2617:                                             ; preds = %2614, %2616, %2603, %2605
  %.pn1012 = phi { ptr, i32 } [ %2606, %2605 ], [ %2604, %2603 ], [ %2615, %2614 ], [ %.pn1008, %2616 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #11
  br label %2618

2618:                                             ; preds = %2617, %2566
  %.pn1012.pn = phi { ptr, i32 } [ %.pn1012, %2617 ], [ %2567, %2566 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %311) #11
  br label %2651

2619:                                             ; preds = %2612, %.thread1361, %2545
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %318) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %318)
          to label %2620 unwind label %2625

2620:                                             ; preds = %2619
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %319) #11
  %2621 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %310)
          to label %2622 unwind label %2627

2622:                                             ; preds = %2620
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %319, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1023, ptr noundef %2621)
          to label %2623 unwind label %2627

2623:                                             ; preds = %2622
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %319, ptr noundef nonnull align 8 dereferenceable(8) %318)
          to label %2624 unwind label %2629

2624:                                             ; preds = %2623
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %319) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %319) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %318) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %318) #11
  br label %.thread1364

2625:                                             ; preds = %2619
  %2626 = landingpad { ptr, i32 }
          cleanup
  br label %2632

2627:                                             ; preds = %2622, %2620
  %2628 = landingpad { ptr, i32 }
          cleanup
  br label %2631

2629:                                             ; preds = %2623
  %2630 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %319) #11
  br label %2631

2631:                                             ; preds = %2629, %2627
  %.pn1015 = phi { ptr, i32 } [ %2630, %2629 ], [ %2628, %2627 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %319) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %318) #11
  br label %2632

2632:                                             ; preds = %2631, %2625
  %.pn1015.pn = phi { ptr, i32 } [ %.pn1015, %2631 ], [ %2626, %2625 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %318) #11
  br label %2651

.thread1364:                                      ; preds = %2612, %2624
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %310) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %310) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %320) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %320)
          to label %2633 unwind label %2653

2633:                                             ; preds = %.thread1364
  %2634 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %320)
  br i1 %2634, label %2635, label %2708

2635:                                             ; preds = %2633
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %321) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %322) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %322) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %321, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %322)
          to label %2636 unwind label %2655

2636:                                             ; preds = %2635
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %322) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %322) #11
  %2637 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2638 unwind label %2657

2638:                                             ; preds = %2636
  br i1 %2637, label %2639, label %.critedge1165

2639:                                             ; preds = %2638
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %325, ptr noundef nonnull @.str.939)
          to label %2640 unwind label %2657

2640:                                             ; preds = %2639
  %2641 = load ptr, ptr %325, align 8
  %2642 = getelementptr inbounds i8, ptr %325, i64 8
  %2643 = load i64, ptr %2642, align 8
  %2644 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2641, i64 %2643)
  %2645 = extractvalue { ptr, i64 } %2644, 0
  %2646 = extractvalue { ptr, i64 } %2644, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJPvEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %324, ptr %2645, i64 %2646)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %326) #11
  store ptr inttoptr (i64 51966 to ptr), ptr %326, align 8, !tbaa !11
  %2647 = load ptr, ptr %324, align 8
  %2648 = getelementptr inbounds i8, ptr %324, i64 8
  %2649 = load i64, ptr %2648, align 8
  invoke void @_ZN3fmt3v106formatIJPvEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSB_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %323, ptr %2647, i64 %2649, ptr noundef nonnull align 8 dereferenceable(8) %326)
          to label %2650 unwind label %2659

2650:                                             ; preds = %2640
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %326) #11
  br label %.critedge1165

2651:                                             ; preds = %2632, %2618
  %.pn1015.pn.pn = phi { ptr, i32 } [ %.pn1015.pn, %2632 ], [ %.pn1012.pn, %2618 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %310) #11
  br label %2652

2652:                                             ; preds = %2651, %2564
  %.pn1015.pn.pn.pn = phi { ptr, i32 } [ %.pn1015.pn.pn, %2651 ], [ %2565, %2564 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %310) #11
  br label %.loopexit.loopexit

2653:                                             ; preds = %.thread1364
  %2654 = landingpad { ptr, i32 }
          cleanup
  br label %2742

2655:                                             ; preds = %2635
  %2656 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %322) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %322) #11
  br label %2707

2657:                                             ; preds = %2639, %2636
  %2658 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2661

2659:                                             ; preds = %2640
  %2660 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %326) #11
  br label %2661

2661:                                             ; preds = %2659, %2657
  %.pn1020 = phi { ptr, i32 } [ %2660, %2659 ], [ %2658, %2657 ]
  %.241 = extractvalue { ptr, i32 } %.pn1020, 0
  %.241509 = extractvalue { ptr, i32 } %.pn1020, 1
  %2662 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2663 = icmp eq i32 %.241509, %2662
  %2664 = call ptr @__cxa_begin_catch(ptr %.241) #11
  br i1 %2663, label %2665, label %2689

2665:                                             ; preds = %2661
  %2666 = load ptr, ptr %2664, align 8, !tbaa !9
  %2667 = getelementptr inbounds i8, ptr %2666, i64 16
  %2668 = load ptr, ptr %2667, align 8
  %2669 = call noundef ptr %2668(ptr noundef nonnull align 8 dereferenceable(16) %2664) #11
  %2670 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %321, ptr noundef %2669)
          to label %2671 unwind label %2696

2671:                                             ; preds = %2665
  br i1 %2670, label %2672, label %2700

2672:                                             ; preds = %2671
  %2673 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA118_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %320, ptr noundef nonnull align 1 dereferenceable(118) @.str.1040)
          to label %2674 unwind label %2696

2674:                                             ; preds = %2672
  %2675 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2673, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2676 unwind label %2696

2676:                                             ; preds = %2674
  %2677 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2675, ptr noundef nonnull align 8 dereferenceable(32) %321)
          to label %2678 unwind label %2696

2678:                                             ; preds = %2676
  %2679 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2677, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2680 unwind label %2696

2680:                                             ; preds = %2678
  %2681 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2679, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2682 unwind label %2696

2682:                                             ; preds = %2680
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %327) #11
  %2683 = load ptr, ptr %2664, align 8, !tbaa !9
  %2684 = getelementptr inbounds i8, ptr %2683, i64 16
  %2685 = load ptr, ptr %2684, align 8
  %2686 = call noundef ptr %2685(ptr noundef nonnull align 8 dereferenceable(16) %2664) #11
  store ptr %2686, ptr %327, align 8, !tbaa !11
  %2687 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2681, ptr noundef nonnull align 8 dereferenceable(8) %327)
          to label %2688 unwind label %2698

2688:                                             ; preds = %2682
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %327) #11
  br label %2700

2689:                                             ; preds = %2661
  %2690 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA161_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %320, ptr noundef nonnull align 1 dereferenceable(161) @.str.1039)
          to label %2691 unwind label %2692

2691:                                             ; preds = %2689
  invoke void @__cxa_end_catch()
          to label %.thread1369 unwind label %2694

2692:                                             ; preds = %2689
  %2693 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2706 unwind label %2984

2694:                                             ; preds = %.critedge1165, %2691
  %2695 = landingpad { ptr, i32 }
          cleanup
  br label %2706

2696:                                             ; preds = %2680, %2678, %2676, %2674, %2672, %2665
  %2697 = landingpad { ptr, i32 }
          cleanup
  br label %2705

2698:                                             ; preds = %2682
  %2699 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %327) #11
  br label %2705

2700:                                             ; preds = %2671, %2688
  invoke void @__cxa_end_catch()
          to label %2701 unwind label %2703

2701:                                             ; preds = %2700
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %321) #11
  br i1 %2670, label %2708, label %.thread1372

.critedge1165:                                    ; preds = %2638, %2650
  %2702 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA152_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %320, ptr noundef nonnull align 1 dereferenceable(152) @.str.1041)
          to label %.thread1369 unwind label %2694

2703:                                             ; preds = %2700
  %2704 = landingpad { ptr, i32 }
          cleanup
  br label %2706

2705:                                             ; preds = %2698, %2696
  %.pn1022 = phi { ptr, i32 } [ %2699, %2698 ], [ %2697, %2696 ]
  invoke void @__cxa_end_catch()
          to label %2706 unwind label %2984

.thread1369:                                      ; preds = %2691, %.critedge1165
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %321) #11
  br label %2708

2706:                                             ; preds = %2703, %2705, %2692, %2694
  %.pn1026 = phi { ptr, i32 } [ %2695, %2694 ], [ %2693, %2692 ], [ %2704, %2703 ], [ %.pn1022, %2705 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #11
  br label %2707

2707:                                             ; preds = %2706, %2655
  %.pn1026.pn = phi { ptr, i32 } [ %.pn1026, %2706 ], [ %2656, %2655 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %321) #11
  br label %2741

2708:                                             ; preds = %2701, %.thread1369, %2633
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %328) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %328)
          to label %2709 unwind label %2714

2709:                                             ; preds = %2708
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %329) #11
  %2710 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %320)
          to label %2711 unwind label %2716

2711:                                             ; preds = %2709
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %329, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1026, ptr noundef %2710)
          to label %2712 unwind label %2716

2712:                                             ; preds = %2711
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %329, ptr noundef nonnull align 8 dereferenceable(8) %328)
          to label %2713 unwind label %2718

2713:                                             ; preds = %2712
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %329) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %329) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %328) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %328) #11
  br label %.thread1372

2714:                                             ; preds = %2708
  %2715 = landingpad { ptr, i32 }
          cleanup
  br label %2721

2716:                                             ; preds = %2711, %2709
  %2717 = landingpad { ptr, i32 }
          cleanup
  br label %2720

2718:                                             ; preds = %2712
  %2719 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %329) #11
  br label %2720

2720:                                             ; preds = %2718, %2716
  %.pn1029 = phi { ptr, i32 } [ %2719, %2718 ], [ %2717, %2716 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %329) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %328) #11
  br label %2721

2721:                                             ; preds = %2720, %2714
  %.pn1029.pn = phi { ptr, i32 } [ %.pn1029, %2720 ], [ %2715, %2714 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %328) #11
  br label %2741

.thread1372:                                      ; preds = %2701, %2713
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %320) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %320) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %330) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %330)
          to label %2722 unwind label %2743

2722:                                             ; preds = %.thread1372
  %2723 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %330)
  br i1 %2723, label %2724, label %2798

2724:                                             ; preds = %2722
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %331) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %332) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %332) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull @.str.785, ptr noundef nonnull align 1 dereferenceable(1) %332)
          to label %2725 unwind label %2745

2725:                                             ; preds = %2724
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %332) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %332) #11
  %2726 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2727 unwind label %2747

2727:                                             ; preds = %2725
  br i1 %2726, label %2728, label %.critedge1169

2728:                                             ; preds = %2727
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %335, ptr noundef nonnull @.str.1042)
          to label %2729 unwind label %2747

2729:                                             ; preds = %2728
  %2730 = load ptr, ptr %335, align 8
  %2731 = getelementptr inbounds i8, ptr %335, i64 8
  %2732 = load i64, ptr %2731, align 8
  %2733 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %2730, i64 %2732)
  %2734 = extractvalue { ptr, i64 } %2733, 0
  %2735 = extractvalue { ptr, i64 } %2733, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %334, ptr %2734, i64 %2735)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %336) #11
  store double 4.200000e+01, ptr %336, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %337) #11
  %2736 = call noundef i32 @_ZN3fmt3v106detail9max_valueIiEET_v()
  store i32 %2736, ptr %337, align 4, !tbaa !14
  %2737 = load ptr, ptr %334, align 8
  %2738 = getelementptr inbounds i8, ptr %334, i64 8
  %2739 = load i64, ptr %2738, 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 %333, ptr %2737, i64 %2739, ptr noundef nonnull align 8 dereferenceable(8) %336, ptr noundef nonnull align 4 dereferenceable(4) %337)
          to label %2740 unwind label %2749

2740:                                             ; preds = %2729
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %337) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %336) #11
  br label %.critedge1169

2741:                                             ; preds = %2721, %2707
  %.pn1029.pn.pn = phi { ptr, i32 } [ %.pn1029.pn, %2721 ], [ %.pn1026.pn, %2707 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %320) #11
  br label %2742

2742:                                             ; preds = %2741, %2653
  %.pn1029.pn.pn.pn = phi { ptr, i32 } [ %.pn1029.pn.pn, %2741 ], [ %2654, %2653 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %320) #11
  br label %.loopexit.loopexit

2743:                                             ; preds = %.thread1372
  %2744 = landingpad { ptr, i32 }
          cleanup
  br label %2825

2745:                                             ; preds = %2724
  %2746 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %332) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %332) #11
  br label %2797

2747:                                             ; preds = %2728, %2725
  %2748 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2751

2749:                                             ; preds = %2729
  %2750 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %337) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %336) #11
  br label %2751

2751:                                             ; preds = %2749, %2747
  %.pn1034 = phi { ptr, i32 } [ %2750, %2749 ], [ %2748, %2747 ]
  %.250 = extractvalue { ptr, i32 } %.pn1034, 0
  %.250518 = extractvalue { ptr, i32 } %.pn1034, 1
  %2752 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2753 = icmp eq i32 %.250518, %2752
  %2754 = call ptr @__cxa_begin_catch(ptr %.250) #11
  br i1 %2753, label %2755, label %2779

2755:                                             ; preds = %2751
  %2756 = load ptr, ptr %2754, align 8, !tbaa !9
  %2757 = getelementptr inbounds i8, ptr %2756, i64 16
  %2758 = load ptr, ptr %2757, align 8
  %2759 = call noundef ptr %2758(ptr noundef nonnull align 8 dereferenceable(16) %2754) #11
  %2760 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef %2759)
          to label %2761 unwind label %2786

2761:                                             ; preds = %2755
  br i1 %2760, label %2762, label %2790

2762:                                             ; preds = %2761
  %2763 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %330, ptr noundef nonnull align 1 dereferenceable(122) @.str.1044)
          to label %2764 unwind label %2786

2764:                                             ; preds = %2762
  %2765 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2763, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2766 unwind label %2786

2766:                                             ; preds = %2764
  %2767 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2765, ptr noundef nonnull align 8 dereferenceable(32) %331)
          to label %2768 unwind label %2786

2768:                                             ; preds = %2766
  %2769 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2767, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2770 unwind label %2786

2770:                                             ; preds = %2768
  %2771 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2769, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2772 unwind label %2786

2772:                                             ; preds = %2770
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %338) #11
  %2773 = load ptr, ptr %2754, align 8, !tbaa !9
  %2774 = getelementptr inbounds i8, ptr %2773, i64 16
  %2775 = load ptr, ptr %2774, align 8
  %2776 = call noundef ptr %2775(ptr noundef nonnull align 8 dereferenceable(16) %2754) #11
  store ptr %2776, ptr %338, align 8, !tbaa !11
  %2777 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2771, ptr noundef nonnull align 8 dereferenceable(8) %338)
          to label %2778 unwind label %2788

2778:                                             ; preds = %2772
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %338) #11
  br label %2790

2779:                                             ; preds = %2751
  %2780 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA165_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %330, ptr noundef nonnull align 1 dereferenceable(165) @.str.1043)
          to label %2781 unwind label %2782

2781:                                             ; preds = %2779
  invoke void @__cxa_end_catch()
          to label %.thread1377 unwind label %2784

2782:                                             ; preds = %2779
  %2783 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2796 unwind label %2984

2784:                                             ; preds = %.critedge1169, %2781
  %2785 = landingpad { ptr, i32 }
          cleanup
  br label %2796

2786:                                             ; preds = %2770, %2768, %2766, %2764, %2762, %2755
  %2787 = landingpad { ptr, i32 }
          cleanup
  br label %2795

2788:                                             ; preds = %2772
  %2789 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %338) #11
  br label %2795

2790:                                             ; preds = %2761, %2778
  invoke void @__cxa_end_catch()
          to label %2791 unwind label %2793

2791:                                             ; preds = %2790
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %331) #11
  br i1 %2760, label %2798, label %.thread1380

.critedge1169:                                    ; preds = %2727, %2740
  %2792 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA156_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %330, ptr noundef nonnull align 1 dereferenceable(156) @.str.1045)
          to label %.thread1377 unwind label %2784

2793:                                             ; preds = %2790
  %2794 = landingpad { ptr, i32 }
          cleanup
  br label %2796

2795:                                             ; preds = %2788, %2786
  %.pn1036 = phi { ptr, i32 } [ %2789, %2788 ], [ %2787, %2786 ]
  invoke void @__cxa_end_catch()
          to label %2796 unwind label %2984

.thread1377:                                      ; preds = %2781, %.critedge1169
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %331) #11
  br label %2798

2796:                                             ; preds = %2793, %2795, %2782, %2784
  %.pn1040 = phi { ptr, i32 } [ %2785, %2784 ], [ %2783, %2782 ], [ %2794, %2793 ], [ %.pn1036, %2795 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #11
  br label %2797

2797:                                             ; preds = %2796, %2745
  %.pn1040.pn = phi { ptr, i32 } [ %.pn1040, %2796 ], [ %2746, %2745 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %331) #11
  br label %2824

2798:                                             ; preds = %2791, %.thread1377, %2722
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %339) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %339)
          to label %2799 unwind label %2804

2799:                                             ; preds = %2798
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %340) #11
  %2800 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %330)
          to label %2801 unwind label %2806

2801:                                             ; preds = %2799
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %340, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1029, ptr noundef %2800)
          to label %2802 unwind label %2806

2802:                                             ; preds = %2801
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %340, ptr noundef nonnull align 8 dereferenceable(8) %339)
          to label %2803 unwind label %2808

2803:                                             ; preds = %2802
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %340) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %340) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %339) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %339) #11
  br label %.thread1380

2804:                                             ; preds = %2798
  %2805 = landingpad { ptr, i32 }
          cleanup
  br label %2811

2806:                                             ; preds = %2801, %2799
  %2807 = landingpad { ptr, i32 }
          cleanup
  br label %2810

2808:                                             ; preds = %2802
  %2809 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %340) #11
  br label %2810

2810:                                             ; preds = %2808, %2806
  %.pn1043 = phi { ptr, i32 } [ %2809, %2808 ], [ %2807, %2806 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %340) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %339) #11
  br label %2811

2811:                                             ; preds = %2810, %2804
  %.pn1043.pn = phi { ptr, i32 } [ %.pn1043, %2810 ], [ %2805, %2804 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %339) #11
  br label %2824

.thread1380:                                      ; preds = %2791, %2803
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %330) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %330) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %341) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %341)
          to label %2812 unwind label %2826

2812:                                             ; preds = %.thread1380
  %2813 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %341)
  br i1 %2813, label %2814, label %2881

2814:                                             ; preds = %2812
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %342) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %343) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull @.str.785, ptr noundef nonnull align 1 dereferenceable(1) %343)
          to label %2815 unwind label %2828

2815:                                             ; preds = %2814
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %343) #11
  %2816 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2817 unwind label %2830

2817:                                             ; preds = %2815
  br i1 %2816, label %2818, label %.critedge1173

2818:                                             ; preds = %2817
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA16_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %345, ptr noundef nonnull align 1 dereferenceable(16) @.str.1046)
          to label %2819 unwind label %2830

2819:                                             ; preds = %2818
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %346) #11
  store double 0xFF2020FFFFFF2020, ptr %346, align 8, !tbaa !5
  %2820 = load ptr, ptr %345, align 8
  %2821 = getelementptr inbounds i8, ptr %345, i64 8
  %2822 = load i64, ptr %2821, 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 %344, ptr %2820, i64 %2822, ptr noundef nonnull align 8 dereferenceable(8) %346)
          to label %2823 unwind label %2832

2823:                                             ; preds = %2819
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %346) #11
  br label %.critedge1173

2824:                                             ; preds = %2811, %2797
  %.pn1043.pn.pn = phi { ptr, i32 } [ %.pn1043.pn, %2811 ], [ %.pn1040.pn, %2797 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %330) #11
  br label %2825

2825:                                             ; preds = %2824, %2743
  %.pn1043.pn.pn.pn = phi { ptr, i32 } [ %.pn1043.pn.pn, %2824 ], [ %2744, %2743 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %330) #11
  br label %.loopexit.loopexit

2826:                                             ; preds = %.thread1380
  %2827 = landingpad { ptr, i32 }
          cleanup
  br label %2903

2828:                                             ; preds = %2814
  %2829 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %343) #11
  br label %2880

2830:                                             ; preds = %2818, %2815
  %2831 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %2834

2832:                                             ; preds = %2819
  %2833 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %346) #11
  br label %2834

2834:                                             ; preds = %2832, %2830
  %.pn1048 = phi { ptr, i32 } [ %2833, %2832 ], [ %2831, %2830 ]
  %.259 = extractvalue { ptr, i32 } %.pn1048, 0
  %.259527 = extractvalue { ptr, i32 } %.pn1048, 1
  %2835 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #11
  %2836 = icmp eq i32 %.259527, %2835
  %2837 = call ptr @__cxa_begin_catch(ptr %.259) #11
  br i1 %2836, label %2838, label %2862

2838:                                             ; preds = %2834
  %2839 = load ptr, ptr %2837, align 8, !tbaa !9
  %2840 = getelementptr inbounds i8, ptr %2839, i64 16
  %2841 = load ptr, ptr %2840, align 8
  %2842 = call noundef ptr %2841(ptr noundef nonnull align 8 dereferenceable(16) %2837) #11
  %2843 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef %2842)
          to label %2844 unwind label %2869

2844:                                             ; preds = %2838
  br i1 %2843, label %2845, label %2873

2845:                                             ; preds = %2844
  %2846 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA110_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %341, ptr noundef nonnull align 1 dereferenceable(110) @.str.1048)
          to label %2847 unwind label %2869

2847:                                             ; preds = %2845
  %2848 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2846, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %2849 unwind label %2869

2849:                                             ; preds = %2847
  %2850 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2848, ptr noundef nonnull align 8 dereferenceable(32) %342)
          to label %2851 unwind label %2869

2851:                                             ; preds = %2849
  %2852 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2850, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %2853 unwind label %2869

2853:                                             ; preds = %2851
  %2854 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2852, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %2855 unwind label %2869

2855:                                             ; preds = %2853
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %347) #11
  %2856 = load ptr, ptr %2837, align 8, !tbaa !9
  %2857 = getelementptr inbounds i8, ptr %2856, i64 16
  %2858 = load ptr, ptr %2857, align 8
  %2859 = call noundef ptr %2858(ptr noundef nonnull align 8 dereferenceable(16) %2837) #11
  store ptr %2859, ptr %347, align 8, !tbaa !11
  %2860 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %2854, ptr noundef nonnull align 8 dereferenceable(8) %347)
          to label %2861 unwind label %2871

2861:                                             ; preds = %2855
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %347) #11
  br label %2873

2862:                                             ; preds = %2834
  %2863 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA153_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %341, ptr noundef nonnull align 1 dereferenceable(153) @.str.1047)
          to label %2864 unwind label %2865

2864:                                             ; preds = %2862
  invoke void @__cxa_end_catch()
          to label %.thread1385 unwind label %2867

2865:                                             ; preds = %2862
  %2866 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %2879 unwind label %2984

2867:                                             ; preds = %.critedge1173, %2864
  %2868 = landingpad { ptr, i32 }
          cleanup
  br label %2879

2869:                                             ; preds = %2853, %2851, %2849, %2847, %2845, %2838
  %2870 = landingpad { ptr, i32 }
          cleanup
  br label %2878

2871:                                             ; preds = %2855
  %2872 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %347) #11
  br label %2878

2873:                                             ; preds = %2844, %2861
  invoke void @__cxa_end_catch()
          to label %2874 unwind label %2876

2874:                                             ; preds = %2873
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #11
  br i1 %2843, label %2881, label %.thread1388

.critedge1173:                                    ; preds = %2817, %2823
  %2875 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA144_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %341, ptr noundef nonnull align 1 dereferenceable(144) @.str.1049)
          to label %.thread1385 unwind label %2867

2876:                                             ; preds = %2873
  %2877 = landingpad { ptr, i32 }
          cleanup
  br label %2879

2878:                                             ; preds = %2871, %2869
  %.pn1050 = phi { ptr, i32 } [ %2872, %2871 ], [ %2870, %2869 ]
  invoke void @__cxa_end_catch()
          to label %2879 unwind label %2984

.thread1385:                                      ; preds = %2864, %.critedge1173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #11
  br label %2881

2879:                                             ; preds = %2876, %2878, %2865, %2867
  %.pn1054 = phi { ptr, i32 } [ %2868, %2867 ], [ %2866, %2865 ], [ %2877, %2876 ], [ %.pn1050, %2878 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #11
  br label %2880

2880:                                             ; preds = %2879, %2828
  %.pn1054.pn = phi { ptr, i32 } [ %.pn1054, %2879 ], [ %2829, %2828 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #11
  br label %2902

2881:                                             ; preds = %2874, %.thread1385, %2812
  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 %2882 unwind label %2887

2882:                                             ; preds = %2881
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %349) #11
  %2883 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %341)
          to label %2884 unwind label %2889

2884:                                             ; preds = %2882
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %349, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1032, ptr noundef %2883)
          to label %2885 unwind label %2889

2885:                                             ; preds = %2884
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef nonnull align 8 dereferenceable(8) %348)
          to label %2886 unwind label %2891

2886:                                             ; preds = %2885
  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 %.thread1388

2887:                                             ; preds = %2881
  %2888 = landingpad { ptr, i32 }
          cleanup
  br label %2894

2889:                                             ; preds = %2884, %2882
  %2890 = landingpad { ptr, i32 }
          cleanup
  br label %2893

2891:                                             ; preds = %2885
  %2892 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %349) #11
  br label %2893

2893:                                             ; preds = %2891, %2889
  %.pn1057 = phi { ptr, i32 } [ %2892, %2891 ], [ %2890, %2889 ]
  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 %2894

2894:                                             ; preds = %2893, %2887
  %.pn1057.pn = phi { ptr, i32 } [ %.pn1057, %2893 ], [ %2888, %2887 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %348) #11
  br label %2902

.thread1388:                                      ; preds = %2874, %2886
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %341) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %341) #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
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA4_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %352, ptr noundef nonnull align 1 dereferenceable(7) @.str.935)
          to label %2895 unwind label %2904

2895:                                             ; preds = %.thread1388
  %2896 = load ptr, ptr %352, align 8
  %2897 = getelementptr inbounds i8, ptr %352, i64 8
  %2898 = load i64, ptr %2897, align 8
  invoke void @_ZN3fmt3v106formatIJRA4_KcEEENSt7__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 %2896, i64 %2898, ptr noundef nonnull align 1 dereferenceable(4) @.str.135)
          to label %2899 unwind label %2904

2899:                                             ; preds = %2895
  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.1050, ptr noundef nonnull @.str.341, ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull align 1 dereferenceable(3) @.str.343)
          to label %2900 unwind label %2906

2900:                                             ; preds = %2899
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #11
  %2901 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %350)
  br i1 %2901, label %2923, label %2909

2902:                                             ; preds = %2894, %2880
  %.pn1057.pn.pn = phi { ptr, i32 } [ %.pn1057.pn, %2894 ], [ %.pn1054.pn, %2880 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %341) #11
  br label %2903

2903:                                             ; preds = %2902, %2826
  %.pn1057.pn.pn.pn = phi { ptr, i32 } [ %.pn1057.pn.pn, %2902 ], [ %2827, %2826 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %341) #11
  br label %.loopexit.loopexit

2904:                                             ; preds = %2895, %.thread1388
  %2905 = landingpad { ptr, i32 }
          cleanup
  br label %2908

2906:                                             ; preds = %2899
  %2907 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #11
  br label %2908

2908:                                             ; preds = %2906, %2904
  %.pn1062 = phi { ptr, i32 } [ %2907, %2906 ], [ %2905, %2904 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #11
  br label %2931

2909:                                             ; preds = %2900
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %353) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %353)
          to label %2910 unwind label %2915

2910:                                             ; preds = %2909
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %354) #11
  %2911 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %350)
          to label %2912 unwind label %2917

2912:                                             ; preds = %2910
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %354, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1034, ptr noundef %2911)
          to label %2913 unwind label %2917

2913:                                             ; preds = %2912
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %354, ptr noundef nonnull align 8 dereferenceable(8) %353)
          to label %2914 unwind label %2919

2914:                                             ; preds = %2913
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %354) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %354) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %353) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %353) #11
  br label %2923

2915:                                             ; preds = %2909
  %2916 = landingpad { ptr, i32 }
          cleanup
  br label %2922

2917:                                             ; preds = %2912, %2910
  %2918 = landingpad { ptr, i32 }
          cleanup
  br label %2921

2919:                                             ; preds = %2913
  %2920 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %354) #11
  br label %2921

2921:                                             ; preds = %2919, %2917
  %.pn1064 = phi { ptr, i32 } [ %2920, %2919 ], [ %2918, %2917 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %354) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %353) #11
  br label %2922

2922:                                             ; preds = %2921, %2915
  %.pn1064.pn = phi { ptr, i32 } [ %.pn1064, %2921 ], [ %2916, %2915 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %353) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %350) #11
  br label %2931

2923:                                             ; preds = %2900, %2914
  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.start.p0(i64 16, ptr nonnull %355) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %356) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA13_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %357, ptr noundef nonnull align 1 dereferenceable(7) @.str.1053)
          to label %2924 unwind label %2932

2924:                                             ; preds = %2923
  %2925 = load ptr, ptr %357, align 8
  %2926 = getelementptr inbounds i8, ptr %357, i64 8
  %2927 = load i64, ptr %2926, align 8
  invoke void @_ZN3fmt3v106formatIJRA13_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %356, ptr %2925, i64 %2927, ptr noundef nonnull align 1 dereferenceable(13) @.str.1054)
          to label %2928 unwind label %2932

2928:                                             ; preds = %2924
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA11_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %355, ptr noundef nonnull @.str.1051, ptr noundef nonnull @.str.1052, ptr noundef nonnull align 8 dereferenceable(32) %356, ptr noundef nonnull align 1 dereferenceable(11) @.str.60)
          to label %2929 unwind label %2934

2929:                                             ; preds = %2928
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %356) #11
  %2930 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %355)
  br i1 %2930, label %2951, label %2937

2931:                                             ; preds = %2922, %2908
  %.pn1064.pn.pn = phi { ptr, i32 } [ %.pn1064.pn, %2922 ], [ %.pn1062, %2908 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %350) #11
  br label %.loopexit.loopexit

2932:                                             ; preds = %2924, %2923
  %2933 = landingpad { ptr, i32 }
          cleanup
  br label %2936

2934:                                             ; preds = %2928
  %2935 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #11
  br label %2936

2936:                                             ; preds = %2934, %2932
  %.pn1068 = phi { ptr, i32 } [ %2935, %2934 ], [ %2933, %2932 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %356) #11
  br label %2959

2937:                                             ; preds = %2929
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %358) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %358)
          to label %2938 unwind label %2943

2938:                                             ; preds = %2937
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %359) #11
  %2939 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %355)
          to label %2940 unwind label %2945

2940:                                             ; preds = %2938
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %359, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1035, ptr noundef %2939)
          to label %2941 unwind label %2945

2941:                                             ; preds = %2940
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %359, ptr noundef nonnull align 8 dereferenceable(8) %358)
          to label %2942 unwind label %2947

2942:                                             ; preds = %2941
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %359) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %359) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %358) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %358) #11
  br label %2951

2943:                                             ; preds = %2937
  %2944 = landingpad { ptr, i32 }
          cleanup
  br label %2950

2945:                                             ; preds = %2940, %2938
  %2946 = landingpad { ptr, i32 }
          cleanup
  br label %2949

2947:                                             ; preds = %2941
  %2948 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %359) #11
  br label %2949

2949:                                             ; preds = %2947, %2945
  %.pn1070 = phi { ptr, i32 } [ %2948, %2947 ], [ %2946, %2945 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %359) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %358) #11
  br label %2950

2950:                                             ; preds = %2949, %2943
  %.pn1070.pn = phi { ptr, i32 } [ %.pn1070, %2949 ], [ %2944, %2943 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %358) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %355) #11
  br label %2959

2951:                                             ; preds = %2929, %2942
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %355) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %355) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %360) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %361) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA8_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %362, ptr noundef nonnull align 1 dereferenceable(7) @.str.1057)
          to label %2952 unwind label %2960

2952:                                             ; preds = %2951
  %2953 = load ptr, ptr %362, align 8
  %2954 = getelementptr inbounds i8, ptr %362, i64 8
  %2955 = load i64, ptr %2954, align 8
  invoke void @_ZN3fmt3v106formatIJRA8_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %361, ptr %2953, i64 %2955, ptr noundef nonnull align 1 dereferenceable(8) @.str.1058)
          to label %2956 unwind label %2960

2956:                                             ; preds = %2952
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA7_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %360, ptr noundef nonnull @.str.1055, ptr noundef nonnull @.str.1056, ptr noundef nonnull align 8 dereferenceable(32) %361, ptr noundef nonnull align 1 dereferenceable(7) @.str.88)
          to label %2957 unwind label %2962

2957:                                             ; preds = %2956
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #11
  %2958 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %360)
  br i1 %2958, label %2979, label %2965

2959:                                             ; preds = %2950, %2936
  %.pn1070.pn.pn = phi { ptr, i32 } [ %.pn1070.pn, %2950 ], [ %.pn1068, %2936 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %355) #11
  br label %.loopexit.loopexit

2960:                                             ; preds = %2952, %2951
  %2961 = landingpad { ptr, i32 }
          cleanup
  br label %2964

2962:                                             ; preds = %2956
  %2963 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #11
  br label %2964

2964:                                             ; preds = %2962, %2960
  %.pn1074 = phi { ptr, i32 } [ %2963, %2962 ], [ %2961, %2960 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #11
  br label %2981

2965:                                             ; preds = %2957
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %363) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %363)
          to label %2966 unwind label %2971

2966:                                             ; preds = %2965
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %364) #11
  %2967 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %360)
          to label %2968 unwind label %2973

2968:                                             ; preds = %2966
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %364, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1036, ptr noundef %2967)
          to label %2969 unwind label %2973

2969:                                             ; preds = %2968
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef nonnull align 8 dereferenceable(8) %363)
          to label %2970 unwind label %2975

2970:                                             ; preds = %2969
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %364) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %364) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %363) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %363) #11
  br label %2979

2971:                                             ; preds = %2965
  %2972 = landingpad { ptr, i32 }
          cleanup
  br label %2978

2973:                                             ; preds = %2968, %2966
  %2974 = landingpad { ptr, i32 }
          cleanup
  br label %2977

2975:                                             ; preds = %2969
  %2976 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %364) #11
  br label %2977

2977:                                             ; preds = %2975, %2973
  %.pn1076 = phi { ptr, i32 } [ %2976, %2975 ], [ %2974, %2973 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %364) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %363) #11
  br label %2978

2978:                                             ; preds = %2977, %2971
  %.pn1076.pn = phi { ptr, i32 } [ %.pn1076, %2977 ], [ %2972, %2971 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %363) #11
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %360) #11
  br label %2981

2979:                                             ; preds = %2957, %2970
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %360) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %360) #11
  %2980 = getelementptr inbounds i8, ptr %251, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2980) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %251) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %2) #11
  ret void

2981:                                             ; preds = %2978, %2964
  %.pn1076.pn.pn = phi { ptr, i32 } [ %.pn1076.pn, %2978 ], [ %.pn1074, %2964 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %360) #11
  br label %.loopexit.loopexit

.loopexit.loopexit:                               ; preds = %2981, %2959, %2931, %2903, %2825, %2742, %2652, %2563, %2521, %2490, %2459, %2428, %2397, %2366, %2305
  %.pn1076.pn.pn.pn = phi { ptr, i32 } [ %.pn1076.pn.pn, %2981 ], [ %.pn1070.pn.pn, %2959 ], [ %.pn1064.pn.pn, %2931 ], [ %.pn1057.pn.pn.pn, %2903 ], [ %.pn1043.pn.pn.pn, %2825 ], [ %.pn1029.pn.pn.pn, %2742 ], [ %.pn1015.pn.pn.pn, %2652 ], [ %.pn1002.pn.pn, %2563 ], [ %.pn995.pn.pn, %2521 ], [ %.pn988.pn.pn, %2490 ], [ %.pn981.pn.pn, %2459 ], [ %.pn974.pn.pn, %2428 ], [ %.pn967.pn.pn, %2397 ], [ %.pn959.pn.pn.pn, %2366 ], [ %.pn946.pn.pn, %2305 ]
  %2982 = getelementptr inbounds i8, ptr %251, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2982) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #11
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit1392, %.loopexit.loopexit, %.thread1356
  %.pn1076.pn.pn.pn.pn = phi { ptr, i32 } [ %2266, %.thread1356 ], [ %.pn1076.pn.pn.pn, %.loopexit.loopexit ], [ %2267, %.loopexit.loopexit1392 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %251) #11
  br label %2983

2983:                                             ; preds = %556, %641, %726, %811, %896, %981, %1066, %1151, %1236, %1321, %1406, %1491, %1576, %1661, %1746, %1831, %1916, %2001, %2074, %2097, %2120, %2143, %2166, %2189, %2212, %2235, %2265, %.loopexit, %471
  %.pn1076.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn656.pn.pn, %471 ], [ %.pn1076.pn.pn.pn.pn, %.loopexit ], [ %.pn935.pn.pn, %2265 ], [ %.pn931.pn.pn, %2235 ], [ %.pn927.pn.pn, %2212 ], [ %.pn923.pn.pn, %2189 ], [ %.pn919.pn.pn, %2166 ], [ %.pn915.pn.pn, %2143 ], [ %.pn911.pn.pn, %2120 ], [ %.pn907.pn.pn, %2097 ], [ %.pn903.pn.pn, %2074 ], [ %.pn890.pn.pn, %2001 ], [ %.pn877.pn.pn, %1916 ], [ %.pn864.pn.pn, %1831 ], [ %.pn851.pn.pn, %1746 ], [ %.pn838.pn.pn, %1661 ], [ %.pn825.pn.pn, %1576 ], [ %.pn812.pn.pn, %1491 ], [ %.pn799.pn.pn, %1406 ], [ %.pn786.pn.pn, %1321 ], [ %.pn773.pn.pn, %1236 ], [ %.pn760.pn.pn, %1151 ], [ %.pn747.pn.pn, %1066 ], [ %.pn734.pn.pn, %981 ], [ %.pn721.pn.pn, %896 ], [ %.pn708.pn.pn, %811 ], [ %.pn695.pn.pn, %726 ], [ %.pn682.pn.pn, %641 ], [ %.pn669.pn.pn, %556 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %2) #11
  resume { ptr, i32 } %.pn1076.pn.pn.pn.pn.pn.pn

2984:                                             ; preds = %2878, %2865, %2795, %2782, %2705, %2692, %2616, %2603, %2052, %2039, %1967, %1954, %1882, %1869, %1797, %1784, %1712, %1699, %1627, %1614, %1542, %1529, %1457, %1444, %1372, %1359, %1287, %1274, %1202, %1189, %1117, %1104, %1032, %1019, %947, %934, %862, %849, %777, %764, %692, %679, %607, %594, %522, %509, %433, %420
  %2985 = landingpad { ptr, i32 }
          catch ptr null
  %2986 = extractvalue { ptr, i32 } %2985, 0
  call void @__clang_call_terminate(ptr %2986) #13
  unreachable
}

; 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 nounwind uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJlEEC2ENS0_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_stringIcJxEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16), ptr, i64) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA501_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(501)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA1077_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(1077)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7testing8internal33MakePredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_29PredicateFormatterFromMatcherIT_EESB_(ptr dead_on_unwind noalias writable sret(%"class.testing::internal::PredicateFormatterFromMatcher") align 8, ptr noundef) local_unnamed_addr #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7testing8ContainsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8internal15ContainsMatcherIT_EES9_(ptr dead_on_unwind noalias writable sret(%"class.testing::internal::ContainsMatcher") align 8, ptr noundef) local_unnamed_addr #10

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA9_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 uwtable
declare dso_local void @_ZNK7testing8internal29PredicateFormatterFromMatcherINS0_15ContainsMatcherINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEclIA2_S8_EENS_15AssertionResultEPKcRKT_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() local_unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJReEEENSt7__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 16 dereferenceable(16)) local_unnamed_addr #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE10denorm_minEv() local_unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJfEEENSt7__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)) local_unnamed_addr #7

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN3fmt3v106detail9max_valueIiEET_v() local_unnamed_addr #1

; 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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA16_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(16)) unnamed_addr #7 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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA13_KcEEENSt7__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(13)) local_unnamed_addr #7

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA8_KcEEENSt7__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(8)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1019basic_format_stringIcJRA8_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(7)) 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}
!22 = !{!23, !23, i64 0}
!23 = !{!"float", !7, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopSimplifyPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass