; LLVM IR from WayneLin92/SSeqCpp :: thirdparty/fmt/test/format-test.ll (ZN32format_test_format_examples_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.fmt::v10::basic_memory_buffer.39" = type <{ %"class.fmt::v10::detail::buffer.40", [500 x i8], [4 x i8] }>
%"class.fmt::v10::detail::buffer.40" = type { ptr, ptr, i64, i64 }
%"class.std::allocator" = type { i8 }
%"class.std::back_insert_iterator.268" = type { ptr }
%"class.fmt::v10::basic_format_string.227" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.44" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.269" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.167" = 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.138" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.127" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.186" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.270" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.271" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.194" = type { %"class.fmt::v10::basic_string_view" }
%"struct.fmt::v10::runtime_format_string" = type { %"class.fmt::v10::basic_string_view" }
%class.output_redirect = type { ptr, %"class.fmt::v10::file", %"class.fmt::v10::file" }
%"class.fmt::v10::file" = type { i32 }
%"class.std::system_error" = type { %"class.std::runtime_error", %"class.std::error_code" }
%"class.std::runtime_error" = type { %"class.std::exception", %"struct.std::__cow_string" }
%"class.std::exception" = type { ptr }
%"struct.std::__cow_string" = type { %union.anon.26 }
%union.anon.26 = type { ptr }
%"class.std::error_code" = type { i32, ptr }

@.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
@_ZTISt12system_error = external constant ptr
@_ZTIN3fmt3v1012format_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.223 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1174 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1177 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1272 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1610 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.1810 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1811 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1812 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1813 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1814 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.1815 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.1816 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.1817 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1818 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.1819 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1820 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1821 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1822 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1823 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.1824 = external hidden unnamed_addr constant [239 x i8], align 1
@.str.1825 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.1826 = external hidden unnamed_addr constant [230 x i8], align 1
@.str.1827 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1828 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.1829 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1830 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1831 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1832 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.1833 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1834 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1835 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1836 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1837 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1838 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1839 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1840 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1841 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1842 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1843 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1844 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.1845 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1846 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1847 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1848 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.1849 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1850 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.1851 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1852 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1853 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1854 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1855 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.1856 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1857 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1858 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1859 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1860 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1861 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1862 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1863 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1864 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1865 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.1866 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1867 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1868 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1869 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1870 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1871 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1872 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1873 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.1874 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1875 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1876 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1877 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.1878 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1879 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1880 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1881 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.1882 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.1883 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1884 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.1885 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1886 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.1887 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.1888 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.1889 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1890 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.1891 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1892 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1893 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1894 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1895 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1896 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.1897 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.1898 = external hidden unnamed_addr constant [143 x i8], align 1
@stdout = external global ptr, align 8
@.str.1899 = external hidden unnamed_addr constant [86 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 @_ZN7testing15AssertionResultlsIA86_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(86)) #2 align 2

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

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

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

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

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

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

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

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

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

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_free_exception(ptr)

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @_ZN15output_redirectC1EP8_IO_FILEb(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i1 noundef zeroext) unnamed_addr #3

declare void @_ZN15output_redirect16restore_and_readB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #3

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

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

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

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

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

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

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJcccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) #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 @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #6

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA33_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA256_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA17_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA18_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #1 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN32format_test_format_examples_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.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::AssertionResult", align 8
  %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.fmt::v10::basic_memory_buffer.39", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::back_insert_iterator.268", align 8
  %20 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::back_insert_iterator.268", align 8
  %23 = alloca %"class.testing::AssertionResult", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.testing::Message", align 8
  %26 = alloca %"class.testing::internal::AssertHelper", align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca %"class.testing::AssertionResult", align 8
  %31 = alloca i8, align 1
  %32 = alloca %"class.testing::Message", align 8
  %33 = alloca %"class.testing::internal::AssertHelper", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.testing::AssertionResult", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca i8, align 1
  %40 = alloca ptr, align 8
  %41 = alloca %"class.fmt::v10::basic_format_string.227", align 8
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca %"class.testing::Message", align 8
  %46 = alloca %"class.testing::internal::AssertHelper", align 8
  %47 = alloca %"class.testing::AssertionResult", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.fmt::v10::basic_format_string.44", 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.fmt::v10::basic_format_string.269", align 8
  %55 = alloca %"class.testing::Message", align 8
  %56 = alloca %"class.testing::internal::AssertHelper", align 8
  %57 = alloca %"class.testing::AssertionResult", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.fmt::v10::basic_format_string.167", align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca %"class.testing::Message", align 8
  %63 = alloca %"class.testing::internal::AssertHelper", align 8
  %64 = alloca [256 x i8], align 16
  %65 = alloca %"class.testing::AssertionResult", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %68 = alloca double, align 8
  %69 = alloca %"class.testing::Message", align 8
  %70 = alloca %"class.testing::internal::AssertHelper", align 8
  %71 = alloca %"class.testing::AssertionResult", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.fmt::v10::basic_format_string.138", align 8
  %74 = alloca i8, align 1
  %75 = alloca i8, align 1
  %76 = alloca i8, align 1
  %77 = alloca %"class.testing::Message", align 8
  %78 = alloca %"class.testing::internal::AssertHelper", align 8
  %79 = alloca %"class.testing::AssertionResult", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.fmt::v10::basic_format_string.138", align 8
  %82 = alloca i8, align 1
  %83 = alloca i8, align 1
  %84 = alloca i8, align 1
  %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.fmt::v10::basic_format_string.138", align 8
  %90 = alloca i8, align 1
  %91 = alloca i8, align 1
  %92 = alloca i8, align 1
  %93 = alloca %"class.testing::Message", align 8
  %94 = alloca %"class.testing::internal::AssertHelper", align 8
  %95 = alloca %"class.testing::AssertionResult", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.fmt::v10::basic_format_string.127", 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.fmt::v10::basic_format_string.186", align 8
  %103 = alloca %"class.testing::Message", align 8
  %104 = alloca %"class.testing::internal::AssertHelper", align 8
  %105 = alloca %"class.testing::AssertionResult", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.fmt::v10::basic_format_string.270", align 8
  %108 = alloca %"class.testing::Message", align 8
  %109 = alloca %"class.testing::internal::AssertHelper", align 8
  %110 = alloca %"class.testing::AssertionResult", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.fmt::v10::basic_format_string.271", align 8
  %113 = alloca %"class.testing::Message", align 8
  %114 = alloca %"class.testing::internal::AssertHelper", align 8
  %115 = alloca %"class.testing::AssertionResult", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.fmt::v10::basic_format_string.271", align 8
  %118 = alloca %"class.testing::Message", align 8
  %119 = alloca %"class.testing::internal::AssertHelper", align 8
  %120 = alloca %"class.testing::AssertionResult", align 8
  %121 = alloca %"class.std::__cxx11::basic_string", align 8
  %122 = alloca %"class.fmt::v10::basic_format_string.194", align 8
  %123 = alloca double, align 8
  %124 = alloca double, align 8
  %125 = alloca %"class.testing::Message", align 8
  %126 = alloca %"class.testing::internal::AssertHelper", align 8
  %127 = alloca %"class.testing::AssertionResult", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.fmt::v10::basic_format_string.194", align 8
  %130 = alloca double, align 8
  %131 = alloca double, align 8
  %132 = alloca %"class.testing::Message", align 8
  %133 = alloca %"class.testing::internal::AssertHelper", align 8
  %134 = alloca %"class.testing::AssertionResult", align 8
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.fmt::v10::basic_format_string.194", align 8
  %137 = alloca double, align 8
  %138 = alloca double, align 8
  %139 = alloca %"class.testing::Message", align 8
  %140 = alloca %"class.testing::internal::AssertHelper", align 8
  %141 = alloca %"class.testing::AssertionResult", align 8
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %144 = alloca i32, align 4
  %145 = alloca %"class.testing::Message", align 8
  %146 = alloca %"class.testing::internal::AssertHelper", align 8
  %147 = alloca %"class.testing::AssertionResult", align 8
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %150 = alloca i32, align 4
  %151 = alloca %"class.testing::Message", align 8
  %152 = alloca %"class.testing::internal::AssertHelper", align 8
  %153 = alloca %"class.testing::AssertionResult", align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %156 = alloca i32, align 4
  %157 = alloca %"class.testing::Message", align 8
  %158 = alloca %"class.testing::internal::AssertHelper", align 8
  %159 = alloca %"class.testing::AssertionResult", align 8
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::allocator", align 1
  %162 = alloca i8, align 1
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.fmt::v10::basic_format_string.269", align 8
  %165 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %166 = alloca %"class.fmt::v10::basic_string_view", align 8
  %167 = alloca ptr, align 8
  %168 = alloca ptr, align 8
  %169 = alloca %"class.testing::Message", align 8
  %170 = alloca %"class.testing::internal::AssertHelper", align 8
  %171 = alloca %"class.testing::AssertionResult", align 8
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::allocator", align 1
  %174 = alloca %class.output_redirect, align 8
  %175 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %176 = alloca double, align 8
  %177 = alloca %"class.std::__cxx11::basic_string", align 8
  %178 = alloca %"class.testing::Message", align 8
  %179 = alloca %"class.testing::internal::AssertHelper", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %180 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %3) #11
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA17_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 1 dereferenceable(17) @.str.1810)
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #11
  store i32 42, ptr %5, align 4, !tbaa !9
  %181 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 0
  %182 = load ptr, ptr %181, align 8
  %183 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 1
  %184 = load i64, ptr %183, 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 %3, ptr %182, i64 %184, ptr noundef nonnull align 4 dereferenceable(4) %5)
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %6) #11
  invoke void @_ZN7testing8internal8EqHelper7CompareIA17_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %6, ptr noundef @.str.1811, ptr noundef @.str.1812, ptr noundef nonnull align 1 dereferenceable(17) @.str.1813, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %185 unwind label %189

185:                                              ; preds = %1
  %186 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %187 unwind label %193

187:                                              ; preds = %185
  br i1 %186, label %188, label %197

188:                                              ; preds = %187
  br label %217

189:                                              ; preds = %1
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %7, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %8, align 4
  br label %229

193:                                              ; preds = %185
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %7, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %8, align 4
  br label %228

197:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %198 unwind label %203

198:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  %199 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %200 unwind label %207

200:                                              ; preds = %198
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %10, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1684, ptr noundef %199)
          to label %201 unwind label %207

201:                                              ; preds = %200
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %202 unwind label %211

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

203:                                              ; preds = %197
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %7, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %8, align 4
  br label %216

207:                                              ; preds = %200, %198
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %7, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %8, align 4
  br label %215

211:                                              ; preds = %201
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %7, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #11
  br label %215

215:                                              ; preds = %211, %207
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #11
  br label %216

216:                                              ; preds = %215, %203
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #11
  br label %228

217:                                              ; preds = %202, %188
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA3_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 1 dereferenceable(3) @.str.223)
          to label %218 unwind label %230

218:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  store i32 42, ptr %14, align 4, !tbaa !9
  %219 = getelementptr inbounds { ptr, i64 }, ptr %13, i32 0, i32 0
  %220 = load ptr, ptr %219, align 8
  %221 = getelementptr inbounds { ptr, i64 }, ptr %13, i32 0, i32 1
  %222 = load i64, ptr %221, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr %220, i64 %222, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %223 unwind label %234

223:                                              ; preds = %218
  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 %11, ptr noundef @.str.1814, ptr noundef @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %224 unwind label %238

224:                                              ; preds = %223
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #11
  %225 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %226 unwind label %244

226:                                              ; preds = %224
  br i1 %225, label %227, label %248

227:                                              ; preds = %226
  br label %268

228:                                              ; preds = %216, %193
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #11
  br label %229

229:                                              ; preds = %228, %189
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #11
  br label %1703

230:                                              ; preds = %217
  %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 %243

234:                                              ; preds = %218
  %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
  br label %242

238:                                              ; preds = %223
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %7, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  br label %242

242:                                              ; preds = %238, %234
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %243

243:                                              ; preds = %242, %230
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #11
  br label %289

244:                                              ; preds = %224
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %7, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %8, align 4
  br label %288

248:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %249 unwind label %254

249:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  %250 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %251 unwind label %258

251:                                              ; preds = %249
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %16, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1686, ptr noundef %250)
          to label %252 unwind label %258

252:                                              ; preds = %251
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %253 unwind label %262

253:                                              ; preds = %252
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  br label %268

254:                                              ; preds = %248
  %255 = landingpad { ptr, i32 }
          cleanup
  %256 = extractvalue { ptr, i32 } %255, 0
  store ptr %256, ptr %7, align 8
  %257 = extractvalue { ptr, i32 } %255, 1
  store i32 %257, ptr %8, align 4
  br label %267

258:                                              ; preds = %251, %249
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %7, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %8, align 4
  br label %266

262:                                              ; preds = %252
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %7, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #11
  br label %266

266:                                              ; preds = %262, %258
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  br label %267

267:                                              ; preds = %266, %254
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  br label %288

268:                                              ; preds = %253, %227
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #11
  call void @llvm.lifetime.start.p0(i64 536, ptr %17) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #11
  invoke void @_ZN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(536) %17, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %269 unwind label %290

269:                                              ; preds = %268
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #11
  %270 = invoke ptr @_ZSt13back_inserterIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEESt20back_insert_iteratorIT_ERS6_(ptr noundef nonnull align 8 dereferenceable(536) %17)
          to label %271 unwind label %294

271:                                              ; preds = %269
  %272 = getelementptr inbounds %"class.std::back_insert_iterator.268", ptr %19, i32 0, i32 0
  store ptr %270, ptr %272, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA18_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 1 dereferenceable(18) @.str.1815)
          to label %273 unwind label %294

273:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  store i32 42, ptr %21, align 4, !tbaa !9
  %274 = getelementptr inbounds %"class.std::back_insert_iterator.268", ptr %19, i32 0, i32 0
  %275 = load ptr, ptr %274, align 8
  %276 = getelementptr inbounds { ptr, i64 }, ptr %20, i32 0, i32 0
  %277 = load ptr, ptr %276, align 8
  %278 = getelementptr inbounds { ptr, i64 }, ptr %20, i32 0, i32 1
  %279 = load i64, ptr %278, align 8
  %280 = invoke ptr @_ZN3fmt3v109format_toISt20back_insert_iteratorINS0_19basic_memory_bufferIcLm500ESaIcEEEEJiETnNSt9enable_ifIXsr6detail18is_output_iteratorIT_cEE5valueEiE4typeELi0EEES8_S8_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSD_(ptr %275, ptr %277, i64 %279, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %281 unwind label %298

281:                                              ; preds = %273
  %282 = getelementptr inbounds %"class.std::back_insert_iterator.268", ptr %22, i32 0, i32 0
  store ptr %280, ptr %282, align 8
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #11
  invoke void @_ZN3fmt3v109to_stringIcLm500EEENSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEERKNS0_19basic_memory_bufferIS4_XT0_ES7_EE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(536) %17)
          to label %283 unwind label %302

283:                                              ; preds = %281
  invoke void @_ZN7testing8internal8EqHelper7CompareIA18_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %23, ptr noundef @.str.1816, ptr noundef @.str.1817, ptr noundef nonnull align 1 dereferenceable(18) @.str.1818, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %284 unwind label %306

284:                                              ; preds = %283
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #11
  %285 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %286 unwind label %311

286:                                              ; preds = %284
  br i1 %285, label %287, label %315

287:                                              ; preds = %286
  br label %335

288:                                              ; preds = %267, %244
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #11
  br label %289

289:                                              ; preds = %288, %243
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #11
  br label %1703

290:                                              ; preds = %268
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %7, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #11
  br label %1702

294:                                              ; preds = %271, %269
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %7, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %8, align 4
  br label %1701

298:                                              ; preds = %273
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %7, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %1701

302:                                              ; preds = %281
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %7, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %8, align 4
  br label %310

306:                                              ; preds = %283
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %7, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  br label %310

310:                                              ; preds = %306, %302
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #11
  br label %346

311:                                              ; preds = %284
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %7, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %8, align 4
  br label %345

315:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %316 unwind label %321

316:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #11
  %317 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %318 unwind label %325

318:                                              ; preds = %316
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %26, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1690, ptr noundef %317)
          to label %319 unwind label %325

319:                                              ; preds = %318
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %320 unwind label %329

320:                                              ; preds = %319
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  br label %335

321:                                              ; preds = %315
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %7, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %8, align 4
  br label %334

325:                                              ; preds = %318, %316
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %7, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %8, align 4
  br label %333

329:                                              ; preds = %319
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %7, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #11
  br label %333

333:                                              ; preds = %329, %325
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #11
  br label %334

334:                                              ; preds = %333, %321
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  br label %345

335:                                              ; preds = %320, %287
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #11
  store ptr @.str.1819, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #11
  %336 = load ptr, ptr %27, align 8, !tbaa !5
  %337 = invoke noundef ptr @_Z10safe_fopenPKcS0_(ptr noundef %336, ptr noundef @.str.1820)
          to label %338 unwind label %347

338:                                              ; preds = %335
  store ptr %337, ptr %28, align 8, !tbaa !5
  %339 = load ptr, ptr %28, align 8, !tbaa !5
  %340 = icmp ne ptr %339, null
  br i1 %340, label %341, label %351

341:                                              ; preds = %338
  %342 = load ptr, ptr %28, align 8, !tbaa !5
  %343 = invoke i32 @fclose(ptr noundef %342)
          to label %344 unwind label %347

344:                                              ; preds = %341
  br label %351

345:                                              ; preds = %334, %311
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #11
  br label %346

346:                                              ; preds = %345, %310
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #11
  br label %1701

347:                                              ; preds = %341, %335
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %7, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %8, align 4
  br label %1700

351:                                              ; preds = %344, %338
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %352 = call ptr @__errno_location() #12
  %353 = load i32, ptr %352, align 4, !tbaa !9
  store i32 %353, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #11
  %354 = load ptr, ptr %28, align 8, !tbaa !5
  %355 = icmp eq ptr %354, null
  %356 = zext i1 %355 to i8
  store i8 %356, ptr %31, align 1, !tbaa !11
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNSt9enable_ifIXntsr3std14is_convertibleIS2_S0_EE5valueEvE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef nonnull align 1 dereferenceable(1) %31, ptr noundef null)
          to label %357 unwind label %361

357:                                              ; preds = %351
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #11
  %358 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %359 unwind label %365

359:                                              ; preds = %357
  br i1 %358, label %360, label %369

360:                                              ; preds = %359
  br label %394

361:                                              ; preds = %351
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %7, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #11
  br label %421

365:                                              ; preds = %357
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %7, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %8, align 4
  br label %420

369:                                              ; preds = %359
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %370 unwind label %375

370:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #11
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef @.str.1821, ptr noundef @.str.1177, ptr noundef @.str.1174)
          to label %371 unwind label %379

371:                                              ; preds = %370
  %372 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %33, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1696, ptr noundef %372)
          to label %373 unwind label %383

373:                                              ; preds = %371
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %374 unwind label %387

374:                                              ; preds = %373
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %394

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

379:                                              ; preds = %370
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %7, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %8, align 4
  br label %392

383:                                              ; preds = %371
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %7, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %8, align 4
  br label %391

387:                                              ; preds = %373
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %7, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #11
  br label %391

391:                                              ; preds = %387, %383
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  br label %392

392:                                              ; preds = %391, %379
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  br label %393

393:                                              ; preds = %392, %375
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %420

394:                                              ; preds = %374, %360
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %35)
          to label %395 unwind label %422

395:                                              ; preds = %394
  %396 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %35)
          to label %397 unwind label %426

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

398:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #11
  %399 = load i32, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.1822, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %400 unwind label %430

400:                                              ; preds = %398
  invoke void @_Z20system_error_messageiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, i32 noundef %399, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %401 unwind label %434

401:                                              ; preds = %400
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #11
  store i8 0, ptr %39, align 1, !tbaa !11
  %402 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %403 unwind label %439

403:                                              ; preds = %401
  br i1 %402, label %404, label %493

404:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #11
  %405 = load ptr, ptr %27, align 8, !tbaa !5
  %406 = invoke noundef ptr @_Z10safe_fopenPKcS0_(ptr noundef %405, ptr noundef @.str.1820)
          to label %407 unwind label %443

407:                                              ; preds = %404
  store ptr %406, ptr %40, align 8, !tbaa !5
  %408 = load ptr, ptr %40, align 8, !tbaa !5
  %409 = icmp ne ptr %408, null
  br i1 %409, label %451, label %410

410:                                              ; preds = %407
  %411 = call ptr @__cxa_allocate_exception(i64 32) #11
  %412 = call ptr @__errno_location() #12
  %413 = load i32, ptr %412, align 4, !tbaa !9
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRPKcEEC2IA22_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 1 dereferenceable(22) @.str.1823)
          to label %414 unwind label %447

414:                                              ; preds = %410
  %415 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 0
  %416 = load ptr, ptr %415, align 8
  %417 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 1
  %418 = load i64, ptr %417, align 8
  invoke void @_ZN3fmt3v1012system_errorIJRPKcEEESt12system_erroriNS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOS8_(ptr dead_on_unwind writable sret(%"class.std::system_error") align 8 %411, i32 noundef %413, ptr %416, i64 %418, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %419 unwind label %447

419:                                              ; preds = %414
  invoke void @__cxa_throw(ptr %411, ptr @_ZTISt12system_error, ptr @_ZNSt12system_errorD1Ev) #13
          to label %1712 unwind label %443

420:                                              ; preds = %393, %365
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #11
  br label %421

421:                                              ; preds = %420, %361
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #11
  br label %1699

422:                                              ; preds = %394
  %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
  br label %570

426:                                              ; preds = %395
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %7, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %8, align 4
  br label %569

430:                                              ; preds = %398
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %7, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %8, align 4
  br label %438

434:                                              ; preds = %400
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %7, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  br label %438

438:                                              ; preds = %434, %430
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #11
  br label %536

439:                                              ; preds = %401
  %440 = landingpad { ptr, i32 }
          catch ptr @_ZTISt12system_error
          catch ptr null
  %441 = extractvalue { ptr, i32 } %440, 0
  store ptr %441, ptr %7, align 8
  %442 = extractvalue { ptr, i32 } %440, 1
  store i32 %442, ptr %8, align 4
  br label %456

443:                                              ; preds = %451, %419, %404
  %444 = landingpad { ptr, i32 }
          catch ptr @_ZTISt12system_error
          catch ptr null
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %7, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %8, align 4
  br label %455

447:                                              ; preds = %414, %410
  %448 = landingpad { ptr, i32 }
          catch ptr @_ZTISt12system_error
          catch ptr null
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %7, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %8, align 4
  call void @__cxa_free_exception(ptr %411) #11
  br label %455

451:                                              ; preds = %407
  %452 = load ptr, ptr %40, align 8, !tbaa !5
  %453 = invoke i32 @fclose(ptr noundef %452)
          to label %454 unwind label %443

454:                                              ; preds = %451
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  br label %494

455:                                              ; preds = %447, %443
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  br label %456

456:                                              ; preds = %455, %439
  %457 = load i32, ptr %8, align 4
  %458 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt12system_error) #11
  %459 = icmp eq i32 %457, %458
  br i1 %459, label %460, label %488

460:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #11
  %461 = load ptr, ptr %7, align 8
  %462 = call ptr @__cxa_begin_catch(ptr %461) #11
  store ptr %462, ptr %43, align 8
  %463 = load ptr, ptr %43, align 8, !tbaa !5
  %464 = load ptr, ptr %463, align 8, !tbaa !13
  %465 = getelementptr inbounds ptr, ptr %464, i64 2
  %466 = load ptr, ptr %465, align 8
  %467 = call noundef ptr %466(ptr noundef nonnull align 8 dereferenceable(16) %463) #11
  %468 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef %467)
          to label %469 unwind label %505

469:                                              ; preds = %460
  br i1 %468, label %470, label %513

470:                                              ; preds = %469
  %471 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA191_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 1 dereferenceable(191) @.str.1825)
          to label %472 unwind label %505

472:                                              ; preds = %470
  %473 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %471, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %474 unwind label %505

474:                                              ; preds = %472
  %475 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %473, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %476 unwind label %505

476:                                              ; preds = %474
  %477 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %475, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %478 unwind label %505

478:                                              ; preds = %476
  %479 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %477, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %480 unwind label %505

480:                                              ; preds = %478
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #11
  %481 = load ptr, ptr %43, align 8, !tbaa !5
  %482 = load ptr, ptr %481, align 8, !tbaa !13
  %483 = getelementptr inbounds ptr, ptr %482, i64 2
  %484 = load ptr, ptr %483, align 8
  %485 = call noundef ptr %484(ptr noundef nonnull align 8 dereferenceable(16) %481) #11
  store ptr %485, ptr %44, align 8, !tbaa !5
  %486 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %479, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %487 unwind label %509

487:                                              ; preds = %480
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  store i32 2, ptr %42, align 4
  br label %514

488:                                              ; preds = %456
  %489 = load ptr, ptr %7, align 8
  %490 = call ptr @__cxa_begin_catch(ptr %489) #11
  %491 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA239_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 1 dereferenceable(239) @.str.1824)
          to label %492 unwind label %495

492:                                              ; preds = %488
  store i32 2, ptr %42, align 4
  invoke void @__cxa_end_catch()
          to label %499 unwind label %500

493:                                              ; preds = %403
  br label %494

494:                                              ; preds = %493, %454
  br label %518

495:                                              ; preds = %488
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %7, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %504 unwind label %1709

499:                                              ; preds = %492
  br label %532

500:                                              ; preds = %521, %492
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %7, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %8, align 4
  br label %535

504:                                              ; preds = %495
  br label %535

505:                                              ; preds = %478, %476, %474, %472, %470, %460
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %7, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %8, align 4
  br label %528

509:                                              ; preds = %480
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %7, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  br label %528

513:                                              ; preds = %469
  store i8 1, ptr %39, align 1, !tbaa !11
  store i32 0, ptr %42, align 4
  br label %514

514:                                              ; preds = %513, %487
  invoke void @__cxa_end_catch()
          to label %515 unwind label %524

515:                                              ; preds = %514
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  %516 = load i32, ptr %42, align 4
  switch i32 %516, label %532 [
    i32 0, label %517
  ]

517:                                              ; preds = %515
  br label %518

518:                                              ; preds = %517, %494
  %519 = load i8, ptr %39, align 1, !tbaa !11, !range !15, !noundef !16
  %520 = trunc i8 %519 to i1
  br i1 %520, label %531, label %521

521:                                              ; preds = %518
  %522 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA230_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 1 dereferenceable(230) @.str.1826)
          to label %523 unwind label %500

523:                                              ; preds = %521
  store i32 2, ptr %42, align 4
  br label %532

524:                                              ; preds = %514
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %7, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %8, align 4
  br label %530

528:                                              ; preds = %509, %505
  invoke void @__cxa_end_catch()
          to label %529 unwind label %1709

529:                                              ; preds = %528
  br label %530

530:                                              ; preds = %529, %524
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  br label %535

531:                                              ; preds = %518
  store i32 0, ptr %42, align 4
  br label %532

532:                                              ; preds = %531, %523, %515, %499
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #11
  %533 = load i32, ptr %42, align 4
  switch i32 %533, label %1712 [
    i32 0, label %534
    i32 2, label %538
  ]

534:                                              ; preds = %532
  br label %558

535:                                              ; preds = %530, %504, %500
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  br label %536

536:                                              ; preds = %535, %438
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #11
  br label %569

537:                                              ; preds = %397
  br label %538

538:                                              ; preds = %537, %532
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %539 unwind label %544

539:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  %540 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %35)
          to label %541 unwind label %548

541:                                              ; preds = %539
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %46, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1704, ptr noundef %540)
          to label %542 unwind label %548

542:                                              ; preds = %541
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %543 unwind label %552

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

544:                                              ; preds = %538
  %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 %557

548:                                              ; preds = %541, %539
  %549 = landingpad { ptr, i32 }
          cleanup
  %550 = extractvalue { ptr, i32 } %549, 0
  store ptr %550, ptr %7, align 8
  %551 = extractvalue { ptr, i32 } %549, 1
  store i32 %551, ptr %8, align 4
  br label %556

552:                                              ; preds = %542
  %553 = landingpad { ptr, i32 }
          cleanup
  %554 = extractvalue { ptr, i32 } %553, 0
  store ptr %554, ptr %7, align 8
  %555 = extractvalue { ptr, i32 } %553, 1
  store i32 %555, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #11
  br label %556

556:                                              ; preds = %552, %548
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #11
  br label %557

557:                                              ; preds = %556, %544
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  br label %569

558:                                              ; preds = %543, %534
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA6_KcEEC2IA31_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 1 dereferenceable(31) @.str.1830)
          to label %559 unwind label %571

559:                                              ; preds = %558
  %560 = getelementptr inbounds { ptr, i64 }, ptr %49, i32 0, i32 0
  %561 = load ptr, ptr %560, align 8
  %562 = getelementptr inbounds { ptr, i64 }, ptr %49, i32 0, i32 1
  %563 = load i64, ptr %562, align 8
  invoke void @_ZN3fmt3v106formatIJRA6_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr %561, i64 %563, ptr noundef nonnull align 1 dereferenceable(6) @.str.1831)
          to label %564 unwind label %571

564:                                              ; preds = %559
  invoke void @_ZN7testing8internal8EqHelper7CompareIA33_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %47, ptr noundef @.str.1827, ptr noundef @.str.1828, ptr noundef nonnull align 1 dereferenceable(33) @.str.1829, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %565 unwind label %575

565:                                              ; preds = %564
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #11
  %566 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %567 unwind label %580

567:                                              ; preds = %565
  br i1 %566, label %568, label %584

568:                                              ; preds = %567
  br label %604

569:                                              ; preds = %557, %536, %426
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #11
  br label %570

570:                                              ; preds = %569, %422
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #11
  br label %1699

571:                                              ; preds = %559, %558
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %7, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %8, align 4
  br label %579

575:                                              ; preds = %564
  %576 = landingpad { ptr, i32 }
          cleanup
  %577 = extractvalue { ptr, i32 } %576, 0
  store ptr %577, ptr %7, align 8
  %578 = extractvalue { ptr, i32 } %576, 1
  store i32 %578, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  br label %579

579:                                              ; preds = %575, %571
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #11
  br label %616

580:                                              ; preds = %565
  %581 = landingpad { ptr, i32 }
          cleanup
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %7, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %8, align 4
  br label %615

584:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %585 unwind label %590

585:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #11
  %586 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %587 unwind label %594

587:                                              ; preds = %585
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %51, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1707, ptr noundef %586)
          to label %588 unwind label %594

588:                                              ; preds = %587
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %589 unwind label %598

589:                                              ; preds = %588
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  br label %604

590:                                              ; preds = %584
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %7, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %8, align 4
  br label %603

594:                                              ; preds = %587, %585
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %7, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %8, align 4
  br label %602

598:                                              ; preds = %588
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %7, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #11
  br label %602

602:                                              ; preds = %598, %594
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #11
  br label %603

603:                                              ; preds = %602, %590
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  br label %615

604:                                              ; preds = %589, %568
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA10_KcEEC2IA14_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 1 dereferenceable(14) @.str.1834)
          to label %605 unwind label %617

605:                                              ; preds = %604
  %606 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 0
  %607 = load ptr, ptr %606, align 8
  %608 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 1
  %609 = load i64, ptr %608, align 8
  invoke void @_ZN3fmt3v106formatIJRA10_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr %607, i64 %609, ptr noundef nonnull align 1 dereferenceable(10) @.str.1835)
          to label %610 unwind label %617

610:                                              ; preds = %605
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA21_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %52, ptr noundef @.str.1832, ptr noundef @.str.1833, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 1 dereferenceable(21) @.str.1836)
          to label %611 unwind label %621

611:                                              ; preds = %610
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #11
  %612 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %52)
          to label %613 unwind label %626

613:                                              ; preds = %611
  br i1 %612, label %614, label %630

614:                                              ; preds = %613
  br label %650

615:                                              ; preds = %603, %580
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #11
  br label %616

616:                                              ; preds = %615, %579
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #11
  br label %1699

617:                                              ; preds = %605, %604
  %618 = landingpad { ptr, i32 }
          cleanup
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %7, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %8, align 4
  br label %625

621:                                              ; preds = %610
  %622 = landingpad { ptr, i32 }
          cleanup
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %7, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  br label %625

625:                                              ; preds = %621, %617
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #11
  br label %662

626:                                              ; preds = %611
  %627 = landingpad { ptr, i32 }
          cleanup
  %628 = extractvalue { ptr, i32 } %627, 0
  store ptr %628, ptr %7, align 8
  %629 = extractvalue { ptr, i32 } %627, 1
  store i32 %629, ptr %8, align 4
  br label %661

630:                                              ; preds = %613
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %631 unwind label %636

631:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #11
  %632 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %52)
          to label %633 unwind label %640

633:                                              ; preds = %631
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %56, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1708, ptr noundef %632)
          to label %634 unwind label %640

634:                                              ; preds = %633
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %635 unwind label %644

635:                                              ; preds = %634
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %650

636:                                              ; preds = %630
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %7, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %8, align 4
  br label %649

640:                                              ; preds = %633, %631
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %7, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %8, align 4
  br label %648

644:                                              ; preds = %634
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %7, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #11
  br label %648

648:                                              ; preds = %644, %640
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #11
  br label %649

649:                                              ; preds = %648, %636
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %661

650:                                              ; preds = %635, %614
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiiEEC2IA14_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef nonnull align 1 dereferenceable(14) @.str.1839)
          to label %651 unwind label %663

651:                                              ; preds = %650
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  store i32 1, ptr %60, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  store i32 3, ptr %61, align 4, !tbaa !9
  %652 = getelementptr inbounds { ptr, i64 }, ptr %59, i32 0, i32 0
  %653 = load ptr, ptr %652, align 8
  %654 = getelementptr inbounds { ptr, i64 }, ptr %59, i32 0, i32 1
  %655 = load i64, ptr %654, align 8
  invoke void @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr %653, i64 %655, ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef nonnull align 4 dereferenceable(4) %61)
          to label %656 unwind label %667

656:                                              ; preds = %651
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA12_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %57, ptr noundef @.str.1837, ptr noundef @.str.1838, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 1 dereferenceable(12) @.str.1840)
          to label %657 unwind label %671

657:                                              ; preds = %656
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #11
  %658 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %57)
          to label %659 unwind label %677

659:                                              ; preds = %657
  br i1 %658, label %660, label %681

660:                                              ; preds = %659
  br label %701

661:                                              ; preds = %649, %626
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #11
  br label %662

662:                                              ; preds = %661, %625
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #11
  br label %1699

663:                                              ; preds = %650
  %664 = landingpad { ptr, i32 }
          cleanup
  %665 = extractvalue { ptr, i32 } %664, 0
  store ptr %665, ptr %7, align 8
  %666 = extractvalue { ptr, i32 } %664, 1
  store i32 %666, ptr %8, align 4
  br label %676

667:                                              ; preds = %651
  %668 = landingpad { ptr, i32 }
          cleanup
  %669 = extractvalue { ptr, i32 } %668, 0
  store ptr %669, ptr %7, align 8
  %670 = extractvalue { ptr, i32 } %668, 1
  store i32 %670, ptr %8, align 4
  br label %675

671:                                              ; preds = %656
  %672 = landingpad { ptr, i32 }
          cleanup
  %673 = extractvalue { ptr, i32 } %672, 0
  store ptr %673, ptr %7, align 8
  %674 = extractvalue { ptr, i32 } %672, 1
  store i32 %674, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #11
  br label %675

675:                                              ; preds = %671, %667
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %676

676:                                              ; preds = %675, %663
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #11
  br label %714

677:                                              ; preds = %657
  %678 = landingpad { ptr, i32 }
          cleanup
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %7, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %8, align 4
  br label %713

681:                                              ; preds = %659
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %682 unwind label %687

682:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #11
  %683 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %57)
          to label %684 unwind label %691

684:                                              ; preds = %682
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %63, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1709, ptr noundef %683)
          to label %685 unwind label %691

685:                                              ; preds = %684
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %686 unwind label %695

686:                                              ; preds = %685
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  br label %701

687:                                              ; preds = %681
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %7, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %8, align 4
  br label %700

691:                                              ; preds = %684, %682
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %7, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %8, align 4
  br label %699

695:                                              ; preds = %685
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %7, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #11
  br label %699

699:                                              ; preds = %695, %691
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #11
  br label %700

700:                                              ; preds = %699, %687
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  br label %713

701:                                              ; preds = %686, %660
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #11
  call void @llvm.lifetime.start.p0(i64 256, ptr %64) #11
  invoke void (ptr, ptr, ...) @_Z12safe_sprintfILm256EEvRAT__cPKcz(ptr noundef nonnull align 1 dereferenceable(256) %64, ptr noundef @.str.1841, double noundef -1.200000e+00)
          to label %702 unwind label %715

702:                                              ; preds = %701
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef nonnull align 1 dereferenceable(9) @.str.1843)
          to label %703 unwind label %719

703:                                              ; preds = %702
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #11
  store double -1.200000e+00, ptr %68, align 8, !tbaa !17
  %704 = getelementptr inbounds { ptr, i64 }, ptr %67, i32 0, i32 0
  %705 = load ptr, ptr %704, align 8
  %706 = getelementptr inbounds { ptr, i64 }, ptr %67, i32 0, i32 1
  %707 = load i64, ptr %706, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr %705, i64 %707, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %708 unwind label %723

708:                                              ; preds = %703
  invoke void @_ZN7testing8internal8EqHelper7CompareIA256_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %65, ptr noundef @.str.1272, ptr noundef @.str.1842, ptr noundef nonnull align 1 dereferenceable(256) %64, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %709 unwind label %727

709:                                              ; preds = %708
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #11
  %710 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %65)
          to label %711 unwind label %733

711:                                              ; preds = %709
  br i1 %710, label %712, label %737

712:                                              ; preds = %711
  br label %757

713:                                              ; preds = %700, %677
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #11
  br label %714

714:                                              ; preds = %713, %676
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #11
  br label %1699

715:                                              ; preds = %701
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %7, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %8, align 4
  br label %1698

719:                                              ; preds = %702
  %720 = landingpad { ptr, i32 }
          cleanup
  %721 = extractvalue { ptr, i32 } %720, 0
  store ptr %721, ptr %7, align 8
  %722 = extractvalue { ptr, i32 } %720, 1
  store i32 %722, ptr %8, align 4
  br label %732

723:                                              ; preds = %703
  %724 = landingpad { ptr, i32 }
          cleanup
  %725 = extractvalue { ptr, i32 } %724, 0
  store ptr %725, ptr %7, align 8
  %726 = extractvalue { ptr, i32 } %724, 1
  store i32 %726, ptr %8, align 4
  br label %731

727:                                              ; preds = %708
  %728 = landingpad { ptr, i32 }
          cleanup
  %729 = extractvalue { ptr, i32 } %728, 0
  store ptr %729, ptr %7, align 8
  %730 = extractvalue { ptr, i32 } %728, 1
  store i32 %730, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  br label %731

731:                                              ; preds = %727, %723
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  br label %732

732:                                              ; preds = %731, %719
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #11
  br label %769

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

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

738:                                              ; preds = %737
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #11
  %739 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %65)
          to label %740 unwind label %747

740:                                              ; preds = %738
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %70, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1713, ptr noundef %739)
          to label %741 unwind label %747

741:                                              ; preds = %740
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %742 unwind label %751

742:                                              ; preds = %741
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  br label %757

743:                                              ; preds = %737
  %744 = landingpad { ptr, i32 }
          cleanup
  %745 = extractvalue { ptr, i32 } %744, 0
  store ptr %745, ptr %7, align 8
  %746 = extractvalue { ptr, i32 } %744, 1
  store i32 %746, ptr %8, align 4
  br label %756

747:                                              ; preds = %740, %738
  %748 = landingpad { ptr, i32 }
          cleanup
  %749 = extractvalue { ptr, i32 } %748, 0
  store ptr %749, ptr %7, align 8
  %750 = extractvalue { ptr, i32 } %748, 1
  store i32 %750, ptr %8, align 4
  br label %755

751:                                              ; preds = %741
  %752 = landingpad { ptr, i32 }
          cleanup
  %753 = extractvalue { ptr, i32 } %752, 0
  store ptr %753, ptr %7, align 8
  %754 = extractvalue { ptr, i32 } %752, 1
  store i32 %754, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #11
  br label %755

755:                                              ; preds = %751, %747
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #11
  br label %756

756:                                              ; preds = %755, %743
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  br label %768

757:                                              ; preds = %742, %712
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJcccEEC2IA14_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 1 dereferenceable(14) @.str.1846)
          to label %758 unwind label %770

758:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #11
  store i8 97, ptr %74, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #11
  store i8 98, ptr %75, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #11
  store i8 99, ptr %76, align 1, !tbaa !19
  %759 = getelementptr inbounds { ptr, i64 }, ptr %73, i32 0, i32 0
  %760 = load ptr, ptr %759, align 8
  %761 = getelementptr inbounds { ptr, i64 }, ptr %73, i32 0, i32 1
  %762 = load i64, ptr %761, align 8
  invoke void @_ZN3fmt3v106formatIJcccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr %760, i64 %762, ptr noundef nonnull align 1 dereferenceable(1) %74, ptr noundef nonnull align 1 dereferenceable(1) %75, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %763 unwind label %774

763:                                              ; preds = %758
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %71, ptr noundef @.str.1844, ptr noundef @.str.1845, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 1 dereferenceable(8) @.str.1847)
          to label %764 unwind label %778

764:                                              ; preds = %763
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #11
  %765 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %71)
          to label %766 unwind label %784

766:                                              ; preds = %764
  br i1 %765, label %767, label %788

767:                                              ; preds = %766
  br label %808

768:                                              ; preds = %756, %733
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #11
  br label %769

769:                                              ; preds = %768, %732
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #11
  br label %1698

770:                                              ; preds = %757
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %7, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %8, align 4
  br label %783

774:                                              ; preds = %758
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %7, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %8, align 4
  br label %782

778:                                              ; preds = %763
  %779 = landingpad { ptr, i32 }
          cleanup
  %780 = extractvalue { ptr, i32 } %779, 0
  store ptr %780, ptr %7, align 8
  %781 = extractvalue { ptr, i32 } %779, 1
  store i32 %781, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #11
  br label %782

782:                                              ; preds = %778, %774
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #11
  br label %783

783:                                              ; preds = %782, %770
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #11
  br label %820

784:                                              ; preds = %764
  %785 = landingpad { ptr, i32 }
          cleanup
  %786 = extractvalue { ptr, i32 } %785, 0
  store ptr %786, ptr %7, align 8
  %787 = extractvalue { ptr, i32 } %785, 1
  store i32 %787, ptr %8, align 4
  br label %819

788:                                              ; preds = %766
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %77)
          to label %789 unwind label %794

789:                                              ; preds = %788
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  %790 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %71)
          to label %791 unwind label %798

791:                                              ; preds = %789
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %78, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1715, ptr noundef %790)
          to label %792 unwind label %798

792:                                              ; preds = %791
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %77)
          to label %793 unwind label %802

793:                                              ; preds = %792
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #11
  br label %808

794:                                              ; preds = %788
  %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 %807

798:                                              ; preds = %791, %789
  %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
  br label %806

802:                                              ; preds = %792
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %7, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #11
  br label %806

806:                                              ; preds = %802, %798
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #11
  br label %807

807:                                              ; preds = %806, %794
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #11
  br label %819

808:                                              ; preds = %793, %767
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %79) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJcccEEC2IA11_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 1 dereferenceable(11) @.str.1849)
          to label %809 unwind label %821

809:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #11
  store i8 97, ptr %82, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #11
  store i8 98, ptr %83, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #11
  store i8 99, ptr %84, align 1, !tbaa !19
  %810 = getelementptr inbounds { ptr, i64 }, ptr %81, i32 0, i32 0
  %811 = load ptr, ptr %810, align 8
  %812 = getelementptr inbounds { ptr, i64 }, ptr %81, i32 0, i32 1
  %813 = load i64, ptr %812, align 8
  invoke void @_ZN3fmt3v106formatIJcccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr %811, i64 %813, ptr noundef nonnull align 1 dereferenceable(1) %82, ptr noundef nonnull align 1 dereferenceable(1) %83, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %814 unwind label %825

814:                                              ; preds = %809
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %79, ptr noundef @.str.1848, ptr noundef @.str.1845, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 1 dereferenceable(8) @.str.1847)
          to label %815 unwind label %829

815:                                              ; preds = %814
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #11
  %816 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %79)
          to label %817 unwind label %835

817:                                              ; preds = %815
  br i1 %816, label %818, label %839

818:                                              ; preds = %817
  br label %859

819:                                              ; preds = %807, %784
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71) #11
  br label %820

820:                                              ; preds = %819, %783
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #11
  br label %1698

821:                                              ; preds = %808
  %822 = landingpad { ptr, i32 }
          cleanup
  %823 = extractvalue { ptr, i32 } %822, 0
  store ptr %823, ptr %7, align 8
  %824 = extractvalue { ptr, i32 } %822, 1
  store i32 %824, ptr %8, align 4
  br label %834

825:                                              ; preds = %809
  %826 = landingpad { ptr, i32 }
          cleanup
  %827 = extractvalue { ptr, i32 } %826, 0
  store ptr %827, ptr %7, align 8
  %828 = extractvalue { ptr, i32 } %826, 1
  store i32 %828, ptr %8, align 4
  br label %833

829:                                              ; preds = %814
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #11
  br label %833

833:                                              ; preds = %829, %825
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #11
  br label %834

834:                                              ; preds = %833, %821
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #11
  br label %871

835:                                              ; preds = %815
  %836 = landingpad { ptr, i32 }
          cleanup
  %837 = extractvalue { ptr, i32 } %836, 0
  store ptr %837, ptr %7, align 8
  %838 = extractvalue { ptr, i32 } %836, 1
  store i32 %838, ptr %8, align 4
  br label %870

839:                                              ; preds = %817
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %840 unwind label %845

840:                                              ; preds = %839
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #11
  %841 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %79)
          to label %842 unwind label %849

842:                                              ; preds = %840
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %86, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1716, ptr noundef %841)
          to label %843 unwind label %849

843:                                              ; preds = %842
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %844 unwind label %853

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

845:                                              ; preds = %839
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  store ptr %847, ptr %7, align 8
  %848 = extractvalue { ptr, i32 } %846, 1
  store i32 %848, ptr %8, align 4
  br label %858

849:                                              ; preds = %842, %840
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %7, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %8, align 4
  br label %857

853:                                              ; preds = %843
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %7, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #11
  br label %857

857:                                              ; preds = %853, %849
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #11
  br label %858

858:                                              ; preds = %857, %845
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  br label %870

859:                                              ; preds = %844, %818
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %87) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJcccEEC2IA14_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %89, ptr noundef nonnull align 1 dereferenceable(14) @.str.1852)
          to label %860 unwind label %872

860:                                              ; preds = %859
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #11
  store i8 97, ptr %90, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #11
  store i8 98, ptr %91, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #11
  store i8 99, ptr %92, align 1, !tbaa !19
  %861 = getelementptr inbounds { ptr, i64 }, ptr %89, i32 0, i32 0
  %862 = load ptr, ptr %861, align 8
  %863 = getelementptr inbounds { ptr, i64 }, ptr %89, i32 0, i32 1
  %864 = load i64, ptr %863, align 8
  invoke void @_ZN3fmt3v106formatIJcccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr %862, i64 %864, ptr noundef nonnull align 1 dereferenceable(1) %90, ptr noundef nonnull align 1 dereferenceable(1) %91, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %865 unwind label %876

865:                                              ; preds = %860
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %87, ptr noundef @.str.1850, ptr noundef @.str.1851, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 1 dereferenceable(8) @.str.1853)
          to label %866 unwind label %880

866:                                              ; preds = %865
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #11
  %867 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %87)
          to label %868 unwind label %886

868:                                              ; preds = %866
  br i1 %867, label %869, label %890

869:                                              ; preds = %868
  br label %910

870:                                              ; preds = %858, %835
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #11
  br label %871

871:                                              ; preds = %870, %834
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #11
  br label %1698

872:                                              ; preds = %859
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %7, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %8, align 4
  br label %885

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

880:                                              ; preds = %865
  %881 = landingpad { ptr, i32 }
          cleanup
  %882 = extractvalue { ptr, i32 } %881, 0
  store ptr %882, ptr %7, align 8
  %883 = extractvalue { ptr, i32 } %881, 1
  store i32 %883, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #11
  br label %884

884:                                              ; preds = %880, %876
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #11
  br label %885

885:                                              ; preds = %884, %872
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #11
  br label %922

886:                                              ; preds = %866
  %887 = landingpad { ptr, i32 }
          cleanup
  %888 = extractvalue { ptr, i32 } %887, 0
  store ptr %888, ptr %7, align 8
  %889 = extractvalue { ptr, i32 } %887, 1
  store i32 %889, ptr %8, align 4
  br label %921

890:                                              ; preds = %868
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93)
          to label %891 unwind label %896

891:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #11
  %892 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %87)
          to label %893 unwind label %900

893:                                              ; preds = %891
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %94, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1717, ptr noundef %892)
          to label %894 unwind label %900

894:                                              ; preds = %893
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %93)
          to label %895 unwind label %904

895:                                              ; preds = %894
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #11
  br label %910

896:                                              ; preds = %890
  %897 = landingpad { ptr, i32 }
          cleanup
  %898 = extractvalue { ptr, i32 } %897, 0
  store ptr %898, ptr %7, align 8
  %899 = extractvalue { ptr, i32 } %897, 1
  store i32 %899, ptr %8, align 4
  br label %909

900:                                              ; preds = %893, %891
  %901 = landingpad { ptr, i32 }
          cleanup
  %902 = extractvalue { ptr, i32 } %901, 0
  store ptr %902, ptr %7, align 8
  %903 = extractvalue { ptr, i32 } %901, 1
  store i32 %903, ptr %8, align 4
  br label %908

904:                                              ; preds = %894
  %905 = landingpad { ptr, i32 }
          cleanup
  %906 = extractvalue { ptr, i32 } %905, 0
  store ptr %906, ptr %7, align 8
  %907 = extractvalue { ptr, i32 } %905, 1
  store i32 %907, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #11
  br label %908

908:                                              ; preds = %904, %900
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #11
  br label %909

909:                                              ; preds = %908, %896
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #11
  br label %921

910:                                              ; preds = %895, %869
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %87) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %87) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %95) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA5_KcRA4_S2_EEC2IA10_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16) %97, ptr noundef nonnull align 1 dereferenceable(10) @.str.274)
          to label %911 unwind label %923

911:                                              ; preds = %910
  %912 = getelementptr inbounds { ptr, i64 }, ptr %97, i32 0, i32 0
  %913 = load ptr, ptr %912, align 8
  %914 = getelementptr inbounds { ptr, i64 }, ptr %97, i32 0, i32 1
  %915 = load i64, ptr %914, align 8
  invoke void @_ZN3fmt3v106formatIJRA5_KcRA4_S2_EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSF_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr %913, i64 %915, ptr noundef nonnull align 1 dereferenceable(5) @.str.275, ptr noundef nonnull align 1 dereferenceable(4) @.str.276)
          to label %916 unwind label %923

916:                                              ; preds = %911
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA12_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %95, ptr noundef @.str.272, ptr noundef @.str.273, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 1 dereferenceable(12) @.str.277)
          to label %917 unwind label %927

917:                                              ; preds = %916
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #11
  %918 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %95)
          to label %919 unwind label %932

919:                                              ; preds = %917
  br i1 %918, label %920, label %936

920:                                              ; preds = %919
  br label %956

921:                                              ; preds = %909, %886
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %87) #11
  br label %922

922:                                              ; preds = %921, %885
  call void @llvm.lifetime.end.p0(i64 16, ptr %87) #11
  br label %1698

923:                                              ; preds = %911, %910
  %924 = landingpad { ptr, i32 }
          cleanup
  %925 = extractvalue { ptr, i32 } %924, 0
  store ptr %925, ptr %7, align 8
  %926 = extractvalue { ptr, i32 } %924, 1
  store i32 %926, ptr %8, align 4
  br label %931

927:                                              ; preds = %916
  %928 = landingpad { ptr, i32 }
          cleanup
  %929 = extractvalue { ptr, i32 } %928, 0
  store ptr %929, ptr %7, align 8
  %930 = extractvalue { ptr, i32 } %928, 1
  store i32 %930, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  br label %931

931:                                              ; preds = %927, %923
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #11
  br label %968

932:                                              ; preds = %917
  %933 = landingpad { ptr, i32 }
          cleanup
  %934 = extractvalue { ptr, i32 } %933, 0
  store ptr %934, ptr %7, align 8
  %935 = extractvalue { ptr, i32 } %933, 1
  store i32 %935, ptr %8, align 4
  br label %967

936:                                              ; preds = %919
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %937 unwind label %942

937:                                              ; preds = %936
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #11
  %938 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %95)
          to label %939 unwind label %946

939:                                              ; preds = %937
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %99, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1718, ptr noundef %938)
          to label %940 unwind label %946

940:                                              ; preds = %939
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %941 unwind label %950

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

942:                                              ; preds = %936
  %943 = landingpad { ptr, i32 }
          cleanup
  %944 = extractvalue { ptr, i32 } %943, 0
  store ptr %944, ptr %7, align 8
  %945 = extractvalue { ptr, i32 } %943, 1
  store i32 %945, ptr %8, align 4
  br label %955

946:                                              ; preds = %939, %937
  %947 = landingpad { ptr, i32 }
          cleanup
  %948 = extractvalue { ptr, i32 } %947, 0
  store ptr %948, ptr %7, align 8
  %949 = extractvalue { ptr, i32 } %947, 1
  store i32 %949, ptr %8, align 4
  br label %954

950:                                              ; preds = %940
  %951 = landingpad { ptr, i32 }
          cleanup
  %952 = extractvalue { ptr, i32 } %951, 0
  store ptr %952, ptr %7, align 8
  %953 = extractvalue { ptr, i32 } %951, 1
  store i32 %953, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #11
  br label %954

954:                                              ; preds = %950, %946
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #11
  br label %955

955:                                              ; preds = %954, %942
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  br label %967

956:                                              ; preds = %941, %920
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %95) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %100) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA13_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %102, ptr noundef nonnull align 1 dereferenceable(7) @.str.1857)
          to label %957 unwind label %969

957:                                              ; preds = %956
  %958 = getelementptr inbounds { ptr, i64 }, ptr %102, i32 0, i32 0
  %959 = load ptr, ptr %958, align 8
  %960 = getelementptr inbounds { ptr, i64 }, ptr %102, i32 0, i32 1
  %961 = load i64, ptr %960, align 8
  invoke void @_ZN3fmt3v106formatIJRA13_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr %959, i64 %961, ptr noundef nonnull align 1 dereferenceable(13) @.str.1858)
          to label %962 unwind label %969

962:                                              ; preds = %957
  invoke void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %100, ptr noundef @.str.1854, ptr noundef @.str.1855, ptr noundef nonnull align 1 dereferenceable(31) @.str.1856, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %963 unwind label %973

963:                                              ; preds = %962
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #11
  %964 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %965 unwind label %978

965:                                              ; preds = %963
  br i1 %964, label %966, label %982

966:                                              ; preds = %965
  br label %1002

967:                                              ; preds = %955, %932
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #11
  br label %968

968:                                              ; preds = %967, %931
  call void @llvm.lifetime.end.p0(i64 16, ptr %95) #11
  br label %1698

969:                                              ; preds = %957, %956
  %970 = landingpad { ptr, i32 }
          cleanup
  %971 = extractvalue { ptr, i32 } %970, 0
  store ptr %971, ptr %7, align 8
  %972 = extractvalue { ptr, i32 } %970, 1
  store i32 %972, ptr %8, align 4
  br label %977

973:                                              ; preds = %962
  %974 = landingpad { ptr, i32 }
          cleanup
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %7, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #11
  br label %977

977:                                              ; preds = %973, %969
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #11
  br label %1014

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

982:                                              ; preds = %965
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %983 unwind label %988

983:                                              ; preds = %982
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #11
  %984 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %985 unwind label %992

985:                                              ; preds = %983
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %104, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1721, ptr noundef %984)
          to label %986 unwind label %992

986:                                              ; preds = %985
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %987 unwind label %996

987:                                              ; preds = %986
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  br label %1002

988:                                              ; preds = %982
  %989 = landingpad { ptr, i32 }
          cleanup
  %990 = extractvalue { ptr, i32 } %989, 0
  store ptr %990, ptr %7, align 8
  %991 = extractvalue { ptr, i32 } %989, 1
  store i32 %991, ptr %8, align 4
  br label %1001

992:                                              ; preds = %985, %983
  %993 = landingpad { ptr, i32 }
          cleanup
  %994 = extractvalue { ptr, i32 } %993, 0
  store ptr %994, ptr %7, align 8
  %995 = extractvalue { ptr, i32 } %993, 1
  store i32 %995, ptr %8, align 4
  br label %1000

996:                                              ; preds = %986
  %997 = landingpad { ptr, i32 }
          cleanup
  %998 = extractvalue { ptr, i32 } %997, 0
  store ptr %998, ptr %7, align 8
  %999 = extractvalue { ptr, i32 } %997, 1
  store i32 %999, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #11
  br label %1000

1000:                                             ; preds = %996, %992
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #11
  br label %1001

1001:                                             ; preds = %1000, %988
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  br label %1013

1002:                                             ; preds = %987, %966
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA14_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr noundef nonnull align 1 dereferenceable(7) @.str.1862)
          to label %1003 unwind label %1015

1003:                                             ; preds = %1002
  %1004 = getelementptr inbounds { ptr, i64 }, ptr %107, i32 0, i32 0
  %1005 = load ptr, ptr %1004, align 8
  %1006 = getelementptr inbounds { ptr, i64 }, ptr %107, i32 0, i32 1
  %1007 = load i64, ptr %1006, align 8
  invoke void @_ZN3fmt3v106formatIJRA14_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr %1005, i64 %1007, ptr noundef nonnull align 1 dereferenceable(14) @.str.1863)
          to label %1008 unwind label %1015

1008:                                             ; preds = %1003
  invoke void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %105, ptr noundef @.str.1859, ptr noundef @.str.1860, ptr noundef nonnull align 1 dereferenceable(31) @.str.1861, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %1009 unwind label %1019

1009:                                             ; preds = %1008
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #11
  %1010 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %105)
          to label %1011 unwind label %1024

1011:                                             ; preds = %1009
  br i1 %1010, label %1012, label %1028

1012:                                             ; preds = %1011
  br label %1048

1013:                                             ; preds = %1001, %978
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #11
  br label %1014

1014:                                             ; preds = %1013, %977
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #11
  br label %1698

1015:                                             ; preds = %1003, %1002
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %7, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %8, align 4
  br label %1023

1019:                                             ; preds = %1008
  %1020 = landingpad { ptr, i32 }
          cleanup
  %1021 = extractvalue { ptr, i32 } %1020, 0
  store ptr %1021, ptr %7, align 8
  %1022 = extractvalue { ptr, i32 } %1020, 1
  store i32 %1022, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #11
  br label %1023

1023:                                             ; preds = %1019, %1015
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #11
  br label %1060

1024:                                             ; preds = %1009
  %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 %1059

1028:                                             ; preds = %1011
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %1029 unwind label %1034

1029:                                             ; preds = %1028
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #11
  %1030 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %105)
          to label %1031 unwind label %1038

1031:                                             ; preds = %1029
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %109, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1723, ptr noundef %1030)
          to label %1032 unwind label %1038

1032:                                             ; preds = %1031
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %1033 unwind label %1042

1033:                                             ; preds = %1032
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  br label %1048

1034:                                             ; preds = %1028
  %1035 = landingpad { ptr, i32 }
          cleanup
  %1036 = extractvalue { ptr, i32 } %1035, 0
  store ptr %1036, ptr %7, align 8
  %1037 = extractvalue { ptr, i32 } %1035, 1
  store i32 %1037, ptr %8, align 4
  br label %1047

1038:                                             ; preds = %1031, %1029
  %1039 = landingpad { ptr, i32 }
          cleanup
  %1040 = extractvalue { ptr, i32 } %1039, 0
  store ptr %1040, ptr %7, align 8
  %1041 = extractvalue { ptr, i32 } %1039, 1
  store i32 %1041, ptr %8, align 4
  br label %1046

1042:                                             ; preds = %1032
  %1043 = landingpad { ptr, i32 }
          cleanup
  %1044 = extractvalue { ptr, i32 } %1043, 0
  store ptr %1044, ptr %7, align 8
  %1045 = extractvalue { ptr, i32 } %1043, 1
  store i32 %1045, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #11
  br label %1046

1046:                                             ; preds = %1042, %1038
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #11
  br label %1047

1047:                                             ; preds = %1046, %1034
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  br label %1059

1048:                                             ; preds = %1033, %1012
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %105) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %110) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA9_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 1 dereferenceable(7) @.str.1867)
          to label %1049 unwind label %1061

1049:                                             ; preds = %1048
  %1050 = getelementptr inbounds { ptr, i64 }, ptr %112, i32 0, i32 0
  %1051 = load ptr, ptr %1050, align 8
  %1052 = getelementptr inbounds { ptr, i64 }, ptr %112, i32 0, i32 1
  %1053 = load i64, ptr %1052, align 8
  invoke void @_ZN3fmt3v106formatIJRA9_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %111, ptr %1051, i64 %1053, ptr noundef nonnull align 1 dereferenceable(9) @.str.1868)
          to label %1054 unwind label %1061

1054:                                             ; preds = %1049
  invoke void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %110, ptr noundef @.str.1864, ptr noundef @.str.1865, ptr noundef nonnull align 1 dereferenceable(31) @.str.1866, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %1055 unwind label %1065

1055:                                             ; preds = %1054
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #11
  %1056 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %110)
          to label %1057 unwind label %1070

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

1058:                                             ; preds = %1057
  br label %1094

1059:                                             ; preds = %1047, %1024
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %105) #11
  br label %1060

1060:                                             ; preds = %1059, %1023
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #11
  br label %1698

1061:                                             ; preds = %1049, %1048
  %1062 = landingpad { ptr, i32 }
          cleanup
  %1063 = extractvalue { ptr, i32 } %1062, 0
  store ptr %1063, ptr %7, align 8
  %1064 = extractvalue { ptr, i32 } %1062, 1
  store i32 %1064, ptr %8, align 4
  br label %1069

1065:                                             ; preds = %1054
  %1066 = landingpad { ptr, i32 }
          cleanup
  %1067 = extractvalue { ptr, i32 } %1066, 0
  store ptr %1067, ptr %7, align 8
  %1068 = extractvalue { ptr, i32 } %1066, 1
  store i32 %1068, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #11
  br label %1069

1069:                                             ; preds = %1065, %1061
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #11
  br label %1106

1070:                                             ; preds = %1055
  %1071 = landingpad { ptr, i32 }
          cleanup
  %1072 = extractvalue { ptr, i32 } %1071, 0
  store ptr %1072, ptr %7, align 8
  %1073 = extractvalue { ptr, i32 } %1071, 1
  store i32 %1073, ptr %8, align 4
  br label %1105

1074:                                             ; preds = %1057
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %113)
          to label %1075 unwind label %1080

1075:                                             ; preds = %1074
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #11
  %1076 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %110)
          to label %1077 unwind label %1084

1077:                                             ; preds = %1075
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %114, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1725, ptr noundef %1076)
          to label %1078 unwind label %1084

1078:                                             ; preds = %1077
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 8 dereferenceable(8) %113)
          to label %1079 unwind label %1088

1079:                                             ; preds = %1078
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #11
  br label %1094

1080:                                             ; preds = %1074
  %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 %1093

1084:                                             ; preds = %1077, %1075
  %1085 = landingpad { ptr, i32 }
          cleanup
  %1086 = extractvalue { ptr, i32 } %1085, 0
  store ptr %1086, ptr %7, align 8
  %1087 = extractvalue { ptr, i32 } %1085, 1
  store i32 %1087, ptr %8, align 4
  br label %1092

1088:                                             ; preds = %1078
  %1089 = landingpad { ptr, i32 }
          cleanup
  %1090 = extractvalue { ptr, i32 } %1089, 0
  store ptr %1090, ptr %7, align 8
  %1091 = extractvalue { ptr, i32 } %1089, 1
  store i32 %1091, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #11
  br label %1092

1092:                                             ; preds = %1088, %1084
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #11
  br label %1093

1093:                                             ; preds = %1092, %1080
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #11
  br label %1105

1094:                                             ; preds = %1079, %1058
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %115) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA9_KcEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %117, ptr noundef nonnull align 1 dereferenceable(8) @.str.1872)
          to label %1095 unwind label %1107

1095:                                             ; preds = %1094
  %1096 = getelementptr inbounds { ptr, i64 }, ptr %117, i32 0, i32 0
  %1097 = load ptr, ptr %1096, align 8
  %1098 = getelementptr inbounds { ptr, i64 }, ptr %117, i32 0, i32 1
  %1099 = load i64, ptr %1098, align 8
  invoke void @_ZN3fmt3v106formatIJRA9_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr %1097, i64 %1099, ptr noundef nonnull align 1 dereferenceable(9) @.str.1868)
          to label %1100 unwind label %1107

1100:                                             ; preds = %1095
  invoke void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %115, ptr noundef @.str.1869, ptr noundef @.str.1870, ptr noundef nonnull align 1 dereferenceable(31) @.str.1871, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %1101 unwind label %1111

1101:                                             ; preds = %1100
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #11
  %1102 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %115)
          to label %1103 unwind label %1116

1103:                                             ; preds = %1101
  br i1 %1102, label %1104, label %1120

1104:                                             ; preds = %1103
  br label %1140

1105:                                             ; preds = %1093, %1070
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #11
  br label %1106

1106:                                             ; preds = %1105, %1069
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #11
  br label %1698

1107:                                             ; preds = %1095, %1094
  %1108 = landingpad { ptr, i32 }
          cleanup
  %1109 = extractvalue { ptr, i32 } %1108, 0
  store ptr %1109, ptr %7, align 8
  %1110 = extractvalue { ptr, i32 } %1108, 1
  store i32 %1110, ptr %8, align 4
  br label %1115

1111:                                             ; preds = %1100
  %1112 = landingpad { ptr, i32 }
          cleanup
  %1113 = extractvalue { ptr, i32 } %1112, 0
  store ptr %1113, ptr %7, align 8
  %1114 = extractvalue { ptr, i32 } %1112, 1
  store i32 %1114, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #11
  br label %1115

1115:                                             ; preds = %1111, %1107
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #11
  br label %1152

1116:                                             ; preds = %1101
  %1117 = landingpad { ptr, i32 }
          cleanup
  %1118 = extractvalue { ptr, i32 } %1117, 0
  store ptr %1118, ptr %7, align 8
  %1119 = extractvalue { ptr, i32 } %1117, 1
  store i32 %1119, ptr %8, align 4
  br label %1151

1120:                                             ; preds = %1103
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %118)
          to label %1121 unwind label %1126

1121:                                             ; preds = %1120
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #11
  %1122 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %115)
          to label %1123 unwind label %1130

1123:                                             ; preds = %1121
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %119, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1727, ptr noundef %1122)
          to label %1124 unwind label %1130

1124:                                             ; preds = %1123
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(8) %118)
          to label %1125 unwind label %1134

1125:                                             ; preds = %1124
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %119) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #11
  br label %1140

1126:                                             ; preds = %1120
  %1127 = landingpad { ptr, i32 }
          cleanup
  %1128 = extractvalue { ptr, i32 } %1127, 0
  store ptr %1128, ptr %7, align 8
  %1129 = extractvalue { ptr, i32 } %1127, 1
  store i32 %1129, ptr %8, align 4
  br label %1139

1130:                                             ; preds = %1123, %1121
  %1131 = landingpad { ptr, i32 }
          cleanup
  %1132 = extractvalue { ptr, i32 } %1131, 0
  store ptr %1132, ptr %7, align 8
  %1133 = extractvalue { ptr, i32 } %1131, 1
  store i32 %1133, ptr %8, align 4
  br label %1138

1134:                                             ; preds = %1124
  %1135 = landingpad { ptr, i32 }
          cleanup
  %1136 = extractvalue { ptr, i32 } %1135, 0
  store ptr %1136, ptr %7, align 8
  %1137 = extractvalue { ptr, i32 } %1135, 1
  store i32 %1137, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %119) #11
  br label %1138

1138:                                             ; preds = %1134, %1130
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #11
  br label %1139

1139:                                             ; preds = %1138, %1126
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #11
  br label %1151

1140:                                             ; preds = %1125, %1104
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %115) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %115) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %121) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJddEEC2IA13_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %122, ptr noundef nonnull align 1 dereferenceable(13) @.str.1875)
          to label %1141 unwind label %1153

1141:                                             ; preds = %1140
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #11
  store double 3.140000e+00, ptr %123, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #11
  store double -3.140000e+00, ptr %124, align 8, !tbaa !17
  %1142 = getelementptr inbounds { ptr, i64 }, ptr %122, i32 0, i32 0
  %1143 = load ptr, ptr %1142, align 8
  %1144 = getelementptr inbounds { ptr, i64 }, ptr %122, i32 0, i32 1
  %1145 = load i64, ptr %1144, align 8
  invoke void @_ZN3fmt3v106formatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %121, ptr %1143, i64 %1145, ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %124)
          to label %1146 unwind label %1157

1146:                                             ; preds = %1141
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA21_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %120, ptr noundef @.str.1873, ptr noundef @.str.1874, ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef nonnull align 1 dereferenceable(21) @.str.1876)
          to label %1147 unwind label %1161

1147:                                             ; preds = %1146
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #11
  %1148 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %120)
          to label %1149 unwind label %1167

1149:                                             ; preds = %1147
  br i1 %1148, label %1150, label %1171

1150:                                             ; preds = %1149
  br label %1191

1151:                                             ; preds = %1139, %1116
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %115) #11
  br label %1152

1152:                                             ; preds = %1151, %1115
  call void @llvm.lifetime.end.p0(i64 16, ptr %115) #11
  br label %1698

1153:                                             ; preds = %1140
  %1154 = landingpad { ptr, i32 }
          cleanup
  %1155 = extractvalue { ptr, i32 } %1154, 0
  store ptr %1155, ptr %7, align 8
  %1156 = extractvalue { ptr, i32 } %1154, 1
  store i32 %1156, ptr %8, align 4
  br label %1166

1157:                                             ; preds = %1141
  %1158 = landingpad { ptr, i32 }
          cleanup
  %1159 = extractvalue { ptr, i32 } %1158, 0
  store ptr %1159, ptr %7, align 8
  %1160 = extractvalue { ptr, i32 } %1158, 1
  store i32 %1160, ptr %8, align 4
  br label %1165

1161:                                             ; preds = %1146
  %1162 = landingpad { ptr, i32 }
          cleanup
  %1163 = extractvalue { ptr, i32 } %1162, 0
  store ptr %1163, ptr %7, align 8
  %1164 = extractvalue { ptr, i32 } %1162, 1
  store i32 %1164, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #11
  br label %1165

1165:                                             ; preds = %1161, %1157
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #11
  br label %1166

1166:                                             ; preds = %1165, %1153
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #11
  br label %1203

1167:                                             ; preds = %1147
  %1168 = landingpad { ptr, i32 }
          cleanup
  %1169 = extractvalue { ptr, i32 } %1168, 0
  store ptr %1169, ptr %7, align 8
  %1170 = extractvalue { ptr, i32 } %1168, 1
  store i32 %1170, ptr %8, align 4
  br label %1202

1171:                                             ; preds = %1149
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %1172 unwind label %1177

1172:                                             ; preds = %1171
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #11
  %1173 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %120)
          to label %1174 unwind label %1181

1174:                                             ; preds = %1172
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %126, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1729, ptr noundef %1173)
          to label %1175 unwind label %1181

1175:                                             ; preds = %1174
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %1176 unwind label %1185

1176:                                             ; preds = %1175
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #11
  br label %1191

1177:                                             ; preds = %1171
  %1178 = landingpad { ptr, i32 }
          cleanup
  %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 %1190

1181:                                             ; preds = %1174, %1172
  %1182 = landingpad { ptr, i32 }
          cleanup
  %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
  br label %1189

1185:                                             ; preds = %1175
  %1186 = landingpad { ptr, i32 }
          cleanup
  %1187 = extractvalue { ptr, i32 } %1186, 0
  store ptr %1187, ptr %7, align 8
  %1188 = extractvalue { ptr, i32 } %1186, 1
  store i32 %1188, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #11
  br label %1189

1189:                                             ; preds = %1185, %1181
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #11
  br label %1190

1190:                                             ; preds = %1189, %1177
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #11
  br label %1202

1191:                                             ; preds = %1176, %1150
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %127) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJddEEC2IA13_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %129, ptr noundef nonnull align 1 dereferenceable(13) @.str.1879)
          to label %1192 unwind label %1204

1192:                                             ; preds = %1191
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #11
  store double 3.140000e+00, ptr %130, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #11
  store double -3.140000e+00, ptr %131, align 8, !tbaa !17
  %1193 = getelementptr inbounds { ptr, i64 }, ptr %129, i32 0, i32 0
  %1194 = load ptr, ptr %1193, align 8
  %1195 = getelementptr inbounds { ptr, i64 }, ptr %129, i32 0, i32 1
  %1196 = load i64, ptr %1195, align 8
  invoke void @_ZN3fmt3v106formatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %128, ptr %1194, i64 %1196, ptr noundef nonnull align 8 dereferenceable(8) %130, ptr noundef nonnull align 8 dereferenceable(8) %131)
          to label %1197 unwind label %1208

1197:                                             ; preds = %1192
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA21_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %127, ptr noundef @.str.1877, ptr noundef @.str.1878, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 1 dereferenceable(21) @.str.1880)
          to label %1198 unwind label %1212

1198:                                             ; preds = %1197
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #11
  %1199 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %127)
          to label %1200 unwind label %1218

1200:                                             ; preds = %1198
  br i1 %1199, label %1201, label %1222

1201:                                             ; preds = %1200
  br label %1242

1202:                                             ; preds = %1190, %1167
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #11
  br label %1203

1203:                                             ; preds = %1202, %1166
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #11
  br label %1698

1204:                                             ; preds = %1191
  %1205 = landingpad { ptr, i32 }
          cleanup
  %1206 = extractvalue { ptr, i32 } %1205, 0
  store ptr %1206, ptr %7, align 8
  %1207 = extractvalue { ptr, i32 } %1205, 1
  store i32 %1207, ptr %8, align 4
  br label %1217

1208:                                             ; preds = %1192
  %1209 = landingpad { ptr, i32 }
          cleanup
  %1210 = extractvalue { ptr, i32 } %1209, 0
  store ptr %1210, ptr %7, align 8
  %1211 = extractvalue { ptr, i32 } %1209, 1
  store i32 %1211, ptr %8, align 4
  br label %1216

1212:                                             ; preds = %1197
  %1213 = landingpad { ptr, i32 }
          cleanup
  %1214 = extractvalue { ptr, i32 } %1213, 0
  store ptr %1214, ptr %7, align 8
  %1215 = extractvalue { ptr, i32 } %1213, 1
  store i32 %1215, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #11
  br label %1216

1216:                                             ; preds = %1212, %1208
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #11
  br label %1217

1217:                                             ; preds = %1216, %1204
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #11
  br label %1254

1218:                                             ; preds = %1198
  %1219 = landingpad { ptr, i32 }
          cleanup
  %1220 = extractvalue { ptr, i32 } %1219, 0
  store ptr %1220, ptr %7, align 8
  %1221 = extractvalue { ptr, i32 } %1219, 1
  store i32 %1221, ptr %8, align 4
  br label %1253

1222:                                             ; preds = %1200
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %132)
          to label %1223 unwind label %1228

1223:                                             ; preds = %1222
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #11
  %1224 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %127)
          to label %1225 unwind label %1232

1225:                                             ; preds = %1223
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %133, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1730, ptr noundef %1224)
          to label %1226 unwind label %1232

1226:                                             ; preds = %1225
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef nonnull align 8 dereferenceable(8) %132)
          to label %1227 unwind label %1236

1227:                                             ; preds = %1226
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #11
  br label %1242

1228:                                             ; preds = %1222
  %1229 = landingpad { ptr, i32 }
          cleanup
  %1230 = extractvalue { ptr, i32 } %1229, 0
  store ptr %1230, ptr %7, align 8
  %1231 = extractvalue { ptr, i32 } %1229, 1
  store i32 %1231, ptr %8, align 4
  br label %1241

1232:                                             ; preds = %1225, %1223
  %1233 = landingpad { ptr, i32 }
          cleanup
  %1234 = extractvalue { ptr, i32 } %1233, 0
  store ptr %1234, ptr %7, align 8
  %1235 = extractvalue { ptr, i32 } %1233, 1
  store i32 %1235, ptr %8, align 4
  br label %1240

1236:                                             ; preds = %1226
  %1237 = landingpad { ptr, i32 }
          cleanup
  %1238 = extractvalue { ptr, i32 } %1237, 0
  store ptr %1238, ptr %7, align 8
  %1239 = extractvalue { ptr, i32 } %1237, 1
  store i32 %1239, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #11
  br label %1240

1240:                                             ; preds = %1236, %1232
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #11
  br label %1241

1241:                                             ; preds = %1240, %1228
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #11
  br label %1253

1242:                                             ; preds = %1227, %1201
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %127) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %134) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJddEEC2IA13_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %136, ptr noundef nonnull align 1 dereferenceable(13) @.str.1883)
          to label %1243 unwind label %1255

1243:                                             ; preds = %1242
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #11
  store double 3.140000e+00, ptr %137, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #11
  store double -3.140000e+00, ptr %138, align 8, !tbaa !17
  %1244 = getelementptr inbounds { ptr, i64 }, ptr %136, i32 0, i32 0
  %1245 = load ptr, ptr %1244, align 8
  %1246 = getelementptr inbounds { ptr, i64 }, ptr %136, i32 0, i32 1
  %1247 = load i64, ptr %1246, align 8
  invoke void @_ZN3fmt3v106formatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %135, ptr %1245, i64 %1247, ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %1248 unwind label %1259

1248:                                             ; preds = %1243
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA20_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %134, ptr noundef @.str.1881, ptr noundef @.str.1882, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull align 1 dereferenceable(20) @.str.1884)
          to label %1249 unwind label %1263

1249:                                             ; preds = %1248
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #11
  %1250 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %134)
          to label %1251 unwind label %1269

1251:                                             ; preds = %1249
  br i1 %1250, label %1252, label %1273

1252:                                             ; preds = %1251
  br label %1293

1253:                                             ; preds = %1241, %1218
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %127) #11
  br label %1254

1254:                                             ; preds = %1253, %1217
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #11
  br label %1698

1255:                                             ; preds = %1242
  %1256 = landingpad { ptr, i32 }
          cleanup
  %1257 = extractvalue { ptr, i32 } %1256, 0
  store ptr %1257, ptr %7, align 8
  %1258 = extractvalue { ptr, i32 } %1256, 1
  store i32 %1258, ptr %8, align 4
  br label %1268

1259:                                             ; preds = %1243
  %1260 = landingpad { ptr, i32 }
          cleanup
  %1261 = extractvalue { ptr, i32 } %1260, 0
  store ptr %1261, ptr %7, align 8
  %1262 = extractvalue { ptr, i32 } %1260, 1
  store i32 %1262, ptr %8, align 4
  br label %1267

1263:                                             ; preds = %1248
  %1264 = landingpad { ptr, i32 }
          cleanup
  %1265 = extractvalue { ptr, i32 } %1264, 0
  store ptr %1265, ptr %7, align 8
  %1266 = extractvalue { ptr, i32 } %1264, 1
  store i32 %1266, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #11
  br label %1267

1267:                                             ; preds = %1263, %1259
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  br label %1268

1268:                                             ; preds = %1267, %1255
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #11
  br label %1305

1269:                                             ; preds = %1249
  %1270 = landingpad { ptr, i32 }
          cleanup
  %1271 = extractvalue { ptr, i32 } %1270, 0
  store ptr %1271, ptr %7, align 8
  %1272 = extractvalue { ptr, i32 } %1270, 1
  store i32 %1272, ptr %8, align 4
  br label %1304

1273:                                             ; preds = %1251
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %1274 unwind label %1279

1274:                                             ; preds = %1273
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #11
  %1275 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %134)
          to label %1276 unwind label %1283

1276:                                             ; preds = %1274
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %140, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1731, ptr noundef %1275)
          to label %1277 unwind label %1283

1277:                                             ; preds = %1276
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %1278 unwind label %1287

1278:                                             ; preds = %1277
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #11
  br label %1293

1279:                                             ; preds = %1273
  %1280 = landingpad { ptr, i32 }
          cleanup
  %1281 = extractvalue { ptr, i32 } %1280, 0
  store ptr %1281, ptr %7, align 8
  %1282 = extractvalue { ptr, i32 } %1280, 1
  store i32 %1282, ptr %8, align 4
  br label %1292

1283:                                             ; preds = %1276, %1274
  %1284 = landingpad { ptr, i32 }
          cleanup
  %1285 = extractvalue { ptr, i32 } %1284, 0
  store ptr %1285, ptr %7, align 8
  %1286 = extractvalue { ptr, i32 } %1284, 1
  store i32 %1286, ptr %8, align 4
  br label %1291

1287:                                             ; preds = %1277
  %1288 = landingpad { ptr, i32 }
          cleanup
  %1289 = extractvalue { ptr, i32 } %1288, 0
  store ptr %1289, ptr %7, align 8
  %1290 = extractvalue { ptr, i32 } %1288, 1
  store i32 %1290, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #11
  br label %1291

1291:                                             ; preds = %1287, %1283
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #11
  br label %1292

1292:                                             ; preds = %1291, %1279
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #11
  br label %1304

1293:                                             ; preds = %1278, %1252
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %134) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %134) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %141) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA37_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %143, ptr noundef nonnull align 1 dereferenceable(37) @.str.1888)
          to label %1294 unwind label %1306

1294:                                             ; preds = %1293
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  store i32 42, ptr %144, align 4, !tbaa !9
  %1295 = getelementptr inbounds { ptr, i64 }, ptr %143, i32 0, i32 0
  %1296 = load ptr, ptr %1295, align 8
  %1297 = getelementptr inbounds { ptr, i64 }, ptr %143, i32 0, i32 1
  %1298 = load i64, ptr %1297, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %142, ptr %1296, i64 %1298, ptr noundef nonnull align 4 dereferenceable(4) %144)
          to label %1299 unwind label %1310

1299:                                             ; preds = %1294
  invoke void @_ZN7testing8internal8EqHelper7CompareIA28_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %141, ptr noundef @.str.1885, ptr noundef @.str.1886, ptr noundef nonnull align 1 dereferenceable(28) @.str.1887, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1300 unwind label %1314

1300:                                             ; preds = %1299
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #11
  %1301 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %141)
          to label %1302 unwind label %1320

1302:                                             ; preds = %1300
  br i1 %1301, label %1303, label %1324

1303:                                             ; preds = %1302
  br label %1344

1304:                                             ; preds = %1292, %1269
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %134) #11
  br label %1305

1305:                                             ; preds = %1304, %1268
  call void @llvm.lifetime.end.p0(i64 16, ptr %134) #11
  br label %1698

1306:                                             ; preds = %1293
  %1307 = landingpad { ptr, i32 }
          cleanup
  %1308 = extractvalue { ptr, i32 } %1307, 0
  store ptr %1308, ptr %7, align 8
  %1309 = extractvalue { ptr, i32 } %1307, 1
  store i32 %1309, ptr %8, align 4
  br label %1319

1310:                                             ; preds = %1294
  %1311 = landingpad { ptr, i32 }
          cleanup
  %1312 = extractvalue { ptr, i32 } %1311, 0
  store ptr %1312, ptr %7, align 8
  %1313 = extractvalue { ptr, i32 } %1311, 1
  store i32 %1313, ptr %8, align 4
  br label %1318

1314:                                             ; preds = %1299
  %1315 = landingpad { ptr, i32 }
          cleanup
  %1316 = extractvalue { ptr, i32 } %1315, 0
  store ptr %1316, ptr %7, align 8
  %1317 = extractvalue { ptr, i32 } %1315, 1
  store i32 %1317, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #11
  br label %1318

1318:                                             ; preds = %1314, %1310
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %1319

1319:                                             ; preds = %1318, %1306
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #11
  br label %1356

1320:                                             ; preds = %1300
  %1321 = landingpad { ptr, i32 }
          cleanup
  %1322 = extractvalue { ptr, i32 } %1321, 0
  store ptr %1322, ptr %7, align 8
  %1323 = extractvalue { ptr, i32 } %1321, 1
  store i32 %1323, ptr %8, align 4
  br label %1355

1324:                                             ; preds = %1302
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %145)
          to label %1325 unwind label %1330

1325:                                             ; preds = %1324
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #11
  %1326 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %141)
          to label %1327 unwind label %1334

1327:                                             ; preds = %1325
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %146, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1734, ptr noundef %1326)
          to label %1328 unwind label %1334

1328:                                             ; preds = %1327
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 8 dereferenceable(8) %145)
          to label %1329 unwind label %1338

1329:                                             ; preds = %1328
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #11
  br label %1344

1330:                                             ; preds = %1324
  %1331 = landingpad { ptr, i32 }
          cleanup
  %1332 = extractvalue { ptr, i32 } %1331, 0
  store ptr %1332, ptr %7, align 8
  %1333 = extractvalue { ptr, i32 } %1331, 1
  store i32 %1333, ptr %8, align 4
  br label %1343

1334:                                             ; preds = %1327, %1325
  %1335 = landingpad { ptr, i32 }
          cleanup
  %1336 = extractvalue { ptr, i32 } %1335, 0
  store ptr %1336, ptr %7, align 8
  %1337 = extractvalue { ptr, i32 } %1335, 1
  store i32 %1337, ptr %8, align 4
  br label %1342

1338:                                             ; preds = %1328
  %1339 = landingpad { ptr, i32 }
          cleanup
  %1340 = extractvalue { ptr, i32 } %1339, 0
  store ptr %1340, ptr %7, align 8
  %1341 = extractvalue { ptr, i32 } %1339, 1
  store i32 %1341, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #11
  br label %1342

1342:                                             ; preds = %1338, %1334
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #11
  br label %1343

1343:                                             ; preds = %1342, %1330
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #11
  br label %1355

1344:                                             ; preds = %1329, %1303
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %141) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %141) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %147) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %148) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA39_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %149, ptr noundef nonnull align 1 dereferenceable(39) @.str.1892)
          to label %1345 unwind label %1357

1345:                                             ; preds = %1344
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  store i32 42, ptr %150, align 4, !tbaa !9
  %1346 = getelementptr inbounds { ptr, i64 }, ptr %149, i32 0, i32 0
  %1347 = load ptr, ptr %1346, align 8
  %1348 = getelementptr inbounds { ptr, i64 }, ptr %149, i32 0, i32 1
  %1349 = load i64, ptr %1348, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %148, ptr %1347, i64 %1349, ptr noundef nonnull align 4 dereferenceable(4) %150)
          to label %1350 unwind label %1361

1350:                                             ; preds = %1345
  invoke void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %147, ptr noundef @.str.1889, ptr noundef @.str.1890, ptr noundef nonnull align 1 dereferenceable(31) @.str.1891, ptr noundef nonnull align 8 dereferenceable(32) %148)
          to label %1351 unwind label %1365

1351:                                             ; preds = %1350
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #11
  %1352 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %147)
          to label %1353 unwind label %1371

1353:                                             ; preds = %1351
  br i1 %1352, label %1354, label %1375

1354:                                             ; preds = %1353
  br label %1395

1355:                                             ; preds = %1343, %1320
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %141) #11
  br label %1356

1356:                                             ; preds = %1355, %1319
  call void @llvm.lifetime.end.p0(i64 16, ptr %141) #11
  br label %1698

1357:                                             ; preds = %1344
  %1358 = landingpad { ptr, i32 }
          cleanup
  %1359 = extractvalue { ptr, i32 } %1358, 0
  store ptr %1359, ptr %7, align 8
  %1360 = extractvalue { ptr, i32 } %1358, 1
  store i32 %1360, ptr %8, align 4
  br label %1370

1361:                                             ; preds = %1345
  %1362 = landingpad { ptr, i32 }
          cleanup
  %1363 = extractvalue { ptr, i32 } %1362, 0
  store ptr %1363, ptr %7, align 8
  %1364 = extractvalue { ptr, i32 } %1362, 1
  store i32 %1364, ptr %8, align 4
  br label %1369

1365:                                             ; preds = %1350
  %1366 = landingpad { ptr, i32 }
          cleanup
  %1367 = extractvalue { ptr, i32 } %1366, 0
  store ptr %1367, ptr %7, align 8
  %1368 = extractvalue { ptr, i32 } %1366, 1
  store i32 %1368, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #11
  br label %1369

1369:                                             ; preds = %1365, %1361
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %1370

1370:                                             ; preds = %1369, %1357
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #11
  br label %1407

1371:                                             ; preds = %1351
  %1372 = landingpad { ptr, i32 }
          cleanup
  %1373 = extractvalue { ptr, i32 } %1372, 0
  store ptr %1373, ptr %7, align 8
  %1374 = extractvalue { ptr, i32 } %1372, 1
  store i32 %1374, ptr %8, align 4
  br label %1406

1375:                                             ; preds = %1353
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %1376 unwind label %1381

1376:                                             ; preds = %1375
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #11
  %1377 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %147)
          to label %1378 unwind label %1385

1378:                                             ; preds = %1376
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %152, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1736, ptr noundef %1377)
          to label %1379 unwind label %1385

1379:                                             ; preds = %1378
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %1380 unwind label %1389

1380:                                             ; preds = %1379
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  br label %1395

1381:                                             ; preds = %1375
  %1382 = landingpad { ptr, i32 }
          cleanup
  %1383 = extractvalue { ptr, i32 } %1382, 0
  store ptr %1383, ptr %7, align 8
  %1384 = extractvalue { ptr, i32 } %1382, 1
  store i32 %1384, ptr %8, align 4
  br label %1394

1385:                                             ; preds = %1378, %1376
  %1386 = landingpad { ptr, i32 }
          cleanup
  %1387 = extractvalue { ptr, i32 } %1386, 0
  store ptr %1387, ptr %7, align 8
  %1388 = extractvalue { ptr, i32 } %1386, 1
  store i32 %1388, ptr %8, align 4
  br label %1393

1389:                                             ; preds = %1379
  %1390 = landingpad { ptr, i32 }
          cleanup
  %1391 = extractvalue { ptr, i32 } %1390, 0
  store ptr %1391, ptr %7, align 8
  %1392 = extractvalue { ptr, i32 } %1390, 1
  store i32 %1392, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #11
  br label %1393

1393:                                             ; preds = %1389, %1385
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #11
  br label %1394

1394:                                             ; preds = %1393, %1381
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  br label %1406

1395:                                             ; preds = %1380, %1354
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %147) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %147) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %153) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #11
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA17_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %155, ptr noundef nonnull align 1 dereferenceable(17) @.str.1810)
          to label %1396 unwind label %1408

1396:                                             ; preds = %1395
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  store i32 42, ptr %156, align 4, !tbaa !9
  %1397 = getelementptr inbounds { ptr, i64 }, ptr %155, i32 0, i32 0
  %1398 = load ptr, ptr %1397, align 8
  %1399 = getelementptr inbounds { ptr, i64 }, ptr %155, i32 0, i32 1
  %1400 = load i64, ptr %1399, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %154, ptr %1398, i64 %1400, ptr noundef nonnull align 4 dereferenceable(4) %156)
          to label %1401 unwind label %1412

1401:                                             ; preds = %1396
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA17_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %153, ptr noundef @.str.1893, ptr noundef @.str.1811, ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull align 1 dereferenceable(17) @.str.1813)
          to label %1402 unwind label %1416

1402:                                             ; preds = %1401
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #11
  %1403 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %153)
          to label %1404 unwind label %1422

1404:                                             ; preds = %1402
  br i1 %1403, label %1405, label %1426

1405:                                             ; preds = %1404
  br label %1446

1406:                                             ; preds = %1394, %1371
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %147) #11
  br label %1407

1407:                                             ; preds = %1406, %1370
  call void @llvm.lifetime.end.p0(i64 16, ptr %147) #11
  br label %1698

1408:                                             ; preds = %1395
  %1409 = landingpad { ptr, i32 }
          cleanup
  %1410 = extractvalue { ptr, i32 } %1409, 0
  store ptr %1410, ptr %7, align 8
  %1411 = extractvalue { ptr, i32 } %1409, 1
  store i32 %1411, ptr %8, align 4
  br label %1421

1412:                                             ; preds = %1396
  %1413 = landingpad { ptr, i32 }
          cleanup
  %1414 = extractvalue { ptr, i32 } %1413, 0
  store ptr %1414, ptr %7, align 8
  %1415 = extractvalue { ptr, i32 } %1413, 1
  store i32 %1415, ptr %8, align 4
  br label %1420

1416:                                             ; preds = %1401
  %1417 = landingpad { ptr, i32 }
          cleanup
  %1418 = extractvalue { ptr, i32 } %1417, 0
  store ptr %1418, ptr %7, align 8
  %1419 = extractvalue { ptr, i32 } %1417, 1
  store i32 %1419, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  br label %1420

1420:                                             ; preds = %1416, %1412
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %1421

1421:                                             ; preds = %1420, %1408
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #11
  br label %1478

1422:                                             ; preds = %1402
  %1423 = landingpad { ptr, i32 }
          cleanup
  %1424 = extractvalue { ptr, i32 } %1423, 0
  store ptr %1424, ptr %7, align 8
  %1425 = extractvalue { ptr, i32 } %1423, 1
  store i32 %1425, ptr %8, align 4
  br label %1477

1426:                                             ; preds = %1404
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %157)
          to label %1427 unwind label %1432

1427:                                             ; preds = %1426
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #11
  %1428 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %153)
          to label %1429 unwind label %1436

1429:                                             ; preds = %1427
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %158, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1738, ptr noundef %1428)
          to label %1430 unwind label %1436

1430:                                             ; preds = %1429
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef nonnull align 8 dereferenceable(8) %157)
          to label %1431 unwind label %1440

1431:                                             ; preds = %1430
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %157) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #11
  br label %1446

1432:                                             ; preds = %1426
  %1433 = landingpad { ptr, i32 }
          cleanup
  %1434 = extractvalue { ptr, i32 } %1433, 0
  store ptr %1434, ptr %7, align 8
  %1435 = extractvalue { ptr, i32 } %1433, 1
  store i32 %1435, ptr %8, align 4
  br label %1445

1436:                                             ; preds = %1429, %1427
  %1437 = landingpad { ptr, i32 }
          cleanup
  %1438 = extractvalue { ptr, i32 } %1437, 0
  store ptr %1438, ptr %7, align 8
  %1439 = extractvalue { ptr, i32 } %1437, 1
  store i32 %1439, ptr %8, align 4
  br label %1444

1440:                                             ; preds = %1430
  %1441 = landingpad { ptr, i32 }
          cleanup
  %1442 = extractvalue { ptr, i32 } %1441, 0
  store ptr %1442, ptr %7, align 8
  %1443 = extractvalue { ptr, i32 } %1441, 1
  store i32 %1443, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #11
  br label %1444

1444:                                             ; preds = %1440, %1436
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %157) #11
  br label %1445

1445:                                             ; preds = %1444, %1432
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #11
  br label %1477

1446:                                             ; preds = %1431, %1405
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %153) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %153) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %159) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %159)
          to label %1447 unwind label %1479

1447:                                             ; preds = %1446
  %1448 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %159)
          to label %1449 unwind label %1483

1449:                                             ; preds = %1447
  br i1 %1448, label %1450, label %1576

1450:                                             ; preds = %1449
  call void @llvm.lifetime.start.p0(i64 32, ptr %160) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %161) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %161)
          to label %1451 unwind label %1487

1451:                                             ; preds = %1450
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %162) #11
  store i8 0, ptr %162, align 1, !tbaa !11
  %1452 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1453 unwind label %1491

1453:                                             ; preds = %1451
  br i1 %1452, label %1454, label %1532

1454:                                             ; preds = %1453
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %166, ptr noundef @.str.1894)
          to label %1455 unwind label %1491

1455:                                             ; preds = %1454
  %1456 = getelementptr inbounds { ptr, i64 }, ptr %166, i32 0, i32 0
  %1457 = load ptr, ptr %1456, align 8
  %1458 = getelementptr inbounds { ptr, i64 }, ptr %166, i32 0, i32 1
  %1459 = load i64, ptr %1458, align 8
  %1460 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %1457, i64 %1459)
          to label %1461 unwind label %1491

1461:                                             ; preds = %1455
  %1462 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %165, i32 0, i32 0
  %1463 = getelementptr inbounds { ptr, i64 }, ptr %1462, i32 0, i32 0
  %1464 = extractvalue { ptr, i64 } %1460, 0
  store ptr %1464, ptr %1463, align 8
  %1465 = getelementptr inbounds { ptr, i64 }, ptr %1462, i32 0, i32 1
  %1466 = extractvalue { ptr, i64 } %1460, 1
  store i64 %1466, ptr %1465, align 8
  %1467 = getelementptr inbounds { ptr, i64 }, ptr %165, i32 0, i32 0
  %1468 = load ptr, ptr %1467, align 8
  %1469 = getelementptr inbounds { ptr, i64 }, ptr %165, i32 0, i32 1
  %1470 = load i64, ptr %1469, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA10_KcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %164, ptr %1468, i64 %1470)
          to label %1471 unwind label %1491

1471:                                             ; preds = %1461
  %1472 = getelementptr inbounds { ptr, i64 }, ptr %164, i32 0, i32 0
  %1473 = load ptr, ptr %1472, align 8
  %1474 = getelementptr inbounds { ptr, i64 }, ptr %164, i32 0, i32 1
  %1475 = load i64, ptr %1474, align 8
  invoke void @_ZN3fmt3v106formatIJRA10_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %163, ptr %1473, i64 %1475, ptr noundef nonnull align 1 dereferenceable(10) @.str.1895)
          to label %1476 unwind label %1491

1476:                                             ; preds = %1471
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #11
  br label %1533

1477:                                             ; preds = %1445, %1422
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %153) #11
  br label %1478

1478:                                             ; preds = %1477, %1421
  call void @llvm.lifetime.end.p0(i64 16, ptr %153) #11
  br label %1698

1479:                                             ; preds = %1446
  %1480 = landingpad { ptr, i32 }
          cleanup
  %1481 = extractvalue { ptr, i32 } %1480, 0
  store ptr %1481, ptr %7, align 8
  %1482 = extractvalue { ptr, i32 } %1480, 1
  store i32 %1482, ptr %8, align 4
  br label %1616

1483:                                             ; preds = %1447
  %1484 = landingpad { ptr, i32 }
          cleanup
  %1485 = extractvalue { ptr, i32 } %1484, 0
  store ptr %1485, ptr %7, align 8
  %1486 = extractvalue { ptr, i32 } %1484, 1
  store i32 %1486, ptr %8, align 4
  br label %1615

1487:                                             ; preds = %1450
  %1488 = landingpad { ptr, i32 }
          cleanup
  %1489 = extractvalue { ptr, i32 } %1488, 0
  store ptr %1489, ptr %7, align 8
  %1490 = extractvalue { ptr, i32 } %1488, 1
  store i32 %1490, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #11
  br label %1575

1491:                                             ; preds = %1471, %1461, %1455, %1454, %1451
  %1492 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %1493 = extractvalue { ptr, i32 } %1492, 0
  store ptr %1493, ptr %7, align 8
  %1494 = extractvalue { ptr, i32 } %1492, 1
  store i32 %1494, ptr %8, align 4
  br label %1495

1495:                                             ; preds = %1491
  %1496 = load i32, ptr %8, align 4
  %1497 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #11
  %1498 = icmp eq i32 %1496, %1497
  br i1 %1498, label %1499, label %1527

1499:                                             ; preds = %1495
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #11
  %1500 = load ptr, ptr %7, align 8
  %1501 = call ptr @__cxa_begin_catch(ptr %1500) #11
  store ptr %1501, ptr %167, align 8
  %1502 = load ptr, ptr %167, align 8, !tbaa !5
  %1503 = load ptr, ptr %1502, align 8, !tbaa !13
  %1504 = getelementptr inbounds ptr, ptr %1503, i64 2
  %1505 = load ptr, ptr %1504, align 8
  %1506 = call noundef ptr %1505(ptr noundef nonnull align 8 dereferenceable(16) %1502) #11
  %1507 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef %1506)
          to label %1508 unwind label %1544

1508:                                             ; preds = %1499
  br i1 %1507, label %1509, label %1552

1509:                                             ; preds = %1508
  %1510 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA109_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %159, ptr noundef nonnull align 1 dereferenceable(109) @.str.1897)
          to label %1511 unwind label %1544

1511:                                             ; preds = %1509
  %1512 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1510, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1513 unwind label %1544

1513:                                             ; preds = %1511
  %1514 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1512, ptr noundef nonnull align 8 dereferenceable(32) %160)
          to label %1515 unwind label %1544

1515:                                             ; preds = %1513
  %1516 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1514, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1517 unwind label %1544

1517:                                             ; preds = %1515
  %1518 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1516, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1519 unwind label %1544

1519:                                             ; preds = %1517
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #11
  %1520 = load ptr, ptr %167, align 8, !tbaa !5
  %1521 = load ptr, ptr %1520, align 8, !tbaa !13
  %1522 = getelementptr inbounds ptr, ptr %1521, i64 2
  %1523 = load ptr, ptr %1522, align 8
  %1524 = call noundef ptr %1523(ptr noundef nonnull align 8 dereferenceable(16) %1520) #11
  store ptr %1524, ptr %168, align 8, !tbaa !5
  %1525 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1518, ptr noundef nonnull align 8 dereferenceable(8) %168)
          to label %1526 unwind label %1548

1526:                                             ; preds = %1519
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #11
  store i32 3, ptr %42, align 4
  br label %1553

1527:                                             ; preds = %1495
  %1528 = load ptr, ptr %7, align 8
  %1529 = call ptr @__cxa_begin_catch(ptr %1528) #11
  %1530 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA152_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %159, ptr noundef nonnull align 1 dereferenceable(152) @.str.1896)
          to label %1531 unwind label %1534

1531:                                             ; preds = %1527
  store i32 3, ptr %42, align 4
  invoke void @__cxa_end_catch()
          to label %1538 unwind label %1539

1532:                                             ; preds = %1453
  br label %1533

1533:                                             ; preds = %1532, %1476
  br label %1557

1534:                                             ; preds = %1527
  %1535 = landingpad { ptr, i32 }
          cleanup
  %1536 = extractvalue { ptr, i32 } %1535, 0
  store ptr %1536, ptr %7, align 8
  %1537 = extractvalue { ptr, i32 } %1535, 1
  store i32 %1537, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %1543 unwind label %1709

1538:                                             ; preds = %1531
  br label %1571

1539:                                             ; preds = %1560, %1531
  %1540 = landingpad { ptr, i32 }
          cleanup
  %1541 = extractvalue { ptr, i32 } %1540, 0
  store ptr %1541, ptr %7, align 8
  %1542 = extractvalue { ptr, i32 } %1540, 1
  store i32 %1542, ptr %8, align 4
  br label %1574

1543:                                             ; preds = %1534
  br label %1574

1544:                                             ; preds = %1517, %1515, %1513, %1511, %1509, %1499
  %1545 = landingpad { ptr, i32 }
          cleanup
  %1546 = extractvalue { ptr, i32 } %1545, 0
  store ptr %1546, ptr %7, align 8
  %1547 = extractvalue { ptr, i32 } %1545, 1
  store i32 %1547, ptr %8, align 4
  br label %1567

1548:                                             ; preds = %1519
  %1549 = landingpad { ptr, i32 }
          cleanup
  %1550 = extractvalue { ptr, i32 } %1549, 0
  store ptr %1550, ptr %7, align 8
  %1551 = extractvalue { ptr, i32 } %1549, 1
  store i32 %1551, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #11
  br label %1567

1552:                                             ; preds = %1508
  store i8 1, ptr %162, align 1, !tbaa !11
  store i32 0, ptr %42, align 4
  br label %1553

1553:                                             ; preds = %1552, %1526
  invoke void @__cxa_end_catch()
          to label %1554 unwind label %1563

1554:                                             ; preds = %1553
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #11
  %1555 = load i32, ptr %42, align 4
  switch i32 %1555, label %1571 [
    i32 0, label %1556
  ]

1556:                                             ; preds = %1554
  br label %1557

1557:                                             ; preds = %1556, %1533
  %1558 = load i8, ptr %162, align 1, !tbaa !11, !range !15, !noundef !16
  %1559 = trunc i8 %1558 to i1
  br i1 %1559, label %1570, label %1560

1560:                                             ; preds = %1557
  %1561 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA143_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %159, ptr noundef nonnull align 1 dereferenceable(143) @.str.1898)
          to label %1562 unwind label %1539

1562:                                             ; preds = %1560
  store i32 3, ptr %42, align 4
  br label %1571

1563:                                             ; preds = %1553
  %1564 = landingpad { ptr, i32 }
          cleanup
  %1565 = extractvalue { ptr, i32 } %1564, 0
  store ptr %1565, ptr %7, align 8
  %1566 = extractvalue { ptr, i32 } %1564, 1
  store i32 %1566, ptr %8, align 4
  br label %1569

1567:                                             ; preds = %1548, %1544
  invoke void @__cxa_end_catch()
          to label %1568 unwind label %1709

1568:                                             ; preds = %1567
  br label %1569

1569:                                             ; preds = %1568, %1563
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #11
  br label %1574

1570:                                             ; preds = %1557
  store i32 0, ptr %42, align 4
  br label %1571

1571:                                             ; preds = %1570, %1562, %1554, %1538
  call void @llvm.lifetime.end.p0(i64 1, ptr %162) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #11
  %1572 = load i32, ptr %42, align 4
  switch i32 %1572, label %1712 [
    i32 0, label %1573
    i32 3, label %1577
  ]

1573:                                             ; preds = %1571
  br label %1597

1574:                                             ; preds = %1569, %1543, %1539
  call void @llvm.lifetime.end.p0(i64 1, ptr %162) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #11
  br label %1575

1575:                                             ; preds = %1574, %1487
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #11
  br label %1615

1576:                                             ; preds = %1449
  br label %1577

1577:                                             ; preds = %1576, %1571
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %169)
          to label %1578 unwind label %1583

1578:                                             ; preds = %1577
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #11
  %1579 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %159)
          to label %1580 unwind label %1587

1580:                                             ; preds = %1578
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %170, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1741, ptr noundef %1579)
          to label %1581 unwind label %1587

1581:                                             ; preds = %1580
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef nonnull align 8 dereferenceable(8) %169)
          to label %1582 unwind label %1591

1582:                                             ; preds = %1581
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %170) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %169) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #11
  br label %1597

1583:                                             ; preds = %1577
  %1584 = landingpad { ptr, i32 }
          cleanup
  %1585 = extractvalue { ptr, i32 } %1584, 0
  store ptr %1585, ptr %7, align 8
  %1586 = extractvalue { ptr, i32 } %1584, 1
  store i32 %1586, ptr %8, align 4
  br label %1596

1587:                                             ; preds = %1580, %1578
  %1588 = landingpad { ptr, i32 }
          cleanup
  %1589 = extractvalue { ptr, i32 } %1588, 0
  store ptr %1589, ptr %7, align 8
  %1590 = extractvalue { ptr, i32 } %1588, 1
  store i32 %1590, ptr %8, align 4
  br label %1595

1591:                                             ; preds = %1581
  %1592 = landingpad { ptr, i32 }
          cleanup
  %1593 = extractvalue { ptr, i32 } %1592, 0
  store ptr %1593, ptr %7, align 8
  %1594 = extractvalue { ptr, i32 } %1592, 1
  store i32 %1594, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %170) #11
  br label %1595

1595:                                             ; preds = %1591, %1587
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %169) #11
  br label %1596

1596:                                             ; preds = %1595, %1583
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #11
  br label %1615

1597:                                             ; preds = %1582, %1573
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %159) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %171) #11
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %171)
          to label %1598 unwind label %1617

1598:                                             ; preds = %1597
  %1599 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %171)
          to label %1600 unwind label %1621

1600:                                             ; preds = %1598
  br i1 %1599, label %1601, label %1674

1601:                                             ; preds = %1600
  call void @llvm.lifetime.start.p0(i64 32, ptr %172) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %173) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef @.str.1610, ptr noundef nonnull align 1 dereferenceable(1) %173)
          to label %1602 unwind label %1625

1602:                                             ; preds = %1601
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %174) #11
  %1603 = load ptr, ptr @stdout, align 8, !tbaa !5
  invoke void @_ZN15output_redirectC1EP8_IO_FILEb(ptr noundef nonnull align 8 dereferenceable(16) %174, ptr noundef %1603, i1 noundef zeroext true)
          to label %1604 unwind label %1629

1604:                                             ; preds = %1602
  %1605 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1606 unwind label %1633

1606:                                             ; preds = %1604
  br i1 %1605, label %1607, label %1641

1607:                                             ; preds = %1606
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA3_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %175, ptr noundef nonnull align 1 dereferenceable(3) @.str.223)
          to label %1608 unwind label %1633

1608:                                             ; preds = %1607
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #11
  %1609 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #11
  store double %1609, ptr %176, align 8, !tbaa !17
  %1610 = getelementptr inbounds { ptr, i64 }, ptr %175, i32 0, i32 0
  %1611 = load ptr, ptr %1610, align 8
  %1612 = getelementptr inbounds { ptr, i64 }, ptr %175, i32 0, i32 1
  %1613 = load i64, ptr %1612, align 8
  invoke void @_ZN3fmt3v105printIJdEEEvNS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOS4_(ptr %1611, i64 %1613, ptr noundef nonnull align 8 dereferenceable(8) %176)
          to label %1614 unwind label %1637

1614:                                             ; preds = %1608
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #11
  br label %1642

1615:                                             ; preds = %1596, %1575, %1483
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %159) #11
  br label %1616

1616:                                             ; preds = %1615, %1479
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #11
  br label %1698

1617:                                             ; preds = %1597
  %1618 = landingpad { ptr, i32 }
          cleanup
  %1619 = extractvalue { ptr, i32 } %1618, 0
  store ptr %1619, ptr %7, align 8
  %1620 = extractvalue { ptr, i32 } %1618, 1
  store i32 %1620, ptr %8, align 4
  br label %1697

1621:                                             ; preds = %1598
  %1622 = landingpad { ptr, i32 }
          cleanup
  %1623 = extractvalue { ptr, i32 } %1622, 0
  store ptr %1623, ptr %7, align 8
  %1624 = extractvalue { ptr, i32 } %1622, 1
  store i32 %1624, ptr %8, align 4
  br label %1696

1625:                                             ; preds = %1601
  %1626 = landingpad { ptr, i32 }
          cleanup
  %1627 = extractvalue { ptr, i32 } %1626, 0
  store ptr %1627, ptr %7, align 8
  %1628 = extractvalue { ptr, i32 } %1626, 1
  store i32 %1628, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #11
  br label %1673

1629:                                             ; preds = %1602
  %1630 = landingpad { ptr, i32 }
          cleanup
  %1631 = extractvalue { ptr, i32 } %1630, 0
  store ptr %1631, ptr %7, align 8
  %1632 = extractvalue { ptr, i32 } %1630, 1
  store i32 %1632, ptr %8, align 4
  br label %1672

1633:                                             ; preds = %1607, %1604
  %1634 = landingpad { ptr, i32 }
          cleanup
  %1635 = extractvalue { ptr, i32 } %1634, 0
  store ptr %1635, ptr %7, align 8
  %1636 = extractvalue { ptr, i32 } %1634, 1
  store i32 %1636, ptr %8, align 4
  br label %1671

1637:                                             ; preds = %1608
  %1638 = landingpad { ptr, i32 }
          cleanup
  %1639 = extractvalue { ptr, i32 } %1638, 0
  store ptr %1639, ptr %7, align 8
  %1640 = extractvalue { ptr, i32 } %1638, 1
  store i32 %1640, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #11
  br label %1671

1641:                                             ; preds = %1606
  br label %1642

1642:                                             ; preds = %1641, %1614
  call void @llvm.lifetime.start.p0(i64 32, ptr %177) #11
  invoke void @_ZN15output_redirect16restore_and_readB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %177, ptr noundef nonnull align 8 dereferenceable(16) %174)
          to label %1643 unwind label %1658

1643:                                             ; preds = %1642
  %1644 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %177, ptr noundef nonnull align 8 dereferenceable(32) %172) #11
  br i1 %1644, label %1645, label %1666

1645:                                             ; preds = %1643
  %1646 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA86_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %171, ptr noundef nonnull align 1 dereferenceable(86) @.str.1899)
          to label %1647 unwind label %1662

1647:                                             ; preds = %1645
  %1648 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1646, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1649 unwind label %1662

1649:                                             ; preds = %1647
  %1650 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1648, ptr noundef nonnull align 8 dereferenceable(32) %172)
          to label %1651 unwind label %1662

1651:                                             ; preds = %1649
  %1652 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1650, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1653 unwind label %1662

1653:                                             ; preds = %1651
  %1654 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1652, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1655 unwind label %1662

1655:                                             ; preds = %1653
  %1656 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1654, ptr noundef nonnull align 8 dereferenceable(32) %177)
          to label %1657 unwind label %1662

1657:                                             ; preds = %1655
  store i32 4, ptr %42, align 4
  br label %1667

1658:                                             ; preds = %1642
  %1659 = landingpad { ptr, i32 }
          cleanup
  %1660 = extractvalue { ptr, i32 } %1659, 0
  store ptr %1660, ptr %7, align 8
  %1661 = extractvalue { ptr, i32 } %1659, 1
  store i32 %1661, ptr %8, align 4
  br label %1670

1662:                                             ; preds = %1655, %1653, %1651, %1649, %1647, %1645
  %1663 = landingpad { ptr, i32 }
          cleanup
  %1664 = extractvalue { ptr, i32 } %1663, 0
  store ptr %1664, ptr %7, align 8
  %1665 = extractvalue { ptr, i32 } %1663, 1
  store i32 %1665, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #11
  br label %1670

1666:                                             ; preds = %1643
  store i32 0, ptr %42, align 4
  br label %1667

1667:                                             ; preds = %1666, %1657
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %177) #11
  call void @_ZN15output_redirectD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %174) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %174) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #11
  %1668 = load i32, ptr %42, align 4
  switch i32 %1668, label %1712 [
    i32 0, label %1669
    i32 4, label %1675
  ]

1669:                                             ; preds = %1667
  br label %1695

1670:                                             ; preds = %1662, %1658
  call void @llvm.lifetime.end.p0(i64 32, ptr %177) #11
  br label %1671

1671:                                             ; preds = %1670, %1637, %1633
  call void @_ZN15output_redirectD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %174) #11
  br label %1672

1672:                                             ; preds = %1671, %1629
  call void @llvm.lifetime.end.p0(i64 16, ptr %174) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #11
  br label %1673

1673:                                             ; preds = %1672, %1625
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #11
  br label %1696

1674:                                             ; preds = %1600
  br label %1675

1675:                                             ; preds = %1674, %1667
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #11
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %178)
          to label %1676 unwind label %1681

1676:                                             ; preds = %1675
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #11
  %1677 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %171)
          to label %1678 unwind label %1685

1678:                                             ; preds = %1676
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %179, i32 noundef 1, ptr noundef @.str.3, i32 noundef 1744, ptr noundef %1677)
          to label %1679 unwind label %1685

1679:                                             ; preds = %1678
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %179, ptr noundef nonnull align 8 dereferenceable(8) %178)
          to label %1680 unwind label %1689

1680:                                             ; preds = %1679
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %179) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %178) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #11
  br label %1695

1681:                                             ; preds = %1675
  %1682 = landingpad { ptr, i32 }
          cleanup
  %1683 = extractvalue { ptr, i32 } %1682, 0
  store ptr %1683, ptr %7, align 8
  %1684 = extractvalue { ptr, i32 } %1682, 1
  store i32 %1684, ptr %8, align 4
  br label %1694

1685:                                             ; preds = %1678, %1676
  %1686 = landingpad { ptr, i32 }
          cleanup
  %1687 = extractvalue { ptr, i32 } %1686, 0
  store ptr %1687, ptr %7, align 8
  %1688 = extractvalue { ptr, i32 } %1686, 1
  store i32 %1688, ptr %8, align 4
  br label %1693

1689:                                             ; preds = %1679
  %1690 = landingpad { ptr, i32 }
          cleanup
  %1691 = extractvalue { ptr, i32 } %1690, 0
  store ptr %1691, ptr %7, align 8
  %1692 = extractvalue { ptr, i32 } %1690, 1
  store i32 %1692, ptr %8, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %179) #11
  br label %1693

1693:                                             ; preds = %1689, %1685
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #11
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %178) #11
  br label %1694

1694:                                             ; preds = %1693, %1681
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #11
  br label %1696

1695:                                             ; preds = %1680, %1669
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %171) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %171) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %64) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  call void @_ZN3fmt3v1019basic_memory_bufferIcLm500ESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(536) %17) #11
  call void @llvm.lifetime.end.p0(i64 536, ptr %17) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #11
  ret void

1696:                                             ; preds = %1694, %1673, %1621
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %171) #11
  br label %1697

1697:                                             ; preds = %1696, %1617
  call void @llvm.lifetime.end.p0(i64 16, ptr %171) #11
  br label %1698

1698:                                             ; preds = %1697, %1616, %1478, %1407, %1356, %1305, %1254, %1203, %1152, %1106, %1060, %1014, %968, %922, %871, %820, %769, %715
  call void @llvm.lifetime.end.p0(i64 256, ptr %64) #11
  br label %1699

1699:                                             ; preds = %1698, %714, %662, %616, %570, %421
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1700

1700:                                             ; preds = %1699, %347
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  br label %1701

1701:                                             ; preds = %1700, %346, %298, %294
  call void @_ZN3fmt3v1019basic_memory_bufferIcLm500ESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(536) %17) #11
  br label %1702

1702:                                             ; preds = %1701, %290
  call void @llvm.lifetime.end.p0(i64 536, ptr %17) #11
  br label %1703

1703:                                             ; preds = %1702, %289, %229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #11
  br label %1704

1704:                                             ; preds = %1703
  %1705 = load ptr, ptr %7, align 8
  %1706 = load i32, ptr %8, align 4
  %1707 = insertvalue { ptr, i32 } poison, ptr %1705, 0
  %1708 = insertvalue { ptr, i32 } %1707, i32 %1706, 1
  resume { ptr, i32 } %1708

1709:                                             ; preds = %1567, %1534, %528, %495
  %1710 = landingpad { ptr, i32 }
          catch ptr null
  %1711 = extractvalue { ptr, i32 } %1710, 0
  call void @__clang_call_terminate(ptr %1711) #14
  unreachable

1712:                                             ; preds = %1667, %1571, %532, %419
  unreachable
}

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local ptr @_ZN3fmt3v109format_toISt20back_insert_iteratorINS0_19basic_memory_bufferIcLm500ESaIcEEEEJiETnNSt9enable_ifIXsr6detail18is_output_iteratorIT_cEE5valueEiE4typeELi0EEES8_S8_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSD_(ptr, ptr, i64, ptr noundef nonnull align 4 dereferenceable(4)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt13back_inserterIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEESt20back_insert_iteratorIT_ERS6_(ptr noundef nonnull align 8 dereferenceable(536)) #9

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z10safe_fopenPKcS0_(ptr noundef, ptr noundef) #9

declare i32 @fclose(ptr noundef) #3

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #10

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

declare void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z20system_error_messageiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3fmt3v1012system_errorIJRPKcEEESt12system_erroriNS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOS8_(ptr dead_on_unwind noalias writable sret(%"class.std::system_error") align 8, i32 noundef, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8)) #2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(31), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA28_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(28), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v105printIJdEEEvNS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOS4_(ptr, i64, ptr noundef nonnull align 8 dereferenceable(8)) #6

; 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 willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn }
attributes #14 = { 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 = !{!"double", !7, i64 0}
!19 = !{!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.fmt::v10::basic_memory_buffer.39" = type <{ %"class.fmt::v10::detail::buffer.40", [500 x i8], [4 x i8] }>
%"class.fmt::v10::detail::buffer.40" = type { ptr, ptr, i64, i64 }
%"class.std::allocator" = type { i8 }
%"class.fmt::v10::basic_format_string.227" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.44" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.269" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.167" = 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.138" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.127" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.186" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.270" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.271" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.194" = type { %"class.fmt::v10::basic_string_view" }
%class.output_redirect = type { ptr, %"class.fmt::v10::file", %"class.fmt::v10::file" }
%"class.fmt::v10::file" = type { i32 }
%"class.std::system_error" = type { %"class.std::runtime_error", %"class.std::error_code" }
%"class.std::runtime_error" = type { %"class.std::exception", %"struct.std::__cow_string" }
%"class.std::exception" = type { ptr }
%"struct.std::__cow_string" = type { %union.anon.26 }
%union.anon.26 = type { ptr }
%"class.std::error_code" = type { i32, ptr }

@.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
@_ZTISt12system_error = external constant ptr
@_ZTIN3fmt3v1012format_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.223 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1174 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1177 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1272 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1610 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.1810 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1811 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1812 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1813 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1814 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.1815 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.1816 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.1817 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1818 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.1819 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1820 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1821 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1822 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1823 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.1824 = external hidden unnamed_addr constant [239 x i8], align 1
@.str.1825 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.1826 = external hidden unnamed_addr constant [230 x i8], align 1
@.str.1827 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1828 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.1829 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1830 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1831 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1832 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.1833 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1834 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1835 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1836 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1837 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1838 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1839 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1840 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1841 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1842 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1843 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1844 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.1845 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1846 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1847 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1848 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.1849 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1850 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.1851 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1852 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1853 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1854 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1855 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.1856 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1857 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1858 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1859 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1860 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1861 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1862 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1863 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.1864 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1865 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.1866 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1867 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1868 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1869 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1870 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1871 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1872 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1873 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.1874 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1875 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1876 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1877 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.1878 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1879 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1880 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1881 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.1882 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.1883 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1884 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.1885 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1886 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.1887 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.1888 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.1889 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1890 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.1891 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1892 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1893 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1894 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1895 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1896 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.1897 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.1898 = external hidden unnamed_addr constant [143 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.1899 = external hidden unnamed_addr constant [86 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 @_ZN7testing15AssertionResultlsIA86_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(86)) local_unnamed_addr #2 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3fmt3v109to_stringIcLm500EEENSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEERKNS0_19basic_memory_bufferIS4_XT0_ES7_EE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(536)) local_unnamed_addr #2

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

declare void @_ZN15output_redirectC1EP8_IO_FILEb(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i1 noundef zeroext) unnamed_addr #3

declare void @_ZN15output_redirect16restore_and_readB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

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

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

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

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

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

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJcccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) 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 @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #6

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA33_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA256_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA17_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA18_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE8infinityEv() local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN32format_test_format_examples_Test8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %4 = alloca i32, align 4
  %5 = alloca %"class.testing::AssertionResult", align 8
  %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.fmt::v10::basic_memory_buffer.39", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.testing::AssertionResult", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.testing::Message", align 8
  %21 = alloca %"class.testing::internal::AssertHelper", align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"class.testing::AssertionResult", align 8
  %24 = alloca i8, align 1
  %25 = alloca %"class.testing::Message", align 8
  %26 = alloca %"class.testing::internal::AssertHelper", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.testing::AssertionResult", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.fmt::v10::basic_format_string.227", align 8
  %33 = alloca ptr, 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.fmt::v10::basic_format_string.44", align 8
  %39 = alloca %"class.testing::Message", align 8
  %40 = alloca %"class.testing::internal::AssertHelper", align 8
  %41 = alloca %"class.testing::AssertionResult", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.fmt::v10::basic_format_string.269", 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.167", align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca %"class.testing::Message", align 8
  %52 = alloca %"class.testing::internal::AssertHelper", align 8
  %53 = alloca [256 x i8], align 16
  %54 = alloca %"class.testing::AssertionResult", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %57 = alloca double, align 8
  %58 = alloca %"class.testing::Message", align 8
  %59 = alloca %"class.testing::internal::AssertHelper", align 8
  %60 = alloca %"class.testing::AssertionResult", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.fmt::v10::basic_format_string.138", align 8
  %63 = alloca i8, align 1
  %64 = alloca i8, align 1
  %65 = alloca i8, align 1
  %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.138", align 8
  %71 = alloca i8, align 1
  %72 = alloca i8, align 1
  %73 = alloca i8, align 1
  %74 = alloca %"class.testing::Message", align 8
  %75 = alloca %"class.testing::internal::AssertHelper", align 8
  %76 = alloca %"class.testing::AssertionResult", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.fmt::v10::basic_format_string.138", align 8
  %79 = alloca i8, align 1
  %80 = alloca i8, align 1
  %81 = alloca i8, align 1
  %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.fmt::v10::basic_format_string.127", align 8
  %87 = alloca %"class.testing::Message", align 8
  %88 = alloca %"class.testing::internal::AssertHelper", align 8
  %89 = alloca %"class.testing::AssertionResult", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.fmt::v10::basic_format_string.186", align 8
  %92 = alloca %"class.testing::Message", align 8
  %93 = alloca %"class.testing::internal::AssertHelper", align 8
  %94 = alloca %"class.testing::AssertionResult", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.fmt::v10::basic_format_string.270", align 8
  %97 = alloca %"class.testing::Message", align 8
  %98 = alloca %"class.testing::internal::AssertHelper", align 8
  %99 = alloca %"class.testing::AssertionResult", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.fmt::v10::basic_format_string.271", align 8
  %102 = alloca %"class.testing::Message", align 8
  %103 = alloca %"class.testing::internal::AssertHelper", align 8
  %104 = alloca %"class.testing::AssertionResult", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.fmt::v10::basic_format_string.271", align 8
  %107 = alloca %"class.testing::Message", align 8
  %108 = alloca %"class.testing::internal::AssertHelper", align 8
  %109 = alloca %"class.testing::AssertionResult", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.fmt::v10::basic_format_string.194", align 8
  %112 = alloca double, align 8
  %113 = alloca double, align 8
  %114 = alloca %"class.testing::Message", align 8
  %115 = alloca %"class.testing::internal::AssertHelper", align 8
  %116 = alloca %"class.testing::AssertionResult", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.fmt::v10::basic_format_string.194", align 8
  %119 = alloca double, align 8
  %120 = alloca double, align 8
  %121 = alloca %"class.testing::Message", align 8
  %122 = alloca %"class.testing::internal::AssertHelper", align 8
  %123 = alloca %"class.testing::AssertionResult", align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.fmt::v10::basic_format_string.194", align 8
  %126 = alloca double, align 8
  %127 = alloca double, align 8
  %128 = alloca %"class.testing::Message", align 8
  %129 = alloca %"class.testing::internal::AssertHelper", align 8
  %130 = alloca %"class.testing::AssertionResult", align 8
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %133 = alloca i32, align 4
  %134 = alloca %"class.testing::Message", align 8
  %135 = alloca %"class.testing::internal::AssertHelper", align 8
  %136 = alloca %"class.testing::AssertionResult", align 8
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %139 = alloca i32, align 4
  %140 = alloca %"class.testing::Message", align 8
  %141 = alloca %"class.testing::internal::AssertHelper", align 8
  %142 = alloca %"class.testing::AssertionResult", align 8
  %143 = alloca %"class.std::__cxx11::basic_string", align 8
  %144 = alloca %"class.fmt::v10::basic_format_string.122", align 8
  %145 = alloca i32, align 4
  %146 = alloca %"class.testing::Message", align 8
  %147 = alloca %"class.testing::internal::AssertHelper", align 8
  %148 = alloca %"class.testing::AssertionResult", align 8
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::allocator", align 1
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.fmt::v10::basic_format_string.269", align 8
  %153 = alloca %"class.fmt::v10::basic_string_view", align 8
  %154 = alloca ptr, align 8
  %155 = alloca %"class.testing::Message", align 8
  %156 = alloca %"class.testing::internal::AssertHelper", align 8
  %157 = alloca %"class.testing::AssertionResult", align 8
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::allocator", align 1
  %160 = alloca %class.output_redirect, align 8
  %161 = alloca %"class.fmt::v10::basic_format_string.148", align 8
  %162 = alloca double, align 8
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.testing::Message", align 8
  %165 = alloca %"class.testing::internal::AssertHelper", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #12
  call void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA17_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 1 dereferenceable(17) @.str.1810)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #12
  store i32 42, ptr %4, align 4, !tbaa !5
  %166 = load ptr, ptr %3, align 8
  %167 = getelementptr inbounds i8, ptr %3, i64 8
  %168 = load i64, ptr %167, 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 %2, ptr %166, i64 %168, ptr noundef nonnull align 4 dereferenceable(4) %4)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #12
  invoke void @_ZN7testing8internal8EqHelper7CompareIA17_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %5, ptr noundef nonnull @.str.1811, ptr noundef nonnull @.str.1812, ptr noundef nonnull align 1 dereferenceable(17) @.str.1813, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %169 unwind label %171

169:                                              ; preds = %1
  %170 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %5)
  br i1 %170, label %187, label %173

171:                                              ; preds = %1
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %195

173:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %174 unwind label %179

174:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #12
  %175 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %5)
          to label %176 unwind label %181

176:                                              ; preds = %174
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %7, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1684, ptr noundef %175)
          to label %177 unwind label %181

177:                                              ; preds = %176
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %178 unwind label %183

178:                                              ; preds = %177
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #12
  br label %187

179:                                              ; preds = %173
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %186

181:                                              ; preds = %176, %174
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %185

183:                                              ; preds = %177
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #12
  br label %185

185:                                              ; preds = %183, %181
  %.pn = phi { ptr, i32 } [ %184, %183 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #12
  br label %186

186:                                              ; preds = %185, %179
  %.pn.pn = phi { ptr, i32 } [ %.pn, %185 ], [ %180, %179 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #12
  br label %195

187:                                              ; preds = %169, %178
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA3_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 1 dereferenceable(3) @.str.223)
          to label %188 unwind label %196

188:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #12
  store i32 42, ptr %11, align 4, !tbaa !5
  %189 = load ptr, ptr %10, align 8
  %190 = getelementptr inbounds i8, ptr %10, i64 8
  %191 = load i64, ptr %190, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr %189, i64 %191, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %192 unwind label %198

192:                                              ; preds = %188
  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 %8, ptr noundef nonnull @.str.1814, ptr noundef nonnull @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(3) @.str.6)
          to label %193 unwind label %200

193:                                              ; preds = %192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #12
  %194 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
  br i1 %194, label %218, label %204

195:                                              ; preds = %186, %171
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %186 ], [ %172, %171 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #12
  br label %1076

196:                                              ; preds = %187
  %197 = landingpad { ptr, i32 }
          cleanup
  br label %203

198:                                              ; preds = %188
  %199 = landingpad { ptr, i32 }
          cleanup
  br label %202

200:                                              ; preds = %192
  %201 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #12
  br label %202

202:                                              ; preds = %200, %198
  %.pn173 = phi { ptr, i32 } [ %201, %200 ], [ %199, %198 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #12
  br label %203

203:                                              ; preds = %202, %196
  %.pn173.pn = phi { ptr, i32 } [ %.pn173, %202 ], [ %197, %196 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #12
  br label %230

204:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %205 unwind label %210

205:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  %206 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %207 unwind label %212

207:                                              ; preds = %205
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1686, ptr noundef %206)
          to label %208 unwind label %212

208:                                              ; preds = %207
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %209 unwind label %214

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

210:                                              ; preds = %204
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %217

212:                                              ; preds = %207, %205
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %216

214:                                              ; preds = %208
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #12
  br label %216

216:                                              ; preds = %214, %212
  %.pn176 = phi { ptr, i32 } [ %215, %214 ], [ %213, %212 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #12
  br label %217

217:                                              ; preds = %216, %210
  %.pn176.pn = phi { ptr, i32 } [ %.pn176, %216 ], [ %211, %210 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #12
  br label %230

218:                                              ; preds = %193, %209
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #12
  call void @llvm.lifetime.start.p0(i64 536, ptr nonnull %14) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #12
  call void @_ZN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(536) %14, ptr noundef nonnull align 1 dereferenceable(1) %15)
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #12
  %219 = invoke ptr @_ZSt13back_inserterIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEESt20back_insert_iteratorIT_ERS6_(ptr noundef nonnull align 8 dereferenceable(536) %14)
          to label %220 unwind label %231

220:                                              ; preds = %218
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA18_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 1 dereferenceable(18) @.str.1815)
          to label %221 unwind label %231

221:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #12
  store i32 42, ptr %17, align 4, !tbaa !5
  %222 = load ptr, ptr %16, align 8
  %223 = getelementptr inbounds i8, ptr %16, i64 8
  %224 = load i64, ptr %223, align 8
  %225 = invoke ptr @_ZN3fmt3v109format_toISt20back_insert_iteratorINS0_19basic_memory_bufferIcLm500ESaIcEEEEJiETnNSt9enable_ifIXsr6detail18is_output_iteratorIT_cEE5valueEiE4typeELi0EEES8_S8_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSD_(ptr %219, ptr %222, i64 %224, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %226 unwind label %233

226:                                              ; preds = %221
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #12
  invoke void @_ZN3fmt3v109to_stringIcLm500EEENSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEERKNS0_19basic_memory_bufferIS4_XT0_ES7_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(536) %14)
          to label %227 unwind label %235

227:                                              ; preds = %226
  invoke void @_ZN7testing8internal8EqHelper7CompareIA18_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %18, ptr noundef nonnull @.str.1816, ptr noundef nonnull @.str.1817, ptr noundef nonnull align 1 dereferenceable(18) @.str.1818, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %228 unwind label %237

228:                                              ; preds = %227
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #12
  %229 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %18)
  br i1 %229, label %254, label %240

230:                                              ; preds = %217, %203
  %.pn176.pn.pn = phi { ptr, i32 } [ %.pn176.pn, %217 ], [ %.pn173.pn, %203 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #12
  br label %1076

231:                                              ; preds = %220, %218
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %1075

233:                                              ; preds = %221
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #12
  br label %1075

235:                                              ; preds = %226
  %236 = landingpad { ptr, i32 }
          cleanup
  br label %239

237:                                              ; preds = %227
  %238 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  br label %239

239:                                              ; preds = %237, %235
  %.pn180 = phi { ptr, i32 } [ %238, %237 ], [ %236, %235 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #12
  br label %259

240:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %241 unwind label %246

241:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %242 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %18)
          to label %243 unwind label %248

243:                                              ; preds = %241
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %21, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1690, ptr noundef %242)
          to label %244 unwind label %248

244:                                              ; preds = %243
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %245 unwind label %250

245:                                              ; preds = %244
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  br label %254

246:                                              ; preds = %240
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %253

248:                                              ; preds = %243, %241
  %249 = landingpad { ptr, i32 }
          cleanup
  br label %252

250:                                              ; preds = %244
  %251 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #12
  br label %252

252:                                              ; preds = %250, %248
  %.pn182 = phi { ptr, i32 } [ %251, %250 ], [ %249, %248 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #12
  br label %253

253:                                              ; preds = %252, %246
  %.pn182.pn = phi { ptr, i32 } [ %.pn182, %252 ], [ %247, %246 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #12
  br label %259

254:                                              ; preds = %228, %245
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #12
  store ptr @.str.1819, ptr %22, align 8, !tbaa !9
  %255 = invoke noundef ptr @_Z10safe_fopenPKcS0_(ptr noundef nonnull @.str.1819, ptr noundef nonnull @.str.1820)
          to label %256 unwind label %260

256:                                              ; preds = %254
  %.not = icmp eq ptr %255, null
  br i1 %.not, label %262, label %257

257:                                              ; preds = %256
  %258 = call i32 @fclose(ptr noundef nonnull %255)
  br label %262

259:                                              ; preds = %253, %239
  %.pn182.pn.pn = phi { ptr, i32 } [ %.pn182.pn, %253 ], [ %.pn180, %239 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #12
  br label %1075

260:                                              ; preds = %254
  %261 = landingpad { ptr, i32 }
          cleanup
  br label %1074

262:                                              ; preds = %257, %256
  %263 = tail call ptr @__errno_location() #13
  %264 = load i32, ptr %263, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #12
  %265 = zext i1 %.not to i8
  store i8 %265, ptr %24, align 1, !tbaa !11
  call void @_ZN7testing15AssertionResultC2IbEERKT_PNSt9enable_ifIXntsr3std14is_convertibleIS2_S0_EE5valueEvE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 1 dereferenceable(1) %24, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #12
  %266 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
  br i1 %266, label %284, label %267

267:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %268 unwind label %273

268:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #12
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull @.str.1821, ptr noundef nonnull @.str.1177, ptr noundef nonnull @.str.1174)
          to label %269 unwind label %275

269:                                              ; preds = %268
  %270 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %27) #12
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %26, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1696, ptr noundef %270)
          to label %271 unwind label %277

271:                                              ; preds = %269
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %272 unwind label %279

272:                                              ; preds = %271
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  br label %284

273:                                              ; preds = %267
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %283

275:                                              ; preds = %268
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %282

277:                                              ; preds = %269
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %281

279:                                              ; preds = %271
  %280 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #12
  br label %281

281:                                              ; preds = %279, %277
  %.pn186 = phi { ptr, i32 } [ %280, %279 ], [ %278, %277 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #12
  br label %282

282:                                              ; preds = %281, %275
  %.pn186.pn = phi { ptr, i32 } [ %.pn186, %281 ], [ %276, %275 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #12
  br label %283

283:                                              ; preds = %282, %273
  %.pn186.pn.pn = phi { ptr, i32 } [ %.pn186.pn, %282 ], [ %274, %273 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #12
  br label %1074

284:                                              ; preds = %262, %272
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #12
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %28)
          to label %285 unwind label %304

285:                                              ; preds = %284
  %286 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %28)
  br i1 %286, label %287, label %366

287:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.1822, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %288 unwind label %306

288:                                              ; preds = %287
  invoke void @_Z20system_error_messageiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, i32 noundef %264, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %289 unwind label %308

289:                                              ; preds = %288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #12
  %290 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %291 unwind label %311

291:                                              ; preds = %289
  br i1 %290, label %292, label %.critedge

292:                                              ; preds = %291
  %293 = load ptr, ptr %22, align 8, !tbaa !9
  %294 = invoke noundef ptr @_Z10safe_fopenPKcS0_(ptr noundef %293, ptr noundef nonnull @.str.1820)
          to label %295 unwind label %313

295:                                              ; preds = %292
  %.not192 = icmp eq ptr %294, null
  br i1 %.not192, label %296, label %317

296:                                              ; preds = %295
  %297 = call ptr @__cxa_allocate_exception(i64 32) #12
  %298 = load i32, ptr %263, align 4, !tbaa !5
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRPKcEEC2IA22_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 1 dereferenceable(22) @.str.1823)
          to label %299 unwind label %315

299:                                              ; preds = %296
  %300 = load ptr, ptr %32, align 8
  %301 = getelementptr inbounds i8, ptr %32, i64 8
  %302 = load i64, ptr %301, align 8
  invoke void @_ZN3fmt3v1012system_errorIJRPKcEEESt12system_erroriNS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOS8_(ptr dead_on_unwind writable sret(%"class.std::system_error") align 8 %297, i32 noundef %298, ptr %300, i64 %302, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %303 unwind label %315

303:                                              ; preds = %299
  invoke void @__cxa_throw(ptr %297, ptr nonnull @_ZTISt12system_error, ptr nonnull @_ZNSt12system_errorD1Ev) #14
          to label %1080 unwind label %313

304:                                              ; preds = %284
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %388

306:                                              ; preds = %287
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %310

308:                                              ; preds = %288
  %309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #12
  br label %310

310:                                              ; preds = %308, %306
  %.pn190 = phi { ptr, i32 } [ %309, %308 ], [ %307, %306 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #12
  br label %365

311:                                              ; preds = %289
  %312 = landingpad { ptr, i32 }
          catch ptr @_ZTISt12system_error
          catch ptr null
  br label %319

313:                                              ; preds = %303, %292
  %314 = landingpad { ptr, i32 }
          catch ptr @_ZTISt12system_error
          catch ptr null
  br label %319

315:                                              ; preds = %299, %296
  %316 = landingpad { ptr, i32 }
          catch ptr @_ZTISt12system_error
          catch ptr null
  call void @__cxa_free_exception(ptr %297) #12
  br label %319

317:                                              ; preds = %295
  %318 = call i32 @fclose(ptr noundef nonnull %294)
  br label %.critedge

319:                                              ; preds = %313, %315, %311
  %.pn193.pn = phi { ptr, i32 } [ %312, %311 ], [ %314, %313 ], [ %316, %315 ]
  %.17 = extractvalue { ptr, i32 } %.pn193.pn, 0
  %.1746 = extractvalue { ptr, i32 } %.pn193.pn, 1
  %320 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt12system_error) #12
  %321 = icmp eq i32 %.1746, %320
  %322 = call ptr @__cxa_begin_catch(ptr %.17) #12
  br i1 %321, label %323, label %347

323:                                              ; preds = %319
  %324 = load ptr, ptr %322, align 8, !tbaa !13
  %325 = getelementptr inbounds i8, ptr %324, i64 16
  %326 = load ptr, ptr %325, align 8
  %327 = call noundef ptr %326(ptr noundef nonnull align 8 dereferenceable(16) %322) #12
  %328 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef %327)
          to label %329 unwind label %354

329:                                              ; preds = %323
  br i1 %328, label %330, label %358

330:                                              ; preds = %329
  %331 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA191_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 1 dereferenceable(191) @.str.1825)
          to label %332 unwind label %354

332:                                              ; preds = %330
  %333 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %331, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %334 unwind label %354

334:                                              ; preds = %332
  %335 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %333, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %336 unwind label %354

336:                                              ; preds = %334
  %337 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %335, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %338 unwind label %354

338:                                              ; preds = %336
  %339 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %337, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %340 unwind label %354

340:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #12
  %341 = load ptr, ptr %322, align 8, !tbaa !13
  %342 = getelementptr inbounds i8, ptr %341, i64 16
  %343 = load ptr, ptr %342, align 8
  %344 = call noundef ptr %343(ptr noundef nonnull align 8 dereferenceable(16) %322) #12
  store ptr %344, ptr %33, align 8, !tbaa !9
  %345 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %339, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %346 unwind label %356

346:                                              ; preds = %340
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  br label %358

347:                                              ; preds = %319
  %348 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA239_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 1 dereferenceable(239) @.str.1824)
          to label %349 unwind label %350

349:                                              ; preds = %347
  invoke void @__cxa_end_catch()
          to label %.thread unwind label %352

350:                                              ; preds = %347
  %351 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %364 unwind label %1077

352:                                              ; preds = %.critedge, %349
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %364

354:                                              ; preds = %338, %336, %334, %332, %330, %323
  %355 = landingpad { ptr, i32 }
          cleanup
  br label %363

356:                                              ; preds = %340
  %357 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  br label %363

358:                                              ; preds = %329, %346
  invoke void @__cxa_end_catch()
          to label %359 unwind label %361

359:                                              ; preds = %358
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #12
  br i1 %328, label %366, label %.thread363

.critedge:                                        ; preds = %291, %317
  %360 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA230_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 1 dereferenceable(230) @.str.1826)
          to label %.thread unwind label %352

361:                                              ; preds = %358
  %362 = landingpad { ptr, i32 }
          cleanup
  br label %364

363:                                              ; preds = %356, %354
  %.pn196 = phi { ptr, i32 } [ %357, %356 ], [ %355, %354 ]
  invoke void @__cxa_end_catch()
          to label %364 unwind label %1077

.thread:                                          ; preds = %349, %.critedge
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #12
  br label %366

364:                                              ; preds = %361, %363, %350, %352
  %.pn200 = phi { ptr, i32 } [ %353, %352 ], [ %351, %350 ], [ %362, %361 ], [ %.pn196, %363 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #12
  br label %365

365:                                              ; preds = %364, %310
  %.pn200.pn = phi { ptr, i32 } [ %.pn200, %364 ], [ %.pn190, %310 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #12
  br label %387

366:                                              ; preds = %359, %.thread, %285
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %367 unwind label %372

367:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #12
  %368 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %28)
          to label %369 unwind label %374

369:                                              ; preds = %367
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %35, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1704, ptr noundef %368)
          to label %370 unwind label %374

370:                                              ; preds = %369
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %371 unwind label %376

371:                                              ; preds = %370
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  br label %.thread363

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

374:                                              ; preds = %369, %367
  %375 = landingpad { ptr, i32 }
          cleanup
  br label %378

376:                                              ; preds = %370
  %377 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #12
  br label %378

378:                                              ; preds = %376, %374
  %.pn203 = phi { ptr, i32 } [ %377, %376 ], [ %375, %374 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #12
  br label %379

379:                                              ; preds = %378, %372
  %.pn203.pn = phi { ptr, i32 } [ %.pn203, %378 ], [ %373, %372 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  br label %387

.thread363:                                       ; preds = %359, %371
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA6_KcEEC2IA31_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull align 1 dereferenceable(31) @.str.1830)
          to label %380 unwind label %389

380:                                              ; preds = %.thread363
  %381 = load ptr, ptr %38, align 8
  %382 = getelementptr inbounds i8, ptr %38, i64 8
  %383 = load i64, ptr %382, align 8
  invoke void @_ZN3fmt3v106formatIJRA6_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr %381, i64 %383, ptr noundef nonnull align 1 dereferenceable(6) @.str.1831)
          to label %384 unwind label %389

384:                                              ; preds = %380
  invoke void @_ZN7testing8internal8EqHelper7CompareIA33_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %36, ptr noundef nonnull @.str.1827, ptr noundef nonnull @.str.1828, ptr noundef nonnull align 1 dereferenceable(33) @.str.1829, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %385 unwind label %391

385:                                              ; preds = %384
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #12
  %386 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
  br i1 %386, label %408, label %394

387:                                              ; preds = %379, %365
  %.pn203.pn.pn = phi { ptr, i32 } [ %.pn203.pn, %379 ], [ %.pn200.pn, %365 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #12
  br label %388

388:                                              ; preds = %387, %304
  %.pn203.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn, %387 ], [ %305, %304 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #12
  br label %1074

389:                                              ; preds = %380, %.thread363
  %390 = landingpad { ptr, i32 }
          cleanup
  br label %393

391:                                              ; preds = %384
  %392 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #12
  br label %393

393:                                              ; preds = %391, %389
  %.pn208 = phi { ptr, i32 } [ %392, %391 ], [ %390, %389 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #12
  br label %416

394:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %395 unwind label %400

395:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #12
  %396 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %397 unwind label %402

397:                                              ; preds = %395
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %40, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1707, ptr noundef %396)
          to label %398 unwind label %402

398:                                              ; preds = %397
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %399 unwind label %404

399:                                              ; preds = %398
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  br label %408

400:                                              ; preds = %394
  %401 = landingpad { ptr, i32 }
          cleanup
  br label %407

402:                                              ; preds = %397, %395
  %403 = landingpad { ptr, i32 }
          cleanup
  br label %406

404:                                              ; preds = %398
  %405 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #12
  br label %406

406:                                              ; preds = %404, %402
  %.pn210 = phi { ptr, i32 } [ %405, %404 ], [ %403, %402 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #12
  br label %407

407:                                              ; preds = %406, %400
  %.pn210.pn = phi { ptr, i32 } [ %.pn210, %406 ], [ %401, %400 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #12
  br label %416

408:                                              ; preds = %385, %399
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA10_KcEEC2IA14_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 1 dereferenceable(14) @.str.1834)
          to label %409 unwind label %417

409:                                              ; preds = %408
  %410 = load ptr, ptr %43, align 8
  %411 = getelementptr inbounds i8, ptr %43, i64 8
  %412 = load i64, ptr %411, align 8
  invoke void @_ZN3fmt3v106formatIJRA10_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr %410, i64 %412, ptr noundef nonnull align 1 dereferenceable(10) @.str.1835)
          to label %413 unwind label %417

413:                                              ; preds = %409
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA21_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %41, ptr noundef nonnull @.str.1832, ptr noundef nonnull @.str.1833, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 1 dereferenceable(21) @.str.1836)
          to label %414 unwind label %419

414:                                              ; preds = %413
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #12
  %415 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %41)
  br i1 %415, label %436, label %422

416:                                              ; preds = %407, %393
  %.pn210.pn.pn = phi { ptr, i32 } [ %.pn210.pn, %407 ], [ %.pn208, %393 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #12
  br label %1074

417:                                              ; preds = %409, %408
  %418 = landingpad { ptr, i32 }
          cleanup
  br label %421

419:                                              ; preds = %413
  %420 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #12
  br label %421

421:                                              ; preds = %419, %417
  %.pn214 = phi { ptr, i32 } [ %420, %419 ], [ %418, %417 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #12
  br label %444

422:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %423 unwind label %428

423:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #12
  %424 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %41)
          to label %425 unwind label %430

425:                                              ; preds = %423
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %45, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1708, ptr noundef %424)
          to label %426 unwind label %430

426:                                              ; preds = %425
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %427 unwind label %432

427:                                              ; preds = %426
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  br label %436

428:                                              ; preds = %422
  %429 = landingpad { ptr, i32 }
          cleanup
  br label %435

430:                                              ; preds = %425, %423
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %434

432:                                              ; preds = %426
  %433 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #12
  br label %434

434:                                              ; preds = %432, %430
  %.pn216 = phi { ptr, i32 } [ %433, %432 ], [ %431, %430 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #12
  br label %435

435:                                              ; preds = %434, %428
  %.pn216.pn = phi { ptr, i32 } [ %.pn216, %434 ], [ %429, %428 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #12
  br label %444

436:                                              ; preds = %414, %427
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %46) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiiEEC2IA14_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 1 dereferenceable(14) @.str.1839)
          to label %437 unwind label %445

437:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #12
  store i32 1, ptr %49, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #12
  store i32 3, ptr %50, align 4, !tbaa !5
  %438 = load ptr, ptr %48, align 8
  %439 = getelementptr inbounds i8, ptr %48, i64 8
  %440 = load i64, ptr %439, align 8
  invoke void @_ZN3fmt3v106formatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr %438, i64 %440, ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %441 unwind label %447

441:                                              ; preds = %437
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA12_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.1837, ptr noundef nonnull @.str.1838, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 1 dereferenceable(12) @.str.1840)
          to label %442 unwind label %449

442:                                              ; preds = %441
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #12
  %443 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %46)
  br i1 %443, label %467, label %453

444:                                              ; preds = %435, %421
  %.pn216.pn.pn = phi { ptr, i32 } [ %.pn216.pn, %435 ], [ %.pn214, %421 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #12
  br label %1074

445:                                              ; preds = %436
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %452

447:                                              ; preds = %437
  %448 = landingpad { ptr, i32 }
          cleanup
  br label %451

449:                                              ; preds = %441
  %450 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  br label %451

451:                                              ; preds = %449, %447
  %.pn220 = phi { ptr, i32 } [ %450, %449 ], [ %448, %447 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #12
  br label %452

452:                                              ; preds = %451, %445
  %.pn220.pn = phi { ptr, i32 } [ %.pn220, %451 ], [ %446, %445 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #12
  br label %475

453:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %454 unwind label %459

454:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #12
  %455 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %46)
          to label %456 unwind label %461

456:                                              ; preds = %454
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %52, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1709, ptr noundef %455)
          to label %457 unwind label %461

457:                                              ; preds = %456
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %458 unwind label %463

458:                                              ; preds = %457
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  br label %467

459:                                              ; preds = %453
  %460 = landingpad { ptr, i32 }
          cleanup
  br label %466

461:                                              ; preds = %456, %454
  %462 = landingpad { ptr, i32 }
          cleanup
  br label %465

463:                                              ; preds = %457
  %464 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #12
  br label %465

465:                                              ; preds = %463, %461
  %.pn223 = phi { ptr, i32 } [ %464, %463 ], [ %462, %461 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #12
  br label %466

466:                                              ; preds = %465, %459
  %.pn223.pn = phi { ptr, i32 } [ %.pn223, %465 ], [ %460, %459 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #12
  br label %475

467:                                              ; preds = %442, %458
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %53) #12
  call void (ptr, ptr, ...) @_Z12safe_sprintfILm256EEvRAT__cPKcz(ptr noundef nonnull align 1 dereferenceable(256) %53, ptr noundef nonnull @.str.1841, double noundef -1.200000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA9_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %56, ptr noundef nonnull align 1 dereferenceable(9) @.str.1843)
          to label %468 unwind label %476

468:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  store double -1.200000e+00, ptr %57, align 8, !tbaa !15
  %469 = load ptr, ptr %56, align 8
  %470 = getelementptr inbounds i8, ptr %56, i64 8
  %471 = load i64, ptr %470, align 8
  invoke void @_ZN3fmt3v106formatIJdEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr %469, i64 %471, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %472 unwind label %478

472:                                              ; preds = %468
  invoke void @_ZN7testing8internal8EqHelper7CompareIA256_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %54, ptr noundef nonnull @.str.1272, ptr noundef nonnull @.str.1842, ptr noundef nonnull align 1 dereferenceable(256) %53, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %473 unwind label %480

473:                                              ; preds = %472
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #12
  %474 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %54)
  br i1 %474, label %498, label %484

475:                                              ; preds = %466, %452
  %.pn223.pn.pn = phi { ptr, i32 } [ %.pn223.pn, %466 ], [ %.pn220.pn, %452 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #12
  br label %1074

476:                                              ; preds = %467
  %477 = landingpad { ptr, i32 }
          cleanup
  br label %483

478:                                              ; preds = %468
  %479 = landingpad { ptr, i32 }
          cleanup
  br label %482

480:                                              ; preds = %472
  %481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  br label %482

482:                                              ; preds = %480, %478
  %.pn227 = phi { ptr, i32 } [ %481, %480 ], [ %479, %478 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  br label %483

483:                                              ; preds = %482, %476
  %.pn227.pn = phi { ptr, i32 } [ %.pn227, %482 ], [ %477, %476 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #12
  br label %506

484:                                              ; preds = %473
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %485 unwind label %490

485:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #12
  %486 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %54)
          to label %487 unwind label %492

487:                                              ; preds = %485
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %59, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1713, ptr noundef %486)
          to label %488 unwind label %492

488:                                              ; preds = %487
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %489 unwind label %494

489:                                              ; preds = %488
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #12
  br label %498

490:                                              ; preds = %484
  %491 = landingpad { ptr, i32 }
          cleanup
  br label %497

492:                                              ; preds = %487, %485
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %496

494:                                              ; preds = %488
  %495 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #12
  br label %496

496:                                              ; preds = %494, %492
  %.pn230 = phi { ptr, i32 } [ %495, %494 ], [ %493, %492 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #12
  br label %497

497:                                              ; preds = %496, %490
  %.pn230.pn = phi { ptr, i32 } [ %.pn230, %496 ], [ %491, %490 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #12
  br label %506

498:                                              ; preds = %473, %489
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %60) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJcccEEC2IA14_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull align 1 dereferenceable(14) @.str.1846)
          to label %499 unwind label %507

499:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #12
  store i8 97, ptr %63, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #12
  store i8 98, ptr %64, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #12
  store i8 99, ptr %65, align 1, !tbaa !17
  %500 = load ptr, ptr %62, align 8
  %501 = getelementptr inbounds i8, ptr %62, i64 8
  %502 = load i64, ptr %501, align 8
  invoke void @_ZN3fmt3v106formatIJcccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr %500, i64 %502, ptr noundef nonnull align 1 dereferenceable(1) %63, ptr noundef nonnull align 1 dereferenceable(1) %64, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %503 unwind label %509

503:                                              ; preds = %499
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %60, ptr noundef nonnull @.str.1844, ptr noundef nonnull @.str.1845, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 1 dereferenceable(8) @.str.1847)
          to label %504 unwind label %511

504:                                              ; preds = %503
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #12
  %505 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
  br i1 %505, label %529, label %515

506:                                              ; preds = %497, %483
  %.pn230.pn.pn = phi { ptr, i32 } [ %.pn230.pn, %497 ], [ %.pn227.pn, %483 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #12
  br label %1073

507:                                              ; preds = %498
  %508 = landingpad { ptr, i32 }
          cleanup
  br label %514

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

511:                                              ; preds = %503
  %512 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #12
  br label %513

513:                                              ; preds = %511, %509
  %.pn234 = phi { ptr, i32 } [ %512, %511 ], [ %510, %509 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #12
  br label %514

514:                                              ; preds = %513, %507
  %.pn234.pn = phi { ptr, i32 } [ %.pn234, %513 ], [ %508, %507 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #12
  br label %537

515:                                              ; preds = %504
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %516 unwind label %521

516:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #12
  %517 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %518 unwind label %523

518:                                              ; preds = %516
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %67, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1715, ptr noundef %517)
          to label %519 unwind label %523

519:                                              ; preds = %518
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %520 unwind label %525

520:                                              ; preds = %519
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #12
  br label %529

521:                                              ; preds = %515
  %522 = landingpad { ptr, i32 }
          cleanup
  br label %528

523:                                              ; preds = %518, %516
  %524 = landingpad { ptr, i32 }
          cleanup
  br label %527

525:                                              ; preds = %519
  %526 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #12
  br label %527

527:                                              ; preds = %525, %523
  %.pn237 = phi { ptr, i32 } [ %526, %525 ], [ %524, %523 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #12
  br label %528

528:                                              ; preds = %527, %521
  %.pn237.pn = phi { ptr, i32 } [ %.pn237, %527 ], [ %522, %521 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #12
  br label %537

529:                                              ; preds = %504, %520
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %68) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJcccEEC2IA11_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 1 dereferenceable(11) @.str.1849)
          to label %530 unwind label %538

530:                                              ; preds = %529
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %71) #12
  store i8 97, ptr %71, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #12
  store i8 98, ptr %72, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #12
  store i8 99, ptr %73, align 1, !tbaa !17
  %531 = load ptr, ptr %70, align 8
  %532 = getelementptr inbounds i8, ptr %70, i64 8
  %533 = load i64, ptr %532, align 8
  invoke void @_ZN3fmt3v106formatIJcccEEENSt7__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 %531, i64 %533, ptr noundef nonnull align 1 dereferenceable(1) %71, ptr noundef nonnull align 1 dereferenceable(1) %72, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %534 unwind label %540

534:                                              ; preds = %530
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %68, ptr noundef nonnull @.str.1848, ptr noundef nonnull @.str.1845, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 1 dereferenceable(8) @.str.1847)
          to label %535 unwind label %542

535:                                              ; preds = %534
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #12
  %536 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %68)
  br i1 %536, label %560, label %546

537:                                              ; preds = %528, %514
  %.pn237.pn.pn = phi { ptr, i32 } [ %.pn237.pn, %528 ], [ %.pn234.pn, %514 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #12
  br label %1073

538:                                              ; preds = %529
  %539 = landingpad { ptr, i32 }
          cleanup
  br label %545

540:                                              ; preds = %530
  %541 = landingpad { ptr, i32 }
          cleanup
  br label %544

542:                                              ; preds = %534
  %543 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #12
  br label %544

544:                                              ; preds = %542, %540
  %.pn241 = phi { ptr, i32 } [ %543, %542 ], [ %541, %540 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #12
  br label %545

545:                                              ; preds = %544, %538
  %.pn241.pn = phi { ptr, i32 } [ %.pn241, %544 ], [ %539, %538 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #12
  br label %568

546:                                              ; preds = %535
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %547 unwind label %552

547:                                              ; preds = %546
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #12
  %548 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %68)
          to label %549 unwind label %554

549:                                              ; preds = %547
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %75, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1716, ptr noundef %548)
          to label %550 unwind label %554

550:                                              ; preds = %549
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %551 unwind label %556

551:                                              ; preds = %550
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #12
  br label %560

552:                                              ; preds = %546
  %553 = landingpad { ptr, i32 }
          cleanup
  br label %559

554:                                              ; preds = %549, %547
  %555 = landingpad { ptr, i32 }
          cleanup
  br label %558

556:                                              ; preds = %550
  %557 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #12
  br label %558

558:                                              ; preds = %556, %554
  %.pn244 = phi { ptr, i32 } [ %557, %556 ], [ %555, %554 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #12
  br label %559

559:                                              ; preds = %558, %552
  %.pn244.pn = phi { ptr, i32 } [ %.pn244, %558 ], [ %553, %552 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #12
  br label %568

560:                                              ; preds = %535, %551
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %76) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJcccEEC2IA14_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr noundef nonnull align 1 dereferenceable(14) @.str.1852)
          to label %561 unwind label %569

561:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %79) #12
  store i8 97, ptr %79, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %80) #12
  store i8 98, ptr %80, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %81) #12
  store i8 99, ptr %81, align 1, !tbaa !17
  %562 = load ptr, ptr %78, align 8
  %563 = getelementptr inbounds i8, ptr %78, i64 8
  %564 = load i64, ptr %563, align 8
  invoke void @_ZN3fmt3v106formatIJcccEEENSt7__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 %562, i64 %564, ptr noundef nonnull align 1 dereferenceable(1) %79, ptr noundef nonnull align 1 dereferenceable(1) %80, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %565 unwind label %571

565:                                              ; preds = %561
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA8_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %76, ptr noundef nonnull @.str.1850, ptr noundef nonnull @.str.1851, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 1 dereferenceable(8) @.str.1853)
          to label %566 unwind label %573

566:                                              ; preds = %565
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #12
  %567 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %76)
  br i1 %567, label %591, label %577

568:                                              ; preds = %559, %545
  %.pn244.pn.pn = phi { ptr, i32 } [ %.pn244.pn, %559 ], [ %.pn241.pn, %545 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #12
  br label %1073

569:                                              ; preds = %560
  %570 = landingpad { ptr, i32 }
          cleanup
  br label %576

571:                                              ; preds = %561
  %572 = landingpad { ptr, i32 }
          cleanup
  br label %575

573:                                              ; preds = %565
  %574 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #12
  br label %575

575:                                              ; preds = %573, %571
  %.pn248 = phi { ptr, i32 } [ %574, %573 ], [ %572, %571 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #12
  br label %576

576:                                              ; preds = %575, %569
  %.pn248.pn = phi { ptr, i32 } [ %.pn248, %575 ], [ %570, %569 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #12
  br label %599

577:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %578 unwind label %583

578:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %83) #12
  %579 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %76)
          to label %580 unwind label %585

580:                                              ; preds = %578
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %83, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1717, ptr noundef %579)
          to label %581 unwind label %585

581:                                              ; preds = %580
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %582 unwind label %587

582:                                              ; preds = %581
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #12
  br label %591

583:                                              ; preds = %577
  %584 = landingpad { ptr, i32 }
          cleanup
  br label %590

585:                                              ; preds = %580, %578
  %586 = landingpad { ptr, i32 }
          cleanup
  br label %589

587:                                              ; preds = %581
  %588 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #12
  br label %589

589:                                              ; preds = %587, %585
  %.pn251 = phi { ptr, i32 } [ %588, %587 ], [ %586, %585 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #12
  br label %590

590:                                              ; preds = %589, %583
  %.pn251.pn = phi { ptr, i32 } [ %.pn251, %589 ], [ %584, %583 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #12
  br label %599

591:                                              ; preds = %566, %582
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %76) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %84) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA5_KcRA4_S2_EEC2IA10_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESD_(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 1 dereferenceable(10) @.str.274)
          to label %592 unwind label %600

592:                                              ; preds = %591
  %593 = load ptr, ptr %86, align 8
  %594 = getelementptr inbounds i8, ptr %86, i64 8
  %595 = load i64, ptr %594, align 8
  invoke void @_ZN3fmt3v106formatIJRA5_KcRA4_S2_EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSF_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr %593, i64 %595, ptr noundef nonnull align 1 dereferenceable(5) @.str.275, ptr noundef nonnull align 1 dereferenceable(4) @.str.276)
          to label %596 unwind label %600

596:                                              ; preds = %592
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA12_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %84, ptr noundef nonnull @.str.272, ptr noundef nonnull @.str.273, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 1 dereferenceable(12) @.str.277)
          to label %597 unwind label %602

597:                                              ; preds = %596
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #12
  %598 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %84)
  br i1 %598, label %619, label %605

599:                                              ; preds = %590, %576
  %.pn251.pn.pn = phi { ptr, i32 } [ %.pn251.pn, %590 ], [ %.pn248.pn, %576 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %76) #12
  br label %1073

600:                                              ; preds = %592, %591
  %601 = landingpad { ptr, i32 }
          cleanup
  br label %604

602:                                              ; preds = %596
  %603 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #12
  br label %604

604:                                              ; preds = %602, %600
  %.pn255 = phi { ptr, i32 } [ %603, %602 ], [ %601, %600 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #12
  br label %627

605:                                              ; preds = %597
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %606 unwind label %611

606:                                              ; preds = %605
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #12
  %607 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %84)
          to label %608 unwind label %613

608:                                              ; preds = %606
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %88, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1718, ptr noundef %607)
          to label %609 unwind label %613

609:                                              ; preds = %608
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %610 unwind label %615

610:                                              ; preds = %609
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #12
  br label %619

611:                                              ; preds = %605
  %612 = landingpad { ptr, i32 }
          cleanup
  br label %618

613:                                              ; preds = %608, %606
  %614 = landingpad { ptr, i32 }
          cleanup
  br label %617

615:                                              ; preds = %609
  %616 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #12
  br label %617

617:                                              ; preds = %615, %613
  %.pn257 = phi { ptr, i32 } [ %616, %615 ], [ %614, %613 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #12
  br label %618

618:                                              ; preds = %617, %611
  %.pn257.pn = phi { ptr, i32 } [ %.pn257, %617 ], [ %612, %611 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #12
  br label %627

619:                                              ; preds = %597, %610
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %89) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA13_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %91, ptr noundef nonnull align 1 dereferenceable(7) @.str.1857)
          to label %620 unwind label %628

620:                                              ; preds = %619
  %621 = load ptr, ptr %91, align 8
  %622 = getelementptr inbounds i8, ptr %91, i64 8
  %623 = load i64, ptr %622, align 8
  invoke void @_ZN3fmt3v106formatIJRA13_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr %621, i64 %623, ptr noundef nonnull align 1 dereferenceable(13) @.str.1858)
          to label %624 unwind label %628

624:                                              ; preds = %620
  invoke void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %89, ptr noundef nonnull @.str.1854, ptr noundef nonnull @.str.1855, ptr noundef nonnull align 1 dereferenceable(31) @.str.1856, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %625 unwind label %630

625:                                              ; preds = %624
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #12
  %626 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %89)
  br i1 %626, label %647, label %633

627:                                              ; preds = %618, %604
  %.pn257.pn.pn = phi { ptr, i32 } [ %.pn257.pn, %618 ], [ %.pn255, %604 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #12
  br label %1073

628:                                              ; preds = %620, %619
  %629 = landingpad { ptr, i32 }
          cleanup
  br label %632

630:                                              ; preds = %624
  %631 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #12
  br label %632

632:                                              ; preds = %630, %628
  %.pn261 = phi { ptr, i32 } [ %631, %630 ], [ %629, %628 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #12
  br label %655

633:                                              ; preds = %625
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %634 unwind label %639

634:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #12
  %635 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %89)
          to label %636 unwind label %641

636:                                              ; preds = %634
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %93, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1721, ptr noundef %635)
          to label %637 unwind label %641

637:                                              ; preds = %636
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %638 unwind label %643

638:                                              ; preds = %637
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #12
  br label %647

639:                                              ; preds = %633
  %640 = landingpad { ptr, i32 }
          cleanup
  br label %646

641:                                              ; preds = %636, %634
  %642 = landingpad { ptr, i32 }
          cleanup
  br label %645

643:                                              ; preds = %637
  %644 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #12
  br label %645

645:                                              ; preds = %643, %641
  %.pn263 = phi { ptr, i32 } [ %644, %643 ], [ %642, %641 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #12
  br label %646

646:                                              ; preds = %645, %639
  %.pn263.pn = phi { ptr, i32 } [ %.pn263, %645 ], [ %640, %639 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %89) #12
  br label %655

647:                                              ; preds = %625, %638
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %89) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %89) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %94) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA14_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %96, ptr noundef nonnull align 1 dereferenceable(7) @.str.1862)
          to label %648 unwind label %656

648:                                              ; preds = %647
  %649 = load ptr, ptr %96, align 8
  %650 = getelementptr inbounds i8, ptr %96, i64 8
  %651 = load i64, ptr %650, align 8
  invoke void @_ZN3fmt3v106formatIJRA14_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr %649, i64 %651, ptr noundef nonnull align 1 dereferenceable(14) @.str.1863)
          to label %652 unwind label %656

652:                                              ; preds = %648
  invoke void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %94, ptr noundef nonnull @.str.1859, ptr noundef nonnull @.str.1860, ptr noundef nonnull align 1 dereferenceable(31) @.str.1861, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %653 unwind label %658

653:                                              ; preds = %652
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #12
  %654 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %94)
  br i1 %654, label %675, label %661

655:                                              ; preds = %646, %632
  %.pn263.pn.pn = phi { ptr, i32 } [ %.pn263.pn, %646 ], [ %.pn261, %632 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %89) #12
  br label %1073

656:                                              ; preds = %648, %647
  %657 = landingpad { ptr, i32 }
          cleanup
  br label %660

658:                                              ; preds = %652
  %659 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #12
  br label %660

660:                                              ; preds = %658, %656
  %.pn267 = phi { ptr, i32 } [ %659, %658 ], [ %657, %656 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #12
  br label %683

661:                                              ; preds = %653
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %97) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %662 unwind label %667

662:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %98) #12
  %663 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %94)
          to label %664 unwind label %669

664:                                              ; preds = %662
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %98, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1723, ptr noundef %663)
          to label %665 unwind label %669

665:                                              ; preds = %664
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %666 unwind label %671

666:                                              ; preds = %665
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #12
  br label %675

667:                                              ; preds = %661
  %668 = landingpad { ptr, i32 }
          cleanup
  br label %674

669:                                              ; preds = %664, %662
  %670 = landingpad { ptr, i32 }
          cleanup
  br label %673

671:                                              ; preds = %665
  %672 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #12
  br label %673

673:                                              ; preds = %671, %669
  %.pn269 = phi { ptr, i32 } [ %672, %671 ], [ %670, %669 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #12
  br label %674

674:                                              ; preds = %673, %667
  %.pn269.pn = phi { ptr, i32 } [ %.pn269, %673 ], [ %668, %667 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #12
  br label %683

675:                                              ; preds = %653, %666
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %94) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %99) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA9_KcEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %101, ptr noundef nonnull align 1 dereferenceable(7) @.str.1867)
          to label %676 unwind label %684

676:                                              ; preds = %675
  %677 = load ptr, ptr %101, align 8
  %678 = getelementptr inbounds i8, ptr %101, i64 8
  %679 = load i64, ptr %678, align 8
  invoke void @_ZN3fmt3v106formatIJRA9_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr %677, i64 %679, ptr noundef nonnull align 1 dereferenceable(9) @.str.1868)
          to label %680 unwind label %684

680:                                              ; preds = %676
  invoke void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %99, ptr noundef nonnull @.str.1864, ptr noundef nonnull @.str.1865, ptr noundef nonnull align 1 dereferenceable(31) @.str.1866, ptr noundef nonnull align 8 dereferenceable(32) %100)
          to label %681 unwind label %686

681:                                              ; preds = %680
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #12
  %682 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %99)
  br i1 %682, label %703, label %689

683:                                              ; preds = %674, %660
  %.pn269.pn.pn = phi { ptr, i32 } [ %.pn269.pn, %674 ], [ %.pn267, %660 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %94) #12
  br label %1073

684:                                              ; preds = %676, %675
  %685 = landingpad { ptr, i32 }
          cleanup
  br label %688

686:                                              ; preds = %680
  %687 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #12
  br label %688

688:                                              ; preds = %686, %684
  %.pn273 = phi { ptr, i32 } [ %687, %686 ], [ %685, %684 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #12
  br label %711

689:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %690 unwind label %695

690:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %103) #12
  %691 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %99)
          to label %692 unwind label %697

692:                                              ; preds = %690
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %103, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1725, ptr noundef %691)
          to label %693 unwind label %697

693:                                              ; preds = %692
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %694 unwind label %699

694:                                              ; preds = %693
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #12
  br label %703

695:                                              ; preds = %689
  %696 = landingpad { ptr, i32 }
          cleanup
  br label %702

697:                                              ; preds = %692, %690
  %698 = landingpad { ptr, i32 }
          cleanup
  br label %701

699:                                              ; preds = %693
  %700 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #12
  br label %701

701:                                              ; preds = %699, %697
  %.pn275 = phi { ptr, i32 } [ %700, %699 ], [ %698, %697 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #12
  br label %702

702:                                              ; preds = %701, %695
  %.pn275.pn = phi { ptr, i32 } [ %.pn275, %701 ], [ %696, %695 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #12
  br label %711

703:                                              ; preds = %681, %694
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %99) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %104) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJRA9_KcEEC2IA8_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEESB_(ptr noundef nonnull align 8 dereferenceable(16) %106, ptr noundef nonnull align 1 dereferenceable(8) @.str.1872)
          to label %704 unwind label %712

704:                                              ; preds = %703
  %705 = load ptr, ptr %106, align 8
  %706 = getelementptr inbounds i8, ptr %106, i64 8
  %707 = load i64, ptr %706, align 8
  invoke void @_ZN3fmt3v106formatIJRA9_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr %705, i64 %707, ptr noundef nonnull align 1 dereferenceable(9) @.str.1868)
          to label %708 unwind label %712

708:                                              ; preds = %704
  invoke void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %104, ptr noundef nonnull @.str.1869, ptr noundef nonnull @.str.1870, ptr noundef nonnull align 1 dereferenceable(31) @.str.1871, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %709 unwind label %714

709:                                              ; preds = %708
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #12
  %710 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %104)
  br i1 %710, label %731, label %717

711:                                              ; preds = %702, %688
  %.pn275.pn.pn = phi { ptr, i32 } [ %.pn275.pn, %702 ], [ %.pn273, %688 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %99) #12
  br label %1073

712:                                              ; preds = %704, %703
  %713 = landingpad { ptr, i32 }
          cleanup
  br label %716

714:                                              ; preds = %708
  %715 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #12
  br label %716

716:                                              ; preds = %714, %712
  %.pn279 = phi { ptr, i32 } [ %715, %714 ], [ %713, %712 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #12
  br label %739

717:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %107) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %107)
          to label %718 unwind label %723

718:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %108) #12
  %719 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %104)
          to label %720 unwind label %725

720:                                              ; preds = %718
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %108, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1727, ptr noundef %719)
          to label %721 unwind label %725

721:                                              ; preds = %720
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef nonnull align 8 dereferenceable(8) %107)
          to label %722 unwind label %727

722:                                              ; preds = %721
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %108) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %107) #12
  br label %731

723:                                              ; preds = %717
  %724 = landingpad { ptr, i32 }
          cleanup
  br label %730

725:                                              ; preds = %720, %718
  %726 = landingpad { ptr, i32 }
          cleanup
  br label %729

727:                                              ; preds = %721
  %728 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #12
  br label %729

729:                                              ; preds = %727, %725
  %.pn281 = phi { ptr, i32 } [ %728, %727 ], [ %726, %725 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %108) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #12
  br label %730

730:                                              ; preds = %729, %723
  %.pn281.pn = phi { ptr, i32 } [ %.pn281, %729 ], [ %724, %723 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %107) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #12
  br label %739

731:                                              ; preds = %709, %722
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %104) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %109) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJddEEC2IA13_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %111, ptr noundef nonnull align 1 dereferenceable(13) @.str.1875)
          to label %732 unwind label %740

732:                                              ; preds = %731
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %112) #12
  store double 3.140000e+00, ptr %112, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %113) #12
  store double -3.140000e+00, ptr %113, align 8, !tbaa !15
  %733 = load ptr, ptr %111, align 8
  %734 = getelementptr inbounds i8, ptr %111, i64 8
  %735 = load i64, ptr %734, align 8
  invoke void @_ZN3fmt3v106formatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %110, ptr %733, i64 %735, ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(8) %113)
          to label %736 unwind label %742

736:                                              ; preds = %732
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA21_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %109, ptr noundef nonnull @.str.1873, ptr noundef nonnull @.str.1874, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 1 dereferenceable(21) @.str.1876)
          to label %737 unwind label %744

737:                                              ; preds = %736
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #12
  %738 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %109)
  br i1 %738, label %762, label %748

739:                                              ; preds = %730, %716
  %.pn281.pn.pn = phi { ptr, i32 } [ %.pn281.pn, %730 ], [ %.pn279, %716 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %104) #12
  br label %1073

740:                                              ; preds = %731
  %741 = landingpad { ptr, i32 }
          cleanup
  br label %747

742:                                              ; preds = %732
  %743 = landingpad { ptr, i32 }
          cleanup
  br label %746

744:                                              ; preds = %736
  %745 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #12
  br label %746

746:                                              ; preds = %744, %742
  %.pn285 = phi { ptr, i32 } [ %745, %744 ], [ %743, %742 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #12
  br label %747

747:                                              ; preds = %746, %740
  %.pn285.pn = phi { ptr, i32 } [ %.pn285, %746 ], [ %741, %740 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #12
  br label %770

748:                                              ; preds = %737
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %114) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %749 unwind label %754

749:                                              ; preds = %748
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %115) #12
  %750 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %109)
          to label %751 unwind label %756

751:                                              ; preds = %749
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %115, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1729, ptr noundef %750)
          to label %752 unwind label %756

752:                                              ; preds = %751
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %753 unwind label %758

753:                                              ; preds = %752
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #12
  br label %762

754:                                              ; preds = %748
  %755 = landingpad { ptr, i32 }
          cleanup
  br label %761

756:                                              ; preds = %751, %749
  %757 = landingpad { ptr, i32 }
          cleanup
  br label %760

758:                                              ; preds = %752
  %759 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #12
  br label %760

760:                                              ; preds = %758, %756
  %.pn288 = phi { ptr, i32 } [ %759, %758 ], [ %757, %756 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #12
  br label %761

761:                                              ; preds = %760, %754
  %.pn288.pn = phi { ptr, i32 } [ %.pn288, %760 ], [ %755, %754 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %109) #12
  br label %770

762:                                              ; preds = %737, %753
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %109) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %109) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %116) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %117) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJddEEC2IA13_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %118, ptr noundef nonnull align 1 dereferenceable(13) @.str.1879)
          to label %763 unwind label %771

763:                                              ; preds = %762
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %119) #12
  store double 3.140000e+00, ptr %119, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %120) #12
  store double -3.140000e+00, ptr %120, align 8, !tbaa !15
  %764 = load ptr, ptr %118, align 8
  %765 = getelementptr inbounds i8, ptr %118, i64 8
  %766 = load i64, ptr %765, align 8
  invoke void @_ZN3fmt3v106formatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr %764, i64 %766, ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(8) %120)
          to label %767 unwind label %773

767:                                              ; preds = %763
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA21_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %116, ptr noundef nonnull @.str.1877, ptr noundef nonnull @.str.1878, ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 1 dereferenceable(21) @.str.1880)
          to label %768 unwind label %775

768:                                              ; preds = %767
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #12
  %769 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %116)
  br i1 %769, label %793, label %779

770:                                              ; preds = %761, %747
  %.pn288.pn.pn = phi { ptr, i32 } [ %.pn288.pn, %761 ], [ %.pn285.pn, %747 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %109) #12
  br label %1073

771:                                              ; preds = %762
  %772 = landingpad { ptr, i32 }
          cleanup
  br label %778

773:                                              ; preds = %763
  %774 = landingpad { ptr, i32 }
          cleanup
  br label %777

775:                                              ; preds = %767
  %776 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #12
  br label %777

777:                                              ; preds = %775, %773
  %.pn292 = phi { ptr, i32 } [ %776, %775 ], [ %774, %773 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #12
  br label %778

778:                                              ; preds = %777, %771
  %.pn292.pn = phi { ptr, i32 } [ %.pn292, %777 ], [ %772, %771 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #12
  br label %801

779:                                              ; preds = %768
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %121) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %121)
          to label %780 unwind label %785

780:                                              ; preds = %779
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %122) #12
  %781 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %116)
          to label %782 unwind label %787

782:                                              ; preds = %780
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %122, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1730, ptr noundef %781)
          to label %783 unwind label %787

783:                                              ; preds = %782
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 8 dereferenceable(8) %121)
          to label %784 unwind label %789

784:                                              ; preds = %783
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #12
  br label %793

785:                                              ; preds = %779
  %786 = landingpad { ptr, i32 }
          cleanup
  br label %792

787:                                              ; preds = %782, %780
  %788 = landingpad { ptr, i32 }
          cleanup
  br label %791

789:                                              ; preds = %783
  %790 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #12
  br label %791

791:                                              ; preds = %789, %787
  %.pn295 = phi { ptr, i32 } [ %790, %789 ], [ %788, %787 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #12
  br label %792

792:                                              ; preds = %791, %785
  %.pn295.pn = phi { ptr, i32 } [ %.pn295, %791 ], [ %786, %785 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #12
  br label %801

793:                                              ; preds = %768, %784
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %116) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %123) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %124) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJddEEC2IA13_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %125, ptr noundef nonnull align 1 dereferenceable(13) @.str.1883)
          to label %794 unwind label %802

794:                                              ; preds = %793
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %126) #12
  store double 3.140000e+00, ptr %126, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %127) #12
  store double -3.140000e+00, ptr %127, align 8, !tbaa !15
  %795 = load ptr, ptr %125, align 8
  %796 = getelementptr inbounds i8, ptr %125, i64 8
  %797 = load i64, ptr %796, align 8
  invoke void @_ZN3fmt3v106formatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %124, ptr %795, i64 %797, ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(8) %127)
          to label %798 unwind label %804

798:                                              ; preds = %794
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA20_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %123, ptr noundef nonnull @.str.1881, ptr noundef nonnull @.str.1882, ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 1 dereferenceable(20) @.str.1884)
          to label %799 unwind label %806

799:                                              ; preds = %798
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %127) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #12
  %800 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %123)
  br i1 %800, label %824, label %810

801:                                              ; preds = %792, %778
  %.pn295.pn.pn = phi { ptr, i32 } [ %.pn295.pn, %792 ], [ %.pn292.pn, %778 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %116) #12
  br label %1073

802:                                              ; preds = %793
  %803 = landingpad { ptr, i32 }
          cleanup
  br label %809

804:                                              ; preds = %794
  %805 = landingpad { ptr, i32 }
          cleanup
  br label %808

806:                                              ; preds = %798
  %807 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #12
  br label %808

808:                                              ; preds = %806, %804
  %.pn299 = phi { ptr, i32 } [ %807, %806 ], [ %805, %804 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %127) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #12
  br label %809

809:                                              ; preds = %808, %802
  %.pn299.pn = phi { ptr, i32 } [ %.pn299, %808 ], [ %803, %802 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #12
  br label %832

810:                                              ; preds = %799
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %128) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %128)
          to label %811 unwind label %816

811:                                              ; preds = %810
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %129) #12
  %812 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %123)
          to label %813 unwind label %818

813:                                              ; preds = %811
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %129, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1731, ptr noundef %812)
          to label %814 unwind label %818

814:                                              ; preds = %813
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(8) %128)
          to label %815 unwind label %820

815:                                              ; preds = %814
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %129) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %128) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %128) #12
  br label %824

816:                                              ; preds = %810
  %817 = landingpad { ptr, i32 }
          cleanup
  br label %823

818:                                              ; preds = %813, %811
  %819 = landingpad { ptr, i32 }
          cleanup
  br label %822

820:                                              ; preds = %814
  %821 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #12
  br label %822

822:                                              ; preds = %820, %818
  %.pn302 = phi { ptr, i32 } [ %821, %820 ], [ %819, %818 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %129) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %128) #12
  br label %823

823:                                              ; preds = %822, %816
  %.pn302.pn = phi { ptr, i32 } [ %.pn302, %822 ], [ %817, %816 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %128) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %123) #12
  br label %832

824:                                              ; preds = %799, %815
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %123) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %123) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %130) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %131) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA37_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %132, ptr noundef nonnull align 1 dereferenceable(37) @.str.1888)
          to label %825 unwind label %833

825:                                              ; preds = %824
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %133) #12
  store i32 42, ptr %133, align 4, !tbaa !5
  %826 = load ptr, ptr %132, align 8
  %827 = getelementptr inbounds i8, ptr %132, i64 8
  %828 = load i64, ptr %827, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %131, ptr %826, i64 %828, ptr noundef nonnull align 4 dereferenceable(4) %133)
          to label %829 unwind label %835

829:                                              ; preds = %825
  invoke void @_ZN7testing8internal8EqHelper7CompareIA28_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %130, ptr noundef nonnull @.str.1885, ptr noundef nonnull @.str.1886, ptr noundef nonnull align 1 dereferenceable(28) @.str.1887, ptr noundef nonnull align 8 dereferenceable(32) %131)
          to label %830 unwind label %837

830:                                              ; preds = %829
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %133) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #12
  %831 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %130)
  br i1 %831, label %855, label %841

832:                                              ; preds = %823, %809
  %.pn302.pn.pn = phi { ptr, i32 } [ %.pn302.pn, %823 ], [ %.pn299.pn, %809 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %123) #12
  br label %1073

833:                                              ; preds = %824
  %834 = landingpad { ptr, i32 }
          cleanup
  br label %840

835:                                              ; preds = %825
  %836 = landingpad { ptr, i32 }
          cleanup
  br label %839

837:                                              ; preds = %829
  %838 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #12
  br label %839

839:                                              ; preds = %837, %835
  %.pn306 = phi { ptr, i32 } [ %838, %837 ], [ %836, %835 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %133) #12
  br label %840

840:                                              ; preds = %839, %833
  %.pn306.pn = phi { ptr, i32 } [ %.pn306, %839 ], [ %834, %833 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #12
  br label %863

841:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %134) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %134)
          to label %842 unwind label %847

842:                                              ; preds = %841
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %135) #12
  %843 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %130)
          to label %844 unwind label %849

844:                                              ; preds = %842
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %135, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1734, ptr noundef %843)
          to label %845 unwind label %849

845:                                              ; preds = %844
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull align 8 dereferenceable(8) %134)
          to label %846 unwind label %851

846:                                              ; preds = %845
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %135) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %134) #12
  br label %855

847:                                              ; preds = %841
  %848 = landingpad { ptr, i32 }
          cleanup
  br label %854

849:                                              ; preds = %844, %842
  %850 = landingpad { ptr, i32 }
          cleanup
  br label %853

851:                                              ; preds = %845
  %852 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %135) #12
  br label %853

853:                                              ; preds = %851, %849
  %.pn309 = phi { ptr, i32 } [ %852, %851 ], [ %850, %849 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #12
  br label %854

854:                                              ; preds = %853, %847
  %.pn309.pn = phi { ptr, i32 } [ %.pn309, %853 ], [ %848, %847 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %134) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #12
  br label %863

855:                                              ; preds = %830, %846
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %130) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %136) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %137) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA39_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 1 dereferenceable(39) @.str.1892)
          to label %856 unwind label %864

856:                                              ; preds = %855
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %139) #12
  store i32 42, ptr %139, align 4, !tbaa !5
  %857 = load ptr, ptr %138, align 8
  %858 = getelementptr inbounds i8, ptr %138, i64 8
  %859 = load i64, ptr %858, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %137, ptr %857, i64 %859, ptr noundef nonnull align 4 dereferenceable(4) %139)
          to label %860 unwind label %866

860:                                              ; preds = %856
  invoke void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %136, ptr noundef nonnull @.str.1889, ptr noundef nonnull @.str.1890, ptr noundef nonnull align 1 dereferenceable(31) @.str.1891, ptr noundef nonnull align 8 dereferenceable(32) %137)
          to label %861 unwind label %868

861:                                              ; preds = %860
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %139) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #12
  %862 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %136)
  br i1 %862, label %886, label %872

863:                                              ; preds = %854, %840
  %.pn309.pn.pn = phi { ptr, i32 } [ %.pn309.pn, %854 ], [ %.pn306.pn, %840 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %130) #12
  br label %1073

864:                                              ; preds = %855
  %865 = landingpad { ptr, i32 }
          cleanup
  br label %871

866:                                              ; preds = %856
  %867 = landingpad { ptr, i32 }
          cleanup
  br label %870

868:                                              ; preds = %860
  %869 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #12
  br label %870

870:                                              ; preds = %868, %866
  %.pn313 = phi { ptr, i32 } [ %869, %868 ], [ %867, %866 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %139) #12
  br label %871

871:                                              ; preds = %870, %864
  %.pn313.pn = phi { ptr, i32 } [ %.pn313, %870 ], [ %865, %864 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #12
  br label %894

872:                                              ; preds = %861
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %140) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140)
          to label %873 unwind label %878

873:                                              ; preds = %872
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %141) #12
  %874 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %136)
          to label %875 unwind label %880

875:                                              ; preds = %873
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %141, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1736, ptr noundef %874)
          to label %876 unwind label %880

876:                                              ; preds = %875
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %141, ptr noundef nonnull align 8 dereferenceable(8) %140)
          to label %877 unwind label %882

877:                                              ; preds = %876
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %141) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %141) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #12
  br label %886

878:                                              ; preds = %872
  %879 = landingpad { ptr, i32 }
          cleanup
  br label %885

880:                                              ; preds = %875, %873
  %881 = landingpad { ptr, i32 }
          cleanup
  br label %884

882:                                              ; preds = %876
  %883 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %141) #12
  br label %884

884:                                              ; preds = %882, %880
  %.pn316 = phi { ptr, i32 } [ %883, %882 ], [ %881, %880 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %141) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #12
  br label %885

885:                                              ; preds = %884, %878
  %.pn316.pn = phi { ptr, i32 } [ %.pn316, %884 ], [ %879, %878 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %136) #12
  br label %894

886:                                              ; preds = %861, %877
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %136) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %136) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %142) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %143) #12
  invoke void @_ZN3fmt3v1019basic_format_stringIcJiEEC2IA17_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %144, ptr noundef nonnull align 1 dereferenceable(17) @.str.1810)
          to label %887 unwind label %895

887:                                              ; preds = %886
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %145) #12
  store i32 42, ptr %145, align 4, !tbaa !5
  %888 = load ptr, ptr %144, align 8
  %889 = getelementptr inbounds i8, ptr %144, i64 8
  %890 = load i64, ptr %889, align 8
  invoke void @_ZN3fmt3v106formatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %143, ptr %888, i64 %890, ptr noundef nonnull align 4 dereferenceable(4) %145)
          to label %891 unwind label %897

891:                                              ; preds = %887
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA17_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %142, ptr noundef nonnull @.str.1893, ptr noundef nonnull @.str.1811, ptr noundef nonnull align 8 dereferenceable(32) %143, ptr noundef nonnull align 1 dereferenceable(17) @.str.1813)
          to label %892 unwind label %899

892:                                              ; preds = %891
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %145) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %143) #12
  %893 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %142)
  br i1 %893, label %917, label %903

894:                                              ; preds = %885, %871
  %.pn316.pn.pn = phi { ptr, i32 } [ %.pn316.pn, %885 ], [ %.pn313.pn, %871 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %136) #12
  br label %1073

895:                                              ; preds = %886
  %896 = landingpad { ptr, i32 }
          cleanup
  br label %902

897:                                              ; preds = %887
  %898 = landingpad { ptr, i32 }
          cleanup
  br label %901

899:                                              ; preds = %891
  %900 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #12
  br label %901

901:                                              ; preds = %899, %897
  %.pn320 = phi { ptr, i32 } [ %900, %899 ], [ %898, %897 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %145) #12
  br label %902

902:                                              ; preds = %901, %895
  %.pn320.pn = phi { ptr, i32 } [ %.pn320, %901 ], [ %896, %895 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %143) #12
  br label %936

903:                                              ; preds = %892
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %146) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %146)
          to label %904 unwind label %909

904:                                              ; preds = %903
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %147) #12
  %905 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %142)
          to label %906 unwind label %911

906:                                              ; preds = %904
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %147, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1738, ptr noundef %905)
          to label %907 unwind label %911

907:                                              ; preds = %906
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %147, ptr noundef nonnull align 8 dereferenceable(8) %146)
          to label %908 unwind label %913

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

909:                                              ; preds = %903
  %910 = landingpad { ptr, i32 }
          cleanup
  br label %916

911:                                              ; preds = %906, %904
  %912 = landingpad { ptr, i32 }
          cleanup
  br label %915

913:                                              ; preds = %907
  %914 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #12
  br label %915

915:                                              ; preds = %913, %911
  %.pn323 = phi { ptr, i32 } [ %914, %913 ], [ %912, %911 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %147) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #12
  br label %916

916:                                              ; preds = %915, %909
  %.pn323.pn = phi { ptr, i32 } [ %.pn323, %915 ], [ %910, %909 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %146) #12
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %142) #12
  br label %936

917:                                              ; preds = %892, %908
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %142) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %142) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %148) #12
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %148)
          to label %918 unwind label %937

918:                                              ; preds = %917
  %919 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %148)
  br i1 %919, label %920, label %991

920:                                              ; preds = %918
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %149) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %150) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull @.str.559, ptr noundef nonnull align 1 dereferenceable(1) %150)
          to label %921 unwind label %939

921:                                              ; preds = %920
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %150) #12
  %922 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %923 unwind label %941

923:                                              ; preds = %921
  br i1 %922, label %924, label %.critedge355

924:                                              ; preds = %923
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %153, ptr noundef nonnull @.str.1894)
          to label %925 unwind label %941

925:                                              ; preds = %924
  %926 = load ptr, ptr %153, align 8
  %927 = getelementptr inbounds i8, ptr %153, i64 8
  %928 = load i64, ptr %927, align 8
  %929 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %926, i64 %928)
  %930 = extractvalue { ptr, i64 } %929, 0
  %931 = extractvalue { ptr, i64 } %929, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJRA10_KcEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %152, ptr %930, i64 %931)
  %932 = load ptr, ptr %152, align 8
  %933 = getelementptr inbounds i8, ptr %152, i64 8
  %934 = load i64, ptr %933, align 8
  invoke void @_ZN3fmt3v106formatIJRA10_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %151, ptr %932, i64 %934, ptr noundef nonnull align 1 dereferenceable(10) @.str.1895)
          to label %935 unwind label %941

935:                                              ; preds = %925
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #12
  br label %.critedge355

936:                                              ; preds = %916, %902
  %.pn323.pn.pn = phi { ptr, i32 } [ %.pn323.pn, %916 ], [ %.pn320.pn, %902 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %142) #12
  br label %1073

937:                                              ; preds = %917
  %938 = landingpad { ptr, i32 }
          cleanup
  br label %1021

939:                                              ; preds = %920
  %940 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %150) #12
  br label %990

941:                                              ; preds = %925, %924, %921
  %942 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %943 = extractvalue { ptr, i32 } %942, 0
  %944 = extractvalue { ptr, i32 } %942, 1
  %945 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #12
  %946 = icmp eq i32 %944, %945
  %947 = call ptr @__cxa_begin_catch(ptr %943) #12
  br i1 %946, label %948, label %972

948:                                              ; preds = %941
  %949 = load ptr, ptr %947, align 8, !tbaa !13
  %950 = getelementptr inbounds i8, ptr %949, i64 16
  %951 = load ptr, ptr %950, align 8
  %952 = call noundef ptr %951(ptr noundef nonnull align 8 dereferenceable(16) %947) #12
  %953 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef %952)
          to label %954 unwind label %979

954:                                              ; preds = %948
  br i1 %953, label %955, label %983

955:                                              ; preds = %954
  %956 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA109_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %148, ptr noundef nonnull align 1 dereferenceable(109) @.str.1897)
          to label %957 unwind label %979

957:                                              ; preds = %955
  %958 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %956, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %959 unwind label %979

959:                                              ; preds = %957
  %960 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %958, ptr noundef nonnull align 8 dereferenceable(32) %149)
          to label %961 unwind label %979

961:                                              ; preds = %959
  %962 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %960, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %963 unwind label %979

963:                                              ; preds = %961
  %964 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %962, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %965 unwind label %979

965:                                              ; preds = %963
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %154) #12
  %966 = load ptr, ptr %947, align 8, !tbaa !13
  %967 = getelementptr inbounds i8, ptr %966, i64 16
  %968 = load ptr, ptr %967, align 8
  %969 = call noundef ptr %968(ptr noundef nonnull align 8 dereferenceable(16) %947) #12
  store ptr %969, ptr %154, align 8, !tbaa !9
  %970 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %964, ptr noundef nonnull align 8 dereferenceable(8) %154)
          to label %971 unwind label %981

971:                                              ; preds = %965
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %154) #12
  br label %983

972:                                              ; preds = %941
  %973 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA152_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %148, ptr noundef nonnull align 1 dereferenceable(152) @.str.1896)
          to label %974 unwind label %975

974:                                              ; preds = %972
  invoke void @__cxa_end_catch()
          to label %.thread368 unwind label %977

975:                                              ; preds = %972
  %976 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %989 unwind label %1077

977:                                              ; preds = %.critedge355, %974
  %978 = landingpad { ptr, i32 }
          cleanup
  br label %989

979:                                              ; preds = %963, %961, %959, %957, %955, %948
  %980 = landingpad { ptr, i32 }
          cleanup
  br label %988

981:                                              ; preds = %965
  %982 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %154) #12
  br label %988

983:                                              ; preds = %954, %971
  invoke void @__cxa_end_catch()
          to label %984 unwind label %986

984:                                              ; preds = %983
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #12
  br i1 %953, label %991, label %.thread371

.critedge355:                                     ; preds = %923, %935
  %985 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA143_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %148, ptr noundef nonnull align 1 dereferenceable(143) @.str.1898)
          to label %.thread368 unwind label %977

986:                                              ; preds = %983
  %987 = landingpad { ptr, i32 }
          cleanup
  br label %989

988:                                              ; preds = %981, %979
  %.pn327 = phi { ptr, i32 } [ %982, %981 ], [ %980, %979 ]
  invoke void @__cxa_end_catch()
          to label %989 unwind label %1077

.thread368:                                       ; preds = %974, %.critedge355
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #12
  br label %991

989:                                              ; preds = %986, %988, %975, %977
  %.pn331 = phi { ptr, i32 } [ %978, %977 ], [ %976, %975 ], [ %987, %986 ], [ %.pn327, %988 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #12
  br label %990

990:                                              ; preds = %989, %939
  %.pn331.pn = phi { ptr, i32 } [ %.pn331, %989 ], [ %940, %939 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #12
  br label %1020

991:                                              ; preds = %984, %.thread368, %918
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %155) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %155)
          to label %992 unwind label %997

992:                                              ; preds = %991
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %156) #12
  %993 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %148)
          to label %994 unwind label %999

994:                                              ; preds = %992
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %156, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1741, ptr noundef %993)
          to label %995 unwind label %999

995:                                              ; preds = %994
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %156, ptr noundef nonnull align 8 dereferenceable(8) %155)
          to label %996 unwind label %1001

996:                                              ; preds = %995
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %156) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %155) #12
  br label %.thread371

997:                                              ; preds = %991
  %998 = landingpad { ptr, i32 }
          cleanup
  br label %1004

999:                                              ; preds = %994, %992
  %1000 = landingpad { ptr, i32 }
          cleanup
  br label %1003

1001:                                             ; preds = %995
  %1002 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #12
  br label %1003

1003:                                             ; preds = %1001, %999
  %.pn334 = phi { ptr, i32 } [ %1002, %1001 ], [ %1000, %999 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %156) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #12
  br label %1004

1004:                                             ; preds = %1003, %997
  %.pn334.pn = phi { ptr, i32 } [ %.pn334, %1003 ], [ %998, %997 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %155) #12
  br label %1020

.thread371:                                       ; preds = %984, %996
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %148) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %148) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %157) #12
  invoke void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %157)
          to label %1005 unwind label %1022

1005:                                             ; preds = %.thread371
  %1006 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %157)
  br i1 %1006, label %1007, label %1056

1007:                                             ; preds = %1005
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %158) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %159) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull @.str.1610, ptr noundef nonnull align 1 dereferenceable(1) %159)
          to label %1008 unwind label %1024

1008:                                             ; preds = %1007
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %159) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %160) #12
  %1009 = load ptr, ptr @stdout, align 8, !tbaa !9
  invoke void @_ZN15output_redirectC1EP8_IO_FILEb(ptr noundef nonnull align 8 dereferenceable(16) %160, ptr noundef %1009, i1 noundef zeroext true)
          to label %1010 unwind label %1026

1010:                                             ; preds = %1008
  %1011 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1012 unwind label %1028

1012:                                             ; preds = %1010
  br i1 %1011, label %1013, label %1032

1013:                                             ; preds = %1012
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdEEC2IA3_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %161, ptr noundef nonnull align 1 dereferenceable(3) @.str.223)
          to label %1014 unwind label %1028

1014:                                             ; preds = %1013
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %162) #12
  %1015 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #12
  store double %1015, ptr %162, align 8, !tbaa !15
  %1016 = load ptr, ptr %161, align 8
  %1017 = getelementptr inbounds i8, ptr %161, i64 8
  %1018 = load i64, ptr %1017, align 8
  invoke void @_ZN3fmt3v105printIJdEEEvNS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOS4_(ptr %1016, i64 %1018, ptr noundef nonnull align 8 dereferenceable(8) %162)
          to label %1019 unwind label %1030

1019:                                             ; preds = %1014
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %162) #12
  br label %1032

1020:                                             ; preds = %1004, %990
  %.pn334.pn.pn = phi { ptr, i32 } [ %.pn334.pn, %1004 ], [ %.pn331.pn, %990 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %148) #12
  br label %1021

1021:                                             ; preds = %1020, %937
  %.pn334.pn.pn.pn = phi { ptr, i32 } [ %.pn334.pn.pn, %1020 ], [ %938, %937 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %148) #12
  br label %1073

1022:                                             ; preds = %.thread371
  %1023 = landingpad { ptr, i32 }
          cleanup
  br label %1072

1024:                                             ; preds = %1007
  %1025 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %159) #12
  br label %1055

1026:                                             ; preds = %1008
  %1027 = landingpad { ptr, i32 }
          cleanup
  br label %1054

1028:                                             ; preds = %1013, %1010
  %1029 = landingpad { ptr, i32 }
          cleanup
  br label %1053

1030:                                             ; preds = %1014
  %1031 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %162) #12
  br label %1053

1032:                                             ; preds = %1012, %1019
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %163) #12
  invoke void @_ZN15output_redirect16restore_and_readB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %163, ptr noundef nonnull align 8 dereferenceable(16) %160)
          to label %1033 unwind label %1047

1033:                                             ; preds = %1032
  %1034 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef nonnull align 8 dereferenceable(32) %158) #12
  br i1 %1034, label %1035, label %.critedge375

1035:                                             ; preds = %1033
  %1036 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA86_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %157, ptr noundef nonnull align 1 dereferenceable(86) @.str.1899)
          to label %1037 unwind label %1049

1037:                                             ; preds = %1035
  %1038 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1036, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %1039 unwind label %1049

1039:                                             ; preds = %1037
  %1040 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1038, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %1041 unwind label %1049

1041:                                             ; preds = %1039
  %1042 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1040, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %1043 unwind label %1049

1043:                                             ; preds = %1041
  %1044 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1042, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %1045 unwind label %1049

1045:                                             ; preds = %1043
  %1046 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %1044, ptr noundef nonnull align 8 dereferenceable(32) %163)
          to label %1051 unwind label %1049

1047:                                             ; preds = %1032
  %1048 = landingpad { ptr, i32 }
          cleanup
  br label %1052

1049:                                             ; preds = %1045, %1043, %1041, %1039, %1037, %1035
  %1050 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #12
  br label %1052

1051:                                             ; preds = %1045
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #12
  call void @_ZN15output_redirectD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #12
  br label %1056

1052:                                             ; preds = %1049, %1047
  %.pn339 = phi { ptr, i32 } [ %1050, %1049 ], [ %1048, %1047 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #12
  br label %1053

1053:                                             ; preds = %1052, %1030, %1028
  %.pn339.pn = phi { ptr, i32 } [ %.pn339, %1052 ], [ %1031, %1030 ], [ %1029, %1028 ]
  call void @_ZN15output_redirectD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #12
  br label %1054

1054:                                             ; preds = %1053, %1026
  %.pn339.pn.pn = phi { ptr, i32 } [ %.pn339.pn, %1053 ], [ %1027, %1026 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #12
  br label %1055

1055:                                             ; preds = %1054, %1024
  %.pn339.pn.pn.pn = phi { ptr, i32 } [ %.pn339.pn.pn, %1054 ], [ %1025, %1024 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #12
  br label %1071

1056:                                             ; preds = %1051, %1005
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %164) #12
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %164)
          to label %1057 unwind label %1062

1057:                                             ; preds = %1056
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %165) #12
  %1058 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %157)
          to label %1059 unwind label %1064

1059:                                             ; preds = %1057
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %165, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 1744, ptr noundef %1058)
          to label %1060 unwind label %1064

1060:                                             ; preds = %1059
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %165, ptr noundef nonnull align 8 dereferenceable(8) %164)
          to label %1061 unwind label %1066

1061:                                             ; preds = %1060
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %165) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %165) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %164) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %164) #12
  br label %1070

1062:                                             ; preds = %1056
  %1063 = landingpad { ptr, i32 }
          cleanup
  br label %1069

1064:                                             ; preds = %1059, %1057
  %1065 = landingpad { ptr, i32 }
          cleanup
  br label %1068

1066:                                             ; preds = %1060
  %1067 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %165) #12
  br label %1068

1068:                                             ; preds = %1066, %1064
  %.pn344 = phi { ptr, i32 } [ %1067, %1066 ], [ %1065, %1064 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %165) #12
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %164) #12
  br label %1069

1069:                                             ; preds = %1068, %1062
  %.pn344.pn = phi { ptr, i32 } [ %.pn344, %1068 ], [ %1063, %1062 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %164) #12
  br label %1071

.critedge375:                                     ; preds = %1033
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #12
  call void @_ZN15output_redirectD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #12
  br label %1070

1070:                                             ; preds = %.critedge375, %1061
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %157) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %157) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %53) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  call void @_ZN3fmt3v1019basic_memory_bufferIcLm500ESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(536) %14) #12
  call void @llvm.lifetime.end.p0(i64 536, ptr nonnull %14) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #12
  ret void

1071:                                             ; preds = %1069, %1055
  %.pn344.pn.pn = phi { ptr, i32 } [ %.pn344.pn, %1069 ], [ %.pn339.pn.pn.pn, %1055 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %157) #12
  br label %1072

1072:                                             ; preds = %1071, %1022
  %.pn344.pn.pn.pn = phi { ptr, i32 } [ %.pn344.pn.pn, %1071 ], [ %1023, %1022 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %157) #12
  br label %1073

1073:                                             ; preds = %1072, %1021, %936, %894, %863, %832, %801, %770, %739, %711, %683, %655, %627, %599, %568, %537, %506
  %.pn344.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn344.pn.pn.pn, %1072 ], [ %.pn334.pn.pn.pn, %1021 ], [ %.pn323.pn.pn, %936 ], [ %.pn316.pn.pn, %894 ], [ %.pn309.pn.pn, %863 ], [ %.pn302.pn.pn, %832 ], [ %.pn295.pn.pn, %801 ], [ %.pn288.pn.pn, %770 ], [ %.pn281.pn.pn, %739 ], [ %.pn275.pn.pn, %711 ], [ %.pn269.pn.pn, %683 ], [ %.pn263.pn.pn, %655 ], [ %.pn257.pn.pn, %627 ], [ %.pn251.pn.pn, %599 ], [ %.pn244.pn.pn, %568 ], [ %.pn237.pn.pn, %537 ], [ %.pn230.pn.pn, %506 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %53) #12
  br label %1074

1074:                                             ; preds = %283, %388, %416, %444, %475, %1073, %260
  %.pn344.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %261, %260 ], [ %.pn344.pn.pn.pn.pn, %1073 ], [ %.pn223.pn.pn, %475 ], [ %.pn216.pn.pn, %444 ], [ %.pn210.pn.pn, %416 ], [ %.pn203.pn.pn.pn, %388 ], [ %.pn186.pn.pn, %283 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  br label %1075

1075:                                             ; preds = %1074, %259, %233, %231
  %.pn344.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn344.pn.pn.pn.pn.pn.pn, %1074 ], [ %.pn182.pn.pn, %259 ], [ %234, %233 ], [ %232, %231 ]
  call void @_ZN3fmt3v1019basic_memory_bufferIcLm500ESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(536) %14) #12
  call void @llvm.lifetime.end.p0(i64 536, ptr nonnull %14) #12
  br label %1076

1076:                                             ; preds = %1075, %230, %195
  %.pn344.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn344.pn.pn.pn.pn.pn.pn.pn, %1075 ], [ %.pn176.pn.pn, %230 ], [ %.pn.pn.pn, %195 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #12
  resume { ptr, i32 } %.pn344.pn.pn.pn.pn.pn.pn.pn.pn

1077:                                             ; preds = %988, %975, %363, %350
  %1078 = landingpad { ptr, i32 }
          catch ptr null
  %1079 = extractvalue { ptr, i32 } %1078, 0
  call void @__clang_call_terminate(ptr %1079) #15
  unreachable

1080:                                             ; preds = %303
  unreachable
}

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local ptr @_ZN3fmt3v109format_toISt20back_insert_iteratorINS0_19basic_memory_bufferIcLm500ESaIcEEEEJiETnNSt9enable_ifIXsr6detail18is_output_iteratorIT_cEE5valueEiE4typeELi0EEES8_S8_NS0_19basic_format_stringIcJDpNS0_13type_identityIT0_E4typeEEEEDpOSD_(ptr, ptr, i64, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt13back_inserterIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEESt20back_insert_iteratorIT_ERS6_(ptr noundef nonnull align 8 dereferenceable(536)) local_unnamed_addr #9

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z10safe_fopenPKcS0_(ptr noundef, ptr noundef) local_unnamed_addr #9

; Function Attrs: nofree nounwind
declare noundef i32 @fclose(ptr nocapture noundef) local_unnamed_addr #10

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #11

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

declare void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z20system_error_messageiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3fmt3v1012system_errorIJRPKcEEESt12system_erroriNS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOS8_(ptr dead_on_unwind noalias writable sret(%"class.std::system_error") align 8, i32 noundef, ptr, i64, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

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

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

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

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

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA10_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(10)) local_unnamed_addr #6

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA31_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(31), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA14_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(14)) local_unnamed_addr #6

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v106formatIJRA9_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(9)) local_unnamed_addr #6

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelper7CompareIA28_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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 1 dereferenceable(28), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3fmt3v105printIJdEEEvNS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOS4_(ptr, i64, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; 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 = { nofree 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 #11 = { mustprogress nofree nosync nounwind willreturn memory(none) "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 #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { noreturn }
attributes #15 = { 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 = !{!"any pointer", !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 = !{!16, !16, i64 0}
!16 = !{!"double", !7, i64 0}
!17 = !{!7, !7, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass