; LLVM IR from WayneLin92/SSeqCpp :: thirdparty/fmt/test/printf-test.ll (ZN30printf_test_dynamic_width_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.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.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.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 }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [19 x i8], align 1
@_ZTIN3fmt3v1012format_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZL7big_num = external hidden constant i32, align 4
@.str.97 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.421 = 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: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) 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 uwtable
declare dso_local void @_Z12test_sprintfIJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64) #2

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv() #4

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

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
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 void @_ZN7testing8internal8EqHelper7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN30printf_test_dynamic_width_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_string_view", align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %"class.testing::Message", align 8
  %11 = alloca %"class.testing::internal::AssertHelper", align 8
  %12 = alloca %"class.testing::AssertionResult", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.fmt::v10::basic_string_view", align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca %"class.testing::Message", align 8
  %18 = alloca %"class.testing::internal::AssertHelper", align 8
  %19 = alloca %"class.testing::AssertionResult", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca i8, align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.fmt::v10::basic_string_view", align 8
  %25 = alloca double, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %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.std::allocator", align 1
  %35 = alloca i8, align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.fmt::v10::basic_string_view", align 8
  %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.std::allocator", align 1
  %45 = alloca i8, align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.fmt::v10::basic_string_view", align 8
  %48 = alloca i32, align 4
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca %"class.testing::Message", align 8
  %52 = alloca %"class.testing::internal::AssertHelper", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %53 = 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 @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef @.str.408)
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  store i32 5, ptr %6, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  store i32 42, ptr %7, align 4, !tbaa !9
  %54 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
  %55 = load ptr, ptr %54, align 8
  %56 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
  %57 = load i64, ptr %56, align 8
  call void @_Z12test_sprintfIJiiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr %55, i64 %57, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 4 dereferenceable(4) %7)
  invoke void @_ZN7testing8internal8EqHelper7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %3, ptr noundef @.str.160, ptr noundef @.str.407, ptr noundef nonnull align 1 dereferenceable(6) @.str.162, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %58 unwind label %62

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

60:                                               ; preds = %58
  br i1 %59, label %61, label %70

61:                                               ; preds = %60
  br label %90

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

66:                                               ; preds = %58
  %67 = landingpad { ptr, i32 }
          cleanup
  %68 = extractvalue { ptr, i32 } %67, 0
  store ptr %68, ptr %8, align 8
  %69 = extractvalue { ptr, i32 } %67, 1
  store i32 %69, ptr %9, align 4
  br label %99

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

71:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  %72 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
          to label %73 unwind label %80

73:                                               ; preds = %71
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %11, i32 noundef 1, ptr noundef @.str.3, i32 noundef 249, ptr noundef %72)
          to label %74 unwind label %80

74:                                               ; preds = %73
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %75 unwind label %84

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

76:                                               ; preds = %70
  %77 = landingpad { ptr, i32 }
          cleanup
  %78 = extractvalue { ptr, i32 } %77, 0
  store ptr %78, ptr %8, align 8
  %79 = extractvalue { ptr, i32 } %77, 1
  store i32 %79, ptr %9, align 4
  br label %89

80:                                               ; preds = %73, %71
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %8, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %9, align 4
  br label %88

84:                                               ; preds = %74
  %85 = landingpad { ptr, i32 }
          cleanup
  %86 = extractvalue { ptr, i32 } %85, 0
  store ptr %86, ptr %8, align 8
  %87 = extractvalue { ptr, i32 } %85, 1
  store i32 %87, ptr %9, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #10
  br label %88

88:                                               ; preds = %84, %80
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  br label %89

89:                                               ; preds = %88, %76
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  br label %99

90:                                               ; preds = %75, %61
  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 %12) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #10
  call void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef @.str.408)
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  store i32 -5, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  store i32 42, ptr %16, align 4, !tbaa !9
  %91 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
  %92 = load ptr, ptr %91, align 8
  %93 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
  %94 = load i64, ptr %93, align 8
  call void @_Z12test_sprintfIJiiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr %92, i64 %94, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %16)
  invoke void @_ZN7testing8internal8EqHelper7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %12, ptr noundef @.str.409, ptr noundef @.str.410, ptr noundef nonnull align 1 dereferenceable(6) @.str.411, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %95 unwind label %101

95:                                               ; preds = %90
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #10
  %96 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %97 unwind label %105

97:                                               ; preds = %95
  br i1 %96, label %98, label %109

98:                                               ; preds = %97
  br label %129

99:                                               ; preds = %89, %66
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #10
  br label %100

100:                                              ; preds = %99, %62
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #10
  br label %527

101:                                              ; preds = %90
  %102 = landingpad { ptr, i32 }
          cleanup
  %103 = extractvalue { ptr, i32 } %102, 0
  store ptr %103, ptr %8, align 8
  %104 = extractvalue { ptr, i32 } %102, 1
  store i32 %104, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #10
  br label %144

105:                                              ; preds = %95
  %106 = landingpad { ptr, i32 }
          cleanup
  %107 = extractvalue { ptr, i32 } %106, 0
  store ptr %107, ptr %8, align 8
  %108 = extractvalue { ptr, i32 } %106, 1
  store i32 %108, ptr %9, align 4
  br label %143

109:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %110 unwind label %115

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

112:                                              ; preds = %110
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %18, i32 noundef 1, ptr noundef @.str.3, i32 noundef 250, ptr noundef %111)
          to label %113 unwind label %119

113:                                              ; preds = %112
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %114 unwind label %123

114:                                              ; preds = %113
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  br label %129

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

119:                                              ; preds = %112, %110
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %8, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %9, align 4
  br label %127

123:                                              ; preds = %113
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %8, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %9, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  br label %127

127:                                              ; preds = %123, %119
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #10
  br label %128

128:                                              ; preds = %127, %115
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  br label %143

129:                                              ; preds = %114, %98
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %19)
  %130 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %131 unwind label %145

131:                                              ; preds = %129
  br i1 %130, label %132, label %242

132:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.412, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %133 unwind label %149

133:                                              ; preds = %132
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #10
  store i8 0, ptr %22, align 1, !tbaa !11
  %134 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %135 unwind label %153

135:                                              ; preds = %133
  br i1 %134, label %136, label %198

136:                                              ; preds = %135
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef @.str.408)
          to label %137 unwind label %153

137:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  store double 5.000000e+00, ptr %25, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  store i32 42, ptr %26, align 4, !tbaa !9
  %138 = getelementptr inbounds { ptr, i64 }, ptr %24, i32 0, i32 0
  %139 = load ptr, ptr %138, align 8
  %140 = getelementptr inbounds { ptr, i64 }, ptr %24, i32 0, i32 1
  %141 = load i64, ptr %140, align 8
  invoke void @_Z12test_sprintfIJdiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr %139, i64 %141, ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %142 unwind label %157

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

143:                                              ; preds = %128, %105
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #10
  br label %144

144:                                              ; preds = %143, %101
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #10
  br label %527

145:                                              ; preds = %129
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %8, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %9, align 4
  br label %277

149:                                              ; preds = %132
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %8, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #10
  br label %241

153:                                              ; preds = %136, %133
  %154 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %8, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %9, align 4
  br label %161

157:                                              ; preds = %137
  %158 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %8, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  br label %161

161:                                              ; preds = %157, %153
  %162 = load i32, ptr %9, align 4
  %163 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %164 = icmp eq i32 %162, %163
  br i1 %164, label %165, label %193

165:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %166 = load ptr, ptr %8, align 8
  %167 = call ptr @__cxa_begin_catch(ptr %166) #10
  store ptr %167, ptr %28, align 8
  %168 = load ptr, ptr %28, align 8, !tbaa !5
  %169 = load ptr, ptr %168, align 8, !tbaa !15
  %170 = getelementptr inbounds ptr, ptr %169, i64 2
  %171 = load ptr, ptr %170, align 8
  %172 = call noundef ptr %171(ptr noundef nonnull align 8 dereferenceable(16) %168) #10
  %173 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef %172)
          to label %174 unwind label %210

174:                                              ; preds = %165
  br i1 %173, label %175, label %218

175:                                              ; preds = %174
  %176 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA76_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 1 dereferenceable(76) @.str.414)
          to label %177 unwind label %210

177:                                              ; preds = %175
  %178 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %176, ptr noundef nonnull align 1 dereferenceable(11) @.str.97)
          to label %179 unwind label %210

179:                                              ; preds = %177
  %180 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %178, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %181 unwind label %210

181:                                              ; preds = %179
  %182 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %180, ptr noundef nonnull align 1 dereferenceable(2) @.str.98)
          to label %183 unwind label %210

183:                                              ; preds = %181
  %184 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %182, ptr noundef nonnull align 1 dereferenceable(11) @.str.99)
          to label %185 unwind label %210

185:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %186 = load ptr, ptr %28, align 8, !tbaa !5
  %187 = load ptr, ptr %186, align 8, !tbaa !15
  %188 = getelementptr inbounds ptr, ptr %187, i64 2
  %189 = load ptr, ptr %188, align 8
  %190 = call noundef ptr %189(ptr noundef nonnull align 8 dereferenceable(16) %186) #10
  store ptr %190, ptr %29, align 8, !tbaa !5
  %191 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %184, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %192 unwind label %214

192:                                              ; preds = %185
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  store i32 2, ptr %27, align 4
  br label %219

193:                                              ; preds = %161
  %194 = load ptr, ptr %8, align 8
  %195 = call ptr @__cxa_begin_catch(ptr %194) #10
  %196 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA119_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 1 dereferenceable(119) @.str.413)
          to label %197 unwind label %200

197:                                              ; preds = %193
  store i32 2, ptr %27, align 4
  invoke void @__cxa_end_catch()
          to label %204 unwind label %205

198:                                              ; preds = %135
  br label %199

199:                                              ; preds = %198, %142
  br label %223

200:                                              ; preds = %193
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %8, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %9, align 4
  invoke void @__cxa_end_catch()
          to label %209 unwind label %532

204:                                              ; preds = %197
  br label %237

205:                                              ; preds = %226, %197
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %8, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %9, align 4
  br label %240

209:                                              ; preds = %200
  br label %240

210:                                              ; preds = %183, %181, %179, %177, %175, %165
  %211 = landingpad { ptr, i32 }
          cleanup
  %212 = extractvalue { ptr, i32 } %211, 0
  store ptr %212, ptr %8, align 8
  %213 = extractvalue { ptr, i32 } %211, 1
  store i32 %213, ptr %9, align 4
  br label %233

214:                                              ; preds = %185
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %8, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  br label %233

218:                                              ; preds = %174
  store i8 1, ptr %22, align 1, !tbaa !11
  store i32 0, ptr %27, align 4
  br label %219

219:                                              ; preds = %218, %192
  invoke void @__cxa_end_catch()
          to label %220 unwind label %229

220:                                              ; preds = %219
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  %221 = load i32, ptr %27, align 4
  switch i32 %221, label %237 [
    i32 0, label %222
  ]

222:                                              ; preds = %220
  br label %223

223:                                              ; preds = %222, %199
  %224 = load i8, ptr %22, align 1, !tbaa !11, !range !17, !noundef !18
  %225 = trunc i8 %224 to i1
  br i1 %225, label %236, label %226

226:                                              ; preds = %223
  %227 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA110_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 1 dereferenceable(110) @.str.415)
          to label %228 unwind label %205

228:                                              ; preds = %226
  store i32 2, ptr %27, align 4
  br label %237

229:                                              ; preds = %219
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %8, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %9, align 4
  br label %235

233:                                              ; preds = %214, %210
  invoke void @__cxa_end_catch()
          to label %234 unwind label %532

234:                                              ; preds = %233
  br label %235

235:                                              ; preds = %234, %229
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  br label %240

236:                                              ; preds = %223
  store i32 0, ptr %27, align 4
  br label %237

237:                                              ; preds = %236, %228, %220, %204
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #10
  %238 = load i32, ptr %27, align 4
  switch i32 %238, label %535 [
    i32 0, label %239
    i32 2, label %243
  ]

239:                                              ; preds = %237
  br label %263

240:                                              ; preds = %235, %209, %205
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  br label %241

241:                                              ; preds = %240, %149
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #10
  br label %277

242:                                              ; preds = %131
  br label %243

243:                                              ; preds = %242, %237
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %244 unwind label %249

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

246:                                              ; preds = %244
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %31, i32 noundef 1, ptr noundef @.str.3, i32 noundef 252, ptr noundef %245)
          to label %247 unwind label %253

247:                                              ; preds = %246
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %248 unwind label %257

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

249:                                              ; preds = %243
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %8, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %9, align 4
  br label %262

253:                                              ; preds = %246, %244
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %8, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %9, align 4
  br label %261

257:                                              ; preds = %247
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %8, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %9, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  br label %261

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

262:                                              ; preds = %261, %249
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  br label %277

263:                                              ; preds = %248, %239
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %32)
  %264 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %265 unwind label %278

265:                                              ; preds = %263
  br i1 %264, label %266, label %371

266:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.93, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %267 unwind label %282

267:                                              ; preds = %266
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #10
  store i8 0, ptr %35, align 1, !tbaa !11
  %268 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %269 unwind label %286

269:                                              ; preds = %267
  br i1 %268, label %270, label %327

270:                                              ; preds = %269
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef @.str.408)
          to label %271 unwind label %286

271:                                              ; preds = %270
  %272 = getelementptr inbounds { ptr, i64 }, ptr %37, i32 0, i32 0
  %273 = load ptr, ptr %272, align 8
  %274 = getelementptr inbounds { ptr, i64 }, ptr %37, i32 0, i32 1
  %275 = load i64, ptr %274, align 8
  invoke void @_Z12test_sprintfIJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr %273, i64 %275)
          to label %276 unwind label %286

276:                                              ; preds = %271
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  br label %328

277:                                              ; preds = %262, %241, %145
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #10
  br label %527

278:                                              ; preds = %263
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %8, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %9, align 4
  br label %406

282:                                              ; preds = %266
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %8, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #10
  br label %370

286:                                              ; preds = %271, %270, %267
  %287 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %8, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %9, align 4
  br label %290

290:                                              ; preds = %286
  %291 = load i32, ptr %9, align 4
  %292 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %293 = icmp eq i32 %291, %292
  br i1 %293, label %294, label %322

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

303:                                              ; preds = %294
  br i1 %302, label %304, label %347

304:                                              ; preds = %303
  %305 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA67_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 1 dereferenceable(67) @.str.417)
          to label %306 unwind label %339

306:                                              ; preds = %304
  %307 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %305, ptr noundef nonnull align 1 dereferenceable(11) @.str.97)
          to label %308 unwind label %339

308:                                              ; preds = %306
  %309 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %307, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %310 unwind label %339

310:                                              ; preds = %308
  %311 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %309, ptr noundef nonnull align 1 dereferenceable(2) @.str.98)
          to label %312 unwind label %339

312:                                              ; preds = %310
  %313 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %311, ptr noundef nonnull align 1 dereferenceable(11) @.str.99)
          to label %314 unwind label %339

314:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %315 = load ptr, ptr %38, align 8, !tbaa !5
  %316 = load ptr, ptr %315, align 8, !tbaa !15
  %317 = getelementptr inbounds ptr, ptr %316, i64 2
  %318 = load ptr, ptr %317, align 8
  %319 = call noundef ptr %318(ptr noundef nonnull align 8 dereferenceable(16) %315) #10
  store ptr %319, ptr %39, align 8, !tbaa !5
  %320 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %313, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %321 unwind label %343

321:                                              ; preds = %314
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  store i32 3, ptr %27, align 4
  br label %348

322:                                              ; preds = %290
  %323 = load ptr, ptr %8, align 8
  %324 = call ptr @__cxa_begin_catch(ptr %323) #10
  %325 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA110_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 1 dereferenceable(110) @.str.416)
          to label %326 unwind label %329

326:                                              ; preds = %322
  store i32 3, ptr %27, align 4
  invoke void @__cxa_end_catch()
          to label %333 unwind label %334

327:                                              ; preds = %269
  br label %328

328:                                              ; preds = %327, %276
  br label %352

329:                                              ; preds = %322
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %8, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %9, align 4
  invoke void @__cxa_end_catch()
          to label %338 unwind label %532

333:                                              ; preds = %326
  br label %366

334:                                              ; preds = %355, %326
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %8, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %9, align 4
  br label %369

338:                                              ; preds = %329
  br label %369

339:                                              ; preds = %312, %310, %308, %306, %304, %294
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %8, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %9, align 4
  br label %362

343:                                              ; preds = %314
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %8, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  br label %362

347:                                              ; preds = %303
  store i8 1, ptr %35, align 1, !tbaa !11
  store i32 0, ptr %27, align 4
  br label %348

348:                                              ; preds = %347, %321
  invoke void @__cxa_end_catch()
          to label %349 unwind label %358

349:                                              ; preds = %348
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  %350 = load i32, ptr %27, align 4
  switch i32 %350, label %366 [
    i32 0, label %351
  ]

351:                                              ; preds = %349
  br label %352

352:                                              ; preds = %351, %328
  %353 = load i8, ptr %35, align 1, !tbaa !11, !range !17, !noundef !18
  %354 = trunc i8 %353 to i1
  br i1 %354, label %365, label %355

355:                                              ; preds = %352
  %356 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA101_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 1 dereferenceable(101) @.str.418)
          to label %357 unwind label %334

357:                                              ; preds = %355
  store i32 3, ptr %27, align 4
  br label %366

358:                                              ; preds = %348
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %8, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %9, align 4
  br label %364

362:                                              ; preds = %343, %339
  invoke void @__cxa_end_catch()
          to label %363 unwind label %532

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363, %358
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  br label %369

365:                                              ; preds = %352
  store i32 0, ptr %27, align 4
  br label %366

366:                                              ; preds = %365, %357, %349, %333
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #10
  %367 = load i32, ptr %27, align 4
  switch i32 %367, label %535 [
    i32 0, label %368
    i32 3, label %372
  ]

368:                                              ; preds = %366
  br label %392

369:                                              ; preds = %364, %338, %334
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  br label %370

370:                                              ; preds = %369, %282
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #10
  br label %406

371:                                              ; preds = %265
  br label %372

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

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

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

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

377:                                              ; preds = %376
  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 %392

378:                                              ; preds = %372
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %8, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %9, align 4
  br label %391

382:                                              ; preds = %375, %373
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %8, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %9, align 4
  br label %390

386:                                              ; preds = %376
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %8, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %9, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #10
  br label %390

390:                                              ; preds = %386, %382
  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 %391

391:                                              ; preds = %390, %378
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  br label %406

392:                                              ; preds = %377, %368
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %42)
  %393 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %394 unwind label %407

394:                                              ; preds = %392
  br i1 %393, label %395, label %504

395:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.112, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %396 unwind label %411

396:                                              ; preds = %395
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #10
  store i8 0, ptr %45, align 1, !tbaa !11
  %397 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %398 unwind label %415

398:                                              ; preds = %396
  br i1 %397, label %399, label %460

399:                                              ; preds = %398
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef @.str.408)
          to label %400 unwind label %415

400:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  store i32 42, ptr %48, align 4, !tbaa !9
  %401 = getelementptr inbounds { ptr, i64 }, ptr %47, i32 0, i32 0
  %402 = load ptr, ptr %401, align 8
  %403 = getelementptr inbounds { ptr, i64 }, ptr %47, i32 0, i32 1
  %404 = load i64, ptr %403, align 8
  invoke void @_Z12test_sprintfIJjiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr %402, i64 %404, ptr noundef nonnull align 4 dereferenceable(4) @_ZL7big_num, ptr noundef nonnull align 4 dereferenceable(4) %48)
          to label %405 unwind label %419

405:                                              ; preds = %400
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %461

406:                                              ; preds = %391, %370, %278
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #10
  br label %527

407:                                              ; preds = %392
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %8, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %9, align 4
  br label %526

411:                                              ; preds = %395
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %8, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #10
  br label %503

415:                                              ; preds = %399, %396
  %416 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %8, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %9, align 4
  br label %423

419:                                              ; preds = %400
  %420 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %8, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %423

423:                                              ; preds = %419, %415
  %424 = load i32, ptr %9, align 4
  %425 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN3fmt3v1012format_errorE) #10
  %426 = icmp eq i32 %424, %425
  br i1 %426, label %427, label %455

427:                                              ; preds = %423
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  %428 = load ptr, ptr %8, align 8
  %429 = call ptr @__cxa_begin_catch(ptr %428) #10
  store ptr %429, ptr %49, align 8
  %430 = load ptr, ptr %49, align 8, !tbaa !5
  %431 = load ptr, ptr %430, align 8, !tbaa !15
  %432 = getelementptr inbounds ptr, ptr %431, i64 2
  %433 = load ptr, ptr %432, align 8
  %434 = call noundef ptr %433(ptr noundef nonnull align 8 dereferenceable(16) %430) #10
  %435 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef %434)
          to label %436 unwind label %472

436:                                              ; preds = %427
  br i1 %435, label %437, label %480

437:                                              ; preds = %436
  %438 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA80_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 1 dereferenceable(80) @.str.420)
          to label %439 unwind label %472

439:                                              ; preds = %437
  %440 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %438, ptr noundef nonnull align 1 dereferenceable(11) @.str.97)
          to label %441 unwind label %472

441:                                              ; preds = %439
  %442 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %440, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %443 unwind label %472

443:                                              ; preds = %441
  %444 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %442, ptr noundef nonnull align 1 dereferenceable(2) @.str.98)
          to label %445 unwind label %472

445:                                              ; preds = %443
  %446 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %444, ptr noundef nonnull align 1 dereferenceable(11) @.str.99)
          to label %447 unwind label %472

447:                                              ; preds = %445
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  %448 = load ptr, ptr %49, align 8, !tbaa !5
  %449 = load ptr, ptr %448, align 8, !tbaa !15
  %450 = getelementptr inbounds ptr, ptr %449, i64 2
  %451 = load ptr, ptr %450, align 8
  %452 = call noundef ptr %451(ptr noundef nonnull align 8 dereferenceable(16) %448) #10
  store ptr %452, ptr %50, align 8, !tbaa !5
  %453 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %446, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %454 unwind label %476

454:                                              ; preds = %447
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  store i32 4, ptr %27, align 4
  br label %481

455:                                              ; preds = %423
  %456 = load ptr, ptr %8, align 8
  %457 = call ptr @__cxa_begin_catch(ptr %456) #10
  %458 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 1 dereferenceable(123) @.str.419)
          to label %459 unwind label %462

459:                                              ; preds = %455
  store i32 4, ptr %27, align 4
  invoke void @__cxa_end_catch()
          to label %466 unwind label %467

460:                                              ; preds = %398
  br label %461

461:                                              ; preds = %460, %405
  br label %485

462:                                              ; preds = %455
  %463 = landingpad { ptr, i32 }
          cleanup
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %8, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %9, align 4
  invoke void @__cxa_end_catch()
          to label %471 unwind label %532

466:                                              ; preds = %459
  br label %499

467:                                              ; preds = %488, %459
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %8, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %9, align 4
  br label %502

471:                                              ; preds = %462
  br label %502

472:                                              ; preds = %445, %443, %441, %439, %437, %427
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %8, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %9, align 4
  br label %495

476:                                              ; preds = %447
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %8, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  br label %495

480:                                              ; preds = %436
  store i8 1, ptr %45, align 1, !tbaa !11
  store i32 0, ptr %27, align 4
  br label %481

481:                                              ; preds = %480, %454
  invoke void @__cxa_end_catch()
          to label %482 unwind label %491

482:                                              ; preds = %481
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  %483 = load i32, ptr %27, align 4
  switch i32 %483, label %499 [
    i32 0, label %484
  ]

484:                                              ; preds = %482
  br label %485

485:                                              ; preds = %484, %461
  %486 = load i8, ptr %45, align 1, !tbaa !11, !range !17, !noundef !18
  %487 = trunc i8 %486 to i1
  br i1 %487, label %498, label %488

488:                                              ; preds = %485
  %489 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA114_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 1 dereferenceable(114) @.str.421)
          to label %490 unwind label %467

490:                                              ; preds = %488
  store i32 4, ptr %27, align 4
  br label %499

491:                                              ; preds = %481
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %8, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %9, align 4
  br label %497

495:                                              ; preds = %476, %472
  invoke void @__cxa_end_catch()
          to label %496 unwind label %532

496:                                              ; preds = %495
  br label %497

497:                                              ; preds = %496, %491
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  br label %502

498:                                              ; preds = %485
  store i32 0, ptr %27, align 4
  br label %499

499:                                              ; preds = %498, %490, %482, %466
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #10
  %500 = load i32, ptr %27, align 4
  switch i32 %500, label %535 [
    i32 0, label %501
    i32 4, label %505
  ]

501:                                              ; preds = %499
  br label %525

502:                                              ; preds = %497, %471, %467
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  br label %503

503:                                              ; preds = %502, %411
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #10
  br label %526

504:                                              ; preds = %394
  br label %505

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

506:                                              ; preds = %505
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  %507 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %508 unwind label %515

508:                                              ; preds = %506
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %52, i32 noundef 1, ptr noundef @.str.3, i32 noundef 255, ptr noundef %507)
          to label %509 unwind label %515

509:                                              ; preds = %508
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %510 unwind label %519

510:                                              ; preds = %509
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  br label %525

511:                                              ; preds = %505
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %8, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %9, align 4
  br label %524

515:                                              ; preds = %508, %506
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %8, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %9, align 4
  br label %523

519:                                              ; preds = %509
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %8, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %9, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #10
  br label %523

523:                                              ; preds = %519, %515
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #10
  br label %524

524:                                              ; preds = %523, %511
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  br label %526

525:                                              ; preds = %510, %501
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #10
  ret void

526:                                              ; preds = %524, %503, %407
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #10
  br label %527

527:                                              ; preds = %526, %406, %277, %144, %100
  %528 = load ptr, ptr %8, align 8
  %529 = load i32, ptr %9, align 4
  %530 = insertvalue { ptr, i32 } poison, ptr %528, 0
  %531 = insertvalue { ptr, i32 } %530, i32 %529, 1
  resume { ptr, i32 } %531

532:                                              ; preds = %495, %462, %362, %329, %233, %200
  %533 = landingpad { ptr, i32 }
          catch ptr null
  %534 = extractvalue { ptr, i32 } %533, 0
  call void @__clang_call_terminate(ptr %534) #11
  unreachable

535:                                              ; preds = %499, %366, %237
  unreachable
}

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

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

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

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

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 = { 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 #4 = { "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 = { 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 #6 = { 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 #7 = { nounwind memory(none) }
attributes #8 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { noreturn nounwind }

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

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


; 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.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.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.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 }

@.str.3 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [19 x i8], align 1
@_ZTIN3fmt3v1012format_errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZL7big_num = external hidden constant i32, align 4
@.str.97 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.421 = 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 nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) 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 uwtable
declare dso_local void @_Z12test_sprintfIJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr, i64) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv() local_unnamed_addr #4

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

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
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 void @_ZN7testing8internal8EqHelper7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(6), 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 @_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
define dso_local void @_ZN30printf_test_dynamic_width_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_string_view", align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca %"class.testing::Message", align 8
  %8 = alloca %"class.testing::internal::AssertHelper", align 8
  %9 = alloca %"class.testing::AssertionResult", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.fmt::v10::basic_string_view", align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca %"class.testing::Message", align 8
  %15 = alloca %"class.testing::internal::AssertHelper", align 8
  %16 = alloca %"class.testing::AssertionResult", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.fmt::v10::basic_string_view", align 8
  %21 = alloca double, align 8
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca %"class.testing::Message", align 8
  %25 = alloca %"class.testing::internal::AssertHelper", align 8
  %26 = alloca %"class.testing::AssertionResult", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.fmt::v10::basic_string_view", align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"class.testing::Message", align 8
  %33 = alloca %"class.testing::internal::AssertHelper", align 8
  %34 = alloca %"class.testing::AssertionResult", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.fmt::v10::basic_string_view", align 8
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca %"class.testing::Message", align 8
  %42 = 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 @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull @.str.408)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #10
  store i32 5, ptr %5, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #10
  store i32 42, ptr %6, align 4, !tbaa !5
  %43 = load ptr, ptr %4, align 8
  %44 = getelementptr inbounds i8, ptr %4, i64 8
  %45 = load i64, ptr %44, align 8
  call void @_Z12test_sprintfIJiiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr %43, i64 %45, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %6)
  invoke void @_ZN7testing8internal8EqHelper7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_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.160, ptr noundef nonnull @.str.407, ptr noundef nonnull align 1 dereferenceable(6) @.str.162, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %46 unwind label %48

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

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

50:                                               ; preds = %46
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %51 unwind label %56

51:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  %52 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
          to label %53 unwind label %58

53:                                               ; preds = %51
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 249, ptr noundef %52)
          to label %54 unwind label %58

54:                                               ; preds = %53
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %55 unwind label %60

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

56:                                               ; preds = %50
  %57 = landingpad { ptr, i32 }
          cleanup
  br label %63

58:                                               ; preds = %53, %51
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %62

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

62:                                               ; preds = %60, %58
  %.pn = phi { ptr, i32 } [ %61, %60 ], [ %59, %58 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  br label %63

63:                                               ; preds = %62, %56
  %.pn.pn = phi { ptr, i32 } [ %.pn, %62 ], [ %57, %56 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #10
  br label %70

64:                                               ; preds = %46, %55
  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 %9) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #10
  call void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull @.str.408)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #10
  store i32 -5, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #10
  store i32 42, ptr %13, align 4, !tbaa !5
  %65 = load ptr, ptr %11, align 8
  %66 = getelementptr inbounds i8, ptr %11, i64 8
  %67 = load i64, ptr %66, align 8
  call void @_Z12test_sprintfIJiiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr %65, i64 %67, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13)
  invoke void @_ZN7testing8internal8EqHelper7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSJ_RKSB_RKSC_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %9, ptr noundef nonnull @.str.409, ptr noundef nonnull @.str.410, ptr noundef nonnull align 1 dereferenceable(6) @.str.411, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %68 unwind label %71

68:                                               ; preds = %64
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  %69 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %9)
  br i1 %69, label %87, label %73

70:                                               ; preds = %63, %48
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %63 ], [ %49, %48 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #10
  br label %325

71:                                               ; preds = %64
  %72 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  br label %99

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

74:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #10
  %75 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %76 unwind label %81

76:                                               ; preds = %74
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %15, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 250, ptr noundef %75)
          to label %77 unwind label %81

77:                                               ; preds = %76
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %78 unwind label %83

78:                                               ; preds = %77
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #10
  br label %87

79:                                               ; preds = %73
  %80 = landingpad { ptr, i32 }
          cleanup
  br label %86

81:                                               ; preds = %76, %74
  %82 = landingpad { ptr, i32 }
          cleanup
  br label %85

83:                                               ; preds = %77
  %84 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  br label %85

85:                                               ; preds = %83, %81
  %.pn73 = phi { ptr, i32 } [ %84, %83 ], [ %82, %81 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #10
  br label %86

86:                                               ; preds = %85, %79
  %.pn73.pn = phi { ptr, i32 } [ %.pn73, %85 ], [ %80, %79 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #10
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #10
  br label %99

87:                                               ; preds = %68, %78
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %16)
  %88 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %16)
  br i1 %88, label %89, label %153

89:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.412, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %90 unwind label %100

90:                                               ; preds = %89
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #10
  %91 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %92 unwind label %102

92:                                               ; preds = %90
  br i1 %91, label %93, label %.critedge

93:                                               ; preds = %92
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull @.str.408)
          to label %94 unwind label %102

94:                                               ; preds = %93
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #10
  store double 5.000000e+00, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #10
  store i32 42, ptr %22, align 4, !tbaa !5
  %95 = load ptr, ptr %20, align 8
  %96 = getelementptr inbounds i8, ptr %20, i64 8
  %97 = load i64, ptr %96, align 8
  invoke void @_Z12test_sprintfIJdiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr %95, i64 %97, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %98 unwind label %104

98:                                               ; preds = %94
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #10
  br label %.critedge

99:                                               ; preds = %86, %71
  %.pn73.pn.pn = phi { ptr, i32 } [ %.pn73.pn, %86 ], [ %72, %71 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #10
  br label %325

100:                                              ; preds = %89
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #10
  br label %152

102:                                              ; preds = %93, %90
  %103 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %106

104:                                              ; preds = %94
  %105 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #10
  br label %106

106:                                              ; preds = %104, %102
  %.pn77 = phi { ptr, i32 } [ %105, %104 ], [ %103, %102 ]
  %.6 = extractvalue { ptr, i32 } %.pn77, 0
  %.636 = extractvalue { ptr, i32 } %.pn77, 1
  %107 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %108 = icmp eq i32 %.636, %107
  %109 = call ptr @__cxa_begin_catch(ptr %.6) #10
  br i1 %108, label %110, label %134

110:                                              ; preds = %106
  %111 = load ptr, ptr %109, align 8, !tbaa !11
  %112 = getelementptr inbounds i8, ptr %111, i64 16
  %113 = load ptr, ptr %112, align 8
  %114 = call noundef ptr %113(ptr noundef nonnull align 8 dereferenceable(16) %109) #10
  %115 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef %114)
          to label %116 unwind label %141

116:                                              ; preds = %110
  br i1 %115, label %117, label %145

117:                                              ; preds = %116
  %118 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA76_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 1 dereferenceable(76) @.str.414)
          to label %119 unwind label %141

119:                                              ; preds = %117
  %120 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %118, ptr noundef nonnull align 1 dereferenceable(11) @.str.97)
          to label %121 unwind label %141

121:                                              ; preds = %119
  %122 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %120, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %123 unwind label %141

123:                                              ; preds = %121
  %124 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %122, ptr noundef nonnull align 1 dereferenceable(2) @.str.98)
          to label %125 unwind label %141

125:                                              ; preds = %123
  %126 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %124, ptr noundef nonnull align 1 dereferenceable(11) @.str.99)
          to label %127 unwind label %141

127:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #10
  %128 = load ptr, ptr %109, align 8, !tbaa !11
  %129 = getelementptr inbounds i8, ptr %128, i64 16
  %130 = load ptr, ptr %129, align 8
  %131 = call noundef ptr %130(ptr noundef nonnull align 8 dereferenceable(16) %109) #10
  store ptr %131, ptr %23, align 8, !tbaa !13
  %132 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %126, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %133 unwind label %143

133:                                              ; preds = %127
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #10
  br label %145

134:                                              ; preds = %106
  %135 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA119_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 1 dereferenceable(119) @.str.413)
          to label %136 unwind label %137

136:                                              ; preds = %134
  invoke void @__cxa_end_catch()
          to label %.thread unwind label %139

137:                                              ; preds = %134
  %138 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %151 unwind label %326

139:                                              ; preds = %.critedge, %136
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %151

141:                                              ; preds = %125, %123, %121, %119, %117, %110
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %150

143:                                              ; preds = %127
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #10
  br label %150

145:                                              ; preds = %116, %133
  invoke void @__cxa_end_catch()
          to label %146 unwind label %148

146:                                              ; preds = %145
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  br i1 %115, label %153, label %.thread127

.critedge:                                        ; preds = %92, %98
  %147 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA110_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 1 dereferenceable(110) @.str.415)
          to label %.thread unwind label %139

148:                                              ; preds = %145
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %151

150:                                              ; preds = %143, %141
  %.pn79 = phi { ptr, i32 } [ %144, %143 ], [ %142, %141 ]
  invoke void @__cxa_end_catch()
          to label %151 unwind label %326

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

151:                                              ; preds = %148, %150, %137, %139
  %.pn83 = phi { ptr, i32 } [ %140, %139 ], [ %138, %137 ], [ %149, %148 ], [ %.pn79, %150 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  br label %152

152:                                              ; preds = %151, %100
  %.pn83.pn = phi { ptr, i32 } [ %.pn83, %151 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  br label %178

153:                                              ; preds = %146, %.thread, %87
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %154 unwind label %159

154:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #10
  %155 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %16)
          to label %156 unwind label %161

156:                                              ; preds = %154
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %25, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 252, ptr noundef %155)
          to label %157 unwind label %161

157:                                              ; preds = %156
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %158 unwind label %163

158:                                              ; preds = %157
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #10
  br label %.thread127

159:                                              ; preds = %153
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %166

161:                                              ; preds = %156, %154
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %165

163:                                              ; preds = %157
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  br label %165

165:                                              ; preds = %163, %161
  %.pn86 = phi { ptr, i32 } [ %164, %163 ], [ %162, %161 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #10
  br label %166

166:                                              ; preds = %165, %159
  %.pn86.pn = phi { ptr, i32 } [ %.pn86, %165 ], [ %160, %159 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #10
  br label %178

.thread127:                                       ; preds = %146, %158
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %26)
  %167 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %26)
  br i1 %167, label %168, label %231

168:                                              ; preds = %.thread127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.93, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %169 unwind label %179

169:                                              ; preds = %168
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #10
  %170 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %171 unwind label %181

171:                                              ; preds = %169
  br i1 %170, label %172, label %.critedge116

172:                                              ; preds = %171
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef nonnull @.str.408)
          to label %173 unwind label %181

173:                                              ; preds = %172
  %174 = load ptr, ptr %30, align 8
  %175 = getelementptr inbounds i8, ptr %30, i64 8
  %176 = load i64, ptr %175, align 8
  invoke void @_Z12test_sprintfIJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr %174, i64 %176)
          to label %177 unwind label %181

177:                                              ; preds = %173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  br label %.critedge116

178:                                              ; preds = %166, %152
  %.pn86.pn.pn = phi { ptr, i32 } [ %.pn86.pn, %166 ], [ %.pn83.pn, %152 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #10
  br label %325

179:                                              ; preds = %168
  %180 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #10
  br label %230

181:                                              ; preds = %173, %172, %169
  %182 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  %183 = extractvalue { ptr, i32 } %182, 0
  %184 = extractvalue { ptr, i32 } %182, 1
  %185 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %186 = icmp eq i32 %184, %185
  %187 = call ptr @__cxa_begin_catch(ptr %183) #10
  br i1 %186, label %188, label %212

188:                                              ; preds = %181
  %189 = load ptr, ptr %187, align 8, !tbaa !11
  %190 = getelementptr inbounds i8, ptr %189, i64 16
  %191 = load ptr, ptr %190, align 8
  %192 = call noundef ptr %191(ptr noundef nonnull align 8 dereferenceable(16) %187) #10
  %193 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef %192)
          to label %194 unwind label %219

194:                                              ; preds = %188
  br i1 %193, label %195, label %223

195:                                              ; preds = %194
  %196 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA67_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 1 dereferenceable(67) @.str.417)
          to label %197 unwind label %219

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

199:                                              ; preds = %197
  %200 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %198, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %201 unwind label %219

201:                                              ; preds = %199
  %202 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %200, ptr noundef nonnull align 1 dereferenceable(2) @.str.98)
          to label %203 unwind label %219

203:                                              ; preds = %201
  %204 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %202, ptr noundef nonnull align 1 dereferenceable(11) @.str.99)
          to label %205 unwind label %219

205:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #10
  %206 = load ptr, ptr %187, align 8, !tbaa !11
  %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) %187) #10
  store ptr %209, ptr %31, align 8, !tbaa !13
  %210 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %204, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %211 unwind label %221

211:                                              ; preds = %205
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  br label %223

212:                                              ; preds = %181
  %213 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA110_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 1 dereferenceable(110) @.str.416)
          to label %214 unwind label %215

214:                                              ; preds = %212
  invoke void @__cxa_end_catch()
          to label %.thread132 unwind label %217

215:                                              ; preds = %212
  %216 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %229 unwind label %326

217:                                              ; preds = %.critedge116, %214
  %218 = landingpad { ptr, i32 }
          cleanup
  br label %229

219:                                              ; preds = %203, %201, %199, %197, %195, %188
  %220 = landingpad { ptr, i32 }
          cleanup
  br label %228

221:                                              ; preds = %205
  %222 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  br label %228

223:                                              ; preds = %194, %211
  invoke void @__cxa_end_catch()
          to label %224 unwind label %226

224:                                              ; preds = %223
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #10
  br i1 %193, label %231, label %.thread135

.critedge116:                                     ; preds = %171, %177
  %225 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA101_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 1 dereferenceable(101) @.str.418)
          to label %.thread132 unwind label %217

226:                                              ; preds = %223
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %229

228:                                              ; preds = %221, %219
  %.pn90 = phi { ptr, i32 } [ %222, %221 ], [ %220, %219 ]
  invoke void @__cxa_end_catch()
          to label %229 unwind label %326

.thread132:                                       ; preds = %214, %.critedge116
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #10
  br label %231

229:                                              ; preds = %226, %228, %215, %217
  %.pn94 = phi { ptr, i32 } [ %218, %217 ], [ %216, %215 ], [ %227, %226 ], [ %.pn90, %228 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  br label %230

230:                                              ; preds = %229, %179
  %.pn94.pn = phi { ptr, i32 } [ %.pn94, %229 ], [ %180, %179 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #10
  br label %256

231:                                              ; preds = %224, %.thread132, %.thread127
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %232 unwind label %237

232:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #10
  %233 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %26)
          to label %234 unwind label %239

234:                                              ; preds = %232
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %33, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 253, ptr noundef %233)
          to label %235 unwind label %239

235:                                              ; preds = %234
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %236 unwind label %241

236:                                              ; preds = %235
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #10
  br label %.thread135

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

239:                                              ; preds = %234, %232
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %243

241:                                              ; preds = %235
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  br label %243

243:                                              ; preds = %241, %239
  %.pn97 = phi { ptr, i32 } [ %242, %241 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #10
  br label %244

244:                                              ; preds = %243, %237
  %.pn97.pn = phi { ptr, i32 } [ %.pn97, %243 ], [ %238, %237 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #10
  br label %256

.thread135:                                       ; preds = %224, %236
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #10
  call void @_ZN7testing16AssertionSuccessEv(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %34)
  %245 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
  br i1 %245, label %246, label %310

246:                                              ; preds = %.thread135
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.112, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %247 unwind label %257

247:                                              ; preds = %246
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #10
  %248 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %249 unwind label %259

249:                                              ; preds = %247
  br i1 %248, label %250, label %.critedge120

250:                                              ; preds = %249
  invoke void @_ZN3fmt3v1017basic_string_viewIcEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull @.str.408)
          to label %251 unwind label %259

251:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #10
  store i32 42, ptr %39, align 4, !tbaa !5
  %252 = load ptr, ptr %38, align 8
  %253 = getelementptr inbounds i8, ptr %38, i64 8
  %254 = load i64, ptr %253, align 8
  invoke void @_Z12test_sprintfIJjiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3fmt3v1017basic_string_viewIcEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr %252, i64 %254, ptr noundef nonnull align 4 dereferenceable(4) @_ZL7big_num, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %255 unwind label %261

255:                                              ; preds = %251
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #10
  br label %.critedge120

256:                                              ; preds = %244, %230
  %.pn97.pn.pn = phi { ptr, i32 } [ %.pn97.pn, %244 ], [ %.pn94.pn, %230 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  br label %325

257:                                              ; preds = %246
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #10
  br label %309

259:                                              ; preds = %250, %247
  %260 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  br label %263

261:                                              ; preds = %251
  %262 = landingpad { ptr, i32 }
          catch ptr @_ZTIN3fmt3v1012format_errorE
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #10
  br label %263

263:                                              ; preds = %261, %259
  %.pn101 = phi { ptr, i32 } [ %262, %261 ], [ %260, %259 ]
  %.21 = extractvalue { ptr, i32 } %.pn101, 0
  %.2151 = extractvalue { ptr, i32 } %.pn101, 1
  %264 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN3fmt3v1012format_errorE) #10
  %265 = icmp eq i32 %.2151, %264
  %266 = call ptr @__cxa_begin_catch(ptr %.21) #10
  br i1 %265, label %267, label %291

267:                                              ; preds = %263
  %268 = load ptr, ptr %266, align 8, !tbaa !11
  %269 = getelementptr inbounds i8, ptr %268, i64 16
  %270 = load ptr, ptr %269, align 8
  %271 = call noundef ptr %270(ptr noundef nonnull align 8 dereferenceable(16) %266) #10
  %272 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %271)
          to label %273 unwind label %298

273:                                              ; preds = %267
  br i1 %272, label %274, label %302

274:                                              ; preds = %273
  %275 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA80_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 1 dereferenceable(80) @.str.420)
          to label %276 unwind label %298

276:                                              ; preds = %274
  %277 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %275, ptr noundef nonnull align 1 dereferenceable(11) @.str.97)
          to label %278 unwind label %298

278:                                              ; preds = %276
  %279 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %277, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %280 unwind label %298

280:                                              ; preds = %278
  %281 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA2_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %279, ptr noundef nonnull align 1 dereferenceable(2) @.str.98)
          to label %282 unwind label %298

282:                                              ; preds = %280
  %283 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA11_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %281, ptr noundef nonnull align 1 dereferenceable(11) @.str.99)
          to label %284 unwind label %298

284:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #10
  %285 = load ptr, ptr %266, align 8, !tbaa !11
  %286 = getelementptr inbounds i8, ptr %285, i64 16
  %287 = load ptr, ptr %286, align 8
  %288 = call noundef ptr %287(ptr noundef nonnull align 8 dereferenceable(16) %266) #10
  store ptr %288, ptr %40, align 8, !tbaa !13
  %289 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIPKcEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %283, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %290 unwind label %300

290:                                              ; preds = %284
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #10
  br label %302

291:                                              ; preds = %263
  %292 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA123_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 1 dereferenceable(123) @.str.419)
          to label %293 unwind label %294

293:                                              ; preds = %291
  invoke void @__cxa_end_catch()
          to label %.thread140 unwind label %296

294:                                              ; preds = %291
  %295 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %308 unwind label %326

296:                                              ; preds = %.critedge120, %293
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %308

298:                                              ; preds = %282, %280, %278, %276, %274, %267
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %307

300:                                              ; preds = %284
  %301 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #10
  br label %307

302:                                              ; preds = %273, %290
  invoke void @__cxa_end_catch()
          to label %303 unwind label %305

303:                                              ; preds = %302
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #10
  br i1 %272, label %310, label %.thread143

.critedge120:                                     ; preds = %249, %255
  %304 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7testing15AssertionResultlsIA114_cEERS0_RKT_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 1 dereferenceable(114) @.str.421)
          to label %.thread140 unwind label %296

305:                                              ; preds = %302
  %306 = landingpad { ptr, i32 }
          cleanup
  br label %308

307:                                              ; preds = %300, %298
  %.pn103 = phi { ptr, i32 } [ %301, %300 ], [ %299, %298 ]
  invoke void @__cxa_end_catch()
          to label %308 unwind label %326

.thread140:                                       ; preds = %293, %.critedge120
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #10
  br label %310

308:                                              ; preds = %305, %307, %294, %296
  %.pn107 = phi { ptr, i32 } [ %297, %296 ], [ %295, %294 ], [ %306, %305 ], [ %.pn103, %307 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  br label %309

309:                                              ; preds = %308, %257
  %.pn107.pn = phi { ptr, i32 } [ %.pn107, %308 ], [ %258, %257 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #10
  br label %324

310:                                              ; preds = %303, %.thread140, %.thread135
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #10
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %311 unwind label %316

311:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #10
  %312 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
          to label %313 unwind label %318

313:                                              ; preds = %311
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %42, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 255, ptr noundef %312)
          to label %314 unwind label %318

314:                                              ; preds = %313
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %315 unwind label %320

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

316:                                              ; preds = %310
  %317 = landingpad { ptr, i32 }
          cleanup
  br label %323

318:                                              ; preds = %313, %311
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %322

320:                                              ; preds = %314
  %321 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #10
  br label %322

322:                                              ; preds = %320, %318
  %.pn110 = phi { ptr, i32 } [ %321, %320 ], [ %319, %318 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #10
  br label %323

323:                                              ; preds = %322, %316
  %.pn110.pn = phi { ptr, i32 } [ %.pn110, %322 ], [ %317, %316 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #10
  br label %324

.thread143:                                       ; preds = %303, %315
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #10
  ret void

324:                                              ; preds = %323, %309
  %.pn110.pn.pn = phi { ptr, i32 } [ %.pn110.pn, %323 ], [ %.pn107.pn, %309 ]
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #10
  br label %325

325:                                              ; preds = %324, %256, %178, %99, %70
  %.pn110.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn, %324 ], [ %.pn97.pn.pn, %256 ], [ %.pn86.pn.pn, %178 ], [ %.pn73.pn.pn, %99 ], [ %.pn.pn.pn, %70 ]
  resume { ptr, i32 } %.pn110.pn.pn.pn

326:                                              ; preds = %307, %294, %228, %215, %150, %137
  %327 = landingpad { ptr, i32 }
          catch ptr null
  %328 = extractvalue { ptr, i32 } %327, 0
  call void @__clang_call_terminate(ptr %328) #11
  unreachable
}

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

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

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

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

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 = { 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 #4 = { "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 = { 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 #6 = { 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 #7 = { nofree nosync nounwind memory(none) }
attributes #8 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { noreturn nounwind }

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

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


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