; LLVM IR from WayneLin92/SSeqCpp :: thirdparty/fmt/test/format-test.ll (ZN31format_test_auto_arg_index_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.138" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_string_view" = type { ptr, i64 }
%"class.testing::Message" = type { %"class.std::unique_ptr.2" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.std::allocator" = type { i8 }
%"class.fmt::v10::basic_format_string.139" = type { %"class.fmt::v10::basic_string_view" }
%"struct.fmt::v10::runtime_format_string" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.140" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.43" = type { %"class.fmt::v10::basic_string_view" }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZTIN3fmt3v1012format_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.223 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [114 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv() #3

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

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN31format_test_auto_arg_index_Test8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(16) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.testing::AssertionResult", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.fmt::v10::basic_format_string.138", align 8
  %6 = alloca i8, align 1
  %7 = alloca i8, align 1
  %8 = alloca i8, align 1
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.testing::Message", align 8
  %12 = alloca %"class.testing::internal::AssertHelper", align 8
  %13 = alloca %"class.testing::AssertionResult", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca i8, align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.fmt::v10::basic_format_string.139", align 8
  %19 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %20 = alloca %"class.fmt::v10::basic_string_view", align 8
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca %"class.testing::Message", align 8
  %27 = alloca %"class.testing::internal::AssertHelper", align 8
  %28 = alloca %"class.testing::AssertionResult", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca i8, align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.fmt::v10::basic_format_string.139", align 8
  %34 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %35 = alloca %"class.fmt::v10::basic_string_view", align 8
  %36 = alloca i8, align 1
  %37 = alloca i8, align 1
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca %"class.testing::Message", align 8
  %41 = alloca %"class.testing::internal::AssertHelper", align 8
  %42 = alloca %"class.testing::AssertionResult", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %45 = alloca double, align 8
  %46 = alloca i32, align 4
  %47 = alloca %"class.testing::Message", align 8
  %48 = alloca %"class.testing::internal::AssertHelper", align 8
  %49 = alloca %"class.testing::AssertionResult", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca i8, align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %55 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %56 = alloca %"class.fmt::v10::basic_string_view", align 8
  %57 = alloca double, align 8
  %58 = alloca i32, align 4
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca %"class.testing::Message", align 8
  %62 = alloca %"class.testing::internal::AssertHelper", align 8
  %63 = alloca %"class.testing::AssertionResult", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca i8, align 1
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %69 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %70 = alloca %"class.fmt::v10::basic_string_view", align 8
  %71 = alloca double, align 8
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca %"class.testing::Message", align 8
  %76 = alloca %"class.testing::internal::AssertHelper", align 8
  %77 = alloca %"class.testing::AssertionResult", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca i8, align 1
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.fmt::v10::basic_format_string.43", align 8
  %83 = alloca %"struct.fmt::v10::runtime_format_string", align 8
  %84 = alloca %"class.fmt::v10::basic_string_view", align 8
  %85 = alloca ptr, align 8
  %86 = alloca ptr, align 8
  %87 = alloca %"class.testing::Message", align 8
  %88 = alloca %"class.testing::internal::AssertHelper", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %89 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJcccEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 1 dereferenceable(7) @.str.379)
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #10
  store i8 97, ptr %6, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #10
  store i8 98, ptr %7, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #10
  store i8 99, ptr %8, align 1, !tbaa !9
  %90 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
  %91 = load ptr, ptr %90, align 8
  %92 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
  %93 = load i64, ptr %92, align 8
  call void @_ZN3fmt3v106formatIJcccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr %91, i64 %93, ptr noundef nonnull align 1 dereferenceable(1) %6, ptr noundef nonnull align 1 dereferenceable(1) %7, ptr noundef nonnull align 1 dereferenceable(1) %8)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %3, ptr noundef @.str.377, ptr noundef @.str.378, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 1 dereferenceable(4) @.str.380)
          to label %94 unwind label %98

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

96:                                               ; preds = %94
  br i1 %95, label %97, label %106

97:                                               ; preds = %96
  br label %126

98:                                               ; preds = %1
  %99 = landingpad { ptr, i32 }
          cleanup
  %100 = extractvalue { ptr, i32 } %99, 0
  store ptr %100, ptr %9, align 8
  %101 = extractvalue { ptr, i32 } %99, 1
  store i32 %101, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #10
  br label %157

102:                                              ; preds = %94
  %103 = landingpad { ptr, i32 }
          cleanup
  %104 = extractvalue { ptr, i32 } %103, 0
  store ptr %104, ptr %9, align 8
  %105 = extractvalue { ptr, i32 } %103, 1
  store i32 %105, ptr %10, align 4
  br label %156

106:                                              ; preds = %96
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %107 unwind label %112

107:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  %108 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
          to label %109 unwind label %116

109:                                              ; preds = %107
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %12, i32 noundef 1, ptr noundef @.str.3, i32 noundef 562, ptr noundef %108)
          to label %110 unwind label %116

110:                                              ; preds = %109
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %111 unwind label %120

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

112:                                              ; preds = %106
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %9, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %10, align 4
  br label %125

116:                                              ; preds = %109, %107
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %9, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %10, align 4
  br label %124

120:                                              ; preds = %110
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %9, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %10, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  br label %124

124:                                              ; preds = %120, %116
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #10
  br label %125

125:                                              ; preds = %124, %112
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  br label %156

126:                                              ; preds = %111, %97
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %13)
  %127 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %128 unwind label %158

128:                                              ; preds = %126
  br i1 %127, label %129, label %255

129:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.381, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %130 unwind label %162

130:                                              ; preds = %129
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #10
  store i8 0, ptr %16, align 1, !tbaa !10
  %131 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %132 unwind label %166

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

133:                                              ; preds = %132
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef @.str.382)
          to label %134 unwind label %166

134:                                              ; preds = %133
  %135 = getelementptr inbounds { ptr, i64 }, ptr %20, i32 0, i32 0
  %136 = load ptr, ptr %135, align 8
  %137 = getelementptr inbounds { ptr, i64 }, ptr %20, i32 0, i32 1
  %138 = load i64, ptr %137, align 8
  %139 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %136, i64 %138)
          to label %140 unwind label %166

140:                                              ; preds = %134
  %141 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %19, i32 0, i32 0
  %142 = getelementptr inbounds { ptr, i64 }, ptr %141, i32 0, i32 0
  %143 = extractvalue { ptr, i64 } %139, 0
  store ptr %143, ptr %142, align 8
  %144 = getelementptr inbounds { ptr, i64 }, ptr %141, i32 0, i32 1
  %145 = extractvalue { ptr, i64 } %139, 1
  store i64 %145, ptr %144, align 8
  %146 = getelementptr inbounds { ptr, i64 }, ptr %19, i32 0, i32 0
  %147 = load ptr, ptr %146, align 8
  %148 = getelementptr inbounds { ptr, i64 }, ptr %19, i32 0, i32 1
  %149 = load i64, ptr %148, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJccEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr %147, i64 %149)
          to label %150 unwind label %166

150:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #10
  store i8 97, ptr %21, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #10
  store i8 98, ptr %22, align 1, !tbaa !9
  %151 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 0
  %152 = load ptr, ptr %151, align 8
  %153 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 1
  %154 = load i64, ptr %153, align 8
  invoke void @_ZN3fmt3v106formatIJccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr %152, i64 %154, ptr noundef nonnull align 1 dereferenceable(1) %21, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %155 unwind label %170

155:                                              ; preds = %150
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #10
  br label %212

156:                                              ; preds = %125, %102
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #10
  br label %157

157:                                              ; preds = %156, %98
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #10
  br label %909

158:                                              ; preds = %126
  %159 = landingpad { ptr, i32 }
          cleanup
  %160 = extractvalue { ptr, i32 } %159, 0
  store ptr %160, ptr %9, align 8
  %161 = extractvalue { ptr, i32 } %159, 1
  store i32 %161, ptr %10, align 4
  br label %306

162:                                              ; preds = %129
  %163 = landingpad { ptr, i32 }
          cleanup
  %164 = extractvalue { ptr, i32 } %163, 0
  store ptr %164, ptr %9, align 8
  %165 = extractvalue { ptr, i32 } %163, 1
  store i32 %165, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #10
  br label %254

166:                                              ; preds = %140, %134, %133, %130
  %167 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %9, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %10, align 4
  br label %174

170:                                              ; preds = %150
  %171 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %9, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #10
  br label %174

174:                                              ; preds = %170, %166
  %175 = load i32, ptr %10, align 4
  %176 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %177 = icmp eq i32 %175, %176
  br i1 %177, label %178, label %206

178:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #10
  %179 = load ptr, ptr %9, align 8
  %180 = call ptr @__cxa_begin_catch(ptr %179) #10
  store ptr %180, ptr %24, align 8
  %181 = load ptr, ptr %24, align 8, !tbaa !5
  %182 = load ptr, ptr %181, align 8, !tbaa !12
  %183 = getelementptr inbounds ptr, ptr %182, i64 2
  %184 = load ptr, ptr %183, align 8
  %185 = call noundef ptr %184(ptr noundef nonnull align 8 dereferenceable(16) %181) #10
  %186 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %185)
          to label %187 unwind label %223

187:                                              ; preds = %178
  br i1 %186, label %188, label %231

188:                                              ; preds = %187
  %189 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA93_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 1 dereferenceable(93) @.str.384)
          to label %190 unwind label %223

190:                                              ; preds = %188
  %191 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %189, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %192 unwind label %223

192:                                              ; preds = %190
  %193 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %191, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %194 unwind label %223

194:                                              ; preds = %192
  %195 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %193, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %196 unwind label %223

196:                                              ; preds = %194
  %197 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %195, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %198 unwind label %223

198:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %199 = load ptr, ptr %24, align 8, !tbaa !5
  %200 = load ptr, ptr %199, align 8, !tbaa !12
  %201 = getelementptr inbounds ptr, ptr %200, i64 2
  %202 = load ptr, ptr %201, align 8
  %203 = call noundef ptr %202(ptr noundef nonnull align 8 dereferenceable(16) %199) #10
  store ptr %203, ptr %25, align 8, !tbaa !5
  %204 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %205 unwind label %227

205:                                              ; preds = %198
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  store i32 2, ptr %23, align 4
  br label %232

206:                                              ; preds = %174
  %207 = load ptr, ptr %9, align 8
  %208 = call ptr @__cxa_begin_catch(ptr %207) #10
  %209 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA136_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 1 dereferenceable(136) @.str.383)
          to label %210 unwind label %213

210:                                              ; preds = %206
  store i32 2, ptr %23, align 4
  invoke void @__cxa_end_catch()
          to label %217 unwind label %218

211:                                              ; preds = %132
  br label %212

212:                                              ; preds = %211, %155
  br label %236

213:                                              ; preds = %206
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %9, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %222 unwind label %914

217:                                              ; preds = %210
  br label %250

218:                                              ; preds = %239, %210
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %9, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %10, align 4
  br label %253

222:                                              ; preds = %213
  br label %253

223:                                              ; preds = %196, %194, %192, %190, %188, %178
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %9, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %10, align 4
  br label %246

227:                                              ; preds = %198
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %9, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  br label %246

231:                                              ; preds = %187
  store i8 1, ptr %16, align 1, !tbaa !10
  store i32 0, ptr %23, align 4
  br label %232

232:                                              ; preds = %231, %205
  invoke void @__cxa_end_catch()
          to label %233 unwind label %242

233:                                              ; preds = %232
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  %234 = load i32, ptr %23, align 4
  switch i32 %234, label %250 [
    i32 0, label %235
  ]

235:                                              ; preds = %233
  br label %236

236:                                              ; preds = %235, %212
  %237 = load i8, ptr %16, align 1, !tbaa !10, !range !14, !noundef !15
  %238 = trunc i8 %237 to i1
  br i1 %238, label %249, label %239

239:                                              ; preds = %236
  %240 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA127_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 1 dereferenceable(127) @.str.385)
          to label %241 unwind label %218

241:                                              ; preds = %239
  store i32 2, ptr %23, align 4
  br label %250

242:                                              ; preds = %232
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %9, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %10, align 4
  br label %248

246:                                              ; preds = %227, %223
  invoke void @__cxa_end_catch()
          to label %247 unwind label %914

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247, %242
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  br label %253

249:                                              ; preds = %236
  store i32 0, ptr %23, align 4
  br label %250

250:                                              ; preds = %249, %241, %233, %217
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #10
  %251 = load i32, ptr %23, align 4
  switch i32 %251, label %917 [
    i32 0, label %252
    i32 2, label %256
  ]

252:                                              ; preds = %250
  br label %276

253:                                              ; preds = %248, %222, %218
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  br label %254

254:                                              ; preds = %253, %162
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #10
  br label %306

255:                                              ; preds = %128
  br label %256

256:                                              ; preds = %255, %250
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %257 unwind label %262

257:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #10
  %258 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %259 unwind label %266

259:                                              ; preds = %257
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %27, i32 noundef 1, ptr noundef @.str.3, i32 noundef 564, ptr noundef %258)
          to label %260 unwind label %266

260:                                              ; preds = %259
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %261 unwind label %270

261:                                              ; preds = %260
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %276

262:                                              ; preds = %256
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %9, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %10, align 4
  br label %275

266:                                              ; preds = %259, %257
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %9, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %10, align 4
  br label %274

270:                                              ; preds = %260
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %9, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %10, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  br label %274

274:                                              ; preds = %270, %266
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  br label %275

275:                                              ; preds = %274, %262
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %306

276:                                              ; preds = %261, %252
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %28)
  %277 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %28)
          to label %278 unwind label %307

278:                                              ; preds = %276
  br i1 %277, label %279, label %404

279:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.386, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %280 unwind label %311

280:                                              ; preds = %279
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #10
  store i8 0, ptr %31, align 1, !tbaa !10
  %281 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %282 unwind label %315

282:                                              ; preds = %280
  br i1 %281, label %283, label %360

283:                                              ; preds = %282
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef @.str.387)
          to label %284 unwind label %315

284:                                              ; preds = %283
  %285 = getelementptr inbounds { ptr, i64 }, ptr %35, i32 0, i32 0
  %286 = load ptr, ptr %285, align 8
  %287 = getelementptr inbounds { ptr, i64 }, ptr %35, i32 0, i32 1
  %288 = load i64, ptr %287, align 8
  %289 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %286, i64 %288)
          to label %290 unwind label %315

290:                                              ; preds = %284
  %291 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %34, i32 0, i32 0
  %292 = getelementptr inbounds { ptr, i64 }, ptr %291, i32 0, i32 0
  %293 = extractvalue { ptr, i64 } %289, 0
  store ptr %293, ptr %292, align 8
  %294 = getelementptr inbounds { ptr, i64 }, ptr %291, i32 0, i32 1
  %295 = extractvalue { ptr, i64 } %289, 1
  store i64 %295, ptr %294, align 8
  %296 = getelementptr inbounds { ptr, i64 }, ptr %34, i32 0, i32 0
  %297 = load ptr, ptr %296, align 8
  %298 = getelementptr inbounds { ptr, i64 }, ptr %34, i32 0, i32 1
  %299 = load i64, ptr %298, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJccEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr %297, i64 %299)
          to label %300 unwind label %315

300:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #10
  store i8 97, ptr %36, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #10
  store i8 98, ptr %37, align 1, !tbaa !9
  %301 = getelementptr inbounds { ptr, i64 }, ptr %33, i32 0, i32 0
  %302 = load ptr, ptr %301, align 8
  %303 = getelementptr inbounds { ptr, i64 }, ptr %33, i32 0, i32 1
  %304 = load i64, ptr %303, align 8
  invoke void @_ZN3fmt3v106formatIJccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr %302, i64 %304, ptr noundef nonnull align 1 dereferenceable(1) %36, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %305 unwind label %319

305:                                              ; preds = %300
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #10
  br label %361

306:                                              ; preds = %275, %254, %158
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #10
  br label %909

307:                                              ; preds = %276
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %9, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %10, align 4
  br label %434

311:                                              ; preds = %279
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %9, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #10
  br label %403

315:                                              ; preds = %290, %284, %283, %280
  %316 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %9, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %10, align 4
  br label %323

319:                                              ; preds = %300
  %320 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %9, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #10
  br label %323

323:                                              ; preds = %319, %315
  %324 = load i32, ptr %10, align 4
  %325 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %326 = icmp eq i32 %324, %325
  br i1 %326, label %327, label %355

327:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #10
  %328 = load ptr, ptr %9, align 8
  %329 = call ptr @__cxa_begin_catch(ptr %328) #10
  store ptr %329, ptr %38, align 8
  %330 = load ptr, ptr %38, align 8, !tbaa !5
  %331 = load ptr, ptr %330, align 8, !tbaa !12
  %332 = getelementptr inbounds ptr, ptr %331, i64 2
  %333 = load ptr, ptr %332, align 8
  %334 = call noundef ptr %333(ptr noundef nonnull align 8 dereferenceable(16) %330) #10
  %335 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef %334)
          to label %336 unwind label %372

336:                                              ; preds = %327
  br i1 %335, label %337, label %380

337:                                              ; preds = %336
  %338 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA93_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 1 dereferenceable(93) @.str.389)
          to label %339 unwind label %372

339:                                              ; preds = %337
  %340 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %338, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %341 unwind label %372

341:                                              ; preds = %339
  %342 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %340, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %343 unwind label %372

343:                                              ; preds = %341
  %344 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %342, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %345 unwind label %372

345:                                              ; preds = %343
  %346 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %344, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %347 unwind label %372

347:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %348 = load ptr, ptr %38, align 8, !tbaa !5
  %349 = load ptr, ptr %348, align 8, !tbaa !12
  %350 = getelementptr inbounds ptr, ptr %349, i64 2
  %351 = load ptr, ptr %350, align 8
  %352 = call noundef ptr %351(ptr noundef nonnull align 8 dereferenceable(16) %348) #10
  store ptr %352, ptr %39, align 8, !tbaa !5
  %353 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %346, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %354 unwind label %376

354:                                              ; preds = %347
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  store i32 3, ptr %23, align 4
  br label %381

355:                                              ; preds = %323
  %356 = load ptr, ptr %9, align 8
  %357 = call ptr @__cxa_begin_catch(ptr %356) #10
  %358 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA136_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 1 dereferenceable(136) @.str.388)
          to label %359 unwind label %362

359:                                              ; preds = %355
  store i32 3, ptr %23, align 4
  invoke void @__cxa_end_catch()
          to label %366 unwind label %367

360:                                              ; preds = %282
  br label %361

361:                                              ; preds = %360, %305
  br label %385

362:                                              ; preds = %355
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %9, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %371 unwind label %914

366:                                              ; preds = %359
  br label %399

367:                                              ; preds = %388, %359
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %9, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %10, align 4
  br label %402

371:                                              ; preds = %362
  br label %402

372:                                              ; preds = %345, %343, %341, %339, %337, %327
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %9, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %10, align 4
  br label %395

376:                                              ; preds = %347
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %9, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  br label %395

380:                                              ; preds = %336
  store i8 1, ptr %31, align 1, !tbaa !10
  store i32 0, ptr %23, align 4
  br label %381

381:                                              ; preds = %380, %354
  invoke void @__cxa_end_catch()
          to label %382 unwind label %391

382:                                              ; preds = %381
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  %383 = load i32, ptr %23, align 4
  switch i32 %383, label %399 [
    i32 0, label %384
  ]

384:                                              ; preds = %382
  br label %385

385:                                              ; preds = %384, %361
  %386 = load i8, ptr %31, align 1, !tbaa !10, !range !14, !noundef !15
  %387 = trunc i8 %386 to i1
  br i1 %387, label %398, label %388

388:                                              ; preds = %385
  %389 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA127_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 1 dereferenceable(127) @.str.390)
          to label %390 unwind label %367

390:                                              ; preds = %388
  store i32 3, ptr %23, align 4
  br label %399

391:                                              ; preds = %381
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %9, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %10, align 4
  br label %397

395:                                              ; preds = %376, %372
  invoke void @__cxa_end_catch()
          to label %396 unwind label %914

396:                                              ; preds = %395
  br label %397

397:                                              ; preds = %396, %391
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  br label %402

398:                                              ; preds = %385
  store i32 0, ptr %23, align 4
  br label %399

399:                                              ; preds = %398, %390, %382, %366
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #10
  %400 = load i32, ptr %23, align 4
  switch i32 %400, label %917 [
    i32 0, label %401
    i32 3, label %405
  ]

401:                                              ; preds = %399
  br label %425

402:                                              ; preds = %397, %371, %367
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  br label %403

403:                                              ; preds = %402, %311
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #10
  br label %434

404:                                              ; preds = %278
  br label %405

405:                                              ; preds = %404, %399
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %406 unwind label %411

406:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  %407 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %28)
          to label %408 unwind label %415

408:                                              ; preds = %406
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %41, i32 noundef 1, ptr noundef @.str.3, i32 noundef 566, ptr noundef %407)
          to label %409 unwind label %415

409:                                              ; preds = %408
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %410 unwind label %419

410:                                              ; preds = %409
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  br label %425

411:                                              ; preds = %405
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %9, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %10, align 4
  br label %424

415:                                              ; preds = %408, %406
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %9, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %10, align 4
  br label %423

419:                                              ; preds = %409
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %9, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %10, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #10
  br label %423

423:                                              ; preds = %419, %415
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #10
  br label %424

424:                                              ; preds = %423, %411
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  br label %434

425:                                              ; preds = %410, %401
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef nonnull align 1 dereferenceable(7) @.str.393)
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  store double 1.234500e+00, ptr %45, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  store i32 2, ptr %46, align 4, !tbaa !18
  %426 = getelementptr inbounds { ptr, i64 }, ptr %44, i32 0, i32 0
  %427 = load ptr, ptr %426, align 8
  %428 = getelementptr inbounds { ptr, i64 }, ptr %44, i32 0, i32 1
  %429 = load i64, ptr %428, align 8
  call void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr %427, i64 %429, ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 4 dereferenceable(4) %46)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %42, ptr noundef @.str.391, ptr noundef @.str.392, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 1 dereferenceable(4) @.str.394)
          to label %430 unwind label %435

430:                                              ; preds = %425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #10
  %431 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %432 unwind label %439

432:                                              ; preds = %430
  br i1 %431, label %433, label %443

433:                                              ; preds = %432
  br label %463

434:                                              ; preds = %424, %403, %307
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #10
  br label %909

435:                                              ; preds = %425
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %9, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #10
  br label %494

439:                                              ; preds = %430
  %440 = landingpad { ptr, i32 }
          cleanup
  %441 = extractvalue { ptr, i32 } %440, 0
  store ptr %441, ptr %9, align 8
  %442 = extractvalue { ptr, i32 } %440, 1
  store i32 %442, ptr %10, align 4
  br label %493

443:                                              ; preds = %432
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %444 unwind label %449

444:                                              ; preds = %443
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  %445 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %446 unwind label %453

446:                                              ; preds = %444
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %48, i32 noundef 1, ptr noundef @.str.3, i32 noundef 567, ptr noundef %445)
          to label %447 unwind label %453

447:                                              ; preds = %446
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %448 unwind label %457

448:                                              ; preds = %447
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  br label %463

449:                                              ; preds = %443
  %450 = landingpad { ptr, i32 }
          cleanup
  %451 = extractvalue { ptr, i32 } %450, 0
  store ptr %451, ptr %9, align 8
  %452 = extractvalue { ptr, i32 } %450, 1
  store i32 %452, ptr %10, align 4
  br label %462

453:                                              ; preds = %446, %444
  %454 = landingpad { ptr, i32 }
          cleanup
  %455 = extractvalue { ptr, i32 } %454, 0
  store ptr %455, ptr %9, align 8
  %456 = extractvalue { ptr, i32 } %454, 1
  store i32 %456, ptr %10, align 4
  br label %461

457:                                              ; preds = %447
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %9, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %10, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #10
  br label %461

461:                                              ; preds = %457, %453
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  br label %462

462:                                              ; preds = %461, %449
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  br label %493

463:                                              ; preds = %448, %433
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %49)
  %464 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %49)
          to label %465 unwind label %495

465:                                              ; preds = %463
  br i1 %464, label %466, label %592

466:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.381, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %467 unwind label %499

467:                                              ; preds = %466
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #10
  store i8 0, ptr %52, align 1, !tbaa !10
  %468 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %469 unwind label %503

469:                                              ; preds = %467
  br i1 %468, label %470, label %548

470:                                              ; preds = %469
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %56, ptr noundef @.str.395)
          to label %471 unwind label %503

471:                                              ; preds = %470
  %472 = getelementptr inbounds { ptr, i64 }, ptr %56, i32 0, i32 0
  %473 = load ptr, ptr %472, align 8
  %474 = getelementptr inbounds { ptr, i64 }, ptr %56, i32 0, i32 1
  %475 = load i64, ptr %474, align 8
  %476 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %473, i64 %475)
          to label %477 unwind label %503

477:                                              ; preds = %471
  %478 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %55, i32 0, i32 0
  %479 = getelementptr inbounds { ptr, i64 }, ptr %478, i32 0, i32 0
  %480 = extractvalue { ptr, i64 } %476, 0
  store ptr %480, ptr %479, align 8
  %481 = getelementptr inbounds { ptr, i64 }, ptr %478, i32 0, i32 1
  %482 = extractvalue { ptr, i64 } %476, 1
  store i64 %482, ptr %481, align 8
  %483 = getelementptr inbounds { ptr, i64 }, ptr %55, i32 0, i32 0
  %484 = load ptr, ptr %483, align 8
  %485 = getelementptr inbounds { ptr, i64 }, ptr %55, i32 0, i32 1
  %486 = load i64, ptr %485, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr %484, i64 %486)
          to label %487 unwind label %503

487:                                              ; preds = %477
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  store double 1.234500e+00, ptr %57, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  store i32 2, ptr %58, align 4, !tbaa !18
  %488 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 0
  %489 = load ptr, ptr %488, align 8
  %490 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 1
  %491 = load i64, ptr %490, align 8
  invoke void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr %489, i64 %491, ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 4 dereferenceable(4) %58)
          to label %492 unwind label %507

492:                                              ; preds = %487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  br label %549

493:                                              ; preds = %462, %439
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #10
  br label %494

494:                                              ; preds = %493, %435
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #10
  br label %909

495:                                              ; preds = %463
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %9, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %10, align 4
  br label %643

499:                                              ; preds = %466
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %9, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #10
  br label %591

503:                                              ; preds = %477, %471, %470, %467
  %504 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %9, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %10, align 4
  br label %511

507:                                              ; preds = %487
  %508 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %9, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  br label %511

511:                                              ; preds = %507, %503
  %512 = load i32, ptr %10, align 4
  %513 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %514 = icmp eq i32 %512, %513
  br i1 %514, label %515, label %543

515:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  %516 = load ptr, ptr %9, align 8
  %517 = call ptr @__cxa_begin_catch(ptr %516) #10
  store ptr %517, ptr %59, align 8
  %518 = load ptr, ptr %59, align 8, !tbaa !5
  %519 = load ptr, ptr %518, align 8, !tbaa !12
  %520 = getelementptr inbounds ptr, ptr %519, i64 2
  %521 = load ptr, ptr %520, align 8
  %522 = call noundef ptr %521(ptr noundef nonnull align 8 dereferenceable(16) %518) #10
  %523 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef %522)
          to label %524 unwind label %560

524:                                              ; preds = %515
  br i1 %523, label %525, label %568

525:                                              ; preds = %524
  %526 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 1 dereferenceable(96) @.str.397)
          to label %527 unwind label %560

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

529:                                              ; preds = %527
  %530 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %528, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %531 unwind label %560

531:                                              ; preds = %529
  %532 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %530, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %533 unwind label %560

533:                                              ; preds = %531
  %534 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %532, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %535 unwind label %560

535:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %536 = load ptr, ptr %59, align 8, !tbaa !5
  %537 = load ptr, ptr %536, align 8, !tbaa !12
  %538 = getelementptr inbounds ptr, ptr %537, i64 2
  %539 = load ptr, ptr %538, align 8
  %540 = call noundef ptr %539(ptr noundef nonnull align 8 dereferenceable(16) %536) #10
  store ptr %540, ptr %60, align 8, !tbaa !5
  %541 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %534, ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %542 unwind label %564

542:                                              ; preds = %535
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  store i32 4, ptr %23, align 4
  br label %569

543:                                              ; preds = %511
  %544 = load ptr, ptr %9, align 8
  %545 = call ptr @__cxa_begin_catch(ptr %544) #10
  %546 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 1 dereferenceable(139) @.str.396)
          to label %547 unwind label %550

547:                                              ; preds = %543
  store i32 4, ptr %23, align 4
  invoke void @__cxa_end_catch()
          to label %554 unwind label %555

548:                                              ; preds = %469
  br label %549

549:                                              ; preds = %548, %492
  br label %573

550:                                              ; preds = %543
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %9, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %559 unwind label %914

554:                                              ; preds = %547
  br label %587

555:                                              ; preds = %576, %547
  %556 = landingpad { ptr, i32 }
          cleanup
  %557 = extractvalue { ptr, i32 } %556, 0
  store ptr %557, ptr %9, align 8
  %558 = extractvalue { ptr, i32 } %556, 1
  store i32 %558, ptr %10, align 4
  br label %590

559:                                              ; preds = %550
  br label %590

560:                                              ; preds = %533, %531, %529, %527, %525, %515
  %561 = landingpad { ptr, i32 }
          cleanup
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %9, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %10, align 4
  br label %583

564:                                              ; preds = %535
  %565 = landingpad { ptr, i32 }
          cleanup
  %566 = extractvalue { ptr, i32 } %565, 0
  store ptr %566, ptr %9, align 8
  %567 = extractvalue { ptr, i32 } %565, 1
  store i32 %567, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %583

568:                                              ; preds = %524
  store i8 1, ptr %52, align 1, !tbaa !10
  store i32 0, ptr %23, align 4
  br label %569

569:                                              ; preds = %568, %542
  invoke void @__cxa_end_catch()
          to label %570 unwind label %579

570:                                              ; preds = %569
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  %571 = load i32, ptr %23, align 4
  switch i32 %571, label %587 [
    i32 0, label %572
  ]

572:                                              ; preds = %570
  br label %573

573:                                              ; preds = %572, %549
  %574 = load i8, ptr %52, align 1, !tbaa !10, !range !14, !noundef !15
  %575 = trunc i8 %574 to i1
  br i1 %575, label %586, label %576

576:                                              ; preds = %573
  %577 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 1 dereferenceable(130) @.str.398)
          to label %578 unwind label %555

578:                                              ; preds = %576
  store i32 4, ptr %23, align 4
  br label %587

579:                                              ; preds = %569
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %9, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, ptr %10, align 4
  br label %585

583:                                              ; preds = %564, %560
  invoke void @__cxa_end_catch()
          to label %584 unwind label %914

584:                                              ; preds = %583
  br label %585

585:                                              ; preds = %584, %579
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  br label %590

586:                                              ; preds = %573
  store i32 0, ptr %23, align 4
  br label %587

587:                                              ; preds = %586, %578, %570, %554
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #10
  %588 = load i32, ptr %23, align 4
  switch i32 %588, label %917 [
    i32 0, label %589
    i32 4, label %593
  ]

589:                                              ; preds = %587
  br label %613

590:                                              ; preds = %585, %559, %555
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  br label %591

591:                                              ; preds = %590, %499
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #10
  br label %643

592:                                              ; preds = %465
  br label %593

593:                                              ; preds = %592, %587
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %594 unwind label %599

594:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  %595 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %49)
          to label %596 unwind label %603

596:                                              ; preds = %594
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %62, i32 noundef 1, ptr noundef @.str.3, i32 noundef 570, ptr noundef %595)
          to label %597 unwind label %603

597:                                              ; preds = %596
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %598 unwind label %607

598:                                              ; preds = %597
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  br label %613

599:                                              ; preds = %593
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %9, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %10, align 4
  br label %612

603:                                              ; preds = %596, %594
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %9, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %10, align 4
  br label %611

607:                                              ; preds = %597
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %9, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %10, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  br label %611

611:                                              ; preds = %607, %603
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  br label %612

612:                                              ; preds = %611, %599
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  br label %643

613:                                              ; preds = %598, %589
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %63)
  %614 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %63)
          to label %615 unwind label %644

615:                                              ; preds = %613
  br i1 %614, label %616, label %741

616:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.386, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %617 unwind label %648

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

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

620:                                              ; preds = %619
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef @.str.399)
          to label %621 unwind label %652

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

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

637:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  store double 1.234500e+00, ptr %71, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  store i32 2, ptr %72, align 4, !tbaa !18
  %638 = getelementptr inbounds { ptr, i64 }, ptr %68, i32 0, i32 0
  %639 = load ptr, ptr %638, align 8
  %640 = getelementptr inbounds { ptr, i64 }, ptr %68, i32 0, i32 1
  %641 = load i64, ptr %640, align 8
  invoke void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr %639, i64 %641, ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 4 dereferenceable(4) %72)
          to label %642 unwind label %656

642:                                              ; preds = %637
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  br label %698

643:                                              ; preds = %612, %591, %495
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #10
  br label %909

644:                                              ; preds = %613
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %9, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %10, align 4
  br label %792

648:                                              ; preds = %616
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %9, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #10
  br label %740

652:                                              ; preds = %627, %621, %620, %617
  %653 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %654 = extractvalue { ptr, i32 } %653, 0
  store ptr %654, ptr %9, align 8
  %655 = extractvalue { ptr, i32 } %653, 1
  store i32 %655, ptr %10, align 4
  br label %660

656:                                              ; preds = %637
  %657 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %9, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  br label %660

660:                                              ; preds = %656, %652
  %661 = load i32, ptr %10, align 4
  %662 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %663 = icmp eq i32 %661, %662
  br i1 %663, label %664, label %692

664:                                              ; preds = %660
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  %665 = load ptr, ptr %9, align 8
  %666 = call ptr @__cxa_begin_catch(ptr %665) #10
  store ptr %666, ptr %73, align 8
  %667 = load ptr, ptr %73, align 8, !tbaa !5
  %668 = load ptr, ptr %667, align 8, !tbaa !12
  %669 = getelementptr inbounds ptr, ptr %668, i64 2
  %670 = load ptr, ptr %669, align 8
  %671 = call noundef ptr %670(ptr noundef nonnull align 8 dereferenceable(16) %667) #10
  %672 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef %671)
          to label %673 unwind label %709

673:                                              ; preds = %664
  br i1 %672, label %674, label %717

674:                                              ; preds = %673
  %675 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 1 dereferenceable(96) @.str.401)
          to label %676 unwind label %709

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

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

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

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

684:                                              ; preds = %682
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %685 = load ptr, ptr %73, align 8, !tbaa !5
  %686 = load ptr, ptr %685, align 8, !tbaa !12
  %687 = getelementptr inbounds ptr, ptr %686, i64 2
  %688 = load ptr, ptr %687, align 8
  %689 = call noundef ptr %688(ptr noundef nonnull align 8 dereferenceable(16) %685) #10
  store ptr %689, ptr %74, align 8, !tbaa !5
  %690 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %683, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %691 unwind label %713

691:                                              ; preds = %684
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  store i32 5, ptr %23, align 4
  br label %718

692:                                              ; preds = %660
  %693 = load ptr, ptr %9, align 8
  %694 = call ptr @__cxa_begin_catch(ptr %693) #10
  %695 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 1 dereferenceable(139) @.str.400)
          to label %696 unwind label %699

696:                                              ; preds = %692
  store i32 5, ptr %23, align 4
  invoke void @__cxa_end_catch()
          to label %703 unwind label %704

697:                                              ; preds = %619
  br label %698

698:                                              ; preds = %697, %642
  br label %722

699:                                              ; preds = %692
  %700 = landingpad { ptr, i32 }
          cleanup
  %701 = extractvalue { ptr, i32 } %700, 0
  store ptr %701, ptr %9, align 8
  %702 = extractvalue { ptr, i32 } %700, 1
  store i32 %702, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %708 unwind label %914

703:                                              ; preds = %696
  br label %736

704:                                              ; preds = %725, %696
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %9, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %10, align 4
  br label %739

708:                                              ; preds = %699
  br label %739

709:                                              ; preds = %682, %680, %678, %676, %674, %664
  %710 = landingpad { ptr, i32 }
          cleanup
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %9, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %10, align 4
  br label %732

713:                                              ; preds = %684
  %714 = landingpad { ptr, i32 }
          cleanup
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %9, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  br label %732

717:                                              ; preds = %673
  store i8 1, ptr %66, align 1, !tbaa !10
  store i32 0, ptr %23, align 4
  br label %718

718:                                              ; preds = %717, %691
  invoke void @__cxa_end_catch()
          to label %719 unwind label %728

719:                                              ; preds = %718
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  %720 = load i32, ptr %23, align 4
  switch i32 %720, label %736 [
    i32 0, label %721
  ]

721:                                              ; preds = %719
  br label %722

722:                                              ; preds = %721, %698
  %723 = load i8, ptr %66, align 1, !tbaa !10, !range !14, !noundef !15
  %724 = trunc i8 %723 to i1
  br i1 %724, label %735, label %725

725:                                              ; preds = %722
  %726 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 1 dereferenceable(130) @.str.402)
          to label %727 unwind label %704

727:                                              ; preds = %725
  store i32 5, ptr %23, align 4
  br label %736

728:                                              ; preds = %718
  %729 = landingpad { ptr, i32 }
          cleanup
  %730 = extractvalue { ptr, i32 } %729, 0
  store ptr %730, ptr %9, align 8
  %731 = extractvalue { ptr, i32 } %729, 1
  store i32 %731, ptr %10, align 4
  br label %734

732:                                              ; preds = %713, %709
  invoke void @__cxa_end_catch()
          to label %733 unwind label %914

733:                                              ; preds = %732
  br label %734

734:                                              ; preds = %733, %728
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  br label %739

735:                                              ; preds = %722
  store i32 0, ptr %23, align 4
  br label %736

736:                                              ; preds = %735, %727, %719, %703
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #10
  %737 = load i32, ptr %23, align 4
  switch i32 %737, label %917 [
    i32 0, label %738
    i32 5, label %742
  ]

738:                                              ; preds = %736
  br label %762

739:                                              ; preds = %734, %708, %704
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  br label %740

740:                                              ; preds = %739, %648
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #10
  br label %792

741:                                              ; preds = %615
  br label %742

742:                                              ; preds = %741, %736
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %743 unwind label %748

743:                                              ; preds = %742
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #10
  %744 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %63)
          to label %745 unwind label %752

745:                                              ; preds = %743
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %76, i32 noundef 1, ptr noundef @.str.3, i32 noundef 573, ptr noundef %744)
          to label %746 unwind label %752

746:                                              ; preds = %745
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %747 unwind label %756

747:                                              ; preds = %746
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  br label %762

748:                                              ; preds = %742
  %749 = landingpad { ptr, i32 }
          cleanup
  %750 = extractvalue { ptr, i32 } %749, 0
  store ptr %750, ptr %9, align 8
  %751 = extractvalue { ptr, i32 } %749, 1
  store i32 %751, ptr %10, align 4
  br label %761

752:                                              ; preds = %745, %743
  %753 = landingpad { ptr, i32 }
          cleanup
  %754 = extractvalue { ptr, i32 } %753, 0
  store ptr %754, ptr %9, align 8
  %755 = extractvalue { ptr, i32 } %753, 1
  store i32 %755, ptr %10, align 4
  br label %760

756:                                              ; preds = %746
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %9, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %10, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #10
  br label %760

760:                                              ; preds = %756, %752
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  br label %761

761:                                              ; preds = %760, %748
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  br label %792

762:                                              ; preds = %747, %738
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %77) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %77)
  %763 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %77)
          to label %764 unwind label %793

764:                                              ; preds = %762
  br i1 %763, label %765, label %886

765:                                              ; preds = %764
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.288, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %766 unwind label %797

766:                                              ; preds = %765
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #10
  store i8 0, ptr %80, align 1, !tbaa !10
  %767 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %768 unwind label %801

768:                                              ; preds = %766
  br i1 %767, label %769, label %842

769:                                              ; preds = %768
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef @.str.223)
          to label %770 unwind label %801

770:                                              ; preds = %769
  %771 = getelementptr inbounds { ptr, i64 }, ptr %84, i32 0, i32 0
  %772 = load ptr, ptr %771, align 8
  %773 = getelementptr inbounds { ptr, i64 }, ptr %84, i32 0, i32 1
  %774 = load i64, ptr %773, align 8
  %775 = invoke { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %772, i64 %774)
          to label %776 unwind label %801

776:                                              ; preds = %770
  %777 = getelementptr inbounds %"struct.fmt::v10::runtime_format_string", ptr %83, i32 0, i32 0
  %778 = getelementptr inbounds { ptr, i64 }, ptr %777, i32 0, i32 0
  %779 = extractvalue { ptr, i64 } %775, 0
  store ptr %779, ptr %778, align 8
  %780 = getelementptr inbounds { ptr, i64 }, ptr %777, i32 0, i32 1
  %781 = extractvalue { ptr, i64 } %775, 1
  store i64 %781, ptr %780, align 8
  %782 = getelementptr inbounds { ptr, i64 }, ptr %83, i32 0, i32 0
  %783 = load ptr, ptr %782, align 8
  %784 = getelementptr inbounds { ptr, i64 }, ptr %83, i32 0, i32 1
  %785 = load i64, ptr %784, align 8
  invoke void @_ZN3fmt3v1019basic_format_stringIcJEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %82, ptr %783, i64 %785)
          to label %786 unwind label %801

786:                                              ; preds = %776
  %787 = getelementptr inbounds { ptr, i64 }, ptr %82, i32 0, i32 0
  %788 = load ptr, ptr %787, align 8
  %789 = getelementptr inbounds { ptr, i64 }, ptr %82, i32 0, i32 1
  %790 = load i64, ptr %789, align 8
  invoke void @_ZN3fmt3v106formatIJEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr %788, i64 %790)
          to label %791 unwind label %801

791:                                              ; preds = %786
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #10
  br label %843

792:                                              ; preds = %761, %740, %644
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #10
  br label %909

793:                                              ; preds = %762
  %794 = landingpad { ptr, i32 }
          cleanup
  %795 = extractvalue { ptr, i32 } %794, 0
  store ptr %795, ptr %9, align 8
  %796 = extractvalue { ptr, i32 } %794, 1
  store i32 %796, ptr %10, align 4
  br label %908

797:                                              ; preds = %765
  %798 = landingpad { ptr, i32 }
          cleanup
  %799 = extractvalue { ptr, i32 } %798, 0
  store ptr %799, ptr %9, align 8
  %800 = extractvalue { ptr, i32 } %798, 1
  store i32 %800, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #10
  br label %885

801:                                              ; preds = %786, %776, %770, %769, %766
  %802 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %9, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %10, align 4
  br label %805

805:                                              ; preds = %801
  %806 = load i32, ptr %10, align 4
  %807 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %808 = icmp eq i32 %806, %807
  br i1 %808, label %809, label %837

809:                                              ; preds = %805
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %810 = load ptr, ptr %9, align 8
  %811 = call ptr @__cxa_begin_catch(ptr %810) #10
  store ptr %811, ptr %85, align 8
  %812 = load ptr, ptr %85, align 8, !tbaa !5
  %813 = load ptr, ptr %812, align 8, !tbaa !12
  %814 = getelementptr inbounds ptr, ptr %813, i64 2
  %815 = load ptr, ptr %814, align 8
  %816 = call noundef ptr %815(ptr noundef nonnull align 8 dereferenceable(16) %812) #10
  %817 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef %816)
          to label %818 unwind label %854

818:                                              ; preds = %809
  br i1 %817, label %819, label %862

819:                                              ; preds = %818
  %820 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA80_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %77, ptr noundef nonnull align 1 dereferenceable(80) @.str.404)
          to label %821 unwind label %854

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

823:                                              ; preds = %821
  %824 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %822, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %825 unwind label %854

825:                                              ; preds = %823
  %826 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %824, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %827 unwind label %854

827:                                              ; preds = %825
  %828 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %826, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %829 unwind label %854

829:                                              ; preds = %827
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  %830 = load ptr, ptr %85, align 8, !tbaa !5
  %831 = load ptr, ptr %830, align 8, !tbaa !12
  %832 = getelementptr inbounds ptr, ptr %831, i64 2
  %833 = load ptr, ptr %832, align 8
  %834 = call noundef ptr %833(ptr noundef nonnull align 8 dereferenceable(16) %830) #10
  store ptr %834, ptr %86, align 8, !tbaa !5
  %835 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %828, ptr noundef nonnull align 8 dereferenceable(8) %86)
          to label %836 unwind label %858

836:                                              ; preds = %829
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  store i32 6, ptr %23, align 4
  br label %863

837:                                              ; preds = %805
  %838 = load ptr, ptr %9, align 8
  %839 = call ptr @__cxa_begin_catch(ptr %838) #10
  %840 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %77, ptr noundef nonnull align 1 dereferenceable(123) @.str.403)
          to label %841 unwind label %844

841:                                              ; preds = %837
  store i32 6, ptr %23, align 4
  invoke void @__cxa_end_catch()
          to label %848 unwind label %849

842:                                              ; preds = %768
  br label %843

843:                                              ; preds = %842, %791
  br label %867

844:                                              ; preds = %837
  %845 = landingpad { ptr, i32 }
          cleanup
  %846 = extractvalue { ptr, i32 } %845, 0
  store ptr %846, ptr %9, align 8
  %847 = extractvalue { ptr, i32 } %845, 1
  store i32 %847, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %853 unwind label %914

848:                                              ; preds = %841
  br label %881

849:                                              ; preds = %870, %841
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %9, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %10, align 4
  br label %884

853:                                              ; preds = %844
  br label %884

854:                                              ; preds = %827, %825, %823, %821, %819, %809
  %855 = landingpad { ptr, i32 }
          cleanup
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %9, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %10, align 4
  br label %877

858:                                              ; preds = %829
  %859 = landingpad { ptr, i32 }
          cleanup
  %860 = extractvalue { ptr, i32 } %859, 0
  store ptr %860, ptr %9, align 8
  %861 = extractvalue { ptr, i32 } %859, 1
  store i32 %861, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  br label %877

862:                                              ; preds = %818
  store i8 1, ptr %80, align 1, !tbaa !10
  store i32 0, ptr %23, align 4
  br label %863

863:                                              ; preds = %862, %836
  invoke void @__cxa_end_catch()
          to label %864 unwind label %873

864:                                              ; preds = %863
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  %865 = load i32, ptr %23, align 4
  switch i32 %865, label %881 [
    i32 0, label %866
  ]

866:                                              ; preds = %864
  br label %867

867:                                              ; preds = %866, %843
  %868 = load i8, ptr %80, align 1, !tbaa !10, !range !14, !noundef !15
  %869 = trunc i8 %868 to i1
  br i1 %869, label %880, label %870

870:                                              ; preds = %867
  %871 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA114_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %77, ptr noundef nonnull align 1 dereferenceable(114) @.str.405)
          to label %872 unwind label %849

872:                                              ; preds = %870
  store i32 6, ptr %23, align 4
  br label %881

873:                                              ; preds = %863
  %874 = landingpad { ptr, i32 }
          cleanup
  %875 = extractvalue { ptr, i32 } %874, 0
  store ptr %875, ptr %9, align 8
  %876 = extractvalue { ptr, i32 } %874, 1
  store i32 %876, ptr %10, align 4
  br label %879

877:                                              ; preds = %858, %854
  invoke void @__cxa_end_catch()
          to label %878 unwind label %914

878:                                              ; preds = %877
  br label %879

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

880:                                              ; preds = %867
  store i32 0, ptr %23, align 4
  br label %881

881:                                              ; preds = %880, %872, %864, %848
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #10
  %882 = load i32, ptr %23, align 4
  switch i32 %882, label %917 [
    i32 0, label %883
    i32 6, label %887
  ]

883:                                              ; preds = %881
  br label %907

884:                                              ; preds = %879, %853, %849
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #10
  br label %885

885:                                              ; preds = %884, %797
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #10
  br label %908

886:                                              ; preds = %764
  br label %887

887:                                              ; preds = %886, %881
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %888 unwind label %893

888:                                              ; preds = %887
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #10
  %889 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %77)
          to label %890 unwind label %897

890:                                              ; preds = %888
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %88, i32 noundef 1, ptr noundef @.str.3, i32 noundef 575, ptr noundef %889)
          to label %891 unwind label %897

891:                                              ; preds = %890
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %892 unwind label %901

892:                                              ; preds = %891
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  br label %907

893:                                              ; preds = %887
  %894 = landingpad { ptr, i32 }
          cleanup
  %895 = extractvalue { ptr, i32 } %894, 0
  store ptr %895, ptr %9, align 8
  %896 = extractvalue { ptr, i32 } %894, 1
  store i32 %896, ptr %10, align 4
  br label %906

897:                                              ; preds = %890, %888
  %898 = landingpad { ptr, i32 }
          cleanup
  %899 = extractvalue { ptr, i32 } %898, 0
  store ptr %899, ptr %9, align 8
  %900 = extractvalue { ptr, i32 } %898, 1
  store i32 %900, ptr %10, align 4
  br label %905

901:                                              ; preds = %891
  %902 = landingpad { ptr, i32 }
          cleanup
  %903 = extractvalue { ptr, i32 } %902, 0
  store ptr %903, ptr %9, align 8
  %904 = extractvalue { ptr, i32 } %902, 1
  store i32 %904, ptr %10, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #10
  br label %905

905:                                              ; preds = %901, %897
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  br label %906

906:                                              ; preds = %905, %893
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  br label %908

907:                                              ; preds = %892, %883
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #10
  ret void

908:                                              ; preds = %906, %885, %793
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #10
  br label %909

909:                                              ; preds = %908, %792, %643, %494, %434, %306, %157
  %910 = load ptr, ptr %9, align 8
  %911 = load i32, ptr %10, align 4
  %912 = insertvalue { ptr, i32 } poison, ptr %910, 0
  %913 = insertvalue { ptr, i32 } %912, i32 %911, 1
  resume { ptr, i32 } %913

914:                                              ; preds = %877, %844, %732, %699, %583, %550, %395, %362, %246, %213
  %915 = landingpad { ptr, i32 }
          catch ptr null
  %916 = extractvalue { ptr, i32 } %915, 0
  call void @__clang_call_terminate(ptr %916) #11
  unreachable

917:                                              ; preds = %881, %736, %587, %399, %250
  unreachable
}

; 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 @_ZN3fmt3v1019basic_format_stringIcJcccEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(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 @_ZN3fmt3v106formatIJccEEENSt7__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)) #6

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind memory(none) }
attributes #8 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"bool", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"vtable pointer", !8, i64 0}
!14 = !{i8 0, i8 2}
!15 = !{}
!16 = !{!17, !17, i64 0}
!17 = !{!"double", !7, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"int", !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.138" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_string_view" = type { ptr, i64 }
%"class.testing::Message" = type { %"class.std::unique_ptr.2" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.std::allocator" = type { i8 }
%"class.fmt::v10::basic_format_string.139" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.140" = type { %"class.fmt::v10::basic_string_view" }
%"class.fmt::v10::basic_format_string.43" = type { %"class.fmt::v10::basic_string_view" }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZTIN3fmt3v1012format_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.223 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [114 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv() local_unnamed_addr #3

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

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN31format_test_auto_arg_index_Test8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.testing::AssertionResult", align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.fmt::v10::basic_format_string.138", align 8
  %5 = alloca i8, align 1
  %6 = alloca i8, align 1
  %7 = alloca i8, align 1
  %8 = alloca %"class.testing::Message", align 8
  %9 = alloca %"class.testing::internal::AssertHelper", align 8
  %10 = alloca %"class.testing::AssertionResult", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.fmt::v10::basic_format_string.139", align 8
  %15 = alloca %"class.fmt::v10::basic_string_view", align 8
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca ptr, align 8
  %19 = alloca %"class.testing::Message", align 8
  %20 = alloca %"class.testing::internal::AssertHelper", align 8
  %21 = alloca %"class.testing::AssertionResult", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.fmt::v10::basic_format_string.139", align 8
  %26 = alloca %"class.fmt::v10::basic_string_view", align 8
  %27 = alloca i8, align 1
  %28 = alloca i8, align 1
  %29 = alloca ptr, align 8
  %30 = alloca %"class.testing::Message", align 8
  %31 = alloca %"class.testing::internal::AssertHelper", align 8
  %32 = alloca %"class.testing::AssertionResult", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %35 = alloca double, align 8
  %36 = alloca i32, align 4
  %37 = alloca %"class.testing::Message", align 8
  %38 = alloca %"class.testing::internal::AssertHelper", align 8
  %39 = alloca %"class.testing::AssertionResult", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %44 = alloca %"class.fmt::v10::basic_string_view", align 8
  %45 = alloca double, align 8
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca %"class.testing::Message", align 8
  %49 = alloca %"class.testing::internal::AssertHelper", align 8
  %50 = alloca %"class.testing::AssertionResult", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.fmt::v10::basic_format_string.140", align 8
  %55 = alloca %"class.fmt::v10::basic_string_view", align 8
  %56 = alloca double, align 8
  %57 = alloca i32, align 4
  %58 = alloca ptr, align 8
  %59 = alloca %"class.testing::Message", align 8
  %60 = alloca %"class.testing::internal::AssertHelper", align 8
  %61 = alloca %"class.testing::AssertionResult", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.fmt::v10::basic_format_string.43", align 8
  %66 = alloca %"class.fmt::v10::basic_string_view", align 8
  %67 = alloca ptr, align 8
  %68 = alloca %"class.testing::Message", align 8
  %69 = alloca %"class.testing::internal::AssertHelper", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJcccEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 1 dereferenceable(7) @.str.379)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  store i8 97, ptr %5, align 1, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #10
  store i8 98, ptr %6, align 1, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #10
  store i8 99, ptr %7, align 1, !tbaa !5
  %70 = load ptr, ptr %4, align 8
  %71 = getelementptr inbounds i8, ptr %4, i64 8
  %72 = load i64, ptr %71, align 8
  call 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 %3, ptr %70, i64 %72, ptr noundef nonnull align 1 dereferenceable(1) %5, ptr noundef nonnull align 1 dereferenceable(1) %6, ptr noundef nonnull align 1 dereferenceable(1) %7)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %2, ptr noundef nonnull @.str.377, ptr noundef nonnull @.str.378, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 1 dereferenceable(4) @.str.380)
          to label %73 unwind label %75

73:                                               ; preds = %1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #10
  %74 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  br i1 %74, label %91, label %77

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

77:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %78 unwind label %83

78:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  %79 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
          to label %80 unwind label %85

80:                                               ; preds = %78
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %9, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 562, ptr noundef %79)
          to label %81 unwind label %85

81:                                               ; preds = %80
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %82 unwind label %87

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

83:                                               ; preds = %77
  %84 = landingpad { ptr, i32 }
          cleanup
  br label %90

85:                                               ; preds = %80, %78
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %89

87:                                               ; preds = %81
  %88 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #10
  br label %89

89:                                               ; preds = %87, %85
  %.pn = phi { ptr, i32 } [ %88, %87 ], [ %86, %85 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  br label %90

90:                                               ; preds = %89, %83
  %.pn.pn = phi { ptr, i32 } [ %.pn, %89 ], [ %84, %83 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #10
  br label %109

91:                                               ; preds = %73, %82
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %10)
  %92 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
  br i1 %92, label %93, label %163

93:                                               ; preds = %91
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.381, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %94 unwind label %110

94:                                               ; preds = %93
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #10
  %95 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %96 unwind label %112

96:                                               ; preds = %94
  br i1 %95, label %97, label %.critedge

97:                                               ; preds = %96
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull @.str.382)
          to label %98 unwind label %112

98:                                               ; preds = %97
  %99 = load ptr, ptr %15, align 8
  %100 = getelementptr inbounds i8, ptr %15, i64 8
  %101 = load i64, ptr %100, align 8
  %102 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %99, i64 %101)
  %103 = extractvalue { ptr, i64 } %102, 0
  %104 = extractvalue { ptr, i64 } %102, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJccEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr %103, i64 %104)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #10
  store i8 97, ptr %16, align 1, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #10
  store i8 98, ptr %17, align 1, !tbaa !5
  %105 = load ptr, ptr %14, align 8
  %106 = getelementptr inbounds i8, ptr %14, i64 8
  %107 = load i64, ptr %106, align 8
  invoke void @_ZN3fmt3v106formatIJccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr %105, i64 %107, ptr noundef nonnull align 1 dereferenceable(1) %16, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %108 unwind label %114

108:                                              ; preds = %98
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #10
  br label %.critedge

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

110:                                              ; preds = %93
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #10
  br label %162

112:                                              ; preds = %97, %94
  %113 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %116

114:                                              ; preds = %98
  %115 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #10
  br label %116

116:                                              ; preds = %114, %112
  %.pn123 = phi { ptr, i32 } [ %115, %114 ], [ %113, %112 ]
  %.3 = extractvalue { ptr, i32 } %.pn123, 0
  %.357 = extractvalue { ptr, i32 } %.pn123, 1
  %117 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %118 = icmp eq i32 %.357, %117
  %119 = call ptr @__cxa_begin_catch(ptr %.3) #10
  br i1 %118, label %120, label %144

120:                                              ; preds = %116
  %121 = load ptr, ptr %119, align 8, !tbaa !8
  %122 = getelementptr inbounds i8, ptr %121, i64 16
  %123 = load ptr, ptr %122, align 8
  %124 = call noundef ptr %123(ptr noundef nonnull align 8 dereferenceable(16) %119) #10
  %125 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef %124)
          to label %126 unwind label %151

126:                                              ; preds = %120
  br i1 %125, label %127, label %155

127:                                              ; preds = %126
  %128 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA93_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 1 dereferenceable(93) @.str.384)
          to label %129 unwind label %151

129:                                              ; preds = %127
  %130 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %128, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %131 unwind label %151

131:                                              ; preds = %129
  %132 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %130, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %133 unwind label %151

133:                                              ; preds = %131
  %134 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %132, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %135 unwind label %151

135:                                              ; preds = %133
  %136 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %134, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %137 unwind label %151

137:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #10
  %138 = load ptr, ptr %119, align 8, !tbaa !8
  %139 = getelementptr inbounds i8, ptr %138, i64 16
  %140 = load ptr, ptr %139, align 8
  %141 = call noundef ptr %140(ptr noundef nonnull align 8 dereferenceable(16) %119) #10
  store ptr %141, ptr %18, align 8, !tbaa !10
  %142 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %136, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %143 unwind label %153

143:                                              ; preds = %137
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #10
  br label %155

144:                                              ; preds = %116
  %145 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA136_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 1 dereferenceable(136) @.str.383)
          to label %146 unwind label %147

146:                                              ; preds = %144
  invoke void @__cxa_end_catch()
          to label %.thread unwind label %149

147:                                              ; preds = %144
  %148 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %161 unwind label %541

149:                                              ; preds = %.critedge, %146
  %150 = landingpad { ptr, i32 }
          cleanup
  br label %161

151:                                              ; preds = %135, %133, %131, %129, %127, %120
  %152 = landingpad { ptr, i32 }
          cleanup
  br label %160

153:                                              ; preds = %137
  %154 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #10
  br label %160

155:                                              ; preds = %126, %143
  invoke void @__cxa_end_catch()
          to label %156 unwind label %158

156:                                              ; preds = %155
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  br i1 %125, label %163, label %.thread213

.critedge:                                        ; preds = %96, %108
  %157 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA127_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 1 dereferenceable(127) @.str.385)
          to label %.thread unwind label %149

158:                                              ; preds = %155
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %161

160:                                              ; preds = %153, %151
  %.pn125 = phi { ptr, i32 } [ %154, %153 ], [ %152, %151 ]
  invoke void @__cxa_end_catch()
          to label %161 unwind label %541

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

161:                                              ; preds = %158, %160, %147, %149
  %.pn129 = phi { ptr, i32 } [ %150, %149 ], [ %148, %147 ], [ %159, %158 ], [ %.pn125, %160 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  br label %162

162:                                              ; preds = %161, %110
  %.pn129.pn = phi { ptr, i32 } [ %.pn129, %161 ], [ %111, %110 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  br label %194

163:                                              ; preds = %156, %.thread, %91
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %164 unwind label %169

164:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #10
  %165 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %166 unwind label %171

166:                                              ; preds = %164
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %20, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 564, ptr noundef %165)
          to label %167 unwind label %171

167:                                              ; preds = %166
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %168 unwind label %173

168:                                              ; preds = %167
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  br label %.thread213

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

171:                                              ; preds = %166, %164
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %175

173:                                              ; preds = %167
  %174 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #10
  br label %175

175:                                              ; preds = %173, %171
  %.pn132 = phi { ptr, i32 } [ %174, %173 ], [ %172, %171 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #10
  br label %176

176:                                              ; preds = %175, %169
  %.pn132.pn = phi { ptr, i32 } [ %.pn132, %175 ], [ %170, %169 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  br label %194

.thread213:                                       ; preds = %156, %168
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %21)
  %177 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
  br i1 %177, label %178, label %248

178:                                              ; preds = %.thread213
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.386, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %179 unwind label %195

179:                                              ; preds = %178
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  %180 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %181 unwind label %197

181:                                              ; preds = %179
  br i1 %180, label %182, label %.critedge192

182:                                              ; preds = %181
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull @.str.387)
          to label %183 unwind label %197

183:                                              ; preds = %182
  %184 = load ptr, ptr %26, align 8
  %185 = getelementptr inbounds i8, ptr %26, i64 8
  %186 = load i64, ptr %185, align 8
  %187 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %184, i64 %186)
  %188 = extractvalue { ptr, i64 } %187, 0
  %189 = extractvalue { ptr, i64 } %187, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJccEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr %188, i64 %189)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #10
  store i8 97, ptr %27, align 1, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #10
  store i8 98, ptr %28, align 1, !tbaa !5
  %190 = load ptr, ptr %25, align 8
  %191 = getelementptr inbounds i8, ptr %25, i64 8
  %192 = load i64, ptr %191, align 8
  invoke void @_ZN3fmt3v106formatIJccEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr %190, i64 %192, ptr noundef nonnull align 1 dereferenceable(1) %27, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %193 unwind label %199

193:                                              ; preds = %183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #10
  br label %.critedge192

194:                                              ; preds = %176, %162
  %.pn132.pn.pn = phi { ptr, i32 } [ %.pn132.pn, %176 ], [ %.pn129.pn, %162 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #10
  br label %540

195:                                              ; preds = %178
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  br label %247

197:                                              ; preds = %182, %179
  %198 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %201

199:                                              ; preds = %183
  %200 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #10
  br label %201

201:                                              ; preds = %199, %197
  %.pn136 = phi { ptr, i32 } [ %200, %199 ], [ %198, %197 ]
  %.11 = extractvalue { ptr, i32 } %.pn136, 0
  %.1165 = extractvalue { ptr, i32 } %.pn136, 1
  %202 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %203 = icmp eq i32 %.1165, %202
  %204 = call ptr @__cxa_begin_catch(ptr %.11) #10
  br i1 %203, label %205, label %229

205:                                              ; preds = %201
  %206 = load ptr, ptr %204, align 8, !tbaa !8
  %207 = getelementptr inbounds i8, ptr %206, i64 16
  %208 = load ptr, ptr %207, align 8
  %209 = call noundef ptr %208(ptr noundef nonnull align 8 dereferenceable(16) %204) #10
  %210 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %209)
          to label %211 unwind label %236

211:                                              ; preds = %205
  br i1 %210, label %212, label %240

212:                                              ; preds = %211
  %213 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA93_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 1 dereferenceable(93) @.str.389)
          to label %214 unwind label %236

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

216:                                              ; preds = %214
  %217 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %215, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %218 unwind label %236

218:                                              ; preds = %216
  %219 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %217, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %220 unwind label %236

220:                                              ; preds = %218
  %221 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %219, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %222 unwind label %236

222:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #10
  %223 = load ptr, ptr %204, align 8, !tbaa !8
  %224 = getelementptr inbounds i8, ptr %223, i64 16
  %225 = load ptr, ptr %224, align 8
  %226 = call noundef ptr %225(ptr noundef nonnull align 8 dereferenceable(16) %204) #10
  store ptr %226, ptr %29, align 8, !tbaa !10
  %227 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %221, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %228 unwind label %238

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

229:                                              ; preds = %201
  %230 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA136_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 1 dereferenceable(136) @.str.388)
          to label %231 unwind label %232

231:                                              ; preds = %229
  invoke void @__cxa_end_catch()
          to label %.thread218 unwind label %234

232:                                              ; preds = %229
  %233 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %246 unwind label %541

234:                                              ; preds = %.critedge192, %231
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %246

236:                                              ; preds = %220, %218, %216, %214, %212, %205
  %237 = landingpad { ptr, i32 }
          cleanup
  br label %245

238:                                              ; preds = %222
  %239 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  br label %245

240:                                              ; preds = %211, %228
  invoke void @__cxa_end_catch()
          to label %241 unwind label %243

241:                                              ; preds = %240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  br i1 %210, label %248, label %.thread221

.critedge192:                                     ; preds = %181, %193
  %242 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA127_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 1 dereferenceable(127) @.str.390)
          to label %.thread218 unwind label %234

243:                                              ; preds = %240
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %246

245:                                              ; preds = %238, %236
  %.pn138 = phi { ptr, i32 } [ %239, %238 ], [ %237, %236 ]
  invoke void @__cxa_end_catch()
          to label %246 unwind label %541

.thread218:                                       ; preds = %231, %.critedge192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  br label %248

246:                                              ; preds = %243, %245, %232, %234
  %.pn142 = phi { ptr, i32 } [ %235, %234 ], [ %233, %232 ], [ %244, %243 ], [ %.pn138, %245 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %247

247:                                              ; preds = %246, %195
  %.pn142.pn = phi { ptr, i32 } [ %.pn142, %246 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  br label %267

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

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

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

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

253:                                              ; preds = %252
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  br label %.thread221

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

256:                                              ; preds = %251, %249
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %260

258:                                              ; preds = %252
  %259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  br label %260

260:                                              ; preds = %258, %256
  %.pn145 = phi { ptr, i32 } [ %259, %258 ], [ %257, %256 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  br label %261

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

.thread221:                                       ; preds = %241, %253
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #10
  call void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 1 dereferenceable(7) @.str.393)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #10
  store double 1.234500e+00, ptr %35, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #10
  store i32 2, ptr %36, align 4, !tbaa !14
  %262 = load ptr, ptr %34, align 8
  %263 = getelementptr inbounds i8, ptr %34, i64 8
  %264 = load i64, ptr %263, align 8
  call void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr %262, i64 %264, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 4 dereferenceable(4) %36)
  invoke void @_ZN7testing8internal8EqHelper7CompareINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %32, ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 1 dereferenceable(4) @.str.394)
          to label %265 unwind label %268

265:                                              ; preds = %.thread221
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #10
  %266 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %32)
  br i1 %266, label %284, label %270

267:                                              ; preds = %261, %247
  %.pn145.pn.pn = phi { ptr, i32 } [ %.pn145.pn, %261 ], [ %.pn142.pn, %247 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #10
  br label %540

268:                                              ; preds = %.thread221
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #10
  br label %302

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

271:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #10
  %272 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %273 unwind label %278

273:                                              ; preds = %271
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %38, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 567, ptr noundef %272)
          to label %274 unwind label %278

274:                                              ; preds = %273
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %275 unwind label %280

275:                                              ; preds = %274
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #10
  br label %284

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

278:                                              ; preds = %273, %271
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %282

280:                                              ; preds = %274
  %281 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  br label %282

282:                                              ; preds = %280, %278
  %.pn149 = phi { ptr, i32 } [ %281, %280 ], [ %279, %278 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #10
  br label %283

283:                                              ; preds = %282, %276
  %.pn149.pn = phi { ptr, i32 } [ %.pn149, %282 ], [ %277, %276 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #10
  br label %302

284:                                              ; preds = %265, %275
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %39)
  %285 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
  br i1 %285, label %286, label %356

286:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.381, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %287 unwind label %303

287:                                              ; preds = %286
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #10
  %288 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %289 unwind label %305

289:                                              ; preds = %287
  br i1 %288, label %290, label %.critedge196

290:                                              ; preds = %289
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef nonnull @.str.395)
          to label %291 unwind label %305

291:                                              ; preds = %290
  %292 = load ptr, ptr %44, align 8
  %293 = getelementptr inbounds i8, ptr %44, i64 8
  %294 = load i64, ptr %293, align 8
  %295 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %292, i64 %294)
  %296 = extractvalue { ptr, i64 } %295, 0
  %297 = extractvalue { ptr, i64 } %295, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr %296, i64 %297)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #10
  store double 1.234500e+00, ptr %45, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #10
  store i32 2, ptr %46, align 4, !tbaa !14
  %298 = load ptr, ptr %43, align 8
  %299 = getelementptr inbounds i8, ptr %43, i64 8
  %300 = load i64, ptr %299, align 8
  invoke void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr %298, i64 %300, ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 4 dereferenceable(4) %46)
          to label %301 unwind label %307

301:                                              ; preds = %291
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #10
  br label %.critedge196

302:                                              ; preds = %283, %268
  %.pn149.pn.pn = phi { ptr, i32 } [ %.pn149.pn, %283 ], [ %269, %268 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #10
  br label %540

303:                                              ; preds = %286
  %304 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #10
  br label %355

305:                                              ; preds = %290, %287
  %306 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %309

307:                                              ; preds = %291
  %308 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #10
  br label %309

309:                                              ; preds = %307, %305
  %.pn153 = phi { ptr, i32 } [ %308, %307 ], [ %306, %305 ]
  %.22 = extractvalue { ptr, i32 } %.pn153, 0
  %.2276 = extractvalue { ptr, i32 } %.pn153, 1
  %310 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %311 = icmp eq i32 %.2276, %310
  %312 = call ptr @__cxa_begin_catch(ptr %.22) #10
  br i1 %311, label %313, label %337

313:                                              ; preds = %309
  %314 = load ptr, ptr %312, align 8, !tbaa !8
  %315 = getelementptr inbounds i8, ptr %314, i64 16
  %316 = load ptr, ptr %315, align 8
  %317 = call noundef ptr %316(ptr noundef nonnull align 8 dereferenceable(16) %312) #10
  %318 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef %317)
          to label %319 unwind label %344

319:                                              ; preds = %313
  br i1 %318, label %320, label %348

320:                                              ; preds = %319
  %321 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 1 dereferenceable(96) @.str.397)
          to label %322 unwind label %344

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

324:                                              ; preds = %322
  %325 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %323, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %326 unwind label %344

326:                                              ; preds = %324
  %327 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %325, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %328 unwind label %344

328:                                              ; preds = %326
  %329 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %327, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %330 unwind label %344

330:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #10
  %331 = load ptr, ptr %312, align 8, !tbaa !8
  %332 = getelementptr inbounds i8, ptr %331, i64 16
  %333 = load ptr, ptr %332, align 8
  %334 = call noundef ptr %333(ptr noundef nonnull align 8 dereferenceable(16) %312) #10
  store ptr %334, ptr %47, align 8, !tbaa !10
  %335 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %329, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %336 unwind label %346

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

337:                                              ; preds = %309
  %338 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 1 dereferenceable(139) @.str.396)
          to label %339 unwind label %340

339:                                              ; preds = %337
  invoke void @__cxa_end_catch()
          to label %.thread226 unwind label %342

340:                                              ; preds = %337
  %341 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %354 unwind label %541

342:                                              ; preds = %.critedge196, %339
  %343 = landingpad { ptr, i32 }
          cleanup
  br label %354

344:                                              ; preds = %328, %326, %324, %322, %320, %313
  %345 = landingpad { ptr, i32 }
          cleanup
  br label %353

346:                                              ; preds = %330
  %347 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #10
  br label %353

348:                                              ; preds = %319, %336
  invoke void @__cxa_end_catch()
          to label %349 unwind label %351

349:                                              ; preds = %348
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  br i1 %318, label %356, label %.thread229

.critedge196:                                     ; preds = %289, %301
  %350 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 1 dereferenceable(130) @.str.398)
          to label %.thread226 unwind label %342

351:                                              ; preds = %348
  %352 = landingpad { ptr, i32 }
          cleanup
  br label %354

353:                                              ; preds = %346, %344
  %.pn155 = phi { ptr, i32 } [ %347, %346 ], [ %345, %344 ]
  invoke void @__cxa_end_catch()
          to label %354 unwind label %541

.thread226:                                       ; preds = %339, %.critedge196
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  br label %356

354:                                              ; preds = %351, %353, %340, %342
  %.pn159 = phi { ptr, i32 } [ %343, %342 ], [ %341, %340 ], [ %352, %351 ], [ %.pn155, %353 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %355

355:                                              ; preds = %354, %303
  %.pn159.pn = phi { ptr, i32 } [ %.pn159, %354 ], [ %304, %303 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  br label %387

356:                                              ; preds = %349, %.thread226, %284
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %357 unwind label %362

357:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #10
  %358 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
          to label %359 unwind label %364

359:                                              ; preds = %357
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %49, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 570, ptr noundef %358)
          to label %360 unwind label %364

360:                                              ; preds = %359
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %361 unwind label %366

361:                                              ; preds = %360
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #10
  br label %.thread229

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

364:                                              ; preds = %359, %357
  %365 = landingpad { ptr, i32 }
          cleanup
  br label %368

366:                                              ; preds = %360
  %367 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #10
  br label %368

368:                                              ; preds = %366, %364
  %.pn162 = phi { ptr, i32 } [ %367, %366 ], [ %365, %364 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #10
  br label %369

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

.thread229:                                       ; preds = %349, %361
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %50)
  %370 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %50)
  br i1 %370, label %371, label %441

371:                                              ; preds = %.thread229
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.386, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %372 unwind label %388

372:                                              ; preds = %371
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #10
  %373 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %374 unwind label %390

374:                                              ; preds = %372
  br i1 %373, label %375, label %.critedge200

375:                                              ; preds = %374
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %55, ptr noundef nonnull @.str.399)
          to label %376 unwind label %390

376:                                              ; preds = %375
  %377 = load ptr, ptr %55, align 8
  %378 = getelementptr inbounds i8, ptr %55, i64 8
  %379 = load i64, ptr %378, align 8
  %380 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %377, i64 %379)
  %381 = extractvalue { ptr, i64 } %380, 0
  %382 = extractvalue { ptr, i64 } %380, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJdiEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr %381, i64 %382)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #10
  store double 1.234500e+00, ptr %56, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %57) #10
  store i32 2, ptr %57, align 4, !tbaa !14
  %383 = load ptr, ptr %54, align 8
  %384 = getelementptr inbounds i8, ptr %54, i64 8
  %385 = load i64, ptr %384, align 8
  invoke void @_ZN3fmt3v106formatIJdiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr %383, i64 %385, ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 4 dereferenceable(4) %57)
          to label %386 unwind label %392

386:                                              ; preds = %376
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #10
  br label %.critedge200

387:                                              ; preds = %369, %355
  %.pn162.pn.pn = phi { ptr, i32 } [ %.pn162.pn, %369 ], [ %.pn159.pn, %355 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #10
  br label %540

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

390:                                              ; preds = %375, %372
  %391 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %394

392:                                              ; preds = %376
  %393 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #10
  br label %394

394:                                              ; preds = %392, %390
  %.pn166 = phi { ptr, i32 } [ %393, %392 ], [ %391, %390 ]
  %.30 = extractvalue { ptr, i32 } %.pn166, 0
  %.3084 = extractvalue { ptr, i32 } %.pn166, 1
  %395 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %396 = icmp eq i32 %.3084, %395
  %397 = call ptr @__cxa_begin_catch(ptr %.30) #10
  br i1 %396, label %398, label %422

398:                                              ; preds = %394
  %399 = load ptr, ptr %397, align 8, !tbaa !8
  %400 = getelementptr inbounds i8, ptr %399, i64 16
  %401 = load ptr, ptr %400, align 8
  %402 = call noundef ptr %401(ptr noundef nonnull align 8 dereferenceable(16) %397) #10
  %403 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef %402)
          to label %404 unwind label %429

404:                                              ; preds = %398
  br i1 %403, label %405, label %433

405:                                              ; preds = %404
  %406 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA96_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 1 dereferenceable(96) @.str.401)
          to label %407 unwind label %429

407:                                              ; preds = %405
  %408 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %406, ptr noundef nonnull align 1 dereferenceable(11) @.str.77)
          to label %409 unwind label %429

409:                                              ; preds = %407
  %410 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %408, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %411 unwind label %429

411:                                              ; preds = %409
  %412 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %410, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %413 unwind label %429

413:                                              ; preds = %411
  %414 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %412, ptr noundef nonnull align 1 dereferenceable(11) @.str.79)
          to label %415 unwind label %429

415:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #10
  %416 = load ptr, ptr %397, align 8, !tbaa !8
  %417 = getelementptr inbounds i8, ptr %416, i64 16
  %418 = load ptr, ptr %417, align 8
  %419 = call noundef ptr %418(ptr noundef nonnull align 8 dereferenceable(16) %397) #10
  store ptr %419, ptr %58, align 8, !tbaa !10
  %420 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %414, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %421 unwind label %431

421:                                              ; preds = %415
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #10
  br label %433

422:                                              ; preds = %394
  %423 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA139_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 1 dereferenceable(139) @.str.400)
          to label %424 unwind label %425

424:                                              ; preds = %422
  invoke void @__cxa_end_catch()
          to label %.thread234 unwind label %427

425:                                              ; preds = %422
  %426 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %439 unwind label %541

427:                                              ; preds = %.critedge200, %424
  %428 = landingpad { ptr, i32 }
          cleanup
  br label %439

429:                                              ; preds = %413, %411, %409, %407, %405, %398
  %430 = landingpad { ptr, i32 }
          cleanup
  br label %438

431:                                              ; preds = %415
  %432 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #10
  br label %438

433:                                              ; preds = %404, %421
  invoke void @__cxa_end_catch()
          to label %434 unwind label %436

434:                                              ; preds = %433
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #10
  br i1 %403, label %441, label %.thread237

.critedge200:                                     ; preds = %374, %386
  %435 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA130_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 1 dereferenceable(130) @.str.402)
          to label %.thread234 unwind label %427

436:                                              ; preds = %433
  %437 = landingpad { ptr, i32 }
          cleanup
  br label %439

438:                                              ; preds = %431, %429
  %.pn168 = phi { ptr, i32 } [ %432, %431 ], [ %430, %429 ]
  invoke void @__cxa_end_catch()
          to label %439 unwind label %541

.thread234:                                       ; preds = %424, %.critedge200
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #10
  br label %441

439:                                              ; preds = %436, %438, %425, %427
  %.pn172 = phi { ptr, i32 } [ %428, %427 ], [ %426, %425 ], [ %437, %436 ], [ %.pn168, %438 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  br label %440

440:                                              ; preds = %439, %388
  %.pn172.pn = phi { ptr, i32 } [ %.pn172, %439 ], [ %389, %388 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #10
  br label %472

441:                                              ; preds = %434, %.thread234, %.thread229
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %442 unwind label %447

442:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #10
  %443 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %50)
          to label %444 unwind label %449

444:                                              ; preds = %442
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %60, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 573, ptr noundef %443)
          to label %445 unwind label %449

445:                                              ; preds = %444
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %446 unwind label %451

446:                                              ; preds = %445
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #10
  br label %.thread237

447:                                              ; preds = %441
  %448 = landingpad { ptr, i32 }
          cleanup
  br label %454

449:                                              ; preds = %444, %442
  %450 = landingpad { ptr, i32 }
          cleanup
  br label %453

451:                                              ; preds = %445
  %452 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  br label %453

453:                                              ; preds = %451, %449
  %.pn175 = phi { ptr, i32 } [ %452, %451 ], [ %450, %449 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #10
  br label %454

454:                                              ; preds = %453, %447
  %.pn175.pn = phi { ptr, i32 } [ %.pn175, %453 ], [ %448, %447 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #10
  br label %472

.thread237:                                       ; preds = %434, %446
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %61)
  %455 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %61)
  br i1 %455, label %456, label %525

456:                                              ; preds = %.thread237
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.288, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %457 unwind label %473

457:                                              ; preds = %456
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #10
  %458 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %459 unwind label %475

459:                                              ; preds = %457
  br i1 %458, label %460, label %.critedge204

460:                                              ; preds = %459
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef nonnull @.str.223)
          to label %461 unwind label %475

461:                                              ; preds = %460
  %462 = load ptr, ptr %66, align 8
  %463 = getelementptr inbounds i8, ptr %66, i64 8
  %464 = load i64, ptr %463, align 8
  %465 = call { ptr, i64 } @_ZN3fmt3v107runtimeENS0_17basic_string_viewIcEE(ptr %462, i64 %464)
  %466 = extractvalue { ptr, i64 } %465, 0
  %467 = extractvalue { ptr, i64 } %465, 1
  call void @_ZN3fmt3v1019basic_format_stringIcJEEC2ENS0_21runtime_format_stringIcEE(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr %466, i64 %467)
  %468 = load ptr, ptr %65, align 8
  %469 = getelementptr inbounds i8, ptr %65, i64 8
  %470 = load i64, ptr %469, align 8
  invoke void @_ZN3fmt3v106formatIJEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_19basic_format_stringIcJDpNS0_13type_identityIT_E4typeEEEEDpOSA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr %468, i64 %470)
          to label %471 unwind label %475

471:                                              ; preds = %461
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  br label %.critedge204

472:                                              ; preds = %454, %440
  %.pn175.pn.pn = phi { ptr, i32 } [ %.pn175.pn, %454 ], [ %.pn172.pn, %440 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #10
  br label %540

473:                                              ; preds = %456
  %474 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #10
  br label %524

475:                                              ; preds = %461, %460, %457
  %476 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %477 = extractvalue { ptr, i32 } %476, 0
  %478 = extractvalue { ptr, i32 } %476, 1
  %479 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %480 = icmp eq i32 %478, %479
  %481 = call ptr @__cxa_begin_catch(ptr %477) #10
  br i1 %480, label %482, label %506

482:                                              ; preds = %475
  %483 = load ptr, ptr %481, align 8, !tbaa !8
  %484 = getelementptr inbounds i8, ptr %483, i64 16
  %485 = load ptr, ptr %484, align 8
  %486 = call noundef ptr %485(ptr noundef nonnull align 8 dereferenceable(16) %481) #10
  %487 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef %486)
          to label %488 unwind label %513

488:                                              ; preds = %482
  br i1 %487, label %489, label %517

489:                                              ; preds = %488
  %490 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA80_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef nonnull align 1 dereferenceable(80) @.str.404)
          to label %491 unwind label %513

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

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

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

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

499:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #10
  %500 = load ptr, ptr %481, align 8, !tbaa !8
  %501 = getelementptr inbounds i8, ptr %500, i64 16
  %502 = load ptr, ptr %501, align 8
  %503 = call noundef ptr %502(ptr noundef nonnull align 8 dereferenceable(16) %481) #10
  store ptr %503, ptr %67, align 8, !tbaa !10
  %504 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %498, ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %505 unwind label %515

505:                                              ; preds = %499
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #10
  br label %517

506:                                              ; preds = %475
  %507 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef nonnull align 1 dereferenceable(123) @.str.403)
          to label %508 unwind label %509

508:                                              ; preds = %506
  invoke void @__cxa_end_catch()
          to label %.thread242 unwind label %511

509:                                              ; preds = %506
  %510 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %523 unwind label %541

511:                                              ; preds = %.critedge204, %508
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %523

513:                                              ; preds = %497, %495, %493, %491, %489, %482
  %514 = landingpad { ptr, i32 }
          cleanup
  br label %522

515:                                              ; preds = %499
  %516 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #10
  br label %522

517:                                              ; preds = %488, %505
  invoke void @__cxa_end_catch()
          to label %518 unwind label %520

518:                                              ; preds = %517
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #10
  br i1 %487, label %525, label %.thread245

.critedge204:                                     ; preds = %459, %471
  %519 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA114_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef nonnull align 1 dereferenceable(114) @.str.405)
          to label %.thread242 unwind label %511

520:                                              ; preds = %517
  %521 = landingpad { ptr, i32 }
          cleanup
  br label %523

522:                                              ; preds = %515, %513
  %.pn179 = phi { ptr, i32 } [ %516, %515 ], [ %514, %513 ]
  invoke void @__cxa_end_catch()
          to label %523 unwind label %541

.thread242:                                       ; preds = %508, %.critedge204
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #10
  br label %525

523:                                              ; preds = %520, %522, %509, %511
  %.pn183 = phi { ptr, i32 } [ %512, %511 ], [ %510, %509 ], [ %521, %520 ], [ %.pn179, %522 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  br label %524

524:                                              ; preds = %523, %473
  %.pn183.pn = phi { ptr, i32 } [ %.pn183, %523 ], [ %474, %473 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #10
  br label %539

525:                                              ; preds = %518, %.thread242, %.thread237
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %526 unwind label %531

526:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #10
  %527 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %61)
          to label %528 unwind label %533

528:                                              ; preds = %526
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %69, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 575, ptr noundef %527)
          to label %529 unwind label %533

529:                                              ; preds = %528
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %530 unwind label %535

530:                                              ; preds = %529
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #10
  br label %.thread245

531:                                              ; preds = %525
  %532 = landingpad { ptr, i32 }
          cleanup
  br label %538

533:                                              ; preds = %528, %526
  %534 = landingpad { ptr, i32 }
          cleanup
  br label %537

535:                                              ; preds = %529
  %536 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #10
  br label %537

537:                                              ; preds = %535, %533
  %.pn186 = phi { ptr, i32 } [ %536, %535 ], [ %534, %533 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #10
  br label %538

538:                                              ; preds = %537, %531
  %.pn186.pn = phi { ptr, i32 } [ %.pn186, %537 ], [ %532, %531 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #10
  br label %539

.thread245:                                       ; preds = %518, %530
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #10
  ret void

539:                                              ; preds = %538, %524
  %.pn186.pn.pn = phi { ptr, i32 } [ %.pn186.pn, %538 ], [ %.pn183.pn, %524 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #10
  br label %540

540:                                              ; preds = %539, %472, %387, %302, %267, %194, %109
  %.pn186.pn.pn.pn = phi { ptr, i32 } [ %.pn186.pn.pn, %539 ], [ %.pn175.pn.pn, %472 ], [ %.pn162.pn.pn, %387 ], [ %.pn149.pn.pn, %302 ], [ %.pn145.pn.pn, %267 ], [ %.pn132.pn.pn, %194 ], [ %.pn.pn.pn, %109 ]
  resume { ptr, i32 } %.pn186.pn.pn.pn

541:                                              ; preds = %522, %509, %438, %425, %353, %340, %245, %232, %160, %147
  %542 = landingpad { ptr, i32 }
          catch ptr null
  %543 = extractvalue { ptr, i32 } %542, 0
  call void @__clang_call_terminate(ptr %543) #11
  unreachable
}

; 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 @_ZN3fmt3v1019basic_format_stringIcJcccEEC2IA7_cTnNSt9enable_ifIXsr3std14is_convertibleIRKT_NS0_17basic_string_viewIcEEEE5valueEiE4typeELi0EEES8_(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 @_ZN3fmt3v106formatIJccEEENSt7__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)) local_unnamed_addr #6

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

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nofree nosync nounwind memory(none) }
attributes #8 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"vtable pointer", !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"any pointer", !6, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"double", !6, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"int", !6, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass