; LLVM IR from WayneLin92/SSeqCpp :: thirdparty/fmt/test/format-test.ll (ZN27format_test_minus_sign_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.fmt::v10::basic_format_string.122" = 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.std::allocator" = type { i8 }
%"class.fmt::v10::basic_format_string.143" = type { %"class.fmt::v10::basic_string_view" }
%"struct.fmt::v10::runtime_format_string" = 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.148" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.149" = 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.151" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.152" = type { %"class.fmt::v10::basic_string_view" }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 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
@_ZTIN3fmt3v1012format_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.249 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.598 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.599 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.600 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.601 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.602 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.603 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.604 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.605 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.606 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.607 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.608 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.609 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.610 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.611 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.613 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.614 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.615 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.616 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.617 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.618 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.619 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.620 = external hidden unnamed_addr constant [157 x i8], align 1
@.str.621 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.622 = external hidden unnamed_addr constant [148 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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #6 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) #7

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

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

; 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) #9

; 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 @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(122)) #2 align 2

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

; Function Attrs: 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)) #6

; 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 @_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 uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA114_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(114)) #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 @_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 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 @_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)) #6

; 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)) #6

; 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)) #6

; 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)) #6

; 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)) #6

; 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)) #6

; 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)) #6

; 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)) #6

; 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)) #6

; 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)) #6

; 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: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA148_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(148)) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN27format_test_minus_sign_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 %"class.testing::AssertionResult", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.testing::Message", align 8
  %10 = alloca %"class.testing::internal::AssertHelper", align 8
  %11 = alloca %"class.testing::AssertionResult", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.testing::Message", align 8
  %16 = alloca %"class.testing::internal::AssertHelper", align 8
  %17 = alloca %"class.testing::AssertionResult", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %20 = alloca i32, align 4
  %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 i8, align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.fmt::v10::basic_format_string.143", align 8
  %29 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %30 = alloca %"class.fmt::v10::basic_string_view", align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca %"class.testing::Message", align 8
  %36 = alloca %"class.testing::internal::AssertHelper", align 8
  %37 = alloca %"class.testing::AssertionResult", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.fmt::v10::basic_format_string.144", align 8
  %40 = alloca i64, 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 i8, align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.fmt::v10::basic_format_string.145", align 8
  %49 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %50 = alloca %"class.fmt::v10::basic_string_view", align 8
  %51 = alloca i64, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca %"class.testing::Message", align 8
  %55 = alloca %"class.testing::internal::AssertHelper", align 8
  %56 = alloca %"class.testing::AssertionResult", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.fmt::v10::basic_format_string.146", align 8
  %59 = alloca i64, align 8
  %60 = alloca %"class.testing::Message", align 8
  %61 = alloca %"class.testing::internal::AssertHelper", align 8
  %62 = alloca %"class.testing::AssertionResult", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca i8, align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.fmt::v10::basic_format_string.147", align 8
  %68 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %69 = alloca %"class.fmt::v10::basic_string_view", align 8
  %70 = alloca i64, align 8
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca %"class.testing::Message", align 8
  %74 = alloca %"class.testing::internal::AssertHelper", align 8
  %75 = alloca %"class.testing::AssertionResult", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %78 = alloca double, align 8
  %79 = alloca %"class.testing::Message", align 8
  %80 = alloca %"class.testing::internal::AssertHelper", align 8
  %81 = alloca %"class.testing::AssertionResult", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.fmt::v10::basic_format_string.149", align 8
  %84 = alloca x86_fp80, align 16
  %85 = alloca %"class.testing::Message", align 8
  %86 = alloca %"class.testing::internal::AssertHelper", align 8
  %87 = alloca %"class.testing::AssertionResult", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::allocator", align 1
  %90 = alloca i8, align 1
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.fmt::v10::basic_format_string.150", align 8
  %93 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %94 = alloca %"class.fmt::v10::basic_string_view", align 8
  %95 = alloca i8, align 1
  %96 = alloca ptr, align 8
  %97 = alloca ptr, align 8
  %98 = alloca %"class.testing::Message", align 8
  %99 = alloca %"class.testing::internal::AssertHelper", align 8
  %100 = alloca %"class.testing::AssertionResult", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::allocator", align 1
  %103 = alloca i8, align 1
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.fmt::v10::basic_format_string.151", align 8
  %106 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %107 = alloca %"class.fmt::v10::basic_string_view", align 8
  %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.152", align 8
  %118 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %119 = alloca %"class.fmt::v10::basic_string_view", align 8
  %120 = alloca ptr, align 8
  %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
  store ptr %0, ptr %2, align 8, !tbaa !5
  %125 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  store i32 42, ptr %6, align 4, !tbaa !9
  %126 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
  %127 = load ptr, ptr %126, align 8
  %128 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
  %129 = load i64, ptr %128, align 8
  call void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr %127, i64 %129, ptr noundef nonnull align 4 dereferenceable(4) %6)
  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 %3, ptr noundef @.str.598, ptr noundef @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %130 unwind label %134

130:                                              ; preds = %1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #10
  %131 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
          to label %132 unwind label %138

132:                                              ; preds = %130
  br i1 %131, label %133, label %142

133:                                              ; preds = %132
  br label %162

134:                                              ; preds = %1
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %7, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #10
  br label %172

138:                                              ; preds = %130
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %7, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %8, align 4
  br label %171

142:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %143 unwind label %148

143:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #10
  %144 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
          to label %145 unwind label %152

145:                                              ; preds = %143
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %10, i32 noundef 1, ptr noundef @.str.3, i32 noundef 684, ptr noundef %144)
          to label %146 unwind label %152

146:                                              ; preds = %145
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %147 unwind label %156

147:                                              ; preds = %146
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #10
  br label %162

148:                                              ; preds = %142
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %7, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %8, align 4
  br label %161

152:                                              ; preds = %145, %143
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %7, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %8, align 4
  br label %160

156:                                              ; preds = %146
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %7, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  br label %160

160:                                              ; preds = %156, %152
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #10
  br label %161

161:                                              ; preds = %160, %148
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #10
  br label %171

162:                                              ; preds = %147, %133
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  store i32 -42, ptr %14, align 4, !tbaa !9
  %163 = getelementptr inbounds { ptr, i64 }, ptr %13, i32 0, i32 0
  %164 = load ptr, ptr %163, align 8
  %165 = getelementptr inbounds { ptr, i64 }, ptr %13, i32 0, i32 1
  %166 = load i64, ptr %165, align 8
  call void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr %164, i64 %166, ptr noundef nonnull align 4 dereferenceable(4) %14)
  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 %11, ptr noundef @.str.600, ptr noundef @.str.571, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(4) @.str.572)
          to label %167 unwind label %173

167:                                              ; preds = %162
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #10
  %168 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %169 unwind label %177

169:                                              ; preds = %167
  br i1 %168, label %170, label %181

170:                                              ; preds = %169
  br label %201

171:                                              ; preds = %161, %138
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #10
  br label %172

172:                                              ; preds = %171, %134
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #10
  br label %1289

173:                                              ; preds = %162
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %7, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #10
  br label %211

177:                                              ; preds = %167
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %7, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %8, align 4
  br label %210

181:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %182 unwind label %187

182:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %183 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %184 unwind label %191

184:                                              ; preds = %182
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %16, i32 noundef 1, ptr noundef @.str.3, i32 noundef 685, ptr noundef %183)
          to label %185 unwind label %191

185:                                              ; preds = %184
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %186 unwind label %195

186:                                              ; preds = %185
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  br label %201

187:                                              ; preds = %181
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %7, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %8, align 4
  br label %200

191:                                              ; preds = %184, %182
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %7, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %8, align 4
  br label %199

195:                                              ; preds = %185
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %7, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #10
  br label %199

199:                                              ; preds = %195, %191
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  br label %200

200:                                              ; preds = %199, %187
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  br label %210

201:                                              ; preds = %186, %170
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 42, ptr %20, align 4, !tbaa !9
  %202 = getelementptr inbounds { ptr, i64 }, ptr %19, i32 0, i32 0
  %203 = load ptr, ptr %202, align 8
  %204 = getelementptr inbounds { ptr, i64 }, ptr %19, i32 0, i32 1
  %205 = load i64, ptr %204, align 8
  call void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr %203, i64 %205, ptr noundef nonnull align 4 dereferenceable(4) %20)
  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 %17, ptr noundef @.str.598, ptr noundef @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %206 unwind label %212

206:                                              ; preds = %201
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #10
  %207 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %208 unwind label %216

208:                                              ; preds = %206
  br i1 %207, label %209, label %220

209:                                              ; preds = %208
  br label %240

210:                                              ; preds = %200, %177
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #10
  br label %211

211:                                              ; preds = %210, %173
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #10
  br label %1289

212:                                              ; preds = %201
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %7, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #10
  br label %271

216:                                              ; preds = %206
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %7, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %8, align 4
  br label %270

220:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %221 unwind label %226

221:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  %222 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %223 unwind label %230

223:                                              ; preds = %221
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %22, i32 noundef 1, ptr noundef @.str.3, i32 noundef 686, ptr noundef %222)
          to label %224 unwind label %230

224:                                              ; preds = %223
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %225 unwind label %234

225:                                              ; preds = %224
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %240

226:                                              ; preds = %220
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %7, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %8, align 4
  br label %239

230:                                              ; preds = %223, %221
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %7, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %8, align 4
  br label %238

234:                                              ; preds = %224
  %235 = landingpad { ptr, i32 }
          cleanup
  %236 = extractvalue { ptr, i32 } %235, 0
  store ptr %236, ptr %7, align 8
  %237 = extractvalue { ptr, i32 } %235, 1
  store i32 %237, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #10
  br label %238

238:                                              ; preds = %234, %230
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #10
  br label %239

239:                                              ; preds = %238, %226
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %270

240:                                              ; preds = %225, %209
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %23)
  %241 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %242 unwind label %272

242:                                              ; preds = %240
  br i1 %241, label %243, label %369

243:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %244 unwind label %276

244:                                              ; preds = %243
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #10
  store i8 0, ptr %26, align 1, !tbaa !11
  %245 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %246 unwind label %280

246:                                              ; preds = %244
  br i1 %245, label %247, label %325

247:                                              ; preds = %246
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef @.str.599)
          to label %248 unwind label %280

248:                                              ; preds = %247
  %249 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 0
  %250 = load ptr, ptr %249, align 8
  %251 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 1
  %252 = load i64, ptr %251, align 8
  %253 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %250, i64 %252)
          to label %254 unwind label %280

254:                                              ; preds = %248
  %255 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %29, i32 0, i32 0
  %256 = getelementptr inbounds { ptr, i64 }, ptr %255, i32 0, i32 0
  %257 = extractvalue { ptr, i64 } %253, 0
  store ptr %257, ptr %256, align 8
  %258 = getelementptr inbounds { ptr, i64 }, ptr %255, i32 0, i32 1
  %259 = extractvalue { ptr, i64 } %253, 1
  store i64 %259, ptr %258, align 8
  %260 = getelementptr inbounds { ptr, i64 }, ptr %29, i32 0, i32 0
  %261 = load ptr, ptr %260, align 8
  %262 = getelementptr inbounds { ptr, i64 }, ptr %29, i32 0, i32 1
  %263 = load i64, ptr %262, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJjEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr %261, i64 %263)
          to label %264 unwind label %280

264:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  store i32 42, ptr %31, align 4, !tbaa !9
  %265 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 0
  %266 = load ptr, ptr %265, align 8
  %267 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 1
  %268 = load i64, ptr %267, 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 %27, ptr %266, i64 %268, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %269 unwind label %284

269:                                              ; preds = %264
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %326

270:                                              ; preds = %239, %216
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #10
  br label %271

271:                                              ; preds = %270, %212
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #10
  br label %1289

272:                                              ; preds = %240
  %273 = landingpad { ptr, i32 }
          cleanup
  %274 = extractvalue { ptr, i32 } %273, 0
  store ptr %274, ptr %7, align 8
  %275 = extractvalue { ptr, i32 } %273, 1
  store i32 %275, ptr %8, align 4
  br label %399

276:                                              ; preds = %243
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %7, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #10
  br label %368

280:                                              ; preds = %254, %248, %247, %244
  %281 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %7, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %8, align 4
  br label %288

284:                                              ; preds = %264
  %285 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %7, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %288

288:                                              ; preds = %284, %280
  %289 = load i32, ptr %8, align 4
  %290 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %291 = icmp eq i32 %289, %290
  br i1 %291, label %292, label %320

292:                                              ; preds = %288
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %293 = load ptr, ptr %7, align 8
  %294 = call ptr @__cxa_begin_catch(ptr %293) #10
  store ptr %294, ptr %33, align 8
  %295 = load ptr, ptr %33, align 8, !tbaa !5
  %296 = load ptr, ptr %295, align 8, !tbaa !13
  %297 = getelementptr inbounds ptr, ptr %296, i64 2
  %298 = load ptr, ptr %297, align 8
  %299 = call noundef ptr %298(ptr noundef nonnull align 8 dereferenceable(16) %295) #10
  %300 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef %299)
          to label %301 unwind label %337

301:                                              ; preds = %292
  br i1 %300, label %302, label %345

302:                                              ; preds = %301
  %303 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 1 dereferenceable(88) @.str.602)
          to label %304 unwind label %337

304:                                              ; preds = %302
  %305 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %303, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %306 unwind label %337

306:                                              ; preds = %304
  %307 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %305, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %308 unwind label %337

308:                                              ; preds = %306
  %309 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %307, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %310 unwind label %337

310:                                              ; preds = %308
  %311 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %309, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %312 unwind label %337

312:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %313 = load ptr, ptr %33, align 8, !tbaa !5
  %314 = load ptr, ptr %313, align 8, !tbaa !13
  %315 = getelementptr inbounds ptr, ptr %314, i64 2
  %316 = load ptr, ptr %315, align 8
  %317 = call noundef ptr %316(ptr noundef nonnull align 8 dereferenceable(16) %313) #10
  store ptr %317, ptr %34, align 8, !tbaa !5
  %318 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %311, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %319 unwind label %341

319:                                              ; preds = %312
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  store i32 2, ptr %32, align 4
  br label %346

320:                                              ; preds = %288
  %321 = load ptr, ptr %7, align 8
  %322 = call ptr @__cxa_begin_catch(ptr %321) #10
  %323 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 1 dereferenceable(131) @.str.601)
          to label %324 unwind label %327

324:                                              ; preds = %320
  store i32 2, ptr %32, align 4
  invoke void @__cxa_end_catch()
          to label %331 unwind label %332

325:                                              ; preds = %246
  br label %326

326:                                              ; preds = %325, %269
  br label %350

327:                                              ; preds = %320
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %7, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %336 unwind label %1294

331:                                              ; preds = %324
  br label %364

332:                                              ; preds = %353, %324
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %7, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %8, align 4
  br label %367

336:                                              ; preds = %327
  br label %367

337:                                              ; preds = %310, %308, %306, %304, %302, %292
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %7, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %8, align 4
  br label %360

341:                                              ; preds = %312
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %7, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  br label %360

345:                                              ; preds = %301
  store i8 1, ptr %26, align 1, !tbaa !11
  store i32 0, ptr %32, align 4
  br label %346

346:                                              ; preds = %345, %319
  invoke void @__cxa_end_catch()
          to label %347 unwind label %356

347:                                              ; preds = %346
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  %348 = load i32, ptr %32, align 4
  switch i32 %348, label %364 [
    i32 0, label %349
  ]

349:                                              ; preds = %347
  br label %350

350:                                              ; preds = %349, %326
  %351 = load i8, ptr %26, align 1, !tbaa !11, !range !15, !noundef !16
  %352 = trunc i8 %351 to i1
  br i1 %352, label %363, label %353

353:                                              ; preds = %350
  %354 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 1 dereferenceable(122) @.str.603)
          to label %355 unwind label %332

355:                                              ; preds = %353
  store i32 2, ptr %32, align 4
  br label %364

356:                                              ; preds = %346
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %7, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %8, align 4
  br label %362

360:                                              ; preds = %341, %337
  invoke void @__cxa_end_catch()
          to label %361 unwind label %1294

361:                                              ; preds = %360
  br label %362

362:                                              ; preds = %361, %356
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  br label %367

363:                                              ; preds = %350
  store i32 0, ptr %32, align 4
  br label %364

364:                                              ; preds = %363, %355, %347, %331
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #10
  %365 = load i32, ptr %32, align 4
  switch i32 %365, label %1297 [
    i32 0, label %366
    i32 2, label %370
  ]

366:                                              ; preds = %364
  br label %390

367:                                              ; preds = %362, %336, %332
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  br label %368

368:                                              ; preds = %367, %276
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #10
  br label %399

369:                                              ; preds = %242
  br label %370

370:                                              ; preds = %369, %364
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %371 unwind label %376

371:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  %372 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %373 unwind label %380

373:                                              ; preds = %371
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %36, i32 noundef 1, ptr noundef @.str.3, i32 noundef 688, ptr noundef %372)
          to label %374 unwind label %380

374:                                              ; preds = %373
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %375 unwind label %384

375:                                              ; preds = %374
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  br label %390

376:                                              ; preds = %370
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %7, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %8, align 4
  br label %389

380:                                              ; preds = %373, %371
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %7, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %8, align 4
  br label %388

384:                                              ; preds = %374
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %7, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #10
  br label %388

388:                                              ; preds = %384, %380
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  br label %389

389:                                              ; preds = %388, %376
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  br label %399

390:                                              ; preds = %375, %366
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJlEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  store i64 42, ptr %40, align 8, !tbaa !17
  %391 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 0
  %392 = load ptr, ptr %391, align 8
  %393 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 1
  %394 = load i64, ptr %393, align 8
  call void @_ZN3fmt3v106formatIJlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr %392, i64 %394, ptr noundef nonnull align 8 dereferenceable(8) %40)
  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 %37, ptr noundef @.str.604, ptr noundef @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %395 unwind label %400

395:                                              ; preds = %390
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #10
  %396 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %37)
          to label %397 unwind label %404

397:                                              ; preds = %395
  br i1 %396, label %398, label %408

398:                                              ; preds = %397
  br label %428

399:                                              ; preds = %389, %368, %272
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #10
  br label %1289

400:                                              ; preds = %390
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %7, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #10
  br label %459

404:                                              ; preds = %395
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %7, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %8, align 4
  br label %458

408:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %409 unwind label %414

409:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  %410 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %37)
          to label %411 unwind label %418

411:                                              ; preds = %409
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %42, i32 noundef 1, ptr noundef @.str.3, i32 noundef 689, ptr noundef %410)
          to label %412 unwind label %418

412:                                              ; preds = %411
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %413 unwind label %422

413:                                              ; preds = %412
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  br label %428

414:                                              ; preds = %408
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %7, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %8, align 4
  br label %427

418:                                              ; preds = %411, %409
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %7, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %8, align 4
  br label %426

422:                                              ; preds = %412
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %7, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #10
  br label %426

426:                                              ; preds = %422, %418
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #10
  br label %427

427:                                              ; preds = %426, %414
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  br label %458

428:                                              ; preds = %413, %398
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %43)
  %429 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %430 unwind label %460

430:                                              ; preds = %428
  br i1 %429, label %431, label %557

431:                                              ; preds = %430
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %432 unwind label %464

432:                                              ; preds = %431
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #10
  store i8 0, ptr %46, align 1, !tbaa !11
  %433 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %434 unwind label %468

434:                                              ; preds = %432
  br i1 %433, label %435, label %513

435:                                              ; preds = %434
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef @.str.599)
          to label %436 unwind label %468

436:                                              ; preds = %435
  %437 = getelementptr inbounds { ptr, i64 }, ptr %50, i32 0, i32 0
  %438 = load ptr, ptr %437, align 8
  %439 = getelementptr inbounds { ptr, i64 }, ptr %50, i32 0, i32 1
  %440 = load i64, ptr %439, align 8
  %441 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %438, i64 %440)
          to label %442 unwind label %468

442:                                              ; preds = %436
  %443 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %49, i32 0, i32 0
  %444 = getelementptr inbounds { ptr, i64 }, ptr %443, i32 0, i32 0
  %445 = extractvalue { ptr, i64 } %441, 0
  store ptr %445, ptr %444, align 8
  %446 = getelementptr inbounds { ptr, i64 }, ptr %443, i32 0, i32 1
  %447 = extractvalue { ptr, i64 } %441, 1
  store i64 %447, ptr %446, align 8
  %448 = getelementptr inbounds { ptr, i64 }, ptr %49, i32 0, i32 0
  %449 = load ptr, ptr %448, align 8
  %450 = getelementptr inbounds { ptr, i64 }, ptr %49, i32 0, i32 1
  %451 = load i64, ptr %450, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJmEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr %449, i64 %451)
          to label %452 unwind label %468

452:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #10
  store i64 42, ptr %51, align 8, !tbaa !17
  %453 = getelementptr inbounds { ptr, i64 }, ptr %48, i32 0, i32 0
  %454 = load ptr, ptr %453, align 8
  %455 = getelementptr inbounds { ptr, i64 }, ptr %48, i32 0, i32 1
  %456 = load i64, ptr %455, 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 %47, ptr %454, i64 %456, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %457 unwind label %472

457:                                              ; preds = %452
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  br label %514

458:                                              ; preds = %427, %404
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #10
  br label %459

459:                                              ; preds = %458, %400
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #10
  br label %1289

460:                                              ; preds = %428
  %461 = landingpad { ptr, i32 }
          cleanup
  %462 = extractvalue { ptr, i32 } %461, 0
  store ptr %462, ptr %7, align 8
  %463 = extractvalue { ptr, i32 } %461, 1
  store i32 %463, ptr %8, align 4
  br label %587

464:                                              ; preds = %431
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %7, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #10
  br label %556

468:                                              ; preds = %442, %436, %435, %432
  %469 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %7, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %8, align 4
  br label %476

472:                                              ; preds = %452
  %473 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %7, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  br label %476

476:                                              ; preds = %472, %468
  %477 = load i32, ptr %8, align 4
  %478 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %479 = icmp eq i32 %477, %478
  br i1 %479, label %480, label %508

480:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  %481 = load ptr, ptr %7, align 8
  %482 = call ptr @__cxa_begin_catch(ptr %481) #10
  store ptr %482, ptr %52, align 8
  %483 = load ptr, ptr %52, align 8, !tbaa !5
  %484 = load ptr, ptr %483, align 8, !tbaa !13
  %485 = getelementptr inbounds ptr, ptr %484, i64 2
  %486 = load ptr, ptr %485, align 8
  %487 = call noundef ptr %486(ptr noundef nonnull align 8 dereferenceable(16) %483) #10
  %488 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef %487)
          to label %489 unwind label %525

489:                                              ; preds = %480
  br i1 %488, label %490, label %533

490:                                              ; preds = %489
  %491 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 1 dereferenceable(89) @.str.606)
          to label %492 unwind label %525

492:                                              ; preds = %490
  %493 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %491, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %494 unwind label %525

494:                                              ; preds = %492
  %495 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %493, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %496 unwind label %525

496:                                              ; preds = %494
  %497 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %495, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %498 unwind label %525

498:                                              ; preds = %496
  %499 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %497, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %500 unwind label %525

500:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  %501 = load ptr, ptr %52, align 8, !tbaa !5
  %502 = load ptr, ptr %501, align 8, !tbaa !13
  %503 = getelementptr inbounds ptr, ptr %502, i64 2
  %504 = load ptr, ptr %503, align 8
  %505 = call noundef ptr %504(ptr noundef nonnull align 8 dereferenceable(16) %501) #10
  store ptr %505, ptr %53, align 8, !tbaa !5
  %506 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %499, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %507 unwind label %529

507:                                              ; preds = %500
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  store i32 3, ptr %32, align 4
  br label %534

508:                                              ; preds = %476
  %509 = load ptr, ptr %7, align 8
  %510 = call ptr @__cxa_begin_catch(ptr %509) #10
  %511 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 1 dereferenceable(132) @.str.605)
          to label %512 unwind label %515

512:                                              ; preds = %508
  store i32 3, ptr %32, align 4
  invoke void @__cxa_end_catch()
          to label %519 unwind label %520

513:                                              ; preds = %434
  br label %514

514:                                              ; preds = %513, %457
  br label %538

515:                                              ; preds = %508
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %7, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %524 unwind label %1294

519:                                              ; preds = %512
  br label %552

520:                                              ; preds = %541, %512
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %7, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %8, align 4
  br label %555

524:                                              ; preds = %515
  br label %555

525:                                              ; preds = %498, %496, %494, %492, %490, %480
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %7, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %8, align 4
  br label %548

529:                                              ; preds = %500
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %7, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  br label %548

533:                                              ; preds = %489
  store i8 1, ptr %46, align 1, !tbaa !11
  store i32 0, ptr %32, align 4
  br label %534

534:                                              ; preds = %533, %507
  invoke void @__cxa_end_catch()
          to label %535 unwind label %544

535:                                              ; preds = %534
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  %536 = load i32, ptr %32, align 4
  switch i32 %536, label %552 [
    i32 0, label %537
  ]

537:                                              ; preds = %535
  br label %538

538:                                              ; preds = %537, %514
  %539 = load i8, ptr %46, align 1, !tbaa !11, !range !15, !noundef !16
  %540 = trunc i8 %539 to i1
  br i1 %540, label %551, label %541

541:                                              ; preds = %538
  %542 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 1 dereferenceable(123) @.str.607)
          to label %543 unwind label %520

543:                                              ; preds = %541
  store i32 3, ptr %32, align 4
  br label %552

544:                                              ; preds = %534
  %545 = landingpad { ptr, i32 }
          cleanup
  %546 = extractvalue { ptr, i32 } %545, 0
  store ptr %546, ptr %7, align 8
  %547 = extractvalue { ptr, i32 } %545, 1
  store i32 %547, ptr %8, align 4
  br label %550

548:                                              ; preds = %529, %525
  invoke void @__cxa_end_catch()
          to label %549 unwind label %1294

549:                                              ; preds = %548
  br label %550

550:                                              ; preds = %549, %544
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  br label %555

551:                                              ; preds = %538
  store i32 0, ptr %32, align 4
  br label %552

552:                                              ; preds = %551, %543, %535, %519
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #10
  %553 = load i32, ptr %32, align 4
  switch i32 %553, label %1297 [
    i32 0, label %554
    i32 3, label %558
  ]

554:                                              ; preds = %552
  br label %578

555:                                              ; preds = %550, %524, %520
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  br label %556

556:                                              ; preds = %555, %464
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #10
  br label %587

557:                                              ; preds = %430
  br label %558

558:                                              ; preds = %557, %552
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %559 unwind label %564

559:                                              ; preds = %558
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  %560 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %561 unwind label %568

561:                                              ; preds = %559
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %55, i32 noundef 1, ptr noundef @.str.3, i32 noundef 691, ptr noundef %560)
          to label %562 unwind label %568

562:                                              ; preds = %561
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %563 unwind label %572

563:                                              ; preds = %562
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  br label %578

564:                                              ; preds = %558
  %565 = landingpad { ptr, i32 }
          cleanup
  %566 = extractvalue { ptr, i32 } %565, 0
  store ptr %566, ptr %7, align 8
  %567 = extractvalue { ptr, i32 } %565, 1
  store i32 %567, ptr %8, align 4
  br label %577

568:                                              ; preds = %561, %559
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %7, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %8, align 4
  br label %576

572:                                              ; preds = %562
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %7, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #10
  br label %576

576:                                              ; preds = %572, %568
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #10
  br label %577

577:                                              ; preds = %576, %564
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  br label %587

578:                                              ; preds = %563, %554
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %56) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJxEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  store i64 42, ptr %59, align 8, !tbaa !19
  %579 = getelementptr inbounds { ptr, i64 }, ptr %58, i32 0, i32 0
  %580 = load ptr, ptr %579, align 8
  %581 = getelementptr inbounds { ptr, i64 }, ptr %58, i32 0, i32 1
  %582 = load i64, ptr %581, align 8
  call void @_ZN3fmt3v106formatIJxEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr %580, i64 %582, ptr noundef nonnull align 8 dereferenceable(8) %59)
  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 %56, ptr noundef @.str.608, ptr noundef @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %583 unwind label %588

583:                                              ; preds = %578
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #10
  %584 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
          to label %585 unwind label %592

585:                                              ; preds = %583
  br i1 %584, label %586, label %596

586:                                              ; preds = %585
  br label %616

587:                                              ; preds = %577, %556, %460
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #10
  br label %1289

588:                                              ; preds = %578
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %7, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #10
  br label %647

592:                                              ; preds = %583
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %7, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %8, align 4
  br label %646

596:                                              ; preds = %585
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %597 unwind label %602

597:                                              ; preds = %596
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  %598 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
          to label %599 unwind label %606

599:                                              ; preds = %597
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %61, i32 noundef 1, ptr noundef @.str.3, i32 noundef 692, ptr noundef %598)
          to label %600 unwind label %606

600:                                              ; preds = %599
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %601 unwind label %610

601:                                              ; preds = %600
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %616

602:                                              ; preds = %596
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %7, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %8, align 4
  br label %615

606:                                              ; preds = %599, %597
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %7, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %8, align 4
  br label %614

610:                                              ; preds = %600
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %7, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  br label %614

614:                                              ; preds = %610, %606
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  br label %615

615:                                              ; preds = %614, %602
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %646

616:                                              ; preds = %601, %586
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %62)
  %617 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %618 unwind label %648

618:                                              ; preds = %616
  br i1 %617, label %619, label %745

619:                                              ; preds = %618
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %620 unwind label %652

620:                                              ; preds = %619
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #10
  store i8 0, ptr %65, align 1, !tbaa !11
  %621 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %622 unwind label %656

622:                                              ; preds = %620
  br i1 %621, label %623, label %701

623:                                              ; preds = %622
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %69, ptr noundef @.str.599)
          to label %624 unwind label %656

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

630:                                              ; preds = %624
  %631 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %68, i32 0, i32 0
  %632 = getelementptr inbounds { ptr, i64 }, ptr %631, i32 0, i32 0
  %633 = extractvalue { ptr, i64 } %629, 0
  store ptr %633, ptr %632, align 8
  %634 = getelementptr inbounds { ptr, i64 }, ptr %631, i32 0, i32 1
  %635 = extractvalue { ptr, i64 } %629, 1
  store i64 %635, ptr %634, align 8
  %636 = getelementptr inbounds { ptr, i64 }, ptr %68, i32 0, i32 0
  %637 = load ptr, ptr %636, align 8
  %638 = getelementptr inbounds { ptr, i64 }, ptr %68, i32 0, i32 1
  %639 = load i64, ptr %638, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJyEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr %637, i64 %639)
          to label %640 unwind label %656

640:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  store i64 42, ptr %70, align 8, !tbaa !19
  %641 = getelementptr inbounds { ptr, i64 }, ptr %67, i32 0, i32 0
  %642 = load ptr, ptr %641, align 8
  %643 = getelementptr inbounds { ptr, i64 }, ptr %67, i32 0, i32 1
  %644 = load i64, ptr %643, 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 %66, ptr %642, i64 %644, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %645 unwind label %660

645:                                              ; preds = %640
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %702

646:                                              ; preds = %615, %592
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #10
  br label %647

647:                                              ; preds = %646, %588
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #10
  br label %1289

648:                                              ; preds = %616
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %7, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %8, align 4
  br label %775

652:                                              ; preds = %619
  %653 = landingpad { ptr, i32 }
          cleanup
  %654 = extractvalue { ptr, i32 } %653, 0
  store ptr %654, ptr %7, align 8
  %655 = extractvalue { ptr, i32 } %653, 1
  store i32 %655, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #10
  br label %744

656:                                              ; preds = %630, %624, %623, %620
  %657 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %7, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %8, align 4
  br label %664

660:                                              ; preds = %640
  %661 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %7, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %664

664:                                              ; preds = %660, %656
  %665 = load i32, ptr %8, align 4
  %666 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %667 = icmp eq i32 %665, %666
  br i1 %667, label %668, label %696

668:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  %669 = load ptr, ptr %7, align 8
  %670 = call ptr @__cxa_begin_catch(ptr %669) #10
  store ptr %670, ptr %71, align 8
  %671 = load ptr, ptr %71, align 8, !tbaa !5
  %672 = load ptr, ptr %671, align 8, !tbaa !13
  %673 = getelementptr inbounds ptr, ptr %672, i64 2
  %674 = load ptr, ptr %673, align 8
  %675 = call noundef ptr %674(ptr noundef nonnull align 8 dereferenceable(16) %671) #10
  %676 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef %675)
          to label %677 unwind label %713

677:                                              ; preds = %668
  br i1 %676, label %678, label %721

678:                                              ; preds = %677
  %679 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull align 1 dereferenceable(90) @.str.610)
          to label %680 unwind label %713

680:                                              ; preds = %678
  %681 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %679, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %682 unwind label %713

682:                                              ; preds = %680
  %683 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %681, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %684 unwind label %713

684:                                              ; preds = %682
  %685 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %683, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %686 unwind label %713

686:                                              ; preds = %684
  %687 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %685, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %688 unwind label %713

688:                                              ; preds = %686
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  %689 = load ptr, ptr %71, align 8, !tbaa !5
  %690 = load ptr, ptr %689, align 8, !tbaa !13
  %691 = getelementptr inbounds ptr, ptr %690, i64 2
  %692 = load ptr, ptr %691, align 8
  %693 = call noundef ptr %692(ptr noundef nonnull align 8 dereferenceable(16) %689) #10
  store ptr %693, ptr %72, align 8, !tbaa !5
  %694 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %687, ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %695 unwind label %717

695:                                              ; preds = %688
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  store i32 4, ptr %32, align 4
  br label %722

696:                                              ; preds = %664
  %697 = load ptr, ptr %7, align 8
  %698 = call ptr @__cxa_begin_catch(ptr %697) #10
  %699 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull align 1 dereferenceable(133) @.str.609)
          to label %700 unwind label %703

700:                                              ; preds = %696
  store i32 4, ptr %32, align 4
  invoke void @__cxa_end_catch()
          to label %707 unwind label %708

701:                                              ; preds = %622
  br label %702

702:                                              ; preds = %701, %645
  br label %726

703:                                              ; preds = %696
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %7, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %712 unwind label %1294

707:                                              ; preds = %700
  br label %740

708:                                              ; preds = %729, %700
  %709 = landingpad { ptr, i32 }
          cleanup
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %7, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %8, align 4
  br label %743

712:                                              ; preds = %703
  br label %743

713:                                              ; preds = %686, %684, %682, %680, %678, %668
  %714 = landingpad { ptr, i32 }
          cleanup
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %7, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %8, align 4
  br label %736

717:                                              ; preds = %688
  %718 = landingpad { ptr, i32 }
          cleanup
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %7, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  br label %736

721:                                              ; preds = %677
  store i8 1, ptr %65, align 1, !tbaa !11
  store i32 0, ptr %32, align 4
  br label %722

722:                                              ; preds = %721, %695
  invoke void @__cxa_end_catch()
          to label %723 unwind label %732

723:                                              ; preds = %722
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  %724 = load i32, ptr %32, align 4
  switch i32 %724, label %740 [
    i32 0, label %725
  ]

725:                                              ; preds = %723
  br label %726

726:                                              ; preds = %725, %702
  %727 = load i8, ptr %65, align 1, !tbaa !11, !range !15, !noundef !16
  %728 = trunc i8 %727 to i1
  br i1 %728, label %739, label %729

729:                                              ; preds = %726
  %730 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull align 1 dereferenceable(124) @.str.611)
          to label %731 unwind label %708

731:                                              ; preds = %729
  store i32 4, ptr %32, align 4
  br label %740

732:                                              ; preds = %722
  %733 = landingpad { ptr, i32 }
          cleanup
  %734 = extractvalue { ptr, i32 } %733, 0
  store ptr %734, ptr %7, align 8
  %735 = extractvalue { ptr, i32 } %733, 1
  store i32 %735, ptr %8, align 4
  br label %738

736:                                              ; preds = %717, %713
  invoke void @__cxa_end_catch()
          to label %737 unwind label %1294

737:                                              ; preds = %736
  br label %738

738:                                              ; preds = %737, %732
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  br label %743

739:                                              ; preds = %726
  store i32 0, ptr %32, align 4
  br label %740

740:                                              ; preds = %739, %731, %723, %707
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #10
  %741 = load i32, ptr %32, align 4
  switch i32 %741, label %1297 [
    i32 0, label %742
    i32 4, label %746
  ]

742:                                              ; preds = %740
  br label %766

743:                                              ; preds = %738, %712, %708
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #10
  br label %744

744:                                              ; preds = %743, %652
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #10
  br label %775

745:                                              ; preds = %618
  br label %746

746:                                              ; preds = %745, %740
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %747 unwind label %752

747:                                              ; preds = %746
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %748 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %749 unwind label %756

749:                                              ; preds = %747
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %74, i32 noundef 1, ptr noundef @.str.3, i32 noundef 694, ptr noundef %748)
          to label %750 unwind label %756

750:                                              ; preds = %749
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %751 unwind label %760

751:                                              ; preds = %750
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  br label %766

752:                                              ; preds = %746
  %753 = landingpad { ptr, i32 }
          cleanup
  %754 = extractvalue { ptr, i32 } %753, 0
  store ptr %754, ptr %7, align 8
  %755 = extractvalue { ptr, i32 } %753, 1
  store i32 %755, ptr %8, align 4
  br label %765

756:                                              ; preds = %749, %747
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %7, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %8, align 4
  br label %764

760:                                              ; preds = %750
  %761 = landingpad { ptr, i32 }
          cleanup
  %762 = extractvalue { ptr, i32 } %761, 0
  store ptr %762, ptr %7, align 8
  %763 = extractvalue { ptr, i32 } %761, 1
  store i32 %763, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  br label %764

764:                                              ; preds = %760, %756
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #10
  br label %765

765:                                              ; preds = %764, %752
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  br label %775

766:                                              ; preds = %751, %742
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %75) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %77, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #10
  store double 4.200000e+01, ptr %78, align 8, !tbaa !21
  %767 = getelementptr inbounds { ptr, i64 }, ptr %77, i32 0, i32 0
  %768 = load ptr, ptr %767, align 8
  %769 = getelementptr inbounds { ptr, i64 }, ptr %77, i32 0, i32 1
  %770 = load i64, ptr %769, 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 %76, ptr %768, i64 %770, ptr noundef nonnull align 8 dereferenceable(8) %78)
  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 %75, ptr noundef @.str.612, ptr noundef @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %771 unwind label %776

771:                                              ; preds = %766
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #10
  %772 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %75)
          to label %773 unwind label %780

773:                                              ; preds = %771
  br i1 %772, label %774, label %784

774:                                              ; preds = %773
  br label %804

775:                                              ; preds = %765, %744, %648
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #10
  br label %1289

776:                                              ; preds = %766
  %777 = landingpad { ptr, i32 }
          cleanup
  %778 = extractvalue { ptr, i32 } %777, 0
  store ptr %778, ptr %7, align 8
  %779 = extractvalue { ptr, i32 } %777, 1
  store i32 %779, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #10
  br label %814

780:                                              ; preds = %771
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %7, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %8, align 4
  br label %813

784:                                              ; preds = %773
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %785 unwind label %790

785:                                              ; preds = %784
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #10
  %786 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %75)
          to label %787 unwind label %794

787:                                              ; preds = %785
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %80, i32 noundef 1, ptr noundef @.str.3, i32 noundef 695, ptr noundef %786)
          to label %788 unwind label %794

788:                                              ; preds = %787
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %789 unwind label %798

789:                                              ; preds = %788
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  br label %804

790:                                              ; preds = %784
  %791 = landingpad { ptr, i32 }
          cleanup
  %792 = extractvalue { ptr, i32 } %791, 0
  store ptr %792, ptr %7, align 8
  %793 = extractvalue { ptr, i32 } %791, 1
  store i32 %793, ptr %8, align 4
  br label %803

794:                                              ; preds = %787, %785
  %795 = landingpad { ptr, i32 }
          cleanup
  %796 = extractvalue { ptr, i32 } %795, 0
  store ptr %796, ptr %7, align 8
  %797 = extractvalue { ptr, i32 } %795, 1
  store i32 %797, ptr %8, align 4
  br label %802

798:                                              ; preds = %788
  %799 = landingpad { ptr, i32 }
          cleanup
  %800 = extractvalue { ptr, i32 } %799, 0
  store ptr %800, ptr %7, align 8
  %801 = extractvalue { ptr, i32 } %799, 1
  store i32 %801, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #10
  br label %802

802:                                              ; preds = %798, %794
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #10
  br label %803

803:                                              ; preds = %802, %790
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  br label %813

804:                                              ; preds = %789, %774
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %75) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %81) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJeEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #10
  store x86_fp80 0xK4004A800000000000000, ptr %84, align 16, !tbaa !23
  %805 = getelementptr inbounds { ptr, i64 }, ptr %83, i32 0, i32 0
  %806 = load ptr, ptr %805, align 8
  %807 = getelementptr inbounds { ptr, i64 }, ptr %83, i32 0, i32 1
  %808 = load i64, ptr %807, 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 %82, ptr %806, i64 %808, ptr noundef nonnull align 16 dereferenceable(16) %84)
  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 %81, ptr noundef @.str.613, ptr noundef @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %809 unwind label %815

809:                                              ; preds = %804
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #10
  %810 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %81)
          to label %811 unwind label %819

811:                                              ; preds = %809
  br i1 %810, label %812, label %823

812:                                              ; preds = %811
  br label %843

813:                                              ; preds = %803, %780
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %75) #10
  br label %814

814:                                              ; preds = %813, %776
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #10
  br label %1289

815:                                              ; preds = %804
  %816 = landingpad { ptr, i32 }
          cleanup
  %817 = extractvalue { ptr, i32 } %816, 0
  store ptr %817, ptr %7, align 8
  %818 = extractvalue { ptr, i32 } %816, 1
  store i32 %818, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #10
  br label %874

819:                                              ; preds = %809
  %820 = landingpad { ptr, i32 }
          cleanup
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %7, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %8, align 4
  br label %873

823:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %824 unwind label %829

824:                                              ; preds = %823
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  %825 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %81)
          to label %826 unwind label %833

826:                                              ; preds = %824
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %86, i32 noundef 1, ptr noundef @.str.3, i32 noundef 696, ptr noundef %825)
          to label %827 unwind label %833

827:                                              ; preds = %826
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %828 unwind label %837

828:                                              ; preds = %827
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  br label %843

829:                                              ; preds = %823
  %830 = landingpad { ptr, i32 }
          cleanup
  %831 = extractvalue { ptr, i32 } %830, 0
  store ptr %831, ptr %7, align 8
  %832 = extractvalue { ptr, i32 } %830, 1
  store i32 %832, ptr %8, align 4
  br label %842

833:                                              ; preds = %826, %824
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %7, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %8, align 4
  br label %841

837:                                              ; preds = %827
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %7, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #10
  br label %841

841:                                              ; preds = %837, %833
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #10
  br label %842

842:                                              ; preds = %841, %829
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  br label %873

843:                                              ; preds = %828, %812
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %87) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %87)
  %844 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %87)
          to label %845 unwind label %875

845:                                              ; preds = %843
  br i1 %844, label %846, label %972

846:                                              ; preds = %845
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %847 unwind label %879

847:                                              ; preds = %846
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #10
  store i8 0, ptr %90, align 1, !tbaa !11
  %848 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %849 unwind label %883

849:                                              ; preds = %847
  br i1 %848, label %850, label %928

850:                                              ; preds = %849
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef @.str.599)
          to label %851 unwind label %883

851:                                              ; preds = %850
  %852 = getelementptr inbounds { ptr, i64 }, ptr %94, i32 0, i32 0
  %853 = load ptr, ptr %852, align 8
  %854 = getelementptr inbounds { ptr, i64 }, ptr %94, i32 0, i32 1
  %855 = load i64, ptr %854, align 8
  %856 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %853, i64 %855)
          to label %857 unwind label %883

857:                                              ; preds = %851
  %858 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %93, i32 0, i32 0
  %859 = getelementptr inbounds { ptr, i64 }, ptr %858, i32 0, i32 0
  %860 = extractvalue { ptr, i64 } %856, 0
  store ptr %860, ptr %859, align 8
  %861 = getelementptr inbounds { ptr, i64 }, ptr %858, i32 0, i32 1
  %862 = extractvalue { ptr, i64 } %856, 1
  store i64 %862, ptr %861, align 8
  %863 = getelementptr inbounds { ptr, i64 }, ptr %93, i32 0, i32 0
  %864 = load ptr, ptr %863, align 8
  %865 = getelementptr inbounds { ptr, i64 }, ptr %93, i32 0, i32 1
  %866 = load i64, ptr %865, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr %864, i64 %866)
          to label %867 unwind label %883

867:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #10
  store i8 99, ptr %95, align 1, !tbaa !25
  %868 = getelementptr inbounds { ptr, i64 }, ptr %92, i32 0, i32 0
  %869 = load ptr, ptr %868, align 8
  %870 = getelementptr inbounds { ptr, i64 }, ptr %92, i32 0, i32 1
  %871 = load i64, ptr %870, 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 %91, ptr %869, i64 %871, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %872 unwind label %887

872:                                              ; preds = %867
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #10
  br label %929

873:                                              ; preds = %842, %819
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #10
  br label %874

874:                                              ; preds = %873, %815
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #10
  br label %1289

875:                                              ; preds = %843
  %876 = landingpad { ptr, i32 }
          cleanup
  %877 = extractvalue { ptr, i32 } %876, 0
  store ptr %877, ptr %7, align 8
  %878 = extractvalue { ptr, i32 } %876, 1
  store i32 %878, ptr %8, align 4
  br label %1023

879:                                              ; preds = %846
  %880 = landingpad { ptr, i32 }
          cleanup
  %881 = extractvalue { ptr, i32 } %880, 0
  store ptr %881, ptr %7, align 8
  %882 = extractvalue { ptr, i32 } %880, 1
  store i32 %882, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #10
  br label %971

883:                                              ; preds = %857, %851, %850, %847
  %884 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %885 = extractvalue { ptr, i32 } %884, 0
  store ptr %885, ptr %7, align 8
  %886 = extractvalue { ptr, i32 } %884, 1
  store i32 %886, ptr %8, align 4
  br label %891

887:                                              ; preds = %867
  %888 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %889 = extractvalue { ptr, i32 } %888, 0
  store ptr %889, ptr %7, align 8
  %890 = extractvalue { ptr, i32 } %888, 1
  store i32 %890, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #10
  br label %891

891:                                              ; preds = %887, %883
  %892 = load i32, ptr %8, align 4
  %893 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %894 = icmp eq i32 %892, %893
  br i1 %894, label %895, label %923

895:                                              ; preds = %891
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #10
  %896 = load ptr, ptr %7, align 8
  %897 = call ptr @__cxa_begin_catch(ptr %896) #10
  store ptr %897, ptr %96, align 8
  %898 = load ptr, ptr %96, align 8, !tbaa !5
  %899 = load ptr, ptr %898, align 8, !tbaa !13
  %900 = getelementptr inbounds ptr, ptr %899, i64 2
  %901 = load ptr, ptr %900, align 8
  %902 = call noundef ptr %901(ptr noundef nonnull align 8 dereferenceable(16) %898) #10
  %903 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef %902)
          to label %904 unwind label %940

904:                                              ; preds = %895
  br i1 %903, label %905, label %948

905:                                              ; preds = %904
  %906 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %87, ptr noundef nonnull align 1 dereferenceable(88) @.str.615)
          to label %907 unwind label %940

907:                                              ; preds = %905
  %908 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %906, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %909 unwind label %940

909:                                              ; preds = %907
  %910 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %908, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %911 unwind label %940

911:                                              ; preds = %909
  %912 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %910, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %913 unwind label %940

913:                                              ; preds = %911
  %914 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %912, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %915 unwind label %940

915:                                              ; preds = %913
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #10
  %916 = load ptr, ptr %96, align 8, !tbaa !5
  %917 = load ptr, ptr %916, align 8, !tbaa !13
  %918 = getelementptr inbounds ptr, ptr %917, i64 2
  %919 = load ptr, ptr %918, align 8
  %920 = call noundef ptr %919(ptr noundef nonnull align 8 dereferenceable(16) %916) #10
  store ptr %920, ptr %97, align 8, !tbaa !5
  %921 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %914, ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %922 unwind label %944

922:                                              ; preds = %915
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  store i32 5, ptr %32, align 4
  br label %949

923:                                              ; preds = %891
  %924 = load ptr, ptr %7, align 8
  %925 = call ptr @__cxa_begin_catch(ptr %924) #10
  %926 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %87, ptr noundef nonnull align 1 dereferenceable(131) @.str.614)
          to label %927 unwind label %930

927:                                              ; preds = %923
  store i32 5, ptr %32, align 4
  invoke void @__cxa_end_catch()
          to label %934 unwind label %935

928:                                              ; preds = %849
  br label %929

929:                                              ; preds = %928, %872
  br label %953

930:                                              ; preds = %923
  %931 = landingpad { ptr, i32 }
          cleanup
  %932 = extractvalue { ptr, i32 } %931, 0
  store ptr %932, ptr %7, align 8
  %933 = extractvalue { ptr, i32 } %931, 1
  store i32 %933, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %939 unwind label %1294

934:                                              ; preds = %927
  br label %967

935:                                              ; preds = %956, %927
  %936 = landingpad { ptr, i32 }
          cleanup
  %937 = extractvalue { ptr, i32 } %936, 0
  store ptr %937, ptr %7, align 8
  %938 = extractvalue { ptr, i32 } %936, 1
  store i32 %938, ptr %8, align 4
  br label %970

939:                                              ; preds = %930
  br label %970

940:                                              ; preds = %913, %911, %909, %907, %905, %895
  %941 = landingpad { ptr, i32 }
          cleanup
  %942 = extractvalue { ptr, i32 } %941, 0
  store ptr %942, ptr %7, align 8
  %943 = extractvalue { ptr, i32 } %941, 1
  store i32 %943, ptr %8, align 4
  br label %963

944:                                              ; preds = %915
  %945 = landingpad { ptr, i32 }
          cleanup
  %946 = extractvalue { ptr, i32 } %945, 0
  store ptr %946, ptr %7, align 8
  %947 = extractvalue { ptr, i32 } %945, 1
  store i32 %947, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  br label %963

948:                                              ; preds = %904
  store i8 1, ptr %90, align 1, !tbaa !11
  store i32 0, ptr %32, align 4
  br label %949

949:                                              ; preds = %948, %922
  invoke void @__cxa_end_catch()
          to label %950 unwind label %959

950:                                              ; preds = %949
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  %951 = load i32, ptr %32, align 4
  switch i32 %951, label %967 [
    i32 0, label %952
  ]

952:                                              ; preds = %950
  br label %953

953:                                              ; preds = %952, %929
  %954 = load i8, ptr %90, align 1, !tbaa !11, !range !15, !noundef !16
  %955 = trunc i8 %954 to i1
  br i1 %955, label %966, label %956

956:                                              ; preds = %953
  %957 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %87, ptr noundef nonnull align 1 dereferenceable(122) @.str.616)
          to label %958 unwind label %935

958:                                              ; preds = %956
  store i32 5, ptr %32, align 4
  br label %967

959:                                              ; preds = %949
  %960 = landingpad { ptr, i32 }
          cleanup
  %961 = extractvalue { ptr, i32 } %960, 0
  store ptr %961, ptr %7, align 8
  %962 = extractvalue { ptr, i32 } %960, 1
  store i32 %962, ptr %8, align 4
  br label %965

963:                                              ; preds = %944, %940
  invoke void @__cxa_end_catch()
          to label %964 unwind label %1294

964:                                              ; preds = %963
  br label %965

965:                                              ; preds = %964, %959
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  br label %970

966:                                              ; preds = %953
  store i32 0, ptr %32, align 4
  br label %967

967:                                              ; preds = %966, %958, %950, %934
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #10
  %968 = load i32, ptr %32, align 4
  switch i32 %968, label %1297 [
    i32 0, label %969
    i32 5, label %973
  ]

969:                                              ; preds = %967
  br label %993

970:                                              ; preds = %965, %939, %935
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  br label %971

971:                                              ; preds = %970, %879
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #10
  br label %1023

972:                                              ; preds = %845
  br label %973

973:                                              ; preds = %972, %967
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %974 unwind label %979

974:                                              ; preds = %973
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #10
  %975 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %87)
          to label %976 unwind label %983

976:                                              ; preds = %974
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %99, i32 noundef 1, ptr noundef @.str.3, i32 noundef 698, ptr noundef %975)
          to label %977 unwind label %983

977:                                              ; preds = %976
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %978 unwind label %987

978:                                              ; preds = %977
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  br label %993

979:                                              ; preds = %973
  %980 = landingpad { ptr, i32 }
          cleanup
  %981 = extractvalue { ptr, i32 } %980, 0
  store ptr %981, ptr %7, align 8
  %982 = extractvalue { ptr, i32 } %980, 1
  store i32 %982, ptr %8, align 4
  br label %992

983:                                              ; preds = %976, %974
  %984 = landingpad { ptr, i32 }
          cleanup
  %985 = extractvalue { ptr, i32 } %984, 0
  store ptr %985, ptr %7, align 8
  %986 = extractvalue { ptr, i32 } %984, 1
  store i32 %986, ptr %8, align 4
  br label %991

987:                                              ; preds = %977
  %988 = landingpad { ptr, i32 }
          cleanup
  %989 = extractvalue { ptr, i32 } %988, 0
  store ptr %989, ptr %7, align 8
  %990 = extractvalue { ptr, i32 } %988, 1
  store i32 %990, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #10
  br label %991

991:                                              ; preds = %987, %983
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #10
  br label %992

992:                                              ; preds = %991, %979
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  br label %1023

993:                                              ; preds = %978, %969
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %87) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %87) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %100) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %100)
  %994 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %995 unwind label %1024

995:                                              ; preds = %993
  br i1 %994, label %996, label %1117

996:                                              ; preds = %995
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %102) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %102)
          to label %997 unwind label %1028

997:                                              ; preds = %996
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #10
  store i8 0, ptr %103, align 1, !tbaa !11
  %998 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %999 unwind label %1032

999:                                              ; preds = %997
  br i1 %998, label %1000, label %1073

1000:                                             ; preds = %999
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr noundef @.str.599)
          to label %1001 unwind label %1032

1001:                                             ; preds = %1000
  %1002 = getelementptr inbounds { ptr, i64 }, ptr %107, i32 0, i32 0
  %1003 = load ptr, ptr %1002, align 8
  %1004 = getelementptr inbounds { ptr, i64 }, ptr %107, i32 0, i32 1
  %1005 = load i64, ptr %1004, align 8
  %1006 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1003, i64 %1005)
          to label %1007 unwind label %1032

1007:                                             ; preds = %1001
  %1008 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %106, i32 0, i32 0
  %1009 = getelementptr inbounds { ptr, i64 }, ptr %1008, i32 0, i32 0
  %1010 = extractvalue { ptr, i64 } %1006, 0
  store ptr %1010, ptr %1009, align 8
  %1011 = getelementptr inbounds { ptr, i64 }, ptr %1008, i32 0, i32 1
  %1012 = extractvalue { ptr, i64 } %1006, 1
  store i64 %1012, ptr %1011, align 8
  %1013 = getelementptr inbounds { ptr, i64 }, ptr %106, i32 0, i32 0
  %1014 = load ptr, ptr %1013, align 8
  %1015 = getelementptr inbounds { ptr, i64 }, ptr %106, i32 0, i32 1
  %1016 = load i64, ptr %1015, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA4_KcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %105, ptr %1014, i64 %1016)
          to label %1017 unwind label %1032

1017:                                             ; preds = %1007
  %1018 = getelementptr inbounds { ptr, i64 }, ptr %105, i32 0, i32 0
  %1019 = load ptr, ptr %1018, align 8
  %1020 = getelementptr inbounds { ptr, i64 }, ptr %105, i32 0, i32 1
  %1021 = load i64, ptr %1020, 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 %104, ptr %1019, i64 %1021, ptr noundef nonnull align 1 dereferenceable(4) @.str.380)
          to label %1022 unwind label %1032

1022:                                             ; preds = %1017
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #10
  br label %1074

1023:                                             ; preds = %992, %971, %875
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %87) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %87) #10
  br label %1289

1024:                                             ; preds = %993
  %1025 = landingpad { ptr, i32 }
          cleanup
  %1026 = extractvalue { ptr, i32 } %1025, 0
  store ptr %1026, ptr %7, align 8
  %1027 = extractvalue { ptr, i32 } %1025, 1
  store i32 %1027, ptr %8, align 4
  br label %1168

1028:                                             ; preds = %996
  %1029 = landingpad { ptr, i32 }
          cleanup
  %1030 = extractvalue { ptr, i32 } %1029, 0
  store ptr %1030, ptr %7, align 8
  %1031 = extractvalue { ptr, i32 } %1029, 1
  store i32 %1031, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #10
  br label %1116

1032:                                             ; preds = %1017, %1007, %1001, %1000, %997
  %1033 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1034 = extractvalue { ptr, i32 } %1033, 0
  store ptr %1034, ptr %7, align 8
  %1035 = extractvalue { ptr, i32 } %1033, 1
  store i32 %1035, ptr %8, align 4
  br label %1036

1036:                                             ; preds = %1032
  %1037 = load i32, ptr %8, align 4
  %1038 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %1039 = icmp eq i32 %1037, %1038
  br i1 %1039, label %1040, label %1068

1040:                                             ; preds = %1036
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #10
  %1041 = load ptr, ptr %7, align 8
  %1042 = call ptr @__cxa_begin_catch(ptr %1041) #10
  store ptr %1042, ptr %108, align 8
  %1043 = load ptr, ptr %108, align 8, !tbaa !5
  %1044 = load ptr, ptr %1043, align 8, !tbaa !13
  %1045 = getelementptr inbounds ptr, ptr %1044, i64 2
  %1046 = load ptr, ptr %1045, align 8
  %1047 = call noundef ptr %1046(ptr noundef nonnull align 8 dereferenceable(16) %1043) #10
  %1048 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef %1047)
          to label %1049 unwind label %1085

1049:                                             ; preds = %1040
  br i1 %1048, label %1050, label %1093

1050:                                             ; preds = %1049
  %1051 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 1 dereferenceable(90) @.str.618)
          to label %1052 unwind label %1085

1052:                                             ; preds = %1050
  %1053 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1051, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1054 unwind label %1085

1054:                                             ; preds = %1052
  %1055 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1053, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %1056 unwind label %1085

1056:                                             ; preds = %1054
  %1057 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1055, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1058 unwind label %1085

1058:                                             ; preds = %1056
  %1059 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1057, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1060 unwind label %1085

1060:                                             ; preds = %1058
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #10
  %1061 = load ptr, ptr %108, align 8, !tbaa !5
  %1062 = load ptr, ptr %1061, align 8, !tbaa !13
  %1063 = getelementptr inbounds ptr, ptr %1062, i64 2
  %1064 = load ptr, ptr %1063, align 8
  %1065 = call noundef ptr %1064(ptr noundef nonnull align 8 dereferenceable(16) %1061) #10
  store ptr %1065, ptr %109, align 8, !tbaa !5
  %1066 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1059, ptr noundef nonnull align 8 dereferenceable(8) %109)
          to label %1067 unwind label %1089

1067:                                             ; preds = %1060
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #10
  store i32 6, ptr %32, align 4
  br label %1094

1068:                                             ; preds = %1036
  %1069 = load ptr, ptr %7, align 8
  %1070 = call ptr @__cxa_begin_catch(ptr %1069) #10
  %1071 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 1 dereferenceable(133) @.str.617)
          to label %1072 unwind label %1075

1072:                                             ; preds = %1068
  store i32 6, ptr %32, align 4
  invoke void @__cxa_end_catch()
          to label %1079 unwind label %1080

1073:                                             ; preds = %999
  br label %1074

1074:                                             ; preds = %1073, %1022
  br label %1098

1075:                                             ; preds = %1068
  %1076 = landingpad { ptr, i32 }
          cleanup
  %1077 = extractvalue { ptr, i32 } %1076, 0
  store ptr %1077, ptr %7, align 8
  %1078 = extractvalue { ptr, i32 } %1076, 1
  store i32 %1078, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %1084 unwind label %1294

1079:                                             ; preds = %1072
  br label %1112

1080:                                             ; preds = %1101, %1072
  %1081 = landingpad { ptr, i32 }
          cleanup
  %1082 = extractvalue { ptr, i32 } %1081, 0
  store ptr %1082, ptr %7, align 8
  %1083 = extractvalue { ptr, i32 } %1081, 1
  store i32 %1083, ptr %8, align 4
  br label %1115

1084:                                             ; preds = %1075
  br label %1115

1085:                                             ; preds = %1058, %1056, %1054, %1052, %1050, %1040
  %1086 = landingpad { ptr, i32 }
          cleanup
  %1087 = extractvalue { ptr, i32 } %1086, 0
  store ptr %1087, ptr %7, align 8
  %1088 = extractvalue { ptr, i32 } %1086, 1
  store i32 %1088, ptr %8, align 4
  br label %1108

1089:                                             ; preds = %1060
  %1090 = landingpad { ptr, i32 }
          cleanup
  %1091 = extractvalue { ptr, i32 } %1090, 0
  store ptr %1091, ptr %7, align 8
  %1092 = extractvalue { ptr, i32 } %1090, 1
  store i32 %1092, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #10
  br label %1108

1093:                                             ; preds = %1049
  store i8 1, ptr %103, align 1, !tbaa !11
  store i32 0, ptr %32, align 4
  br label %1094

1094:                                             ; preds = %1093, %1067
  invoke void @__cxa_end_catch()
          to label %1095 unwind label %1104

1095:                                             ; preds = %1094
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #10
  %1096 = load i32, ptr %32, align 4
  switch i32 %1096, label %1112 [
    i32 0, label %1097
  ]

1097:                                             ; preds = %1095
  br label %1098

1098:                                             ; preds = %1097, %1074
  %1099 = load i8, ptr %103, align 1, !tbaa !11, !range !15, !noundef !16
  %1100 = trunc i8 %1099 to i1
  br i1 %1100, label %1111, label %1101

1101:                                             ; preds = %1098
  %1102 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 1 dereferenceable(124) @.str.619)
          to label %1103 unwind label %1080

1103:                                             ; preds = %1101
  store i32 6, ptr %32, align 4
  br label %1112

1104:                                             ; preds = %1094
  %1105 = landingpad { ptr, i32 }
          cleanup
  %1106 = extractvalue { ptr, i32 } %1105, 0
  store ptr %1106, ptr %7, align 8
  %1107 = extractvalue { ptr, i32 } %1105, 1
  store i32 %1107, ptr %8, align 4
  br label %1110

1108:                                             ; preds = %1089, %1085
  invoke void @__cxa_end_catch()
          to label %1109 unwind label %1294

1109:                                             ; preds = %1108
  br label %1110

1110:                                             ; preds = %1109, %1104
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #10
  br label %1115

1111:                                             ; preds = %1098
  store i32 0, ptr %32, align 4
  br label %1112

1112:                                             ; preds = %1111, %1103, %1095, %1079
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #10
  %1113 = load i32, ptr %32, align 4
  switch i32 %1113, label %1297 [
    i32 0, label %1114
    i32 6, label %1118
  ]

1114:                                             ; preds = %1112
  br label %1138

1115:                                             ; preds = %1110, %1084, %1080
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #10
  br label %1116

1116:                                             ; preds = %1115, %1028
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #10
  br label %1168

1117:                                             ; preds = %995
  br label %1118

1118:                                             ; preds = %1117, %1112
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %1119 unwind label %1124

1119:                                             ; preds = %1118
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #10
  %1120 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %1121 unwind label %1128

1121:                                             ; preds = %1119
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %111, i32 noundef 1, ptr noundef @.str.3, i32 noundef 700, ptr noundef %1120)
          to label %1122 unwind label %1128

1122:                                             ; preds = %1121
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %1123 unwind label %1132

1123:                                             ; preds = %1122
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #10
  br label %1138

1124:                                             ; preds = %1118
  %1125 = landingpad { ptr, i32 }
          cleanup
  %1126 = extractvalue { ptr, i32 } %1125, 0
  store ptr %1126, ptr %7, align 8
  %1127 = extractvalue { ptr, i32 } %1125, 1
  store i32 %1127, ptr %8, align 4
  br label %1137

1128:                                             ; preds = %1121, %1119
  %1129 = landingpad { ptr, i32 }
          cleanup
  %1130 = extractvalue { ptr, i32 } %1129, 0
  store ptr %1130, ptr %7, align 8
  %1131 = extractvalue { ptr, i32 } %1129, 1
  store i32 %1131, ptr %8, align 4
  br label %1136

1132:                                             ; preds = %1122
  %1133 = landingpad { ptr, i32 }
          cleanup
  %1134 = extractvalue { ptr, i32 } %1133, 0
  store ptr %1134, ptr %7, align 8
  %1135 = extractvalue { ptr, i32 } %1133, 1
  store i32 %1135, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #10
  br label %1136

1136:                                             ; preds = %1132, %1128
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #10
  br label %1137

1137:                                             ; preds = %1136, %1124
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #10
  br label %1168

1138:                                             ; preds = %1123, %1114
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %112)
  %1139 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %112)
          to label %1140 unwind label %1169

1140:                                             ; preds = %1138
  br i1 %1139, label %1141, label %1266

1141:                                             ; preds = %1140
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %114) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #10
  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 %1142 unwind label %1173

1142:                                             ; preds = %1141
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #10
  store i8 0, ptr %115, align 1, !tbaa !11
  %1143 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1144 unwind label %1177

1144:                                             ; preds = %1142
  br i1 %1143, label %1145, label %1222

1145:                                             ; preds = %1144
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %119, ptr noundef @.str.599)
          to label %1146 unwind label %1177

1146:                                             ; preds = %1145
  %1147 = getelementptr inbounds { ptr, i64 }, ptr %119, i32 0, i32 0
  %1148 = load ptr, ptr %1147, align 8
  %1149 = getelementptr inbounds { ptr, i64 }, ptr %119, i32 0, i32 1
  %1150 = load i64, ptr %1149, align 8
  %1151 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1148, i64 %1150)
          to label %1152 unwind label %1177

1152:                                             ; preds = %1146
  %1153 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %118, i32 0, i32 0
  %1154 = getelementptr inbounds { ptr, i64 }, ptr %1153, i32 0, i32 0
  %1155 = extractvalue { ptr, i64 } %1151, 0
  store ptr %1155, ptr %1154, align 8
  %1156 = getelementptr inbounds { ptr, i64 }, ptr %1153, i32 0, i32 1
  %1157 = extractvalue { ptr, i64 } %1151, 1
  store i64 %1157, ptr %1156, align 8
  %1158 = getelementptr inbounds { ptr, i64 }, ptr %118, i32 0, i32 0
  %1159 = load ptr, ptr %1158, align 8
  %1160 = getelementptr inbounds { ptr, i64 }, ptr %118, i32 0, i32 1
  %1161 = load i64, ptr %1160, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJPvEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %117, ptr %1159, i64 %1161)
          to label %1162 unwind label %1177

1162:                                             ; preds = %1152
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #10
  store ptr inttoptr (i64 66 to ptr), ptr %120, align 8, !tbaa !5
  %1163 = getelementptr inbounds { ptr, i64 }, ptr %117, i32 0, i32 0
  %1164 = load ptr, ptr %1163, align 8
  %1165 = getelementptr inbounds { ptr, i64 }, ptr %117, i32 0, i32 1
  %1166 = load i64, ptr %1165, 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 %116, ptr %1164, i64 %1166, ptr noundef nonnull align 8 dereferenceable(8) %120)
          to label %1167 unwind label %1181

1167:                                             ; preds = %1162
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #10
  br label %1223

1168:                                             ; preds = %1137, %1116, %1024
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #10
  br label %1289

1169:                                             ; preds = %1138
  %1170 = landingpad { ptr, i32 }
          cleanup
  %1171 = extractvalue { ptr, i32 } %1170, 0
  store ptr %1171, ptr %7, align 8
  %1172 = extractvalue { ptr, i32 } %1170, 1
  store i32 %1172, ptr %8, align 4
  br label %1288

1173:                                             ; preds = %1141
  %1174 = landingpad { ptr, i32 }
          cleanup
  %1175 = extractvalue { ptr, i32 } %1174, 0
  store ptr %1175, ptr %7, align 8
  %1176 = extractvalue { ptr, i32 } %1174, 1
  store i32 %1176, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #10
  br label %1265

1177:                                             ; preds = %1152, %1146, %1145, %1142
  %1178 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %7, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %8, align 4
  br label %1185

1181:                                             ; preds = %1162
  %1182 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1183 = extractvalue { ptr, i32 } %1182, 0
  store ptr %1183, ptr %7, align 8
  %1184 = extractvalue { ptr, i32 } %1182, 1
  store i32 %1184, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #10
  br label %1185

1185:                                             ; preds = %1181, %1177
  %1186 = load i32, ptr %8, align 4
  %1187 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %1188 = icmp eq i32 %1186, %1187
  br i1 %1188, label %1189, label %1217

1189:                                             ; preds = %1185
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #10
  %1190 = load ptr, ptr %7, align 8
  %1191 = call ptr @__cxa_begin_catch(ptr %1190) #10
  store ptr %1191, ptr %121, align 8
  %1192 = load ptr, ptr %121, align 8, !tbaa !5
  %1193 = load ptr, ptr %1192, align 8, !tbaa !13
  %1194 = getelementptr inbounds ptr, ptr %1193, i64 2
  %1195 = load ptr, ptr %1194, align 8
  %1196 = call noundef ptr %1195(ptr noundef nonnull align 8 dereferenceable(16) %1192) #10
  %1197 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef %1196)
          to label %1198 unwind label %1234

1198:                                             ; preds = %1189
  br i1 %1197, label %1199, label %1242

1199:                                             ; preds = %1198
  %1200 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA114_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 1 dereferenceable(114) @.str.621)
          to label %1201 unwind label %1234

1201:                                             ; preds = %1199
  %1202 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1200, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1203 unwind label %1234

1203:                                             ; preds = %1201
  %1204 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1202, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %1205 unwind label %1234

1205:                                             ; preds = %1203
  %1206 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1204, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1207 unwind label %1234

1207:                                             ; preds = %1205
  %1208 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1206, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1209 unwind label %1234

1209:                                             ; preds = %1207
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  %1210 = load ptr, ptr %121, align 8, !tbaa !5
  %1211 = load ptr, ptr %1210, align 8, !tbaa !13
  %1212 = getelementptr inbounds ptr, ptr %1211, i64 2
  %1213 = load ptr, ptr %1212, align 8
  %1214 = call noundef ptr %1213(ptr noundef nonnull align 8 dereferenceable(16) %1210) #10
  store ptr %1214, ptr %122, align 8, !tbaa !5
  %1215 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1208, ptr noundef nonnull align 8 dereferenceable(8) %122)
          to label %1216 unwind label %1238

1216:                                             ; preds = %1209
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  store i32 7, ptr %32, align 4
  br label %1243

1217:                                             ; preds = %1185
  %1218 = load ptr, ptr %7, align 8
  %1219 = call ptr @__cxa_begin_catch(ptr %1218) #10
  %1220 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA157_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 1 dereferenceable(157) @.str.620)
          to label %1221 unwind label %1224

1221:                                             ; preds = %1217
  store i32 7, ptr %32, align 4
  invoke void @__cxa_end_catch()
          to label %1228 unwind label %1229

1222:                                             ; preds = %1144
  br label %1223

1223:                                             ; preds = %1222, %1167
  br label %1247

1224:                                             ; preds = %1217
  %1225 = landingpad { ptr, i32 }
          cleanup
  %1226 = extractvalue { ptr, i32 } %1225, 0
  store ptr %1226, ptr %7, align 8
  %1227 = extractvalue { ptr, i32 } %1225, 1
  store i32 %1227, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %1233 unwind label %1294

1228:                                             ; preds = %1221
  br label %1261

1229:                                             ; preds = %1250, %1221
  %1230 = landingpad { ptr, i32 }
          cleanup
  %1231 = extractvalue { ptr, i32 } %1230, 0
  store ptr %1231, ptr %7, align 8
  %1232 = extractvalue { ptr, i32 } %1230, 1
  store i32 %1232, ptr %8, align 4
  br label %1264

1233:                                             ; preds = %1224
  br label %1264

1234:                                             ; preds = %1207, %1205, %1203, %1201, %1199, %1189
  %1235 = landingpad { ptr, i32 }
          cleanup
  %1236 = extractvalue { ptr, i32 } %1235, 0
  store ptr %1236, ptr %7, align 8
  %1237 = extractvalue { ptr, i32 } %1235, 1
  store i32 %1237, ptr %8, align 4
  br label %1257

1238:                                             ; preds = %1209
  %1239 = landingpad { ptr, i32 }
          cleanup
  %1240 = extractvalue { ptr, i32 } %1239, 0
  store ptr %1240, ptr %7, align 8
  %1241 = extractvalue { ptr, i32 } %1239, 1
  store i32 %1241, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  br label %1257

1242:                                             ; preds = %1198
  store i8 1, ptr %115, align 1, !tbaa !11
  store i32 0, ptr %32, align 4
  br label %1243

1243:                                             ; preds = %1242, %1216
  invoke void @__cxa_end_catch()
          to label %1244 unwind label %1253

1244:                                             ; preds = %1243
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #10
  %1245 = load i32, ptr %32, align 4
  switch i32 %1245, label %1261 [
    i32 0, label %1246
  ]

1246:                                             ; preds = %1244
  br label %1247

1247:                                             ; preds = %1246, %1223
  %1248 = load i8, ptr %115, align 1, !tbaa !11, !range !15, !noundef !16
  %1249 = trunc i8 %1248 to i1
  br i1 %1249, label %1260, label %1250

1250:                                             ; preds = %1247
  %1251 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA148_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 1 dereferenceable(148) @.str.622)
          to label %1252 unwind label %1229

1252:                                             ; preds = %1250
  store i32 7, ptr %32, align 4
  br label %1261

1253:                                             ; preds = %1243
  %1254 = landingpad { ptr, i32 }
          cleanup
  %1255 = extractvalue { ptr, i32 } %1254, 0
  store ptr %1255, ptr %7, align 8
  %1256 = extractvalue { ptr, i32 } %1254, 1
  store i32 %1256, ptr %8, align 4
  br label %1259

1257:                                             ; preds = %1238, %1234
  invoke void @__cxa_end_catch()
          to label %1258 unwind label %1294

1258:                                             ; preds = %1257
  br label %1259

1259:                                             ; preds = %1258, %1253
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #10
  br label %1264

1260:                                             ; preds = %1247
  store i32 0, ptr %32, align 4
  br label %1261

1261:                                             ; preds = %1260, %1252, %1244, %1228
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #10
  %1262 = load i32, ptr %32, align 4
  switch i32 %1262, label %1297 [
    i32 0, label %1263
    i32 7, label %1267
  ]

1263:                                             ; preds = %1261
  br label %1287

1264:                                             ; preds = %1259, %1233, %1229
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #10
  br label %1265

1265:                                             ; preds = %1264, %1173
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #10
  br label %1288

1266:                                             ; preds = %1140
  br label %1267

1267:                                             ; preds = %1266, %1261
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %123)
          to label %1268 unwind label %1273

1268:                                             ; preds = %1267
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  %1269 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %112)
          to label %1270 unwind label %1277

1270:                                             ; preds = %1268
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %124, i32 noundef 1, ptr noundef @.str.3, i32 noundef 703, ptr noundef %1269)
          to label %1271 unwind label %1277

1271:                                             ; preds = %1270
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull align 8 dereferenceable(8) %123)
          to label %1272 unwind label %1281

1272:                                             ; preds = %1271
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  br label %1287

1273:                                             ; preds = %1267
  %1274 = landingpad { ptr, i32 }
          cleanup
  %1275 = extractvalue { ptr, i32 } %1274, 0
  store ptr %1275, ptr %7, align 8
  %1276 = extractvalue { ptr, i32 } %1274, 1
  store i32 %1276, ptr %8, align 4
  br label %1286

1277:                                             ; preds = %1270, %1268
  %1278 = landingpad { ptr, i32 }
          cleanup
  %1279 = extractvalue { ptr, i32 } %1278, 0
  store ptr %1279, ptr %7, align 8
  %1280 = extractvalue { ptr, i32 } %1278, 1
  store i32 %1280, ptr %8, align 4
  br label %1285

1281:                                             ; preds = %1271
  %1282 = landingpad { ptr, i32 }
          cleanup
  %1283 = extractvalue { ptr, i32 } %1282, 0
  store ptr %1283, ptr %7, align 8
  %1284 = extractvalue { ptr, i32 } %1282, 1
  store i32 %1284, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #10
  br label %1285

1285:                                             ; preds = %1281, %1277
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  br label %1286

1286:                                             ; preds = %1285, %1273
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  br label %1288

1287:                                             ; preds = %1272, %1263
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #10
  ret void

1288:                                             ; preds = %1286, %1265, %1169
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #10
  br label %1289

1289:                                             ; preds = %1288, %1168, %1023, %874, %814, %775, %647, %587, %459, %399, %271, %211, %172
  %1290 = load ptr, ptr %7, align 8
  %1291 = load i32, ptr %8, align 4
  %1292 = insertvalue { ptr, i32 } poison, ptr %1290, 0
  %1293 = insertvalue { ptr, i32 } %1292, i32 %1291, 1
  resume { ptr, i32 } %1293

1294:                                             ; preds = %1257, %1224, %1108, %1075, %963, %930, %736, %703, %548, %515, %360, %327
  %1295 = landingpad { ptr, i32 }
          catch ptr null
  %1296 = extractvalue { ptr, i32 } %1295, 0
  call void @__clang_call_terminate(ptr %1296) #11
  unreachable

1297:                                             ; preds = %1261, %1112, %967, %740, %552, %364
  unreachable
}

; 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 = { 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 #7 = { nounwind memory(none) }
attributes #8 = { 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 #9 = { 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 #10 = { nounwind }
attributes #11 = { 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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !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 = !{!20, !20, i64 0}
!20 = !{!"long long", !7, i64 0}
!21 = !{!22, !22, i64 0}
!22 = !{!"double", !7, i64 0}
!23 = !{!24, !24, i64 0}
!24 = !{!"long double", !7, i64 0}
!25 = !{!7, !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.fmt::v10::basic_format_string.122" = 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.std::allocator" = type { i8 }
%"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.148" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.149" = 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.151" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.152" = type { %"class.fmt::v10::basic_string_view" }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 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
@_ZTIN3fmt3v1012format_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.249 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.598 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.599 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.600 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.601 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.602 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.603 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.604 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.605 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.606 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.607 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.608 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.609 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.610 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.611 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.613 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.614 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.615 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.616 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.617 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.618 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.619 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.620 = external hidden unnamed_addr constant [157 x i8], align 1
@.str.621 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.622 = external hidden unnamed_addr constant [148 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: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #6 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) #7

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

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 #8

; 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 #9

; 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 @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(122)) local_unnamed_addr #2 align 2

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

; Function Attrs: 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 #6

; 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 @_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 uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA114_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(114)) 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 @_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 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 @_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 #6

; 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 #6

; 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 #6

; 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 #6

; 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 #6

; 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 #6

; 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 #6

; 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 #6

; 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 #6

; 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 #6

; 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: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA148_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(148)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN27format_test_minus_sign_Test8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.testing::AssertionResult", align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.testing::Message", align 8
  %7 = alloca %"class.testing::internal::AssertHelper", align 8
  %8 = alloca %"class.testing::AssertionResult", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.testing::Message", align 8
  %13 = alloca %"class.testing::internal::AssertHelper", align 8
  %14 = alloca %"class.testing::AssertionResult", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.testing::Message", align 8
  %19 = alloca %"class.testing::internal::AssertHelper", align 8
  %20 = alloca %"class.testing::AssertionResult", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.fmt::v10::basic_format_string.143", align 8
  %25 = alloca %"class.fmt::v10::basic_string_view", align 8
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %28 = alloca %"class.testing::Message", align 8
  %29 = alloca %"class.testing::internal::AssertHelper", align 8
  %30 = alloca %"class.testing::AssertionResult", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.fmt::v10::basic_format_string.144", align 8
  %33 = alloca i64, align 8
  %34 = alloca %"class.testing::Message", align 8
  %35 = alloca %"class.testing::internal::AssertHelper", align 8
  %36 = alloca %"class.testing::AssertionResult", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.fmt::v10::basic_format_string.145", align 8
  %41 = alloca %"class.fmt::v10::basic_string_view", align 8
  %42 = alloca i64, align 8
  %43 = alloca ptr, align 8
  %44 = alloca %"class.testing::Message", align 8
  %45 = alloca %"class.testing::internal::AssertHelper", align 8
  %46 = alloca %"class.testing::AssertionResult", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.fmt::v10::basic_format_string.146", align 8
  %49 = alloca i64, align 8
  %50 = alloca %"class.testing::Message", align 8
  %51 = alloca %"class.testing::internal::AssertHelper", align 8
  %52 = alloca %"class.testing::AssertionResult", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.fmt::v10::basic_format_string.147", align 8
  %57 = alloca %"class.fmt::v10::basic_string_view", align 8
  %58 = alloca i64, align 8
  %59 = alloca ptr, align 8
  %60 = alloca %"class.testing::Message", align 8
  %61 = alloca %"class.testing::internal::AssertHelper", align 8
  %62 = alloca %"class.testing::AssertionResult", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %65 = alloca double, align 8
  %66 = alloca %"class.testing::Message", align 8
  %67 = alloca %"class.testing::internal::AssertHelper", align 8
  %68 = alloca %"class.testing::AssertionResult", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.fmt::v10::basic_format_string.149", align 8
  %71 = alloca x86_fp80, align 16
  %72 = alloca %"class.testing::Message", align 8
  %73 = alloca %"class.testing::internal::AssertHelper", align 8
  %74 = alloca %"class.testing::AssertionResult", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.fmt::v10::basic_format_string.150", align 8
  %79 = alloca %"class.fmt::v10::basic_string_view", align 8
  %80 = alloca i8, align 1
  %81 = alloca ptr, align 8
  %82 = alloca %"class.testing::Message", align 8
  %83 = alloca %"class.testing::internal::AssertHelper", align 8
  %84 = alloca %"class.testing::AssertionResult", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.fmt::v10::basic_format_string.151", align 8
  %89 = alloca %"class.fmt::v10::basic_string_view", align 8
  %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.152", align 8
  %98 = alloca %"class.fmt::v10::basic_string_view", align 8
  %99 = alloca ptr, align 8
  %100 = alloca ptr, align 8
  %101 = alloca %"class.testing::Message", align 8
  %102 = alloca %"class.testing::internal::AssertHelper", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #10
  store i32 42, ptr %5, align 4, !tbaa !5
  %103 = load ptr, ptr %4, align 8
  %104 = getelementptr inbounds i8, ptr %4, i64 8
  %105 = load i64, ptr %104, align 8
  call 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 %3, ptr %103, i64 %105, ptr noundef nonnull align 4 dereferenceable(4) %5)
  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 %2, ptr noundef nonnull @.str.598, ptr noundef nonnull @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %106 unwind label %108

106:                                              ; preds = %1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #10
  %107 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  br i1 %107, label %124, label %110

108:                                              ; preds = %1
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #10
  br label %130

110:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %111 unwind label %116

111:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  %112 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
          to label %113 unwind label %118

113:                                              ; preds = %111
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %7, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 684, ptr noundef %112)
          to label %114 unwind label %118

114:                                              ; preds = %113
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %115 unwind label %120

115:                                              ; preds = %114
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  br label %124

116:                                              ; preds = %110
  %117 = landingpad { ptr, i32 }
          cleanup
  br label %123

118:                                              ; preds = %113, %111
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %122

120:                                              ; preds = %114
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  br label %122

122:                                              ; preds = %120, %118
  %.pn = phi { ptr, i32 } [ %121, %120 ], [ %119, %118 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #10
  br label %123

123:                                              ; preds = %122, %116
  %.pn.pn = phi { ptr, i32 } [ %.pn, %122 ], [ %117, %116 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #10
  br label %130

124:                                              ; preds = %106, %115
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #10
  store i32 -42, ptr %11, align 4, !tbaa !5
  %125 = load ptr, ptr %10, align 8
  %126 = getelementptr inbounds i8, ptr %10, i64 8
  %127 = load i64, ptr %126, align 8
  call 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 %9, ptr %125, i64 %127, ptr noundef nonnull align 4 dereferenceable(4) %11)
  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 %8, ptr noundef nonnull @.str.600, ptr noundef nonnull @.str.571, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(4) @.str.572)
          to label %128 unwind label %131

128:                                              ; preds = %124
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #10
  %129 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
  br i1 %129, label %147, label %133

130:                                              ; preds = %123, %108
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %123 ], [ %109, %108 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #10
  br label %773

131:                                              ; preds = %124
  %132 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #10
  br label %153

133:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %134 unwind label %139

134:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  %135 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %136 unwind label %141

136:                                              ; preds = %134
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 685, ptr noundef %135)
          to label %137 unwind label %141

137:                                              ; preds = %136
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %138 unwind label %143

138:                                              ; preds = %137
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  br label %147

139:                                              ; preds = %133
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %146

141:                                              ; preds = %136, %134
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %145

143:                                              ; preds = %137
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  br label %145

145:                                              ; preds = %143, %141
  %.pn161 = phi { ptr, i32 } [ %144, %143 ], [ %142, %141 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  br label %146

146:                                              ; preds = %145, %139
  %.pn161.pn = phi { ptr, i32 } [ %.pn161, %145 ], [ %140, %139 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #10
  br label %153

147:                                              ; preds = %128, %138
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #10
  store i32 42, ptr %17, align 4, !tbaa !5
  %148 = load ptr, ptr %16, align 8
  %149 = getelementptr inbounds i8, ptr %16, i64 8
  %150 = load i64, ptr %149, align 8
  call 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 %15, ptr %148, i64 %150, ptr noundef nonnull align 4 dereferenceable(4) %17)
  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 %14, ptr noundef nonnull @.str.598, ptr noundef nonnull @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %151 unwind label %154

151:                                              ; preds = %147
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #10
  %152 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
  br i1 %152, label %170, label %156

153:                                              ; preds = %146, %131
  %.pn161.pn.pn = phi { ptr, i32 } [ %.pn161.pn, %146 ], [ %132, %131 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #10
  br label %773

154:                                              ; preds = %147
  %155 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #10
  br label %188

156:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %157 unwind label %162

157:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #10
  %158 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %159 unwind label %164

159:                                              ; preds = %157
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %19, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 686, ptr noundef %158)
          to label %160 unwind label %164

160:                                              ; preds = %159
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %161 unwind label %166

161:                                              ; preds = %160
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #10
  br label %170

162:                                              ; preds = %156
  %163 = landingpad { ptr, i32 }
          cleanup
  br label %169

164:                                              ; preds = %159, %157
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %168

166:                                              ; preds = %160
  %167 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #10
  br label %168

168:                                              ; preds = %166, %164
  %.pn165 = phi { ptr, i32 } [ %167, %166 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  br label %169

169:                                              ; preds = %168, %162
  %.pn165.pn = phi { ptr, i32 } [ %.pn165, %168 ], [ %163, %162 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #10
  br label %188

170:                                              ; preds = %151, %161
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %20)
  %171 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
  br i1 %171, label %172, label %242

172:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %173 unwind label %189

173:                                              ; preds = %172
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #10
  %174 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %175 unwind label %191

175:                                              ; preds = %173
  br i1 %174, label %176, label %.critedge

176:                                              ; preds = %175
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull @.str.599)
          to label %177 unwind label %191

177:                                              ; preds = %176
  %178 = load ptr, ptr %25, align 8
  %179 = getelementptr inbounds i8, ptr %25, i64 8
  %180 = load i64, ptr %179, align 8
  %181 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %178, i64 %180)
  %182 = extractvalue { ptr, i64 } %181, 0
  %183 = extractvalue { ptr, i64 } %181, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJjEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr %182, i64 %183)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #10
  store i32 42, ptr %26, align 4, !tbaa !5
  %184 = load ptr, ptr %24, align 8
  %185 = getelementptr inbounds i8, ptr %24, i64 8
  %186 = load i64, ptr %185, 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 %23, ptr %184, i64 %186, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %187 unwind label %193

187:                                              ; preds = %177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #10
  br label %.critedge

188:                                              ; preds = %169, %154
  %.pn165.pn.pn = phi { ptr, i32 } [ %.pn165.pn, %169 ], [ %155, %154 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #10
  br label %773

189:                                              ; preds = %172
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #10
  br label %241

191:                                              ; preds = %176, %173
  %192 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %195

193:                                              ; preds = %177
  %194 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #10
  br label %195

195:                                              ; preds = %193, %191
  %.pn169 = phi { ptr, i32 } [ %194, %193 ], [ %192, %191 ]
  %.9 = extractvalue { ptr, i32 } %.pn169, 0
  %.974 = extractvalue { ptr, i32 } %.pn169, 1
  %196 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %197 = icmp eq i32 %.974, %196
  %198 = call ptr @__cxa_begin_catch(ptr %.9) #10
  br i1 %197, label %199, label %223

199:                                              ; preds = %195
  %200 = load ptr, ptr %198, align 8, !tbaa !9
  %201 = getelementptr inbounds i8, ptr %200, i64 16
  %202 = load ptr, ptr %201, align 8
  %203 = call noundef ptr %202(ptr noundef nonnull align 8 dereferenceable(16) %198) #10
  %204 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef %203)
          to label %205 unwind label %230

205:                                              ; preds = %199
  br i1 %204, label %206, label %234

206:                                              ; preds = %205
  %207 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 1 dereferenceable(88) @.str.602)
          to label %208 unwind label %230

208:                                              ; preds = %206
  %209 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %210 unwind label %230

210:                                              ; preds = %208
  %211 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %209, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %212 unwind label %230

212:                                              ; preds = %210
  %213 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %211, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %214 unwind label %230

214:                                              ; preds = %212
  %215 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %213, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %216 unwind label %230

216:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #10
  %217 = load ptr, ptr %198, align 8, !tbaa !9
  %218 = getelementptr inbounds i8, ptr %217, i64 16
  %219 = load ptr, ptr %218, align 8
  %220 = call noundef ptr %219(ptr noundef nonnull align 8 dereferenceable(16) %198) #10
  store ptr %220, ptr %27, align 8, !tbaa !11
  %221 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %215, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %222 unwind label %232

222:                                              ; preds = %216
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #10
  br label %234

223:                                              ; preds = %195
  %224 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 1 dereferenceable(131) @.str.601)
          to label %225 unwind label %226

225:                                              ; preds = %223
  invoke void @__cxa_end_catch()
          to label %.thread unwind label %228

226:                                              ; preds = %223
  %227 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %240 unwind label %774

228:                                              ; preds = %.critedge, %225
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %240

230:                                              ; preds = %214, %212, %210, %208, %206, %199
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %239

232:                                              ; preds = %216
  %233 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #10
  br label %239

234:                                              ; preds = %205, %222
  invoke void @__cxa_end_catch()
          to label %235 unwind label %237

235:                                              ; preds = %234
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #10
  br i1 %204, label %242, label %.thread289

.critedge:                                        ; preds = %175, %187
  %236 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 1 dereferenceable(122) @.str.603)
          to label %.thread unwind label %228

237:                                              ; preds = %234
  %238 = landingpad { ptr, i32 }
          cleanup
  br label %240

239:                                              ; preds = %232, %230
  %.pn171 = phi { ptr, i32 } [ %233, %232 ], [ %231, %230 ]
  invoke void @__cxa_end_catch()
          to label %240 unwind label %774

.thread:                                          ; preds = %225, %.critedge
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #10
  br label %242

240:                                              ; preds = %237, %239, %226, %228
  %.pn175 = phi { ptr, i32 } [ %229, %228 ], [ %227, %226 ], [ %238, %237 ], [ %.pn171, %239 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  br label %241

241:                                              ; preds = %240, %189
  %.pn175.pn = phi { ptr, i32 } [ %.pn175, %240 ], [ %190, %189 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #10
  br label %261

242:                                              ; preds = %235, %.thread, %170
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %243 unwind label %248

243:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #10
  %244 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %245 unwind label %250

245:                                              ; preds = %243
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %29, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 688, ptr noundef %244)
          to label %246 unwind label %250

246:                                              ; preds = %245
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %247 unwind label %252

247:                                              ; preds = %246
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  br label %.thread289

248:                                              ; preds = %242
  %249 = landingpad { ptr, i32 }
          cleanup
  br label %255

250:                                              ; preds = %245, %243
  %251 = landingpad { ptr, i32 }
          cleanup
  br label %254

252:                                              ; preds = %246
  %253 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  br label %254

254:                                              ; preds = %252, %250
  %.pn178 = phi { ptr, i32 } [ %253, %252 ], [ %251, %250 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  br label %255

255:                                              ; preds = %254, %248
  %.pn178.pn = phi { ptr, i32 } [ %.pn178, %254 ], [ %249, %248 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  br label %261

.thread289:                                       ; preds = %235, %247
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJlEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #10
  store i64 42, ptr %33, align 8, !tbaa !13
  %256 = load ptr, ptr %32, align 8
  %257 = getelementptr inbounds i8, ptr %32, i64 8
  %258 = load i64, ptr %257, align 8
  call 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 %31, ptr %256, i64 %258, ptr noundef nonnull align 8 dereferenceable(8) %33)
  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 %30, ptr noundef nonnull @.str.604, ptr noundef nonnull @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %259 unwind label %262

259:                                              ; preds = %.thread289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #10
  %260 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %30)
  br i1 %260, label %278, label %264

261:                                              ; preds = %255, %241
  %.pn178.pn.pn = phi { ptr, i32 } [ %.pn178.pn, %255 ], [ %.pn175.pn, %241 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #10
  br label %773

262:                                              ; preds = %.thread289
  %263 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #10
  br label %296

264:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %265 unwind label %270

265:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #10
  %266 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %267 unwind label %272

267:                                              ; preds = %265
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %35, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 689, ptr noundef %266)
          to label %268 unwind label %272

268:                                              ; preds = %267
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %269 unwind label %274

269:                                              ; preds = %268
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #10
  br label %278

270:                                              ; preds = %264
  %271 = landingpad { ptr, i32 }
          cleanup
  br label %277

272:                                              ; preds = %267, %265
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %276

274:                                              ; preds = %268
  %275 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  br label %276

276:                                              ; preds = %274, %272
  %.pn182 = phi { ptr, i32 } [ %275, %274 ], [ %273, %272 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  br label %277

277:                                              ; preds = %276, %270
  %.pn182.pn = phi { ptr, i32 } [ %.pn182, %276 ], [ %271, %270 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #10
  br label %296

278:                                              ; preds = %259, %269
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %36)
  %279 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
  br i1 %279, label %280, label %350

280:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %281 unwind label %297

281:                                              ; preds = %280
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #10
  %282 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %283 unwind label %299

283:                                              ; preds = %281
  br i1 %282, label %284, label %.critedge263

284:                                              ; preds = %283
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull @.str.599)
          to label %285 unwind label %299

285:                                              ; preds = %284
  %286 = load ptr, ptr %41, align 8
  %287 = getelementptr inbounds i8, ptr %41, i64 8
  %288 = load i64, ptr %287, align 8
  %289 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %286, i64 %288)
  %290 = extractvalue { ptr, i64 } %289, 0
  %291 = extractvalue { ptr, i64 } %289, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJmEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr %290, i64 %291)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #10
  store i64 42, ptr %42, align 8, !tbaa !13
  %292 = load ptr, ptr %40, align 8
  %293 = getelementptr inbounds i8, ptr %40, i64 8
  %294 = load i64, ptr %293, 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 %39, ptr %292, i64 %294, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %295 unwind label %301

295:                                              ; preds = %285
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #10
  br label %.critedge263

296:                                              ; preds = %277, %262
  %.pn182.pn.pn = phi { ptr, i32 } [ %.pn182.pn, %277 ], [ %263, %262 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #10
  br label %773

297:                                              ; preds = %280
  %298 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #10
  br label %349

299:                                              ; preds = %284, %281
  %300 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %303

301:                                              ; preds = %285
  %302 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #10
  br label %303

303:                                              ; preds = %301, %299
  %.pn186 = phi { ptr, i32 } [ %302, %301 ], [ %300, %299 ]
  %.20 = extractvalue { ptr, i32 } %.pn186, 0
  %.2085 = extractvalue { ptr, i32 } %.pn186, 1
  %304 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %305 = icmp eq i32 %.2085, %304
  %306 = call ptr @__cxa_begin_catch(ptr %.20) #10
  br i1 %305, label %307, label %331

307:                                              ; preds = %303
  %308 = load ptr, ptr %306, align 8, !tbaa !9
  %309 = getelementptr inbounds i8, ptr %308, i64 16
  %310 = load ptr, ptr %309, align 8
  %311 = call noundef ptr %310(ptr noundef nonnull align 8 dereferenceable(16) %306) #10
  %312 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef %311)
          to label %313 unwind label %338

313:                                              ; preds = %307
  br i1 %312, label %314, label %342

314:                                              ; preds = %313
  %315 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA89_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 1 dereferenceable(89) @.str.606)
          to label %316 unwind label %338

316:                                              ; preds = %314
  %317 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %315, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %318 unwind label %338

318:                                              ; preds = %316
  %319 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %317, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %320 unwind label %338

320:                                              ; preds = %318
  %321 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %319, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %322 unwind label %338

322:                                              ; preds = %320
  %323 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %321, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %324 unwind label %338

324:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #10
  %325 = load ptr, ptr %306, align 8, !tbaa !9
  %326 = getelementptr inbounds i8, ptr %325, i64 16
  %327 = load ptr, ptr %326, align 8
  %328 = call noundef ptr %327(ptr noundef nonnull align 8 dereferenceable(16) %306) #10
  store ptr %328, ptr %43, align 8, !tbaa !11
  %329 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %323, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %330 unwind label %340

330:                                              ; preds = %324
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #10
  br label %342

331:                                              ; preds = %303
  %332 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA132_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 1 dereferenceable(132) @.str.605)
          to label %333 unwind label %334

333:                                              ; preds = %331
  invoke void @__cxa_end_catch()
          to label %.thread294 unwind label %336

334:                                              ; preds = %331
  %335 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %348 unwind label %774

336:                                              ; preds = %.critedge263, %333
  %337 = landingpad { ptr, i32 }
          cleanup
  br label %348

338:                                              ; preds = %322, %320, %318, %316, %314, %307
  %339 = landingpad { ptr, i32 }
          cleanup
  br label %347

340:                                              ; preds = %324
  %341 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #10
  br label %347

342:                                              ; preds = %313, %330
  invoke void @__cxa_end_catch()
          to label %343 unwind label %345

343:                                              ; preds = %342
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #10
  br i1 %312, label %350, label %.thread297

.critedge263:                                     ; preds = %283, %295
  %344 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 1 dereferenceable(123) @.str.607)
          to label %.thread294 unwind label %336

345:                                              ; preds = %342
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %348

347:                                              ; preds = %340, %338
  %.pn188 = phi { ptr, i32 } [ %341, %340 ], [ %339, %338 ]
  invoke void @__cxa_end_catch()
          to label %348 unwind label %774

.thread294:                                       ; preds = %333, %.critedge263
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #10
  br label %350

348:                                              ; preds = %345, %347, %334, %336
  %.pn192 = phi { ptr, i32 } [ %337, %336 ], [ %335, %334 ], [ %346, %345 ], [ %.pn188, %347 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  br label %349

349:                                              ; preds = %348, %297
  %.pn192.pn = phi { ptr, i32 } [ %.pn192, %348 ], [ %298, %297 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #10
  br label %369

350:                                              ; preds = %343, %.thread294, %278
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %351 unwind label %356

351:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #10
  %352 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %353 unwind label %358

353:                                              ; preds = %351
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %45, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 691, ptr noundef %352)
          to label %354 unwind label %358

354:                                              ; preds = %353
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %355 unwind label %360

355:                                              ; preds = %354
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #10
  br label %.thread297

356:                                              ; preds = %350
  %357 = landingpad { ptr, i32 }
          cleanup
  br label %363

358:                                              ; preds = %353, %351
  %359 = landingpad { ptr, i32 }
          cleanup
  br label %362

360:                                              ; preds = %354
  %361 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  br label %362

362:                                              ; preds = %360, %358
  %.pn195 = phi { ptr, i32 } [ %361, %360 ], [ %359, %358 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  br label %363

363:                                              ; preds = %362, %356
  %.pn195.pn = phi { ptr, i32 } [ %.pn195, %362 ], [ %357, %356 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #10
  br label %369

.thread297:                                       ; preds = %343, %355
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %46) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJxEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #10
  store i64 42, ptr %49, align 8, !tbaa !15
  %364 = load ptr, ptr %48, align 8
  %365 = getelementptr inbounds i8, ptr %48, i64 8
  %366 = load i64, ptr %365, align 8
  call 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 %47, ptr %364, i64 %366, ptr noundef nonnull align 8 dereferenceable(8) %49)
  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 %46, ptr noundef nonnull @.str.608, ptr noundef nonnull @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %367 unwind label %370

367:                                              ; preds = %.thread297
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #10
  %368 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %46)
  br i1 %368, label %386, label %372

369:                                              ; preds = %363, %349
  %.pn195.pn.pn = phi { ptr, i32 } [ %.pn195.pn, %363 ], [ %.pn192.pn, %349 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #10
  br label %773

370:                                              ; preds = %.thread297
  %371 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #10
  br label %404

372:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %373 unwind label %378

373:                                              ; preds = %372
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #10
  %374 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %46)
          to label %375 unwind label %380

375:                                              ; preds = %373
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %51, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 692, ptr noundef %374)
          to label %376 unwind label %380

376:                                              ; preds = %375
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %377 unwind label %382

377:                                              ; preds = %376
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #10
  br label %386

378:                                              ; preds = %372
  %379 = landingpad { ptr, i32 }
          cleanup
  br label %385

380:                                              ; preds = %375, %373
  %381 = landingpad { ptr, i32 }
          cleanup
  br label %384

382:                                              ; preds = %376
  %383 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #10
  br label %384

384:                                              ; preds = %382, %380
  %.pn199 = phi { ptr, i32 } [ %383, %382 ], [ %381, %380 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #10
  br label %385

385:                                              ; preds = %384, %378
  %.pn199.pn = phi { ptr, i32 } [ %.pn199, %384 ], [ %379, %378 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #10
  br label %404

386:                                              ; preds = %367, %377
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %52) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %52)
  %387 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %52)
  br i1 %387, label %388, label %458

388:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %389 unwind label %405

389:                                              ; preds = %388
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #10
  %390 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %391 unwind label %407

391:                                              ; preds = %389
  br i1 %390, label %392, label %.critedge267

392:                                              ; preds = %391
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef nonnull @.str.599)
          to label %393 unwind label %407

393:                                              ; preds = %392
  %394 = load ptr, ptr %57, align 8
  %395 = getelementptr inbounds i8, ptr %57, i64 8
  %396 = load i64, ptr %395, align 8
  %397 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %394, i64 %396)
  %398 = extractvalue { ptr, i64 } %397, 0
  %399 = extractvalue { ptr, i64 } %397, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJyEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %56, ptr %398, i64 %399)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #10
  store i64 42, ptr %58, align 8, !tbaa !15
  %400 = load ptr, ptr %56, align 8
  %401 = getelementptr inbounds i8, ptr %56, i64 8
  %402 = load i64, ptr %401, 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 %55, ptr %400, i64 %402, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %403 unwind label %409

403:                                              ; preds = %393
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #10
  br label %.critedge267

404:                                              ; preds = %385, %370
  %.pn199.pn.pn = phi { ptr, i32 } [ %.pn199.pn, %385 ], [ %371, %370 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #10
  br label %773

405:                                              ; preds = %388
  %406 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #10
  br label %457

407:                                              ; preds = %392, %389
  %408 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %411

409:                                              ; preds = %393
  %410 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #10
  br label %411

411:                                              ; preds = %409, %407
  %.pn203 = phi { ptr, i32 } [ %410, %409 ], [ %408, %407 ]
  %.31 = extractvalue { ptr, i32 } %.pn203, 0
  %.3196 = extractvalue { ptr, i32 } %.pn203, 1
  %412 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %413 = icmp eq i32 %.3196, %412
  %414 = call ptr @__cxa_begin_catch(ptr %.31) #10
  br i1 %413, label %415, label %439

415:                                              ; preds = %411
  %416 = load ptr, ptr %414, align 8, !tbaa !9
  %417 = getelementptr inbounds i8, ptr %416, i64 16
  %418 = load ptr, ptr %417, align 8
  %419 = call noundef ptr %418(ptr noundef nonnull align 8 dereferenceable(16) %414) #10
  %420 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef %419)
          to label %421 unwind label %446

421:                                              ; preds = %415
  br i1 %420, label %422, label %450

422:                                              ; preds = %421
  %423 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef nonnull align 1 dereferenceable(90) @.str.610)
          to label %424 unwind label %446

424:                                              ; preds = %422
  %425 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %423, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %426 unwind label %446

426:                                              ; preds = %424
  %427 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %425, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %428 unwind label %446

428:                                              ; preds = %426
  %429 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %427, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %430 unwind label %446

430:                                              ; preds = %428
  %431 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %429, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %432 unwind label %446

432:                                              ; preds = %430
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #10
  %433 = load ptr, ptr %414, align 8, !tbaa !9
  %434 = getelementptr inbounds i8, ptr %433, i64 16
  %435 = load ptr, ptr %434, align 8
  %436 = call noundef ptr %435(ptr noundef nonnull align 8 dereferenceable(16) %414) #10
  store ptr %436, ptr %59, align 8, !tbaa !11
  %437 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %431, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %438 unwind label %448

438:                                              ; preds = %432
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #10
  br label %450

439:                                              ; preds = %411
  %440 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef nonnull align 1 dereferenceable(133) @.str.609)
          to label %441 unwind label %442

441:                                              ; preds = %439
  invoke void @__cxa_end_catch()
          to label %.thread302 unwind label %444

442:                                              ; preds = %439
  %443 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %456 unwind label %774

444:                                              ; preds = %.critedge267, %441
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %456

446:                                              ; preds = %430, %428, %426, %424, %422, %415
  %447 = landingpad { ptr, i32 }
          cleanup
  br label %455

448:                                              ; preds = %432
  %449 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #10
  br label %455

450:                                              ; preds = %421, %438
  invoke void @__cxa_end_catch()
          to label %451 unwind label %453

451:                                              ; preds = %450
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #10
  br i1 %420, label %458, label %.thread305

.critedge267:                                     ; preds = %391, %403
  %452 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef nonnull align 1 dereferenceable(124) @.str.611)
          to label %.thread302 unwind label %444

453:                                              ; preds = %450
  %454 = landingpad { ptr, i32 }
          cleanup
  br label %456

455:                                              ; preds = %448, %446
  %.pn205 = phi { ptr, i32 } [ %449, %448 ], [ %447, %446 ]
  invoke void @__cxa_end_catch()
          to label %456 unwind label %774

.thread302:                                       ; preds = %441, %.critedge267
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #10
  br label %458

456:                                              ; preds = %453, %455, %442, %444
  %.pn209 = phi { ptr, i32 } [ %445, %444 ], [ %443, %442 ], [ %454, %453 ], [ %.pn205, %455 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  br label %457

457:                                              ; preds = %456, %405
  %.pn209.pn = phi { ptr, i32 } [ %.pn209, %456 ], [ %406, %405 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #10
  br label %477

458:                                              ; preds = %451, %.thread302, %386
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %459 unwind label %464

459:                                              ; preds = %458
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #10
  %460 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %52)
          to label %461 unwind label %466

461:                                              ; preds = %459
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %61, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 694, ptr noundef %460)
          to label %462 unwind label %466

462:                                              ; preds = %461
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %463 unwind label %468

463:                                              ; preds = %462
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #10
  br label %.thread305

464:                                              ; preds = %458
  %465 = landingpad { ptr, i32 }
          cleanup
  br label %471

466:                                              ; preds = %461, %459
  %467 = landingpad { ptr, i32 }
          cleanup
  br label %470

468:                                              ; preds = %462
  %469 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  br label %470

470:                                              ; preds = %468, %466
  %.pn212 = phi { ptr, i32 } [ %469, %468 ], [ %467, %466 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  br label %471

471:                                              ; preds = %470, %464
  %.pn212.pn = phi { ptr, i32 } [ %.pn212, %470 ], [ %465, %464 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #10
  br label %477

.thread305:                                       ; preds = %451, %463
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %62) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %64, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #10
  store double 4.200000e+01, ptr %65, align 8, !tbaa !17
  %472 = load ptr, ptr %64, align 8
  %473 = getelementptr inbounds i8, ptr %64, i64 8
  %474 = load i64, ptr %473, 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 %63, ptr %472, i64 %474, ptr noundef nonnull align 8 dereferenceable(8) %65)
  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 %62, ptr noundef nonnull @.str.612, ptr noundef nonnull @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %475 unwind label %478

475:                                              ; preds = %.thread305
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #10
  %476 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
  br i1 %476, label %494, label %480

477:                                              ; preds = %471, %457
  %.pn212.pn.pn = phi { ptr, i32 } [ %.pn212.pn, %471 ], [ %.pn209.pn, %457 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #10
  br label %773

478:                                              ; preds = %.thread305
  %479 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #10
  br label %500

480:                                              ; preds = %475
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %481 unwind label %486

481:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #10
  %482 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %483 unwind label %488

483:                                              ; preds = %481
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %67, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 695, ptr noundef %482)
          to label %484 unwind label %488

484:                                              ; preds = %483
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %485 unwind label %490

485:                                              ; preds = %484
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #10
  br label %494

486:                                              ; preds = %480
  %487 = landingpad { ptr, i32 }
          cleanup
  br label %493

488:                                              ; preds = %483, %481
  %489 = landingpad { ptr, i32 }
          cleanup
  br label %492

490:                                              ; preds = %484
  %491 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #10
  br label %492

492:                                              ; preds = %490, %488
  %.pn216 = phi { ptr, i32 } [ %491, %490 ], [ %489, %488 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #10
  br label %493

493:                                              ; preds = %492, %486
  %.pn216.pn = phi { ptr, i32 } [ %.pn216, %492 ], [ %487, %486 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #10
  br label %500

494:                                              ; preds = %475, %485
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %62) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %68) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJeEEC2IA6_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 1 dereferenceable(6) @.str.599)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %71) #10
  store x86_fp80 0xK4004A800000000000000, ptr %71, align 16, !tbaa !19
  %495 = load ptr, ptr %70, align 8
  %496 = getelementptr inbounds i8, ptr %70, i64 8
  %497 = load i64, ptr %496, 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 %69, ptr %495, i64 %497, ptr noundef nonnull align 16 dereferenceable(16) %71)
  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 %68, ptr noundef nonnull @.str.613, ptr noundef nonnull @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %498 unwind label %501

498:                                              ; preds = %494
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #10
  %499 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %68)
  br i1 %499, label %517, label %503

500:                                              ; preds = %493, %478
  %.pn216.pn.pn = phi { ptr, i32 } [ %.pn216.pn, %493 ], [ %479, %478 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %62) #10
  br label %773

501:                                              ; preds = %494
  %502 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #10
  br label %535

503:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %504 unwind label %509

504:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #10
  %505 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %68)
          to label %506 unwind label %511

506:                                              ; preds = %504
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %73, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 696, ptr noundef %505)
          to label %507 unwind label %511

507:                                              ; preds = %506
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %508 unwind label %513

508:                                              ; preds = %507
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #10
  br label %517

509:                                              ; preds = %503
  %510 = landingpad { ptr, i32 }
          cleanup
  br label %516

511:                                              ; preds = %506, %504
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %515

513:                                              ; preds = %507
  %514 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #10
  br label %515

515:                                              ; preds = %513, %511
  %.pn220 = phi { ptr, i32 } [ %514, %513 ], [ %512, %511 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  br label %516

516:                                              ; preds = %515, %509
  %.pn220.pn = phi { ptr, i32 } [ %.pn220, %515 ], [ %510, %509 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #10
  br label %535

517:                                              ; preds = %498, %508
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %74) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %74)
  %518 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %74)
  br i1 %518, label %519, label %589

519:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %520 unwind label %536

520:                                              ; preds = %519
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #10
  %521 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %522 unwind label %538

522:                                              ; preds = %520
  br i1 %521, label %523, label %.critedge271

523:                                              ; preds = %522
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull @.str.599)
          to label %524 unwind label %538

524:                                              ; preds = %523
  %525 = load ptr, ptr %79, align 8
  %526 = getelementptr inbounds i8, ptr %79, i64 8
  %527 = load i64, ptr %526, align 8
  %528 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %525, i64 %527)
  %529 = extractvalue { ptr, i64 } %528, 0
  %530 = extractvalue { ptr, i64 } %528, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr %529, i64 %530)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %80) #10
  store i8 99, ptr %80, align 1, !tbaa !21
  %531 = load ptr, ptr %78, align 8
  %532 = getelementptr inbounds i8, ptr %78, i64 8
  %533 = load i64, ptr %532, 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 %77, ptr %531, i64 %533, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %534 unwind label %540

534:                                              ; preds = %524
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #10
  br label %.critedge271

535:                                              ; preds = %516, %501
  %.pn220.pn.pn = phi { ptr, i32 } [ %.pn220.pn, %516 ], [ %502, %501 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #10
  br label %773

536:                                              ; preds = %519
  %537 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #10
  br label %588

538:                                              ; preds = %523, %520
  %539 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %542

540:                                              ; preds = %524
  %541 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #10
  br label %542

542:                                              ; preds = %540, %538
  %.pn224 = phi { ptr, i32 } [ %541, %540 ], [ %539, %538 ]
  %.45 = extractvalue { ptr, i32 } %.pn224, 0
  %.45110 = extractvalue { ptr, i32 } %.pn224, 1
  %543 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %544 = icmp eq i32 %.45110, %543
  %545 = call ptr @__cxa_begin_catch(ptr %.45) #10
  br i1 %544, label %546, label %570

546:                                              ; preds = %542
  %547 = load ptr, ptr %545, align 8, !tbaa !9
  %548 = getelementptr inbounds i8, ptr %547, i64 16
  %549 = load ptr, ptr %548, align 8
  %550 = call noundef ptr %549(ptr noundef nonnull align 8 dereferenceable(16) %545) #10
  %551 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef %550)
          to label %552 unwind label %577

552:                                              ; preds = %546
  br i1 %551, label %553, label %581

553:                                              ; preds = %552
  %554 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA88_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 1 dereferenceable(88) @.str.615)
          to label %555 unwind label %577

555:                                              ; preds = %553
  %556 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %554, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %557 unwind label %577

557:                                              ; preds = %555
  %558 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %556, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %559 unwind label %577

559:                                              ; preds = %557
  %560 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %558, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %561 unwind label %577

561:                                              ; preds = %559
  %562 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %560, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %563 unwind label %577

563:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #10
  %564 = load ptr, ptr %545, align 8, !tbaa !9
  %565 = getelementptr inbounds i8, ptr %564, i64 16
  %566 = load ptr, ptr %565, align 8
  %567 = call noundef ptr %566(ptr noundef nonnull align 8 dereferenceable(16) %545) #10
  store ptr %567, ptr %81, align 8, !tbaa !11
  %568 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %562, ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %569 unwind label %579

569:                                              ; preds = %563
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #10
  br label %581

570:                                              ; preds = %542
  %571 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA131_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 1 dereferenceable(131) @.str.614)
          to label %572 unwind label %573

572:                                              ; preds = %570
  invoke void @__cxa_end_catch()
          to label %.thread310 unwind label %575

573:                                              ; preds = %570
  %574 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %587 unwind label %774

575:                                              ; preds = %.critedge271, %572
  %576 = landingpad { ptr, i32 }
          cleanup
  br label %587

577:                                              ; preds = %561, %559, %557, %555, %553, %546
  %578 = landingpad { ptr, i32 }
          cleanup
  br label %586

579:                                              ; preds = %563
  %580 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #10
  br label %586

581:                                              ; preds = %552, %569
  invoke void @__cxa_end_catch()
          to label %582 unwind label %584

582:                                              ; preds = %581
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #10
  br i1 %551, label %589, label %.thread313

.critedge271:                                     ; preds = %522, %534
  %583 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA122_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 1 dereferenceable(122) @.str.616)
          to label %.thread310 unwind label %575

584:                                              ; preds = %581
  %585 = landingpad { ptr, i32 }
          cleanup
  br label %587

586:                                              ; preds = %579, %577
  %.pn226 = phi { ptr, i32 } [ %580, %579 ], [ %578, %577 ]
  invoke void @__cxa_end_catch()
          to label %587 unwind label %774

.thread310:                                       ; preds = %572, %.critedge271
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #10
  br label %589

587:                                              ; preds = %584, %586, %573, %575
  %.pn230 = phi { ptr, i32 } [ %576, %575 ], [ %574, %573 ], [ %585, %584 ], [ %.pn226, %586 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #10
  br label %588

588:                                              ; preds = %587, %536
  %.pn230.pn = phi { ptr, i32 } [ %.pn230, %587 ], [ %537, %536 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #10
  br label %620

589:                                              ; preds = %582, %.thread310, %517
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %590 unwind label %595

590:                                              ; preds = %589
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %83) #10
  %591 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %74)
          to label %592 unwind label %597

592:                                              ; preds = %590
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %83, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 698, ptr noundef %591)
          to label %593 unwind label %597

593:                                              ; preds = %592
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %594 unwind label %599

594:                                              ; preds = %593
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #10
  br label %.thread313

595:                                              ; preds = %589
  %596 = landingpad { ptr, i32 }
          cleanup
  br label %602

597:                                              ; preds = %592, %590
  %598 = landingpad { ptr, i32 }
          cleanup
  br label %601

599:                                              ; preds = %593
  %600 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #10
  br label %601

601:                                              ; preds = %599, %597
  %.pn233 = phi { ptr, i32 } [ %600, %599 ], [ %598, %597 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #10
  br label %602

602:                                              ; preds = %601, %595
  %.pn233.pn = phi { ptr, i32 } [ %.pn233, %601 ], [ %596, %595 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #10
  br label %620

.thread313:                                       ; preds = %582, %594
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %84) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %84)
  %603 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %84)
  br i1 %603, label %604, label %673

604:                                              ; preds = %.thread313
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %605 unwind label %621

605:                                              ; preds = %604
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #10
  %606 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %607 unwind label %623

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

608:                                              ; preds = %607
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %89, ptr noundef nonnull @.str.599)
          to label %609 unwind label %623

609:                                              ; preds = %608
  %610 = load ptr, ptr %89, align 8
  %611 = getelementptr inbounds i8, ptr %89, i64 8
  %612 = load i64, ptr %611, align 8
  %613 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %610, i64 %612)
  %614 = extractvalue { ptr, i64 } %613, 0
  %615 = extractvalue { ptr, i64 } %613, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJRA4_KcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %88, ptr %614, i64 %615)
  %616 = load ptr, ptr %88, align 8
  %617 = getelementptr inbounds i8, ptr %88, i64 8
  %618 = load i64, ptr %617, 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 %87, ptr %616, i64 %618, ptr noundef nonnull align 1 dereferenceable(4) @.str.380)
          to label %619 unwind label %623

619:                                              ; preds = %609
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #10
  br label %.critedge275

620:                                              ; preds = %602, %588
  %.pn233.pn.pn = phi { ptr, i32 } [ %.pn233.pn, %602 ], [ %.pn230.pn, %588 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #10
  br label %773

621:                                              ; preds = %604
  %622 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #10
  br label %672

623:                                              ; preds = %609, %608, %605
  %624 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %625 = extractvalue { ptr, i32 } %624, 0
  %626 = extractvalue { ptr, i32 } %624, 1
  %627 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %628 = icmp eq i32 %626, %627
  %629 = call ptr @__cxa_begin_catch(ptr %625) #10
  br i1 %628, label %630, label %654

630:                                              ; preds = %623
  %631 = load ptr, ptr %629, align 8, !tbaa !9
  %632 = getelementptr inbounds i8, ptr %631, i64 16
  %633 = load ptr, ptr %632, align 8
  %634 = call noundef ptr %633(ptr noundef nonnull align 8 dereferenceable(16) %629) #10
  %635 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef %634)
          to label %636 unwind label %661

636:                                              ; preds = %630
  br i1 %635, label %637, label %665

637:                                              ; preds = %636
  %638 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA90_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef nonnull align 1 dereferenceable(90) @.str.618)
          to label %639 unwind label %661

639:                                              ; preds = %637
  %640 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %638, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %641 unwind label %661

641:                                              ; preds = %639
  %642 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %640, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %643 unwind label %661

643:                                              ; preds = %641
  %644 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %642, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %645 unwind label %661

645:                                              ; preds = %643
  %646 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %644, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %647 unwind label %661

647:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #10
  %648 = load ptr, ptr %629, align 8, !tbaa !9
  %649 = getelementptr inbounds i8, ptr %648, i64 16
  %650 = load ptr, ptr %649, align 8
  %651 = call noundef ptr %650(ptr noundef nonnull align 8 dereferenceable(16) %629) #10
  store ptr %651, ptr %90, align 8, !tbaa !11
  %652 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %646, ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %653 unwind label %663

653:                                              ; preds = %647
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #10
  br label %665

654:                                              ; preds = %623
  %655 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA133_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef nonnull align 1 dereferenceable(133) @.str.617)
          to label %656 unwind label %657

656:                                              ; preds = %654
  invoke void @__cxa_end_catch()
          to label %.thread318 unwind label %659

657:                                              ; preds = %654
  %658 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %671 unwind label %774

659:                                              ; preds = %.critedge275, %656
  %660 = landingpad { ptr, i32 }
          cleanup
  br label %671

661:                                              ; preds = %645, %643, %641, %639, %637, %630
  %662 = landingpad { ptr, i32 }
          cleanup
  br label %670

663:                                              ; preds = %647
  %664 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #10
  br label %670

665:                                              ; preds = %636, %653
  invoke void @__cxa_end_catch()
          to label %666 unwind label %668

666:                                              ; preds = %665
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #10
  br i1 %635, label %673, label %.thread321

.critedge275:                                     ; preds = %607, %619
  %667 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA124_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef nonnull align 1 dereferenceable(124) @.str.619)
          to label %.thread318 unwind label %659

668:                                              ; preds = %665
  %669 = landingpad { ptr, i32 }
          cleanup
  br label %671

670:                                              ; preds = %663, %661
  %.pn237 = phi { ptr, i32 } [ %664, %663 ], [ %662, %661 ]
  invoke void @__cxa_end_catch()
          to label %671 unwind label %774

.thread318:                                       ; preds = %656, %.critedge275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #10
  br label %673

671:                                              ; preds = %668, %670, %657, %659
  %.pn241 = phi { ptr, i32 } [ %660, %659 ], [ %658, %657 ], [ %669, %668 ], [ %.pn237, %670 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #10
  br label %672

672:                                              ; preds = %671, %621
  %.pn241.pn = phi { ptr, i32 } [ %.pn241, %671 ], [ %622, %621 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #10
  br label %704

673:                                              ; preds = %666, %.thread318, %.thread313
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %674 unwind label %679

674:                                              ; preds = %673
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #10
  %675 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %84)
          to label %676 unwind label %681

676:                                              ; preds = %674
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %92, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 700, ptr noundef %675)
          to label %677 unwind label %681

677:                                              ; preds = %676
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %678 unwind label %683

678:                                              ; preds = %677
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #10
  br label %.thread321

679:                                              ; preds = %673
  %680 = landingpad { ptr, i32 }
          cleanup
  br label %686

681:                                              ; preds = %676, %674
  %682 = landingpad { ptr, i32 }
          cleanup
  br label %685

683:                                              ; preds = %677
  %684 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #10
  br label %685

685:                                              ; preds = %683, %681
  %.pn244 = phi { ptr, i32 } [ %684, %683 ], [ %682, %681 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #10
  br label %686

686:                                              ; preds = %685, %679
  %.pn244.pn = phi { ptr, i32 } [ %.pn244, %685 ], [ %680, %679 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #10
  br label %704

.thread321:                                       ; preds = %666, %678
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %93) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %93)
  %687 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %93)
  br i1 %687, label %688, label %758

688:                                              ; preds = %.thread321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %95) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #10
  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 %689 unwind label %705

689:                                              ; preds = %688
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %95) #10
  %690 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %691 unwind label %707

691:                                              ; preds = %689
  br i1 %690, label %692, label %.critedge279

692:                                              ; preds = %691
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %98, ptr noundef nonnull @.str.599)
          to label %693 unwind label %707

693:                                              ; preds = %692
  %694 = load ptr, ptr %98, align 8
  %695 = getelementptr inbounds i8, ptr %98, i64 8
  %696 = load i64, ptr %695, align 8
  %697 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %694, i64 %696)
  %698 = extractvalue { ptr, i64 } %697, 0
  %699 = extractvalue { ptr, i64 } %697, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJPvEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %97, ptr %698, i64 %699)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #10
  store ptr inttoptr (i64 66 to ptr), ptr %99, align 8, !tbaa !11
  %700 = load ptr, ptr %97, align 8
  %701 = getelementptr inbounds i8, ptr %97, i64 8
  %702 = load i64, ptr %701, 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 %96, ptr %700, i64 %702, ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %703 unwind label %709

703:                                              ; preds = %693
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #10
  br label %.critedge279

704:                                              ; preds = %686, %672
  %.pn244.pn.pn = phi { ptr, i32 } [ %.pn244.pn, %686 ], [ %.pn241.pn, %672 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #10
  br label %773

705:                                              ; preds = %688
  %706 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %95) #10
  br label %757

707:                                              ; preds = %692, %689
  %708 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %711

709:                                              ; preds = %693
  %710 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #10
  br label %711

711:                                              ; preds = %709, %707
  %.pn248 = phi { ptr, i32 } [ %710, %709 ], [ %708, %707 ]
  %.60 = extractvalue { ptr, i32 } %.pn248, 0
  %.60125 = extractvalue { ptr, i32 } %.pn248, 1
  %712 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %713 = icmp eq i32 %.60125, %712
  %714 = call ptr @__cxa_begin_catch(ptr %.60) #10
  br i1 %713, label %715, label %739

715:                                              ; preds = %711
  %716 = load ptr, ptr %714, align 8, !tbaa !9
  %717 = getelementptr inbounds i8, ptr %716, i64 16
  %718 = load ptr, ptr %717, align 8
  %719 = call noundef ptr %718(ptr noundef nonnull align 8 dereferenceable(16) %714) #10
  %720 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef %719)
          to label %721 unwind label %746

721:                                              ; preds = %715
  br i1 %720, label %722, label %750

722:                                              ; preds = %721
  %723 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA114_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef nonnull align 1 dereferenceable(114) @.str.621)
          to label %724 unwind label %746

724:                                              ; preds = %722
  %725 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %723, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %726 unwind label %746

726:                                              ; preds = %724
  %727 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %725, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %728 unwind label %746

728:                                              ; preds = %726
  %729 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %727, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %730 unwind label %746

730:                                              ; preds = %728
  %731 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %729, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %732 unwind label %746

732:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %100) #10
  %733 = load ptr, ptr %714, align 8, !tbaa !9
  %734 = getelementptr inbounds i8, ptr %733, i64 16
  %735 = load ptr, ptr %734, align 8
  %736 = call noundef ptr %735(ptr noundef nonnull align 8 dereferenceable(16) %714) #10
  store ptr %736, ptr %100, align 8, !tbaa !11
  %737 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %731, ptr noundef nonnull align 8 dereferenceable(8) %100)
          to label %738 unwind label %748

738:                                              ; preds = %732
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #10
  br label %750

739:                                              ; preds = %711
  %740 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA157_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef nonnull align 1 dereferenceable(157) @.str.620)
          to label %741 unwind label %742

741:                                              ; preds = %739
  invoke void @__cxa_end_catch()
          to label %.thread326 unwind label %744

742:                                              ; preds = %739
  %743 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %756 unwind label %774

744:                                              ; preds = %.critedge279, %741
  %745 = landingpad { ptr, i32 }
          cleanup
  br label %756

746:                                              ; preds = %730, %728, %726, %724, %722, %715
  %747 = landingpad { ptr, i32 }
          cleanup
  br label %755

748:                                              ; preds = %732
  %749 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #10
  br label %755

750:                                              ; preds = %721, %738
  invoke void @__cxa_end_catch()
          to label %751 unwind label %753

751:                                              ; preds = %750
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #10
  br i1 %720, label %758, label %.thread329

.critedge279:                                     ; preds = %691, %703
  %752 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA148_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef nonnull align 1 dereferenceable(148) @.str.622)
          to label %.thread326 unwind label %744

753:                                              ; preds = %750
  %754 = landingpad { ptr, i32 }
          cleanup
  br label %756

755:                                              ; preds = %748, %746
  %.pn250 = phi { ptr, i32 } [ %749, %748 ], [ %747, %746 ]
  invoke void @__cxa_end_catch()
          to label %756 unwind label %774

.thread326:                                       ; preds = %741, %.critedge279
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #10
  br label %758

756:                                              ; preds = %753, %755, %742, %744
  %.pn254 = phi { ptr, i32 } [ %745, %744 ], [ %743, %742 ], [ %754, %753 ], [ %.pn250, %755 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #10
  br label %757

757:                                              ; preds = %756, %705
  %.pn254.pn = phi { ptr, i32 } [ %.pn254, %756 ], [ %706, %705 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #10
  br label %772

758:                                              ; preds = %751, %.thread326, %.thread321
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %759 unwind label %764

759:                                              ; preds = %758
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #10
  %760 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %93)
          to label %761 unwind label %766

761:                                              ; preds = %759
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %102, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 703, ptr noundef %760)
          to label %762 unwind label %766

762:                                              ; preds = %761
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %763 unwind label %768

763:                                              ; preds = %762
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #10
  br label %.thread329

764:                                              ; preds = %758
  %765 = landingpad { ptr, i32 }
          cleanup
  br label %771

766:                                              ; preds = %761, %759
  %767 = landingpad { ptr, i32 }
          cleanup
  br label %770

768:                                              ; preds = %762
  %769 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #10
  br label %770

770:                                              ; preds = %768, %766
  %.pn257 = phi { ptr, i32 } [ %769, %768 ], [ %767, %766 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #10
  br label %771

771:                                              ; preds = %770, %764
  %.pn257.pn = phi { ptr, i32 } [ %.pn257, %770 ], [ %765, %764 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #10
  br label %772

.thread329:                                       ; preds = %751, %763
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #10
  ret void

772:                                              ; preds = %771, %757
  %.pn257.pn.pn = phi { ptr, i32 } [ %.pn257.pn, %771 ], [ %.pn254.pn, %757 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #10
  br label %773

773:                                              ; preds = %772, %704, %620, %535, %500, %477, %404, %369, %296, %261, %188, %153, %130
  %.pn257.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn, %772 ], [ %.pn244.pn.pn, %704 ], [ %.pn233.pn.pn, %620 ], [ %.pn220.pn.pn, %535 ], [ %.pn216.pn.pn, %500 ], [ %.pn212.pn.pn, %477 ], [ %.pn199.pn.pn, %404 ], [ %.pn195.pn.pn, %369 ], [ %.pn182.pn.pn, %296 ], [ %.pn178.pn.pn, %261 ], [ %.pn165.pn.pn, %188 ], [ %.pn161.pn.pn, %153 ], [ %.pn.pn.pn, %130 ]
  resume { ptr, i32 } %.pn257.pn.pn.pn

774:                                              ; preds = %755, %742, %670, %657, %586, %573, %455, %442, %347, %334, %239, %226
  %775 = landingpad { ptr, i32 }
          catch ptr null
  %776 = extractvalue { ptr, i32 } %775, 0
  call void @__clang_call_terminate(ptr %776) #11
  unreachable
}

; 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 = { 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 #7 = { nofree nosync nounwind memory(none) }
attributes #8 = { 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 #9 = { 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 #10 = { nounwind }
attributes #11 = { 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 = !{!"int", !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 = !{!14, !14, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"long long", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"double", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"long double", !7, i64 0}
!21 = !{!7, !7, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass