; LLVM IR from weicao/cascadb :: test/t_node.ll (ZN24InnerNode_serialize_Test8TestBodyEv)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.testing::AssertionResult" = type { i8, %"class.testing::internal::scoped_ptr" }
%"class.testing::internal::scoped_ptr" = type { ptr }
%"class.testing::internal::String" = type { ptr, i64 }
%"class.cascadb::Options" = type <{ ptr, ptr, i64, i64, i64, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i32, i8, [3 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.2" = type { i8 }
%"class.testing::Message" = type { %"class.testing::internal::scoped_ptr.0" }
%"class.testing::internal::scoped_ptr.0" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.cascadb::Block" = type { %"class.cascadb::Slice", i64, i64 }
%"class.cascadb::Slice" = type <{ ptr, i32, [4 x i8] }>
%"class.cascadb::BlockReader" = type { ptr, i64 }
%"class.cascadb::BlockWriter" = type { ptr, i64 }
%"class.cascadb::InnerNode" = type { %"class.cascadb::DataNode.base", i8, i64, ptr, %"class.cascadb::Slice", i32, i32, i32, i16, %"class.std::vector", i64, i64, i64 }
%"class.cascadb::DataNode.base" = type <{ %"class.cascadb::Node", ptr, i32 }>
%"class.cascadb::Node" = type { ptr, %"class.std::__cxx11::basic_string", i64, %"class.cascadb::Mutex", i8, i8, i8, %struct.timeval, %struct.timeval, i32, i32, %"class.cascadb::RWLock" }
%"class.cascadb::Mutex" = type { i8, %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%struct.timeval = type { i64, i64 }
%"class.cascadb::RWLock" = type { %union.pthread_rwlock_t }
%union.pthread_rwlock_t = type { %struct.__pthread_rwlock_arch_t }
%struct.__pthread_rwlock_arch_t = type { i32, i32, i32, i32, i32, i32, i32, i32, i8, [7 x i8], i64, i32 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<cascadb::Pivot, std::allocator<cascadb::Pivot>>::_Vector_impl" }
%"struct.std::_Vector_base<cascadb::Pivot, std::allocator<cascadb::Pivot>>::_Vector_impl" = type { %"struct.std::_Vector_base<cascadb::Pivot, std::allocator<cascadb::Pivot>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cascadb::Pivot, std::allocator<cascadb::Pivot>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.cascadb::Msg" = type { i32, [4 x i8], %"class.cascadb::Slice", %"class.cascadb::Slice" }
%"class.cascadb::Pivot" = type <{ %"class.cascadb::Slice", %"class.cascadb::Slice", i64, ptr, i32, i32, i32, i16, [2 x i8] }>

@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [17 x i8], align 1

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #0

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7cascadb5BlockC2ENS_5SliceEmm(ptr noundef nonnull align 8 dereferenceable(32), ptr, i32, i64 noundef, i64 noundef) unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef) unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7cascadb7OptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(101)) unnamed_addr #3 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7cascadb12RAMDirectoryC2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 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 #4 align 2

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

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

declare void @_ZN7cascadb6LayoutC1EPNS_7AIOFileEmRKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(600), ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(101)) unnamed_addr #5

declare noundef zeroext i1 @_ZN7cascadb6Layout4initEb(ptr noundef nonnull align 8 dereferenceable(600), i1 noundef zeroext) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) unnamed_addr #4 align 2

declare void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.testing::internal::String") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef, ptr noundef) #5

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

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

declare void @_ZN7cascadb5CacheC1ERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(432), ptr noundef nonnull align 8 dereferenceable(101)) unnamed_addr #5

declare noundef zeroext i1 @_ZN7cascadb5Cache4initEv(ptr noundef nonnull align 8 dereferenceable(432)) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7cascadb4TreeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7OptionsEPNS_5CacheEPNS_6LayoutE(ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(101), ptr noundef, ptr noundef) unnamed_addr #4 align 2

declare noundef zeroext i1 @_ZN7cascadb4Tree4initEv(ptr noundef nonnull align 8 dereferenceable(184)) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK7cascadb6MsgBuf5countEv(ptr noundef nonnull align 8 dereferenceable(104)) #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104), i64 noundef) #4 align 2

; Function Attrs: nounwind
declare void @_ZN7cascadb4TreeD1Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #6

; Function Attrs: nounwind
declare void @_ZN7cascadb5CacheD1Ev(ptr noundef nonnull align 8 dereferenceable(432)) unnamed_addr #6

; Function Attrs: nounwind
declare void @_ZN7cascadb6LayoutD1Ev(ptr noundef nonnull align 8 dereferenceable(600)) unnamed_addr #6

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN24InnerNode_serialize_Test8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(16) %0) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.cascadb::Options", align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.2", align 1
  %10 = alloca ptr, align 8
  %11 = alloca %"class.testing::AssertionResult", align 8
  %12 = alloca %"class.testing::Message", align 8
  %13 = alloca %"class.testing::internal::AssertHelper", align 8
  %14 = alloca %"class.testing::internal::String", align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca %"class.testing::AssertionResult", align 8
  %18 = alloca %"class.testing::Message", align 8
  %19 = alloca %"class.testing::internal::AssertHelper", align 8
  %20 = alloca %"class.testing::internal::String", align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.2", align 1
  %24 = alloca i1, align 1
  %25 = alloca %"class.testing::AssertionResult", align 8
  %26 = alloca %"class.testing::Message", align 8
  %27 = alloca %"class.testing::internal::AssertHelper", align 8
  %28 = alloca %"class.testing::internal::String", align 8
  %29 = alloca [40960 x i8], align 16
  %30 = alloca %"class.cascadb::Block", align 8
  %31 = alloca %"class.cascadb::Slice", align 8
  %32 = alloca %"class.cascadb::BlockReader", align 8
  %33 = alloca %"class.cascadb::BlockWriter", align 8
  %34 = alloca %"class.cascadb::InnerNode", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.2", align 1
  %37 = alloca %"class.cascadb::Msg", align 8
  %38 = alloca %"class.cascadb::Slice", align 8
  %39 = alloca %"class.cascadb::Slice", align 8
  %40 = alloca { ptr, i32 }, align 8
  %41 = alloca %"class.cascadb::Slice", align 8
  %42 = alloca %"class.cascadb::Slice", align 8
  %43 = alloca { ptr, i32 }, align 8
  %44 = alloca %"class.cascadb::Msg", align 8
  %45 = alloca %"class.cascadb::Slice", align 8
  %46 = alloca %"class.cascadb::Slice", align 8
  %47 = alloca { ptr, i32 }, align 8
  %48 = alloca %"class.cascadb::Slice", align 8
  %49 = alloca %"class.cascadb::Slice", align 8
  %50 = alloca { ptr, i32 }, align 8
  %51 = alloca %"class.cascadb::Msg", align 8
  %52 = alloca %"class.cascadb::Slice", align 8
  %53 = alloca %"class.cascadb::Slice", align 8
  %54 = alloca { ptr, i32 }, align 8
  %55 = alloca %"class.cascadb::Slice", align 8
  %56 = alloca %"class.cascadb::Slice", align 8
  %57 = alloca { ptr, i32 }, align 8
  %58 = alloca %"class.cascadb::Slice", align 8
  %59 = alloca %"class.cascadb::Slice", align 8
  %60 = alloca { ptr, i32 }, align 8
  %61 = alloca i64, align 8
  %62 = alloca %"class.testing::AssertionResult", align 8
  %63 = alloca %"class.testing::Message", align 8
  %64 = alloca %"class.testing::internal::AssertHelper", align 8
  %65 = alloca %"class.testing::internal::String", align 8
  %66 = alloca %"class.cascadb::InnerNode", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator.2", align 1
  %69 = alloca %"class.testing::AssertionResult", align 8
  %70 = alloca %"class.testing::Message", align 8
  %71 = alloca %"class.testing::internal::AssertHelper", align 8
  %72 = alloca %"class.testing::internal::String", align 8
  %73 = alloca %"class.testing::AssertionResult", align 8
  %74 = alloca %"class.testing::Message", align 8
  %75 = alloca %"class.testing::internal::AssertHelper", align 8
  %76 = alloca %"class.testing::internal::String", align 8
  %77 = alloca %"class.testing::AssertionResult", align 8
  %78 = alloca i64, align 8
  %79 = alloca %"class.testing::Message", align 8
  %80 = alloca %"class.testing::internal::AssertHelper", align 8
  %81 = alloca %"class.testing::AssertionResult", align 8
  %82 = alloca %"class.testing::Message", align 8
  %83 = alloca %"class.testing::internal::AssertHelper", align 8
  %84 = alloca %"class.testing::internal::String", align 8
  %85 = alloca %"class.testing::AssertionResult", align 8
  %86 = alloca i32, align 4
  %87 = alloca i64, align 8
  %88 = alloca %"class.testing::Message", align 8
  %89 = alloca %"class.testing::internal::AssertHelper", align 8
  %90 = alloca %"class.testing::AssertionResult", align 8
  %91 = alloca i32, align 4
  %92 = alloca %"class.testing::Message", align 8
  %93 = alloca %"class.testing::internal::AssertHelper", align 8
  %94 = alloca %"class.testing::AssertionResult", align 8
  %95 = alloca %"class.testing::Message", align 8
  %96 = alloca %"class.testing::internal::AssertHelper", align 8
  %97 = alloca %"class.testing::AssertionResult", align 8
  %98 = alloca %"class.testing::Message", align 8
  %99 = alloca %"class.testing::internal::AssertHelper", align 8
  %100 = alloca %"class.testing::AssertionResult", align 8
  %101 = alloca i32, align 4
  %102 = alloca %"class.testing::Message", align 8
  %103 = alloca %"class.testing::internal::AssertHelper", align 8
  %104 = alloca %"class.testing::AssertionResult", align 8
  %105 = alloca %"class.testing::Message", align 8
  %106 = alloca %"class.testing::internal::AssertHelper", align 8
  %107 = alloca %"class.testing::AssertionResult", align 8
  %108 = alloca %"class.testing::Message", align 8
  %109 = alloca %"class.testing::internal::AssertHelper", align 8
  %110 = alloca %"class.testing::AssertionResult", align 8
  %111 = alloca i32, align 4
  %112 = alloca %"class.testing::Message", align 8
  %113 = alloca %"class.testing::internal::AssertHelper", align 8
  %114 = alloca %"class.testing::AssertionResult", align 8
  %115 = alloca %"class.testing::Message", align 8
  %116 = alloca %"class.testing::internal::AssertHelper", align 8
  %117 = alloca %"class.testing::AssertionResult", align 8
  %118 = alloca %"class.testing::Message", align 8
  %119 = alloca %"class.testing::internal::AssertHelper", align 8
  %120 = alloca %"class.testing::AssertionResult", align 8
  %121 = alloca i32, align 4
  %122 = alloca i64, align 8
  %123 = alloca %"class.testing::Message", align 8
  %124 = alloca %"class.testing::internal::AssertHelper", align 8
  %125 = alloca %"class.testing::AssertionResult", align 8
  %126 = alloca %"class.testing::Message", align 8
  %127 = alloca %"class.testing::internal::AssertHelper", align 8
  %128 = alloca %"class.testing::AssertionResult", align 8
  %129 = alloca i64, align 8
  %130 = alloca %"class.testing::Message", align 8
  %131 = alloca %"class.testing::internal::AssertHelper", align 8
  %132 = alloca %"class.testing::AssertionResult", align 8
  %133 = alloca %"class.testing::Message", align 8
  %134 = alloca %"class.testing::internal::AssertHelper", align 8
  %135 = alloca %"class.testing::internal::String", align 8
  %136 = alloca %"class.testing::AssertionResult", align 8
  %137 = alloca i32, align 4
  %138 = alloca i64, align 8
  %139 = alloca %"class.testing::Message", align 8
  %140 = alloca %"class.testing::internal::AssertHelper", align 8
  %141 = alloca i64, align 8
  %142 = alloca i64, align 8
  %143 = alloca %"class.testing::AssertionResult", align 8
  %144 = alloca i64, align 8
  %145 = alloca %"class.testing::Message", align 8
  %146 = alloca %"class.testing::internal::AssertHelper", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %147 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 104, ptr %3) #10
  call void @_ZN7cascadb7OptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(101) %3)
  %148 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #11
  call void @llvm.memset.p0.i64(ptr align 8 %148, i8 0, i64 8, i1 false)
  call void @_ZN7cascadb17LexicalComparatorC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #10
  %149 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  store ptr %148, ptr %149, align 8, !tbaa !9
  %150 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 6
  store i64 4, ptr %150, align 8, !tbaa !15
  %151 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 3
  store i64 2, ptr %151, align 8, !tbaa !16
  %152 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 7
  store i64 4, ptr %152, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #10
  %153 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #11
  invoke void @_ZN7cascadb12RAMDirectoryC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %153)
          to label %154 unwind label %170

154:                                              ; preds = %1
  store ptr %153, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #10
  %155 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %156 unwind label %174

156:                                              ; preds = %154
  %157 = load ptr, ptr %155, align 8, !tbaa !18
  %158 = getelementptr inbounds ptr, ptr %157, i64 5
  %159 = load ptr, ptr %158, align 8
  %160 = invoke noundef ptr %159(ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %161 unwind label %178

161:                                              ; preds = %156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #10
  store ptr %160, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #10
  %162 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 600) #11
  %163 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN7cascadb6LayoutC1EPNS_7AIOFileEmRKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(600) %162, ptr noundef %163, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(101) %3)
          to label %164 unwind label %183

164:                                              ; preds = %161
  store ptr %162, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #10
  %165 = load ptr, ptr %10, align 8, !tbaa !5
  %166 = call noundef zeroext i1 @_ZN7cascadb6Layout4initEb(ptr noundef nonnull align 8 dereferenceable(600) %165, i1 noundef zeroext true)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %11, i1 noundef zeroext %166)
  %167 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %168 unwind label %187

168:                                              ; preds = %164
  br i1 %167, label %169, label %191

169:                                              ; preds = %168
  br label %217

170:                                              ; preds = %1
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %5, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %153, i64 noundef 104) #12
  br label %1380

174:                                              ; preds = %154
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %5, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %6, align 4
  br label %182

178:                                              ; preds = %156
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %5, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  br label %182

182:                                              ; preds = %178, %174
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #10
  br label %1379

183:                                              ; preds = %161
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %5, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %162, i64 noundef 600) #12
  br label %1378

187:                                              ; preds = %164
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %5, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %6, align 4
  br label %228

191:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %192 unwind label %198

192:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #10
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.testing::internal::String") align 8 %14, ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef @.str.18)
          to label %193 unwind label %202

193:                                              ; preds = %192
  %194 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %195 unwind label %206

195:                                              ; preds = %193
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef 2, ptr noundef @.str.7, i32 noundef 218, ptr noundef %194)
          to label %196 unwind label %206

196:                                              ; preds = %195
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %197 unwind label %210

197:                                              ; preds = %196
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  store i32 1, ptr %15, align 4
  br label %218

198:                                              ; preds = %191
  %199 = landingpad { ptr, i32 }
          cleanup
  %200 = extractvalue { ptr, i32 } %199, 0
  store ptr %200, ptr %5, align 8
  %201 = extractvalue { ptr, i32 } %199, 1
  store i32 %201, ptr %6, align 4
  br label %216

202:                                              ; preds = %192
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %5, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %6, align 4
  br label %215

206:                                              ; preds = %195, %193
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %5, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %6, align 4
  br label %214

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

214:                                              ; preds = %210, %206
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #10
  br label %215

215:                                              ; preds = %214, %202
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  br label %216

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

217:                                              ; preds = %169
  store i32 0, ptr %15, align 4
  br label %218

218:                                              ; preds = %217, %197
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #10
  %219 = load i32, ptr %15, align 4
  switch i32 %219, label %1366 [
    i32 0, label %220
  ]

220:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %221 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 432) #11
  invoke void @_ZN7cascadb5CacheC1ERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(432) %221, ptr noundef nonnull align 8 dereferenceable(101) %3)
          to label %222 unwind label %229

222:                                              ; preds = %220
  store ptr %221, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #10
  %223 = load ptr, ptr %16, align 8, !tbaa !5
  %224 = call noundef zeroext i1 @_ZN7cascadb5Cache4initEv(ptr noundef nonnull align 8 dereferenceable(432) %223)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %17, i1 noundef zeroext %224)
  %225 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %226 unwind label %233

226:                                              ; preds = %222
  br i1 %225, label %227, label %237

227:                                              ; preds = %226
  br label %263

228:                                              ; preds = %216, %187
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #10
  br label %1378

229:                                              ; preds = %220
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %5, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %221, i64 noundef 432) #12
  br label %1377

233:                                              ; preds = %222
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %5, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %6, align 4
  br label %277

237:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %238 unwind label %244

238:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #10
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.testing::internal::String") align 8 %20, ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef @.str.19, ptr noundef @.str.17, ptr noundef @.str.18)
          to label %239 unwind label %248

239:                                              ; preds = %238
  %240 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %241 unwind label %252

241:                                              ; preds = %239
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %19, i32 noundef 2, ptr noundef @.str.7, i32 noundef 220, ptr noundef %240)
          to label %242 unwind label %252

242:                                              ; preds = %241
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %243 unwind label %256

243:                                              ; preds = %242
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #10
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  store i32 1, ptr %15, align 4
  br label %264

244:                                              ; preds = %237
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %5, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %6, align 4
  br label %262

248:                                              ; preds = %238
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %5, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %6, align 4
  br label %261

252:                                              ; preds = %241, %239
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %5, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %6, align 4
  br label %260

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

260:                                              ; preds = %256, %252
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #10
  br label %261

261:                                              ; preds = %260, %248
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  br label %262

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

263:                                              ; preds = %227
  store i32 0, ptr %15, align 4
  br label %264

264:                                              ; preds = %263, %243
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #10
  %265 = load i32, ptr %15, align 4
  switch i32 %265, label %1365 [
    i32 0, label %266
  ]

266:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %267 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 184) #11
  store i1 true, ptr %24, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %268 unwind label %278

268:                                              ; preds = %266
  %269 = load ptr, ptr %16, align 8, !tbaa !5
  %270 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN7cascadb4TreeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7OptionsEPNS_5CacheEPNS_6LayoutE(ptr noundef nonnull align 8 dereferenceable(184) %267, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(101) %3, ptr noundef %269, ptr noundef %270)
          to label %271 unwind label %282

271:                                              ; preds = %268
  store i1 false, ptr %24, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #10
  store ptr %267, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #10
  %272 = load ptr, ptr %21, align 8, !tbaa !5
  %273 = call noundef zeroext i1 @_ZN7cascadb4Tree4initEv(ptr noundef nonnull align 8 dereferenceable(184) %272)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %25, i1 noundef zeroext %273)
  %274 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %25)
          to label %275 unwind label %290

275:                                              ; preds = %271
  br i1 %274, label %276, label %294

276:                                              ; preds = %275
  br label %320

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

278:                                              ; preds = %266
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %5, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %6, align 4
  br label %286

282:                                              ; preds = %268
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %5, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %286

286:                                              ; preds = %282, %278
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #10
  %287 = load i1, ptr %24, align 1
  br i1 %287, label %288, label %289

288:                                              ; preds = %286
  call void @_ZdlPvm(ptr noundef %267, i64 noundef 184) #12
  br label %289

289:                                              ; preds = %288, %286
  br label %1376

290:                                              ; preds = %271
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %5, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %6, align 4
  br label %421

294:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %295 unwind label %301

295:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #10
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.testing::internal::String") align 8 %28, ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef @.str.21, ptr noundef @.str.17, ptr noundef @.str.18)
          to label %296 unwind label %305

296:                                              ; preds = %295
  %297 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %28)
          to label %298 unwind label %309

298:                                              ; preds = %296
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %27, i32 noundef 2, ptr noundef @.str.7, i32 noundef 222, ptr noundef %297)
          to label %299 unwind label %309

299:                                              ; preds = %298
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %300 unwind label %313

300:                                              ; preds = %299
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  store i32 1, ptr %15, align 4
  br label %321

301:                                              ; preds = %294
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %5, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %6, align 4
  br label %319

305:                                              ; preds = %295
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %5, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %6, align 4
  br label %318

309:                                              ; preds = %298, %296
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %5, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %6, align 4
  br label %317

313:                                              ; preds = %299
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %5, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  br label %317

317:                                              ; preds = %313, %309
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #10
  br label %318

318:                                              ; preds = %317, %305
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  br label %319

319:                                              ; preds = %318, %301
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %421

320:                                              ; preds = %276
  store i32 0, ptr %15, align 4
  br label %321

321:                                              ; preds = %320, %300
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #10
  %322 = load i32, ptr %15, align 4
  switch i32 %322, label %1364 [
    i32 0, label %323
  ]

323:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 40960, ptr %29) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #10
  %324 = getelementptr inbounds [40960 x i8], ptr %29, i64 0, i64 0
  call void @_ZN7cascadb5SliceC2EPKcm(ptr noundef nonnull align 8 dereferenceable(12) %31, ptr noundef %324, i64 noundef 40960)
  %325 = getelementptr inbounds { ptr, i32 }, ptr %31, i32 0, i32 0
  %326 = load ptr, ptr %325, align 8
  %327 = getelementptr inbounds { ptr, i32 }, ptr %31, i32 0, i32 1
  %328 = load i32, ptr %327, align 8
  call void @_ZN7cascadb5BlockC2ENS_5SliceEmm(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr %326, i32 %328, i64 noundef 0, i64 noundef 0)
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #10
  call void @_ZN7cascadb11BlockReaderC2EPNS_5BlockE(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef %30)
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #10
  call void @_ZN7cascadb11BlockWriterC2EPNS_5BlockE(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef %30)
  call void @llvm.lifetime.start.p0(i64 312, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %329 unwind label %422

329:                                              ; preds = %323
  %330 = load ptr, ptr %21, align 8, !tbaa !5
  invoke void @_ZN7cascadb9InnerNodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmPNS_4TreeE(ptr noundef nonnull align 8 dereferenceable(312) %34, ptr noundef nonnull align 8 dereferenceable(32) %35, i64 noundef 2, ptr noundef %330)
          to label %331 unwind label %426

331:                                              ; preds = %329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #10
  %332 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %34, i32 0, i32 1
  store i8 1, ptr %332, align 4, !tbaa !20
  %333 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %34, i32 0, i32 2
  store i64 281474976710657, ptr %333, align 8, !tbaa !36
  %334 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #11
          to label %335 unwind label %431

335:                                              ; preds = %331
  %336 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  %337 = load ptr, ptr %336, align 8, !tbaa !9
  invoke void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104) %334, ptr noundef %337)
          to label %338 unwind label %435

338:                                              ; preds = %335
  %339 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %34, i32 0, i32 3
  store ptr %334, ptr %339, align 8, !tbaa !37
  %340 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %34, i32 0, i32 3
  %341 = load ptr, ptr %340, align 8, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 40, ptr %37) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #10
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %39, ptr noundef @.str.3)
          to label %342 unwind label %439

342:                                              ; preds = %338
  %343 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %39)
          to label %344 unwind label %439

344:                                              ; preds = %342
  store { ptr, i32 } %343, ptr %40, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %38, ptr align 8 %40, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #10
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %42, ptr noundef @.str.4)
          to label %345 unwind label %443

345:                                              ; preds = %344
  %346 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %42)
          to label %347 unwind label %443

347:                                              ; preds = %345
  store { ptr, i32 } %346, ptr %43, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %41, ptr align 8 %43, i64 12, i1 false)
  %348 = getelementptr inbounds { ptr, i32 }, ptr %38, i32 0, i32 0
  %349 = load ptr, ptr %348, align 8
  %350 = getelementptr inbounds { ptr, i32 }, ptr %38, i32 0, i32 1
  %351 = load i32, ptr %350, align 8
  %352 = getelementptr inbounds { ptr, i32 }, ptr %41, i32 0, i32 0
  %353 = load ptr, ptr %352, align 8
  %354 = getelementptr inbounds { ptr, i32 }, ptr %41, i32 0, i32 1
  %355 = load i32, ptr %354, align 8
  invoke void @_ZN7cascadb3MsgC2ENS_7MsgTypeENS_5SliceES2_(ptr noundef nonnull align 8 dereferenceable(40) %37, i32 noundef 1, ptr %349, i32 %351, ptr %353, i32 %355)
          to label %356 unwind label %443

356:                                              ; preds = %347
  invoke void @_ZN7cascadb6MsgBuf5writeERKNS_3MsgE(ptr noundef nonnull align 8 dereferenceable(104) %341, ptr noundef nonnull align 8 dereferenceable(40) %37)
          to label %357 unwind label %443

357:                                              ; preds = %356
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %37) #10
  %358 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %34, i32 0, i32 3
  %359 = load ptr, ptr %358, align 8, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 40, ptr %44) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #10
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %46, ptr noundef @.str.24)
          to label %360 unwind label %448

360:                                              ; preds = %357
  %361 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %46)
          to label %362 unwind label %448

362:                                              ; preds = %360
  store { ptr, i32 } %361, ptr %47, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %45, ptr align 8 %47, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #10
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef @.str.4)
          to label %363 unwind label %452

363:                                              ; preds = %362
  %364 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %49)
          to label %365 unwind label %452

365:                                              ; preds = %363
  store { ptr, i32 } %364, ptr %50, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %48, ptr align 8 %50, i64 12, i1 false)
  %366 = getelementptr inbounds { ptr, i32 }, ptr %45, i32 0, i32 0
  %367 = load ptr, ptr %366, align 8
  %368 = getelementptr inbounds { ptr, i32 }, ptr %45, i32 0, i32 1
  %369 = load i32, ptr %368, align 8
  %370 = getelementptr inbounds { ptr, i32 }, ptr %48, i32 0, i32 0
  %371 = load ptr, ptr %370, align 8
  %372 = getelementptr inbounds { ptr, i32 }, ptr %48, i32 0, i32 1
  %373 = load i32, ptr %372, align 8
  invoke void @_ZN7cascadb3MsgC2ENS_7MsgTypeENS_5SliceES2_(ptr noundef nonnull align 8 dereferenceable(40) %44, i32 noundef 1, ptr %367, i32 %369, ptr %371, i32 %373)
          to label %374 unwind label %452

374:                                              ; preds = %365
  invoke void @_ZN7cascadb6MsgBuf5writeERKNS_3MsgE(ptr noundef nonnull align 8 dereferenceable(104) %359, ptr noundef nonnull align 8 dereferenceable(40) %44)
          to label %375 unwind label %452

375:                                              ; preds = %374
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %44) #10
  %376 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %34, i32 0, i32 3
  %377 = load ptr, ptr %376, align 8, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 40, ptr %51) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %53) #10
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %53, ptr noundef @.str.25)
          to label %378 unwind label %457

378:                                              ; preds = %375
  %379 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %53)
          to label %380 unwind label %457

380:                                              ; preds = %378
  store { ptr, i32 } %379, ptr %54, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %52, ptr align 8 %54, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %56) #10
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %56, ptr noundef @.str.4)
          to label %381 unwind label %461

381:                                              ; preds = %380
  %382 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %56)
          to label %383 unwind label %461

383:                                              ; preds = %381
  store { ptr, i32 } %382, ptr %57, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %55, ptr align 8 %57, i64 12, i1 false)
  %384 = getelementptr inbounds { ptr, i32 }, ptr %52, i32 0, i32 0
  %385 = load ptr, ptr %384, align 8
  %386 = getelementptr inbounds { ptr, i32 }, ptr %52, i32 0, i32 1
  %387 = load i32, ptr %386, align 8
  %388 = getelementptr inbounds { ptr, i32 }, ptr %55, i32 0, i32 0
  %389 = load ptr, ptr %388, align 8
  %390 = getelementptr inbounds { ptr, i32 }, ptr %55, i32 0, i32 1
  %391 = load i32, ptr %390, align 8
  invoke void @_ZN7cascadb3MsgC2ENS_7MsgTypeENS_5SliceES2_(ptr noundef nonnull align 8 dereferenceable(40) %51, i32 noundef 1, ptr %385, i32 %387, ptr %389, i32 %391)
          to label %392 unwind label %461

392:                                              ; preds = %383
  invoke void @_ZN7cascadb6MsgBuf5writeERKNS_3MsgE(ptr noundef nonnull align 8 dereferenceable(104) %377, ptr noundef nonnull align 8 dereferenceable(40) %51)
          to label %393 unwind label %461

393:                                              ; preds = %392
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %51) #10
  %394 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %34, i32 0, i32 9
  invoke void @_ZNSt6vectorIN7cascadb5PivotESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %394, i64 noundef 1)
          to label %395 unwind label %431

395:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #10
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %59, ptr noundef @.str.30)
          to label %396 unwind label %466

396:                                              ; preds = %395
  %397 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %59)
          to label %398 unwind label %466

398:                                              ; preds = %396
  store { ptr, i32 } %397, ptr %60, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %58, ptr align 8 %60, i64 12, i1 false)
  %399 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %34, i32 0, i32 9
  %400 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %399, i64 noundef 0) #10
  %401 = getelementptr inbounds %"class.cascadb::Pivot", ptr %400, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %401, ptr align 8 %58, i64 12, i1 false), !tbaa.struct !38
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #10
  %402 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %34, i32 0, i32 9
  %403 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %402, i64 noundef 0) #10
  %404 = getelementptr inbounds %"class.cascadb::Pivot", ptr %403, i32 0, i32 2
  store i64 281474976710658, ptr %404, align 8, !tbaa !40
  %405 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #11
          to label %406 unwind label %431

406:                                              ; preds = %398
  %407 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  %408 = load ptr, ptr %407, align 8, !tbaa !9
  invoke void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104) %405, ptr noundef %408)
          to label %409 unwind label %470

409:                                              ; preds = %406
  %410 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %34, i32 0, i32 9
  %411 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %410, i64 noundef 0) #10
  %412 = getelementptr inbounds %"class.cascadb::Pivot", ptr %411, i32 0, i32 3
  store ptr %405, ptr %412, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #10
  %413 = invoke noundef zeroext i1 @_ZN7cascadb9InnerNode8write_toERNS_11BlockWriterERm(ptr noundef nonnull align 8 dereferenceable(312) %34, ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %414 unwind label %474

414:                                              ; preds = %409
  %415 = zext i1 %413 to i32
  %416 = icmp eq i32 %415, 1
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %62, i1 noundef zeroext %416)
          to label %417 unwind label %474

417:                                              ; preds = %414
  %418 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %419 unwind label %478

419:                                              ; preds = %417
  br i1 %418, label %420, label %482

420:                                              ; preds = %419
  br label %508

421:                                              ; preds = %319, %290
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #10
  br label %1376

422:                                              ; preds = %323
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %5, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %6, align 4
  br label %430

426:                                              ; preds = %329
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %5, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  br label %430

430:                                              ; preds = %426, %422
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #10
  br label %1375

431:                                              ; preds = %398, %393, %331
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %5, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %6, align 4
  br label %1374

435:                                              ; preds = %335
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %5, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %334, i64 noundef 104) #12
  br label %1374

439:                                              ; preds = %342, %338
  %440 = landingpad { ptr, i32 }
          cleanup
  %441 = extractvalue { ptr, i32 } %440, 0
  store ptr %441, ptr %5, align 8
  %442 = extractvalue { ptr, i32 } %440, 1
  store i32 %442, ptr %6, align 4
  br label %447

443:                                              ; preds = %356, %347, %345, %344
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %5, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #10
  br label %447

447:                                              ; preds = %443, %439
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %37) #10
  br label %1374

448:                                              ; preds = %360, %357
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %5, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %6, align 4
  br label %456

452:                                              ; preds = %374, %365, %363, %362
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %5, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #10
  br label %456

456:                                              ; preds = %452, %448
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %44) #10
  br label %1374

457:                                              ; preds = %378, %375
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %5, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %6, align 4
  br label %465

461:                                              ; preds = %392, %383, %381, %380
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %5, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #10
  br label %465

465:                                              ; preds = %461, %457
  call void @llvm.lifetime.end.p0(i64 16, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %51) #10
  br label %1374

466:                                              ; preds = %396, %395
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %5, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #10
  br label %1374

470:                                              ; preds = %406
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %5, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %405, i64 noundef 104) #12
  br label %1374

474:                                              ; preds = %414, %409
  %475 = landingpad { ptr, i32 }
          cleanup
  %476 = extractvalue { ptr, i32 } %475, 0
  store ptr %476, ptr %5, align 8
  %477 = extractvalue { ptr, i32 } %475, 1
  store i32 %477, ptr %6, align 4
  br label %521

478:                                              ; preds = %417
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %5, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %6, align 4
  br label %520

482:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %483 unwind label %489

483:                                              ; preds = %482
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #10
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.testing::internal::String") align 8 %65, ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef @.str.154, ptr noundef @.str.17, ptr noundef @.str.18)
          to label %484 unwind label %493

484:                                              ; preds = %483
  %485 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %65)
          to label %486 unwind label %497

486:                                              ; preds = %484
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %64, i32 noundef 1, ptr noundef @.str.7, i32 noundef 242, ptr noundef %485)
          to label %487 unwind label %497

487:                                              ; preds = %486
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %488 unwind label %501

488:                                              ; preds = %487
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  br label %508

489:                                              ; preds = %482
  %490 = landingpad { ptr, i32 }
          cleanup
  %491 = extractvalue { ptr, i32 } %490, 0
  store ptr %491, ptr %5, align 8
  %492 = extractvalue { ptr, i32 } %490, 1
  store i32 %492, ptr %6, align 4
  br label %507

493:                                              ; preds = %483
  %494 = landingpad { ptr, i32 }
          cleanup
  %495 = extractvalue { ptr, i32 } %494, 0
  store ptr %495, ptr %5, align 8
  %496 = extractvalue { ptr, i32 } %494, 1
  store i32 %496, ptr %6, align 4
  br label %506

497:                                              ; preds = %486, %484
  %498 = landingpad { ptr, i32 }
          cleanup
  %499 = extractvalue { ptr, i32 } %498, 0
  store ptr %499, ptr %5, align 8
  %500 = extractvalue { ptr, i32 } %498, 1
  store i32 %500, ptr %6, align 4
  br label %505

501:                                              ; preds = %487
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %5, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  br label %505

505:                                              ; preds = %501, %497
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #10
  br label %506

506:                                              ; preds = %505, %493
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  br label %507

507:                                              ; preds = %506, %489
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  br label %520

508:                                              ; preds = %488, %420
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #10
  call void @llvm.lifetime.start.p0(i64 312, ptr %66) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %509 unwind label %522

509:                                              ; preds = %508
  %510 = load ptr, ptr %21, align 8, !tbaa !5
  invoke void @_ZN7cascadb9InnerNodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmPNS_4TreeE(ptr noundef nonnull align 8 dereferenceable(312) %66, ptr noundef nonnull align 8 dereferenceable(32) %67, i64 noundef 2, ptr noundef %510)
          to label %511 unwind label %526

511:                                              ; preds = %509
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #10
  %512 = invoke noundef zeroext i1 @_ZN7cascadb9InnerNode9read_fromERNS_11BlockReaderEb(ptr noundef nonnull align 8 dereferenceable(312) %66, ptr noundef nonnull align 8 dereferenceable(16) %32, i1 noundef zeroext false)
          to label %513 unwind label %531

513:                                              ; preds = %511
  %514 = zext i1 %512 to i32
  %515 = icmp eq i32 %514, 1
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %69, i1 noundef zeroext %515)
          to label %516 unwind label %531

516:                                              ; preds = %513
  %517 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %69)
          to label %518 unwind label %535

518:                                              ; preds = %516
  br i1 %517, label %519, label %539

519:                                              ; preds = %518
  br label %565

520:                                              ; preds = %507, %478
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #10
  br label %521

521:                                              ; preds = %520, %474
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #10
  br label %1373

522:                                              ; preds = %508
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %5, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %6, align 4
  br label %530

526:                                              ; preds = %509
  %527 = landingpad { ptr, i32 }
          cleanup
  %528 = extractvalue { ptr, i32 } %527, 0
  store ptr %528, ptr %5, align 8
  %529 = extractvalue { ptr, i32 } %527, 1
  store i32 %529, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  br label %530

530:                                              ; preds = %526, %522
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #10
  br label %1372

531:                                              ; preds = %513, %511
  %532 = landingpad { ptr, i32 }
          cleanup
  %533 = extractvalue { ptr, i32 } %532, 0
  store ptr %533, ptr %5, align 8
  %534 = extractvalue { ptr, i32 } %532, 1
  store i32 %534, ptr %6, align 4
  br label %576

535:                                              ; preds = %516
  %536 = landingpad { ptr, i32 }
          cleanup
  %537 = extractvalue { ptr, i32 } %536, 0
  store ptr %537, ptr %5, align 8
  %538 = extractvalue { ptr, i32 } %536, 1
  store i32 %538, ptr %6, align 4
  br label %575

539:                                              ; preds = %518
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %540 unwind label %546

540:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %72) #10
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.testing::internal::String") align 8 %72, ptr noundef nonnull align 8 dereferenceable(16) %69, ptr noundef @.str.155, ptr noundef @.str.17, ptr noundef @.str.18)
          to label %541 unwind label %550

541:                                              ; preds = %540
  %542 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %72)
          to label %543 unwind label %554

543:                                              ; preds = %541
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %71, i32 noundef 1, ptr noundef @.str.7, i32 noundef 245, ptr noundef %542)
          to label %544 unwind label %554

544:                                              ; preds = %543
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %545 unwind label %558

545:                                              ; preds = %544
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #10
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %565

546:                                              ; preds = %539
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %5, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %6, align 4
  br label %564

550:                                              ; preds = %540
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %5, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %6, align 4
  br label %563

554:                                              ; preds = %543, %541
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %5, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %6, align 4
  br label %562

558:                                              ; preds = %544
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %5, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #10
  br label %562

562:                                              ; preds = %558, %554
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #10
  br label %563

563:                                              ; preds = %562, %550
  call void @llvm.lifetime.end.p0(i64 16, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #10
  br label %564

564:                                              ; preds = %563, %546
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %575

565:                                              ; preds = %545, %519
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %73) #10
  %566 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 1
  %567 = load i8, ptr %566, align 4, !tbaa !20, !range !43, !noundef !44
  %568 = trunc i8 %567 to i1
  %569 = zext i1 %568 to i32
  %570 = icmp eq i32 %569, 1
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %73, i1 noundef zeroext %570)
          to label %571 unwind label %577

571:                                              ; preds = %565
  %572 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %573 unwind label %581

573:                                              ; preds = %571
  br i1 %572, label %574, label %585

574:                                              ; preds = %573
  br label %611

575:                                              ; preds = %564, %535
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #10
  br label %576

576:                                              ; preds = %575, %531
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #10
  br label %1371

577:                                              ; preds = %565
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %5, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %6, align 4
  br label %618

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

585:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %586 unwind label %592

586:                                              ; preds = %585
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %76) #10
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.testing::internal::String") align 8 %76, ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef @.str.156, ptr noundef @.str.17, ptr noundef @.str.18)
          to label %587 unwind label %596

587:                                              ; preds = %586
  %588 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %76)
          to label %589 unwind label %600

589:                                              ; preds = %587
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %75, i32 noundef 1, ptr noundef @.str.7, i32 noundef 247, ptr noundef %588)
          to label %590 unwind label %600

590:                                              ; preds = %589
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %591 unwind label %604

591:                                              ; preds = %590
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  br label %611

592:                                              ; preds = %585
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %5, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %6, align 4
  br label %610

596:                                              ; preds = %586
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %5, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %6, align 4
  br label %609

600:                                              ; preds = %589, %587
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %5, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %6, align 4
  br label %608

604:                                              ; preds = %590
  %605 = landingpad { ptr, i32 }
          cleanup
  %606 = extractvalue { ptr, i32 } %605, 0
  store ptr %606, ptr %5, align 8
  %607 = extractvalue { ptr, i32 } %605, 1
  store i32 %607, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  br label %608

608:                                              ; preds = %604, %600
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #10
  br label %609

609:                                              ; preds = %608, %596
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  br label %610

610:                                              ; preds = %609, %592
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  br label %617

611:                                              ; preds = %591, %574
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %73) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %77) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #10
  store i64 281474976710657, ptr %78, align 8, !tbaa !45
  %612 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 2
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareImmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %77, ptr noundef @.str.33, ptr noundef @.str.157, ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %612)
          to label %613 unwind label %619

613:                                              ; preds = %611
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  %614 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %77)
          to label %615 unwind label %623

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

616:                                              ; preds = %615
  br label %647

617:                                              ; preds = %610, %581
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #10
  br label %618

618:                                              ; preds = %617, %577
  call void @llvm.lifetime.end.p0(i64 16, ptr %73) #10
  br label %1371

619:                                              ; preds = %611
  %620 = landingpad { ptr, i32 }
          cleanup
  %621 = extractvalue { ptr, i32 } %620, 0
  store ptr %621, ptr %5, align 8
  %622 = extractvalue { ptr, i32 } %620, 1
  store i32 %622, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  br label %656

623:                                              ; preds = %613
  %624 = landingpad { ptr, i32 }
          cleanup
  %625 = extractvalue { ptr, i32 } %624, 0
  store ptr %625, ptr %5, align 8
  %626 = extractvalue { ptr, i32 } %624, 1
  store i32 %626, ptr %6, align 4
  br label %655

627:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %628 unwind label %633

628:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #10
  %629 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %77)
          to label %630 unwind label %637

630:                                              ; preds = %628
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %80, i32 noundef 1, ptr noundef @.str.7, i32 noundef 248, ptr noundef %629)
          to label %631 unwind label %637

631:                                              ; preds = %630
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %632 unwind label %641

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

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

637:                                              ; preds = %630, %628
  %638 = landingpad { ptr, i32 }
          cleanup
  %639 = extractvalue { ptr, i32 } %638, 0
  store ptr %639, ptr %5, align 8
  %640 = extractvalue { ptr, i32 } %638, 1
  store i32 %640, ptr %6, align 4
  br label %645

641:                                              ; preds = %631
  %642 = landingpad { ptr, i32 }
          cleanup
  %643 = extractvalue { ptr, i32 } %642, 0
  store ptr %643, ptr %5, align 8
  %644 = extractvalue { ptr, i32 } %642, 1
  store i32 %644, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #10
  br label %645

645:                                              ; preds = %641, %637
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #10
  br label %646

646:                                              ; preds = %645, %633
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  br label %655

647:                                              ; preds = %632, %616
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %81) #10
  %648 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %649 = load ptr, ptr %648, align 8, !tbaa !37
  %650 = icmp ne ptr %649, null
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %81, i1 noundef zeroext %650)
          to label %651 unwind label %657

651:                                              ; preds = %647
  %652 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %81)
          to label %653 unwind label %661

653:                                              ; preds = %651
  br i1 %652, label %654, label %665

654:                                              ; preds = %653
  br label %691

655:                                              ; preds = %646, %623
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #10
  br label %656

656:                                              ; preds = %655, %619
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #10
  br label %1371

657:                                              ; preds = %647
  %658 = landingpad { ptr, i32 }
          cleanup
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %5, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %6, align 4
  br label %701

661:                                              ; preds = %651
  %662 = landingpad { ptr, i32 }
          cleanup
  %663 = extractvalue { ptr, i32 } %662, 0
  store ptr %663, ptr %5, align 8
  %664 = extractvalue { ptr, i32 } %662, 1
  store i32 %664, ptr %6, align 4
  br label %700

665:                                              ; preds = %653
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %666 unwind label %672

666:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #10
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.testing::internal::String") align 8 %84, ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef @.str.158, ptr noundef @.str.17, ptr noundef @.str.18)
          to label %667 unwind label %676

667:                                              ; preds = %666
  %668 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %84)
          to label %669 unwind label %680

669:                                              ; preds = %667
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %83, i32 noundef 1, ptr noundef @.str.7, i32 noundef 249, ptr noundef %668)
          to label %670 unwind label %680

670:                                              ; preds = %669
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %671 unwind label %684

671:                                              ; preds = %670
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #10
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  br label %691

672:                                              ; preds = %665
  %673 = landingpad { ptr, i32 }
          cleanup
  %674 = extractvalue { ptr, i32 } %673, 0
  store ptr %674, ptr %5, align 8
  %675 = extractvalue { ptr, i32 } %673, 1
  store i32 %675, ptr %6, align 4
  br label %690

676:                                              ; preds = %666
  %677 = landingpad { ptr, i32 }
          cleanup
  %678 = extractvalue { ptr, i32 } %677, 0
  store ptr %678, ptr %5, align 8
  %679 = extractvalue { ptr, i32 } %677, 1
  store i32 %679, ptr %6, align 4
  br label %689

680:                                              ; preds = %669, %667
  %681 = landingpad { ptr, i32 }
          cleanup
  %682 = extractvalue { ptr, i32 } %681, 0
  store ptr %682, ptr %5, align 8
  %683 = extractvalue { ptr, i32 } %681, 1
  store i32 %683, ptr %6, align 4
  br label %688

684:                                              ; preds = %670
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %5, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #10
  br label %688

688:                                              ; preds = %684, %680
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #10
  br label %689

689:                                              ; preds = %688, %676
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #10
  br label %690

690:                                              ; preds = %689, %672
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  br label %700

691:                                              ; preds = %671, %654
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %85) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  store i32 3, ptr %86, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %692 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %693 = load ptr, ptr %692, align 8, !tbaa !37
  %694 = invoke noundef i64 @_ZNK7cascadb6MsgBuf5countEv(ptr noundef nonnull align 8 dereferenceable(104) %693)
          to label %695 unwind label %702

695:                                              ; preds = %691
  store i64 %694, ptr %87, align 8, !tbaa !45
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %85, ptr noundef @.str.28, ptr noundef @.str.159, ptr noundef nonnull align 4 dereferenceable(4) %86, ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %696 unwind label %702

696:                                              ; preds = %695
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  %697 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %85)
          to label %698 unwind label %706

698:                                              ; preds = %696
  br i1 %697, label %699, label %710

699:                                              ; preds = %698
  br label %730

700:                                              ; preds = %690, %661
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #10
  br label %701

701:                                              ; preds = %700, %657
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #10
  br label %1371

702:                                              ; preds = %695, %691
  %703 = landingpad { ptr, i32 }
          cleanup
  %704 = extractvalue { ptr, i32 } %703, 0
  store ptr %704, ptr %5, align 8
  %705 = extractvalue { ptr, i32 } %703, 1
  store i32 %705, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %741

706:                                              ; preds = %696
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %5, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %6, align 4
  br label %740

710:                                              ; preds = %698
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %711 unwind label %716

711:                                              ; preds = %710
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #10
  %712 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %85)
          to label %713 unwind label %720

713:                                              ; preds = %711
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %89, i32 noundef 1, ptr noundef @.str.7, i32 noundef 250, ptr noundef %712)
          to label %714 unwind label %720

714:                                              ; preds = %713
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %715 unwind label %724

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

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

720:                                              ; preds = %713, %711
  %721 = landingpad { ptr, i32 }
          cleanup
  %722 = extractvalue { ptr, i32 } %721, 0
  store ptr %722, ptr %5, align 8
  %723 = extractvalue { ptr, i32 } %721, 1
  store i32 %723, ptr %6, align 4
  br label %728

724:                                              ; preds = %714
  %725 = landingpad { ptr, i32 }
          cleanup
  %726 = extractvalue { ptr, i32 } %725, 0
  store ptr %726, ptr %5, align 8
  %727 = extractvalue { ptr, i32 } %725, 1
  store i32 %727, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #10
  br label %728

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

729:                                              ; preds = %728, %716
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  br label %740

730:                                              ; preds = %715, %699
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %85) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  store i32 1, ptr %91, align 4, !tbaa !46
  %731 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %732 = load ptr, ptr %731, align 8, !tbaa !37
  %733 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %732, i64 noundef 0)
          to label %734 unwind label %742

734:                                              ; preds = %730
  %735 = getelementptr inbounds %"class.cascadb::Msg", ptr %733, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIN7cascadb7MsgTypeES5_EENS_15AssertionResultEPKcS8_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %90, ptr noundef @.str.103, ptr noundef @.str.160, ptr noundef nonnull align 4 dereferenceable(4) %91, ptr noundef nonnull align 4 dereferenceable(4) %735)
          to label %736 unwind label %742

736:                                              ; preds = %734
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  %737 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %90)
          to label %738 unwind label %746

738:                                              ; preds = %736
  br i1 %737, label %739, label %750

739:                                              ; preds = %738
  br label %770

740:                                              ; preds = %729, %706
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %85) #10
  br label %741

741:                                              ; preds = %740, %702
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #10
  br label %1371

742:                                              ; preds = %734, %730
  %743 = landingpad { ptr, i32 }
          cleanup
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %5, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %781

746:                                              ; preds = %736
  %747 = landingpad { ptr, i32 }
          cleanup
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %5, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %6, align 4
  br label %780

750:                                              ; preds = %738
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %751 unwind label %756

751:                                              ; preds = %750
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #10
  %752 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %90)
          to label %753 unwind label %760

753:                                              ; preds = %751
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %93, i32 noundef 1, ptr noundef @.str.7, i32 noundef 251, ptr noundef %752)
          to label %754 unwind label %760

754:                                              ; preds = %753
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %755 unwind label %764

755:                                              ; preds = %754
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  br label %770

756:                                              ; preds = %750
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %5, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %6, align 4
  br label %769

760:                                              ; preds = %753, %751
  %761 = landingpad { ptr, i32 }
          cleanup
  %762 = extractvalue { ptr, i32 } %761, 0
  store ptr %762, ptr %5, align 8
  %763 = extractvalue { ptr, i32 } %761, 1
  store i32 %763, ptr %6, align 4
  br label %768

764:                                              ; preds = %754
  %765 = landingpad { ptr, i32 }
          cleanup
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %5, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #10
  br label %768

768:                                              ; preds = %764, %760
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #10
  br label %769

769:                                              ; preds = %768, %756
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  br label %780

770:                                              ; preds = %755, %739
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %94) #10
  %771 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %772 = load ptr, ptr %771, align 8, !tbaa !37
  %773 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %772, i64 noundef 0)
          to label %774 unwind label %782

774:                                              ; preds = %770
  %775 = getelementptr inbounds %"class.cascadb::Msg", ptr %773, i32 0, i32 2
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %94, ptr noundef @.str.8, ptr noundef @.str.161, ptr noundef nonnull align 1 dereferenceable(2) @.str.3, ptr noundef nonnull align 8 dereferenceable(12) %775)
          to label %776 unwind label %782

776:                                              ; preds = %774
  %777 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %94)
          to label %778 unwind label %786

778:                                              ; preds = %776
  br i1 %777, label %779, label %790

779:                                              ; preds = %778
  br label %810

780:                                              ; preds = %769, %746
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #10
  br label %781

781:                                              ; preds = %780, %742
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #10
  br label %1371

782:                                              ; preds = %774, %770
  %783 = landingpad { ptr, i32 }
          cleanup
  %784 = extractvalue { ptr, i32 } %783, 0
  store ptr %784, ptr %5, align 8
  %785 = extractvalue { ptr, i32 } %783, 1
  store i32 %785, ptr %6, align 4
  br label %821

786:                                              ; preds = %776
  %787 = landingpad { ptr, i32 }
          cleanup
  %788 = extractvalue { ptr, i32 } %787, 0
  store ptr %788, ptr %5, align 8
  %789 = extractvalue { ptr, i32 } %787, 1
  store i32 %789, ptr %6, align 4
  br label %820

790:                                              ; preds = %778
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95)
          to label %791 unwind label %796

791:                                              ; preds = %790
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #10
  %792 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %94)
          to label %793 unwind label %800

793:                                              ; preds = %791
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %96, i32 noundef 1, ptr noundef @.str.7, i32 noundef 251, ptr noundef %792)
          to label %794 unwind label %800

794:                                              ; preds = %793
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull align 8 dereferenceable(8) %95)
          to label %795 unwind label %804

795:                                              ; preds = %794
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  br label %810

796:                                              ; preds = %790
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %5, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %6, align 4
  br label %809

800:                                              ; preds = %793, %791
  %801 = landingpad { ptr, i32 }
          cleanup
  %802 = extractvalue { ptr, i32 } %801, 0
  store ptr %802, ptr %5, align 8
  %803 = extractvalue { ptr, i32 } %801, 1
  store i32 %803, ptr %6, align 4
  br label %808

804:                                              ; preds = %794
  %805 = landingpad { ptr, i32 }
          cleanup
  %806 = extractvalue { ptr, i32 } %805, 0
  store ptr %806, ptr %5, align 8
  %807 = extractvalue { ptr, i32 } %805, 1
  store i32 %807, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #10
  br label %808

808:                                              ; preds = %804, %800
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #10
  br label %809

809:                                              ; preds = %808, %796
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  br label %820

810:                                              ; preds = %795, %779
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %94) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %97) #10
  %811 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %812 = load ptr, ptr %811, align 8, !tbaa !37
  %813 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %812, i64 noundef 0)
          to label %814 unwind label %822

814:                                              ; preds = %810
  %815 = getelementptr inbounds %"class.cascadb::Msg", ptr %813, i32 0, i32 3
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %97, ptr noundef @.str.10, ptr noundef @.str.162, ptr noundef nonnull align 1 dereferenceable(2) @.str.4, ptr noundef nonnull align 8 dereferenceable(12) %815)
          to label %816 unwind label %822

816:                                              ; preds = %814
  %817 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %97)
          to label %818 unwind label %826

818:                                              ; preds = %816
  br i1 %817, label %819, label %830

819:                                              ; preds = %818
  br label %850

820:                                              ; preds = %809, %786
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #10
  br label %821

821:                                              ; preds = %820, %782
  call void @llvm.lifetime.end.p0(i64 16, ptr %94) #10
  br label %1371

822:                                              ; preds = %814, %810
  %823 = landingpad { ptr, i32 }
          cleanup
  %824 = extractvalue { ptr, i32 } %823, 0
  store ptr %824, ptr %5, align 8
  %825 = extractvalue { ptr, i32 } %823, 1
  store i32 %825, ptr %6, align 4
  br label %861

826:                                              ; preds = %816
  %827 = landingpad { ptr, i32 }
          cleanup
  %828 = extractvalue { ptr, i32 } %827, 0
  store ptr %828, ptr %5, align 8
  %829 = extractvalue { ptr, i32 } %827, 1
  store i32 %829, ptr %6, align 4
  br label %860

830:                                              ; preds = %818
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %831 unwind label %836

831:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #10
  %832 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %97)
          to label %833 unwind label %840

833:                                              ; preds = %831
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %99, i32 noundef 1, ptr noundef @.str.7, i32 noundef 251, ptr noundef %832)
          to label %834 unwind label %840

834:                                              ; preds = %833
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %835 unwind label %844

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

836:                                              ; preds = %830
  %837 = landingpad { ptr, i32 }
          cleanup
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %5, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %6, align 4
  br label %849

840:                                              ; preds = %833, %831
  %841 = landingpad { ptr, i32 }
          cleanup
  %842 = extractvalue { ptr, i32 } %841, 0
  store ptr %842, ptr %5, align 8
  %843 = extractvalue { ptr, i32 } %841, 1
  store i32 %843, ptr %6, align 4
  br label %848

844:                                              ; preds = %834
  %845 = landingpad { ptr, i32 }
          cleanup
  %846 = extractvalue { ptr, i32 } %845, 0
  store ptr %846, ptr %5, align 8
  %847 = extractvalue { ptr, i32 } %845, 1
  store i32 %847, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #10
  br label %848

848:                                              ; preds = %844, %840
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #10
  br label %849

849:                                              ; preds = %848, %836
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  br label %860

850:                                              ; preds = %835, %819
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %97) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %100) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  store i32 1, ptr %101, align 4, !tbaa !46
  %851 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %852 = load ptr, ptr %851, align 8, !tbaa !37
  %853 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %852, i64 noundef 1)
          to label %854 unwind label %862

854:                                              ; preds = %850
  %855 = getelementptr inbounds %"class.cascadb::Msg", ptr %853, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIN7cascadb7MsgTypeES5_EENS_15AssertionResultEPKcS8_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %100, ptr noundef @.str.103, ptr noundef @.str.163, ptr noundef nonnull align 4 dereferenceable(4) %101, ptr noundef nonnull align 4 dereferenceable(4) %855)
          to label %856 unwind label %862

856:                                              ; preds = %854
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  %857 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %858 unwind label %866

858:                                              ; preds = %856
  br i1 %857, label %859, label %870

859:                                              ; preds = %858
  br label %890

860:                                              ; preds = %849, %826
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %97) #10
  br label %861

861:                                              ; preds = %860, %822
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #10
  br label %1371

862:                                              ; preds = %854, %850
  %863 = landingpad { ptr, i32 }
          cleanup
  %864 = extractvalue { ptr, i32 } %863, 0
  store ptr %864, ptr %5, align 8
  %865 = extractvalue { ptr, i32 } %863, 1
  store i32 %865, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %901

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

870:                                              ; preds = %858
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %871 unwind label %876

871:                                              ; preds = %870
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #10
  %872 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %873 unwind label %880

873:                                              ; preds = %871
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %103, i32 noundef 1, ptr noundef @.str.7, i32 noundef 252, ptr noundef %872)
          to label %874 unwind label %880

874:                                              ; preds = %873
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %875 unwind label %884

875:                                              ; preds = %874
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  br label %890

876:                                              ; preds = %870
  %877 = landingpad { ptr, i32 }
          cleanup
  %878 = extractvalue { ptr, i32 } %877, 0
  store ptr %878, ptr %5, align 8
  %879 = extractvalue { ptr, i32 } %877, 1
  store i32 %879, ptr %6, align 4
  br label %889

880:                                              ; preds = %873, %871
  %881 = landingpad { ptr, i32 }
          cleanup
  %882 = extractvalue { ptr, i32 } %881, 0
  store ptr %882, ptr %5, align 8
  %883 = extractvalue { ptr, i32 } %881, 1
  store i32 %883, ptr %6, align 4
  br label %888

884:                                              ; preds = %874
  %885 = landingpad { ptr, i32 }
          cleanup
  %886 = extractvalue { ptr, i32 } %885, 0
  store ptr %886, ptr %5, align 8
  %887 = extractvalue { ptr, i32 } %885, 1
  store i32 %887, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #10
  br label %888

888:                                              ; preds = %884, %880
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #10
  br label %889

889:                                              ; preds = %888, %876
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  br label %900

890:                                              ; preds = %875, %859
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %104) #10
  %891 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %892 = load ptr, ptr %891, align 8, !tbaa !37
  %893 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %892, i64 noundef 1)
          to label %894 unwind label %902

894:                                              ; preds = %890
  %895 = getelementptr inbounds %"class.cascadb::Msg", ptr %893, i32 0, i32 2
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %104, ptr noundef @.str.39, ptr noundef @.str.164, ptr noundef nonnull align 1 dereferenceable(2) @.str.24, ptr noundef nonnull align 8 dereferenceable(12) %895)
          to label %896 unwind label %902

896:                                              ; preds = %894
  %897 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %104)
          to label %898 unwind label %906

898:                                              ; preds = %896
  br i1 %897, label %899, label %910

899:                                              ; preds = %898
  br label %930

900:                                              ; preds = %889, %866
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #10
  br label %901

901:                                              ; preds = %900, %862
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #10
  br label %1371

902:                                              ; preds = %894, %890
  %903 = landingpad { ptr, i32 }
          cleanup
  %904 = extractvalue { ptr, i32 } %903, 0
  store ptr %904, ptr %5, align 8
  %905 = extractvalue { ptr, i32 } %903, 1
  store i32 %905, ptr %6, align 4
  br label %941

906:                                              ; preds = %896
  %907 = landingpad { ptr, i32 }
          cleanup
  %908 = extractvalue { ptr, i32 } %907, 0
  store ptr %908, ptr %5, align 8
  %909 = extractvalue { ptr, i32 } %907, 1
  store i32 %909, ptr %6, align 4
  br label %940

910:                                              ; preds = %898
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105)
          to label %911 unwind label %916

911:                                              ; preds = %910
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #10
  %912 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %104)
          to label %913 unwind label %920

913:                                              ; preds = %911
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %106, i32 noundef 1, ptr noundef @.str.7, i32 noundef 252, ptr noundef %912)
          to label %914 unwind label %920

914:                                              ; preds = %913
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %106, ptr noundef nonnull align 8 dereferenceable(8) %105)
          to label %915 unwind label %924

915:                                              ; preds = %914
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #10
  br label %930

916:                                              ; preds = %910
  %917 = landingpad { ptr, i32 }
          cleanup
  %918 = extractvalue { ptr, i32 } %917, 0
  store ptr %918, ptr %5, align 8
  %919 = extractvalue { ptr, i32 } %917, 1
  store i32 %919, ptr %6, align 4
  br label %929

920:                                              ; preds = %913, %911
  %921 = landingpad { ptr, i32 }
          cleanup
  %922 = extractvalue { ptr, i32 } %921, 0
  store ptr %922, ptr %5, align 8
  %923 = extractvalue { ptr, i32 } %921, 1
  store i32 %923, ptr %6, align 4
  br label %928

924:                                              ; preds = %914
  %925 = landingpad { ptr, i32 }
          cleanup
  %926 = extractvalue { ptr, i32 } %925, 0
  store ptr %926, ptr %5, align 8
  %927 = extractvalue { ptr, i32 } %925, 1
  store i32 %927, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #10
  br label %928

928:                                              ; preds = %924, %920
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #10
  br label %929

929:                                              ; preds = %928, %916
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #10
  br label %940

930:                                              ; preds = %915, %899
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %107) #10
  %931 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %932 = load ptr, ptr %931, align 8, !tbaa !37
  %933 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %932, i64 noundef 1)
          to label %934 unwind label %942

934:                                              ; preds = %930
  %935 = getelementptr inbounds %"class.cascadb::Msg", ptr %933, i32 0, i32 3
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %107, ptr noundef @.str.10, ptr noundef @.str.165, ptr noundef nonnull align 1 dereferenceable(2) @.str.4, ptr noundef nonnull align 8 dereferenceable(12) %935)
          to label %936 unwind label %942

936:                                              ; preds = %934
  %937 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %107)
          to label %938 unwind label %946

938:                                              ; preds = %936
  br i1 %937, label %939, label %950

939:                                              ; preds = %938
  br label %970

940:                                              ; preds = %929, %906
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #10
  br label %941

941:                                              ; preds = %940, %902
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #10
  br label %1371

942:                                              ; preds = %934, %930
  %943 = landingpad { ptr, i32 }
          cleanup
  %944 = extractvalue { ptr, i32 } %943, 0
  store ptr %944, ptr %5, align 8
  %945 = extractvalue { ptr, i32 } %943, 1
  store i32 %945, ptr %6, align 4
  br label %981

946:                                              ; preds = %936
  %947 = landingpad { ptr, i32 }
          cleanup
  %948 = extractvalue { ptr, i32 } %947, 0
  store ptr %948, ptr %5, align 8
  %949 = extractvalue { ptr, i32 } %947, 1
  store i32 %949, ptr %6, align 4
  br label %980

950:                                              ; preds = %938
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %951 unwind label %956

951:                                              ; preds = %950
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #10
  %952 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %107)
          to label %953 unwind label %960

953:                                              ; preds = %951
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %109, i32 noundef 1, ptr noundef @.str.7, i32 noundef 252, ptr noundef %952)
          to label %954 unwind label %960

954:                                              ; preds = %953
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %955 unwind label %964

955:                                              ; preds = %954
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #10
  br label %970

956:                                              ; preds = %950
  %957 = landingpad { ptr, i32 }
          cleanup
  %958 = extractvalue { ptr, i32 } %957, 0
  store ptr %958, ptr %5, align 8
  %959 = extractvalue { ptr, i32 } %957, 1
  store i32 %959, ptr %6, align 4
  br label %969

960:                                              ; preds = %953, %951
  %961 = landingpad { ptr, i32 }
          cleanup
  %962 = extractvalue { ptr, i32 } %961, 0
  store ptr %962, ptr %5, align 8
  %963 = extractvalue { ptr, i32 } %961, 1
  store i32 %963, ptr %6, align 4
  br label %968

964:                                              ; preds = %954
  %965 = landingpad { ptr, i32 }
          cleanup
  %966 = extractvalue { ptr, i32 } %965, 0
  store ptr %966, ptr %5, align 8
  %967 = extractvalue { ptr, i32 } %965, 1
  store i32 %967, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #10
  br label %968

968:                                              ; preds = %964, %960
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #10
  br label %969

969:                                              ; preds = %968, %956
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #10
  br label %980

970:                                              ; preds = %955, %939
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %110) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  store i32 1, ptr %111, align 4, !tbaa !46
  %971 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %972 = load ptr, ptr %971, align 8, !tbaa !37
  %973 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %972, i64 noundef 2)
          to label %974 unwind label %982

974:                                              ; preds = %970
  %975 = getelementptr inbounds %"class.cascadb::Msg", ptr %973, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIN7cascadb7MsgTypeES5_EENS_15AssertionResultEPKcS8_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %110, ptr noundef @.str.103, ptr noundef @.str.166, ptr noundef nonnull align 4 dereferenceable(4) %111, ptr noundef nonnull align 4 dereferenceable(4) %975)
          to label %976 unwind label %982

976:                                              ; preds = %974
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  %977 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %110)
          to label %978 unwind label %986

978:                                              ; preds = %976
  br i1 %977, label %979, label %990

979:                                              ; preds = %978
  br label %1010

980:                                              ; preds = %969, %946
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #10
  br label %981

981:                                              ; preds = %980, %942
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #10
  br label %1371

982:                                              ; preds = %974, %970
  %983 = landingpad { ptr, i32 }
          cleanup
  %984 = extractvalue { ptr, i32 } %983, 0
  store ptr %984, ptr %5, align 8
  %985 = extractvalue { ptr, i32 } %983, 1
  store i32 %985, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %1021

986:                                              ; preds = %976
  %987 = landingpad { ptr, i32 }
          cleanup
  %988 = extractvalue { ptr, i32 } %987, 0
  store ptr %988, ptr %5, align 8
  %989 = extractvalue { ptr, i32 } %987, 1
  store i32 %989, ptr %6, align 4
  br label %1020

990:                                              ; preds = %978
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %991 unwind label %996

991:                                              ; preds = %990
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #10
  %992 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %110)
          to label %993 unwind label %1000

993:                                              ; preds = %991
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %113, i32 noundef 1, ptr noundef @.str.7, i32 noundef 253, ptr noundef %992)
          to label %994 unwind label %1000

994:                                              ; preds = %993
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %995 unwind label %1004

995:                                              ; preds = %994
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #10
  br label %1010

996:                                              ; preds = %990
  %997 = landingpad { ptr, i32 }
          cleanup
  %998 = extractvalue { ptr, i32 } %997, 0
  store ptr %998, ptr %5, align 8
  %999 = extractvalue { ptr, i32 } %997, 1
  store i32 %999, ptr %6, align 4
  br label %1009

1000:                                             ; preds = %993, %991
  %1001 = landingpad { ptr, i32 }
          cleanup
  %1002 = extractvalue { ptr, i32 } %1001, 0
  store ptr %1002, ptr %5, align 8
  %1003 = extractvalue { ptr, i32 } %1001, 1
  store i32 %1003, ptr %6, align 4
  br label %1008

1004:                                             ; preds = %994
  %1005 = landingpad { ptr, i32 }
          cleanup
  %1006 = extractvalue { ptr, i32 } %1005, 0
  store ptr %1006, ptr %5, align 8
  %1007 = extractvalue { ptr, i32 } %1005, 1
  store i32 %1007, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #10
  br label %1008

1008:                                             ; preds = %1004, %1000
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #10
  br label %1009

1009:                                             ; preds = %1008, %996
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #10
  br label %1020

1010:                                             ; preds = %995, %979
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %114) #10
  %1011 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %1012 = load ptr, ptr %1011, align 8, !tbaa !37
  %1013 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %1012, i64 noundef 2)
          to label %1014 unwind label %1022

1014:                                             ; preds = %1010
  %1015 = getelementptr inbounds %"class.cascadb::Msg", ptr %1013, i32 0, i32 2
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %114, ptr noundef @.str.42, ptr noundef @.str.167, ptr noundef nonnull align 1 dereferenceable(2) @.str.25, ptr noundef nonnull align 8 dereferenceable(12) %1015)
          to label %1016 unwind label %1022

1016:                                             ; preds = %1014
  %1017 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %114)
          to label %1018 unwind label %1026

1018:                                             ; preds = %1016
  br i1 %1017, label %1019, label %1030

1019:                                             ; preds = %1018
  br label %1050

1020:                                             ; preds = %1009, %986
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #10
  br label %1021

1021:                                             ; preds = %1020, %982
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #10
  br label %1371

1022:                                             ; preds = %1014, %1010
  %1023 = landingpad { ptr, i32 }
          cleanup
  %1024 = extractvalue { ptr, i32 } %1023, 0
  store ptr %1024, ptr %5, align 8
  %1025 = extractvalue { ptr, i32 } %1023, 1
  store i32 %1025, ptr %6, align 4
  br label %1061

1026:                                             ; preds = %1016
  %1027 = landingpad { ptr, i32 }
          cleanup
  %1028 = extractvalue { ptr, i32 } %1027, 0
  store ptr %1028, ptr %5, align 8
  %1029 = extractvalue { ptr, i32 } %1027, 1
  store i32 %1029, ptr %6, align 4
  br label %1060

1030:                                             ; preds = %1018
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115)
          to label %1031 unwind label %1036

1031:                                             ; preds = %1030
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #10
  %1032 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %114)
          to label %1033 unwind label %1040

1033:                                             ; preds = %1031
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %116, i32 noundef 1, ptr noundef @.str.7, i32 noundef 253, ptr noundef %1032)
          to label %1034 unwind label %1040

1034:                                             ; preds = %1033
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %116, ptr noundef nonnull align 8 dereferenceable(8) %115)
          to label %1035 unwind label %1044

1035:                                             ; preds = %1034
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  br label %1050

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

1040:                                             ; preds = %1033, %1031
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %5, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %6, align 4
  br label %1048

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

1048:                                             ; preds = %1044, %1040
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #10
  br label %1049

1049:                                             ; preds = %1048, %1036
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  br label %1060

1050:                                             ; preds = %1035, %1019
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %114) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %117) #10
  %1051 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 3
  %1052 = load ptr, ptr %1051, align 8, !tbaa !37
  %1053 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %1052, i64 noundef 2)
          to label %1054 unwind label %1062

1054:                                             ; preds = %1050
  %1055 = getelementptr inbounds %"class.cascadb::Msg", ptr %1053, i32 0, i32 3
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %117, ptr noundef @.str.10, ptr noundef @.str.168, ptr noundef nonnull align 1 dereferenceable(2) @.str.4, ptr noundef nonnull align 8 dereferenceable(12) %1055)
          to label %1056 unwind label %1062

1056:                                             ; preds = %1054
  %1057 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %117)
          to label %1058 unwind label %1066

1058:                                             ; preds = %1056
  br i1 %1057, label %1059, label %1070

1059:                                             ; preds = %1058
  br label %1090

1060:                                             ; preds = %1049, %1026
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %114) #10
  br label %1061

1061:                                             ; preds = %1060, %1022
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #10
  br label %1371

1062:                                             ; preds = %1054, %1050
  %1063 = landingpad { ptr, i32 }
          cleanup
  %1064 = extractvalue { ptr, i32 } %1063, 0
  store ptr %1064, ptr %5, align 8
  %1065 = extractvalue { ptr, i32 } %1063, 1
  store i32 %1065, ptr %6, align 4
  br label %1098

1066:                                             ; preds = %1056
  %1067 = landingpad { ptr, i32 }
          cleanup
  %1068 = extractvalue { ptr, i32 } %1067, 0
  store ptr %1068, ptr %5, align 8
  %1069 = extractvalue { ptr, i32 } %1067, 1
  store i32 %1069, ptr %6, align 4
  br label %1097

1070:                                             ; preds = %1058
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118)
          to label %1071 unwind label %1076

1071:                                             ; preds = %1070
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #10
  %1072 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %117)
          to label %1073 unwind label %1080

1073:                                             ; preds = %1071
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %119, i32 noundef 1, ptr noundef @.str.7, i32 noundef 253, ptr noundef %1072)
          to label %1074 unwind label %1080

1074:                                             ; preds = %1073
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(8) %118)
          to label %1075 unwind label %1084

1075:                                             ; preds = %1074
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %119) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #10
  br label %1090

1076:                                             ; preds = %1070
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %5, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %6, align 4
  br label %1089

1080:                                             ; preds = %1073, %1071
  %1081 = landingpad { ptr, i32 }
          cleanup
  %1082 = extractvalue { ptr, i32 } %1081, 0
  store ptr %1082, ptr %5, align 8
  %1083 = extractvalue { ptr, i32 } %1081, 1
  store i32 %1083, ptr %6, align 4
  br label %1088

1084:                                             ; preds = %1074
  %1085 = landingpad { ptr, i32 }
          cleanup
  %1086 = extractvalue { ptr, i32 } %1085, 0
  store ptr %1086, ptr %5, align 8
  %1087 = extractvalue { ptr, i32 } %1085, 1
  store i32 %1087, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %119) #10
  br label %1088

1088:                                             ; preds = %1084, %1080
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #10
  br label %1089

1089:                                             ; preds = %1088, %1076
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #10
  br label %1097

1090:                                             ; preds = %1075, %1059
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %117) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %117) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  store i32 1, ptr %121, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  %1091 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 9
  %1092 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1091) #10
  store i64 %1092, ptr %122, align 8, !tbaa !45
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %120, ptr noundef @.str.52, ptr noundef @.str.169, ptr noundef nonnull align 4 dereferenceable(4) %121, ptr noundef nonnull align 8 dereferenceable(8) %122)
          to label %1093 unwind label %1099

1093:                                             ; preds = %1090
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  %1094 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %120)
          to label %1095 unwind label %1103

1095:                                             ; preds = %1093
  br i1 %1094, label %1096, label %1107

1096:                                             ; preds = %1095
  br label %1127

1097:                                             ; preds = %1089, %1066
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %117) #10
  br label %1098

1098:                                             ; preds = %1097, %1062
  call void @llvm.lifetime.end.p0(i64 16, ptr %117) #10
  br label %1371

1099:                                             ; preds = %1090
  %1100 = landingpad { ptr, i32 }
          cleanup
  %1101 = extractvalue { ptr, i32 } %1100, 0
  store ptr %1101, ptr %5, align 8
  %1102 = extractvalue { ptr, i32 } %1100, 1
  store i32 %1102, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %1136

1103:                                             ; preds = %1093
  %1104 = landingpad { ptr, i32 }
          cleanup
  %1105 = extractvalue { ptr, i32 } %1104, 0
  store ptr %1105, ptr %5, align 8
  %1106 = extractvalue { ptr, i32 } %1104, 1
  store i32 %1106, ptr %6, align 4
  br label %1135

1107:                                             ; preds = %1095
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %123)
          to label %1108 unwind label %1113

1108:                                             ; preds = %1107
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  %1109 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %120)
          to label %1110 unwind label %1117

1110:                                             ; preds = %1108
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %124, i32 noundef 1, ptr noundef @.str.7, i32 noundef 254, ptr noundef %1109)
          to label %1111 unwind label %1117

1111:                                             ; preds = %1110
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull align 8 dereferenceable(8) %123)
          to label %1112 unwind label %1121

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

1113:                                             ; preds = %1107
  %1114 = landingpad { ptr, i32 }
          cleanup
  %1115 = extractvalue { ptr, i32 } %1114, 0
  store ptr %1115, ptr %5, align 8
  %1116 = extractvalue { ptr, i32 } %1114, 1
  store i32 %1116, ptr %6, align 4
  br label %1126

1117:                                             ; preds = %1110, %1108
  %1118 = landingpad { ptr, i32 }
          cleanup
  %1119 = extractvalue { ptr, i32 } %1118, 0
  store ptr %1119, ptr %5, align 8
  %1120 = extractvalue { ptr, i32 } %1118, 1
  store i32 %1120, ptr %6, align 4
  br label %1125

1121:                                             ; preds = %1111
  %1122 = landingpad { ptr, i32 }
          cleanup
  %1123 = extractvalue { ptr, i32 } %1122, 0
  store ptr %1123, ptr %5, align 8
  %1124 = extractvalue { ptr, i32 } %1122, 1
  store i32 %1124, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #10
  br label %1125

1125:                                             ; preds = %1121, %1117
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  br label %1126

1126:                                             ; preds = %1125, %1113
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  br label %1135

1127:                                             ; preds = %1112, %1096
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %125) #10
  %1128 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 9
  %1129 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1128, i64 noundef 0) #10
  %1130 = getelementptr inbounds %"class.cascadb::Pivot", ptr %1129, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %125, ptr noundef @.str.45, ptr noundef @.str.170, ptr noundef nonnull align 1 dereferenceable(2) @.str.30, ptr noundef nonnull align 8 dereferenceable(12) %1130)
          to label %1131 unwind label %1137

1131:                                             ; preds = %1127
  %1132 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %125)
          to label %1133 unwind label %1141

1133:                                             ; preds = %1131
  br i1 %1132, label %1134, label %1145

1134:                                             ; preds = %1133
  br label %1165

1135:                                             ; preds = %1126, %1103
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #10
  br label %1136

1136:                                             ; preds = %1135, %1099
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #10
  br label %1371

1137:                                             ; preds = %1127
  %1138 = landingpad { ptr, i32 }
          cleanup
  %1139 = extractvalue { ptr, i32 } %1138, 0
  store ptr %1139, ptr %5, align 8
  %1140 = extractvalue { ptr, i32 } %1138, 1
  store i32 %1140, ptr %6, align 4
  br label %1174

1141:                                             ; preds = %1131
  %1142 = landingpad { ptr, i32 }
          cleanup
  %1143 = extractvalue { ptr, i32 } %1142, 0
  store ptr %1143, ptr %5, align 8
  %1144 = extractvalue { ptr, i32 } %1142, 1
  store i32 %1144, ptr %6, align 4
  br label %1173

1145:                                             ; preds = %1133
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %1146 unwind label %1151

1146:                                             ; preds = %1145
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #10
  %1147 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %125)
          to label %1148 unwind label %1155

1148:                                             ; preds = %1146
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %127, i32 noundef 1, ptr noundef @.str.7, i32 noundef 255, ptr noundef %1147)
          to label %1149 unwind label %1155

1149:                                             ; preds = %1148
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %127, ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %1150 unwind label %1159

1150:                                             ; preds = %1149
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  br label %1165

1151:                                             ; preds = %1145
  %1152 = landingpad { ptr, i32 }
          cleanup
  %1153 = extractvalue { ptr, i32 } %1152, 0
  store ptr %1153, ptr %5, align 8
  %1154 = extractvalue { ptr, i32 } %1152, 1
  store i32 %1154, ptr %6, align 4
  br label %1164

1155:                                             ; preds = %1148, %1146
  %1156 = landingpad { ptr, i32 }
          cleanup
  %1157 = extractvalue { ptr, i32 } %1156, 0
  store ptr %1157, ptr %5, align 8
  %1158 = extractvalue { ptr, i32 } %1156, 1
  store i32 %1158, ptr %6, align 4
  br label %1163

1159:                                             ; preds = %1149
  %1160 = landingpad { ptr, i32 }
          cleanup
  %1161 = extractvalue { ptr, i32 } %1160, 0
  store ptr %1161, ptr %5, align 8
  %1162 = extractvalue { ptr, i32 } %1160, 1
  store i32 %1162, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #10
  br label %1163

1163:                                             ; preds = %1159, %1155
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #10
  br label %1164

1164:                                             ; preds = %1163, %1151
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  br label %1173

1165:                                             ; preds = %1150, %1134
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %125) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %128) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #10
  store i64 281474976710658, ptr %129, align 8, !tbaa !45
  %1166 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 9
  %1167 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1166, i64 noundef 0) #10
  %1168 = getelementptr inbounds %"class.cascadb::Pivot", ptr %1167, i32 0, i32 2
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareImmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %128, ptr noundef @.str.57, ptr noundef @.str.171, ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(8) %1168)
          to label %1169 unwind label %1175

1169:                                             ; preds = %1165
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #10
  %1170 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %128)
          to label %1171 unwind label %1179

1171:                                             ; preds = %1169
  br i1 %1170, label %1172, label %1183

1172:                                             ; preds = %1171
  br label %1203

1173:                                             ; preds = %1164, %1141
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %125) #10
  br label %1174

1174:                                             ; preds = %1173, %1137
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #10
  br label %1371

1175:                                             ; preds = %1165
  %1176 = landingpad { ptr, i32 }
          cleanup
  %1177 = extractvalue { ptr, i32 } %1176, 0
  store ptr %1177, ptr %5, align 8
  %1178 = extractvalue { ptr, i32 } %1176, 1
  store i32 %1178, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #10
  br label %1214

1179:                                             ; preds = %1169
  %1180 = landingpad { ptr, i32 }
          cleanup
  %1181 = extractvalue { ptr, i32 } %1180, 0
  store ptr %1181, ptr %5, align 8
  %1182 = extractvalue { ptr, i32 } %1180, 1
  store i32 %1182, ptr %6, align 4
  br label %1213

1183:                                             ; preds = %1171
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %130)
          to label %1184 unwind label %1189

1184:                                             ; preds = %1183
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #10
  %1185 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %128)
          to label %1186 unwind label %1193

1186:                                             ; preds = %1184
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %131, i32 noundef 1, ptr noundef @.str.7, i32 noundef 256, ptr noundef %1185)
          to label %1187 unwind label %1193

1187:                                             ; preds = %1186
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %131, ptr noundef nonnull align 8 dereferenceable(8) %130)
          to label %1188 unwind label %1197

1188:                                             ; preds = %1187
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %130) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #10
  br label %1203

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

1193:                                             ; preds = %1186, %1184
  %1194 = landingpad { ptr, i32 }
          cleanup
  %1195 = extractvalue { ptr, i32 } %1194, 0
  store ptr %1195, ptr %5, align 8
  %1196 = extractvalue { ptr, i32 } %1194, 1
  store i32 %1196, ptr %6, align 4
  br label %1201

1197:                                             ; preds = %1187
  %1198 = landingpad { ptr, i32 }
          cleanup
  %1199 = extractvalue { ptr, i32 } %1198, 0
  store ptr %1199, ptr %5, align 8
  %1200 = extractvalue { ptr, i32 } %1198, 1
  store i32 %1200, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #10
  br label %1201

1201:                                             ; preds = %1197, %1193
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %130) #10
  br label %1202

1202:                                             ; preds = %1201, %1189
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #10
  br label %1213

1203:                                             ; preds = %1188, %1172
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %128) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %132) #10
  %1204 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 9
  %1205 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1204, i64 noundef 0) #10
  %1206 = getelementptr inbounds %"class.cascadb::Pivot", ptr %1205, i32 0, i32 3
  %1207 = load ptr, ptr %1206, align 8, !tbaa !42
  %1208 = icmp ne ptr %1207, null
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %132, i1 noundef zeroext %1208)
          to label %1209 unwind label %1215

1209:                                             ; preds = %1203
  %1210 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %132)
          to label %1211 unwind label %1219

1211:                                             ; preds = %1209
  br i1 %1210, label %1212, label %1223

1212:                                             ; preds = %1211
  br label %1249

1213:                                             ; preds = %1202, %1179
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %128) #10
  br label %1214

1214:                                             ; preds = %1213, %1175
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #10
  br label %1371

1215:                                             ; preds = %1203
  %1216 = landingpad { ptr, i32 }
          cleanup
  %1217 = extractvalue { ptr, i32 } %1216, 0
  store ptr %1217, ptr %5, align 8
  %1218 = extractvalue { ptr, i32 } %1216, 1
  store i32 %1218, ptr %6, align 4
  br label %1261

1219:                                             ; preds = %1209
  %1220 = landingpad { ptr, i32 }
          cleanup
  %1221 = extractvalue { ptr, i32 } %1220, 0
  store ptr %1221, ptr %5, align 8
  %1222 = extractvalue { ptr, i32 } %1220, 1
  store i32 %1222, ptr %6, align 4
  br label %1260

1223:                                             ; preds = %1211
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %133)
          to label %1224 unwind label %1230

1224:                                             ; preds = %1223
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %135) #10
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.testing::internal::String") align 8 %135, ptr noundef nonnull align 8 dereferenceable(16) %132, ptr noundef @.str.172, ptr noundef @.str.17, ptr noundef @.str.18)
          to label %1225 unwind label %1234

1225:                                             ; preds = %1224
  %1226 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %135)
          to label %1227 unwind label %1238

1227:                                             ; preds = %1225
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %134, i32 noundef 1, ptr noundef @.str.7, i32 noundef 257, ptr noundef %1226)
          to label %1228 unwind label %1238

1228:                                             ; preds = %1227
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull align 8 dereferenceable(8) %133)
          to label %1229 unwind label %1242

1229:                                             ; preds = %1228
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #10
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %135) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %135) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #10
  br label %1249

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

1234:                                             ; preds = %1224
  %1235 = landingpad { ptr, i32 }
          cleanup
  %1236 = extractvalue { ptr, i32 } %1235, 0
  store ptr %1236, ptr %5, align 8
  %1237 = extractvalue { ptr, i32 } %1235, 1
  store i32 %1237, ptr %6, align 4
  br label %1247

1238:                                             ; preds = %1227, %1225
  %1239 = landingpad { ptr, i32 }
          cleanup
  %1240 = extractvalue { ptr, i32 } %1239, 0
  store ptr %1240, ptr %5, align 8
  %1241 = extractvalue { ptr, i32 } %1239, 1
  store i32 %1241, ptr %6, align 4
  br label %1246

1242:                                             ; preds = %1228
  %1243 = landingpad { ptr, i32 }
          cleanup
  %1244 = extractvalue { ptr, i32 } %1243, 0
  store ptr %1244, ptr %5, align 8
  %1245 = extractvalue { ptr, i32 } %1243, 1
  store i32 %1245, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #10
  br label %1246

1246:                                             ; preds = %1242, %1238
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %135) #10
  br label %1247

1247:                                             ; preds = %1246, %1234
  call void @llvm.lifetime.end.p0(i64 16, ptr %135) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #10
  br label %1248

1248:                                             ; preds = %1247, %1230
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #10
  br label %1260

1249:                                             ; preds = %1229, %1212
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %132) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %132) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %136) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #10
  store i32 0, ptr %137, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #10
  %1250 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %66, i32 0, i32 9
  %1251 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1250, i64 noundef 0) #10
  %1252 = getelementptr inbounds %"class.cascadb::Pivot", ptr %1251, i32 0, i32 3
  %1253 = load ptr, ptr %1252, align 8, !tbaa !42
  %1254 = invoke noundef i64 @_ZNK7cascadb6MsgBuf5countEv(ptr noundef nonnull align 8 dereferenceable(104) %1253)
          to label %1255 unwind label %1262

1255:                                             ; preds = %1249
  store i64 %1254, ptr %138, align 8, !tbaa !45
  invoke void @_ZN7testing8internal8EqHelperILb1EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_PNS0_8EnableIfIXntsr10is_pointerISA_EE5valueEE4typeE(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %136, ptr noundef @.str.31, ptr noundef @.str.173, ptr noundef nonnull align 4 dereferenceable(4) %137, ptr noundef nonnull align 8 dereferenceable(8) %138, ptr noundef null)
          to label %1256 unwind label %1262

1256:                                             ; preds = %1255
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  %1257 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %136)
          to label %1258 unwind label %1266

1258:                                             ; preds = %1256
  br i1 %1257, label %1259, label %1270

1259:                                             ; preds = %1258
  br label %1290

1260:                                             ; preds = %1248, %1219
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %132) #10
  br label %1261

1261:                                             ; preds = %1260, %1215
  call void @llvm.lifetime.end.p0(i64 16, ptr %132) #10
  br label %1371

1262:                                             ; preds = %1255, %1249
  %1263 = landingpad { ptr, i32 }
          cleanup
  %1264 = extractvalue { ptr, i32 } %1263, 0
  store ptr %1264, ptr %5, align 8
  %1265 = extractvalue { ptr, i32 } %1263, 1
  store i32 %1265, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  br label %1300

1266:                                             ; preds = %1256
  %1267 = landingpad { ptr, i32 }
          cleanup
  %1268 = extractvalue { ptr, i32 } %1267, 0
  store ptr %1268, ptr %5, align 8
  %1269 = extractvalue { ptr, i32 } %1267, 1
  store i32 %1269, ptr %6, align 4
  br label %1299

1270:                                             ; preds = %1258
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %1271 unwind label %1276

1271:                                             ; preds = %1270
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #10
  %1272 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %136)
          to label %1273 unwind label %1280

1273:                                             ; preds = %1271
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %140, i32 noundef 1, ptr noundef @.str.7, i32 noundef 258, ptr noundef %1272)
          to label %1274 unwind label %1280

1274:                                             ; preds = %1273
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %1275 unwind label %1284

1275:                                             ; preds = %1274
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #10
  br label %1290

1276:                                             ; preds = %1270
  %1277 = landingpad { ptr, i32 }
          cleanup
  %1278 = extractvalue { ptr, i32 } %1277, 0
  store ptr %1278, ptr %5, align 8
  %1279 = extractvalue { ptr, i32 } %1277, 1
  store i32 %1279, ptr %6, align 4
  br label %1289

1280:                                             ; preds = %1273, %1271
  %1281 = landingpad { ptr, i32 }
          cleanup
  %1282 = extractvalue { ptr, i32 } %1281, 0
  store ptr %1282, ptr %5, align 8
  %1283 = extractvalue { ptr, i32 } %1281, 1
  store i32 %1283, ptr %6, align 4
  br label %1288

1284:                                             ; preds = %1274
  %1285 = landingpad { ptr, i32 }
          cleanup
  %1286 = extractvalue { ptr, i32 } %1285, 0
  store ptr %1286, ptr %5, align 8
  %1287 = extractvalue { ptr, i32 } %1285, 1
  store i32 %1287, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #10
  br label %1288

1288:                                             ; preds = %1284, %1280
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #10
  br label %1289

1289:                                             ; preds = %1288, %1276
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #10
  br label %1299

1290:                                             ; preds = %1275, %1259
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %136) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %136) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #10
  store i64 13, ptr %141, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #10
  store i64 25, ptr %142, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 16, ptr %143) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #10
  %1291 = load i64, ptr %141, align 8, !tbaa !45
  %1292 = trunc i64 %1291 to i32
  %1293 = invoke noundef i64 @_ZN7cascadb9InnerNode10bloom_sizeEi(ptr noundef nonnull align 8 dereferenceable(312) %34, i32 noundef %1292)
          to label %1294 unwind label %1301

1294:                                             ; preds = %1290
  store i64 %1293, ptr %144, align 8, !tbaa !45
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareImmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %143, ptr noundef @.str.174, ptr noundef @.str.175, ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef nonnull align 8 dereferenceable(8) %144)
          to label %1295 unwind label %1301

1295:                                             ; preds = %1294
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #10
  %1296 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %143)
          to label %1297 unwind label %1305

1297:                                             ; preds = %1295
  br i1 %1296, label %1298, label %1309

1298:                                             ; preds = %1297
  br label %1329

1299:                                             ; preds = %1289, %1266
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %136) #10
  br label %1300

1300:                                             ; preds = %1299, %1262
  call void @llvm.lifetime.end.p0(i64 16, ptr %136) #10
  br label %1371

1301:                                             ; preds = %1294, %1290
  %1302 = landingpad { ptr, i32 }
          cleanup
  %1303 = extractvalue { ptr, i32 } %1302, 0
  store ptr %1303, ptr %5, align 8
  %1304 = extractvalue { ptr, i32 } %1302, 1
  store i32 %1304, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #10
  br label %1370

1305:                                             ; preds = %1295
  %1306 = landingpad { ptr, i32 }
          cleanup
  %1307 = extractvalue { ptr, i32 } %1306, 0
  store ptr %1307, ptr %5, align 8
  %1308 = extractvalue { ptr, i32 } %1306, 1
  store i32 %1308, ptr %6, align 4
  br label %1369

1309:                                             ; preds = %1297
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #10
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %145)
          to label %1310 unwind label %1315

1310:                                             ; preds = %1309
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #10
  %1311 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %143)
          to label %1312 unwind label %1319

1312:                                             ; preds = %1310
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %146, i32 noundef 1, ptr noundef @.str.7, i32 noundef 265, ptr noundef %1311)
          to label %1313 unwind label %1319

1313:                                             ; preds = %1312
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 8 dereferenceable(8) %145)
          to label %1314 unwind label %1323

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

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

1319:                                             ; preds = %1312, %1310
  %1320 = landingpad { ptr, i32 }
          cleanup
  %1321 = extractvalue { ptr, i32 } %1320, 0
  store ptr %1321, ptr %5, align 8
  %1322 = extractvalue { ptr, i32 } %1320, 1
  store i32 %1322, ptr %6, align 4
  br label %1327

1323:                                             ; preds = %1313
  %1324 = landingpad { ptr, i32 }
          cleanup
  %1325 = extractvalue { ptr, i32 } %1324, 0
  store ptr %1325, ptr %5, align 8
  %1326 = extractvalue { ptr, i32 } %1324, 1
  store i32 %1326, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #10
  br label %1327

1327:                                             ; preds = %1323, %1319
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #10
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #10
  br label %1328

1328:                                             ; preds = %1327, %1315
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #10
  br label %1369

1329:                                             ; preds = %1314, %1298
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %143) #10
  %1330 = load ptr, ptr %21, align 8, !tbaa !5
  %1331 = icmp eq ptr %1330, null
  br i1 %1331, label %1333, label %1332

1332:                                             ; preds = %1329
  call void @_ZN7cascadb4TreeD1Ev(ptr noundef nonnull align 8 dereferenceable(184) %1330) #10
  call void @_ZdlPvm(ptr noundef %1330, i64 noundef 184) #12
  br label %1333

1333:                                             ; preds = %1332, %1329
  %1334 = load ptr, ptr %16, align 8, !tbaa !5
  %1335 = icmp eq ptr %1334, null
  br i1 %1335, label %1337, label %1336

1336:                                             ; preds = %1333
  call void @_ZN7cascadb5CacheD1Ev(ptr noundef nonnull align 8 dereferenceable(432) %1334) #10
  call void @_ZdlPvm(ptr noundef %1334, i64 noundef 432) #12
  br label %1337

1337:                                             ; preds = %1336, %1333
  %1338 = load ptr, ptr %10, align 8, !tbaa !5
  %1339 = icmp eq ptr %1338, null
  br i1 %1339, label %1341, label %1340

1340:                                             ; preds = %1337
  call void @_ZN7cascadb6LayoutD1Ev(ptr noundef nonnull align 8 dereferenceable(600) %1338) #10
  call void @_ZdlPvm(ptr noundef %1338, i64 noundef 600) #12
  br label %1341

1341:                                             ; preds = %1340, %1337
  %1342 = load ptr, ptr %7, align 8, !tbaa !5
  %1343 = icmp eq ptr %1342, null
  br i1 %1343, label %1348, label %1344

1344:                                             ; preds = %1341
  %1345 = load ptr, ptr %1342, align 8, !tbaa !18
  %1346 = getelementptr inbounds ptr, ptr %1345, i64 1
  %1347 = load ptr, ptr %1346, align 8
  call void %1347(ptr noundef nonnull align 8 dereferenceable(8) %1342) #10
  br label %1348

1348:                                             ; preds = %1344, %1341
  %1349 = load ptr, ptr %4, align 8, !tbaa !5
  %1350 = icmp eq ptr %1349, null
  br i1 %1350, label %1355, label %1351

1351:                                             ; preds = %1348
  %1352 = load ptr, ptr %1349, align 8, !tbaa !18
  %1353 = getelementptr inbounds ptr, ptr %1352, i64 1
  %1354 = load ptr, ptr %1353, align 8
  call void %1354(ptr noundef nonnull align 8 dereferenceable(8) %1349) #10
  br label %1355

1355:                                             ; preds = %1351, %1348
  %1356 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  %1357 = load ptr, ptr %1356, align 8, !tbaa !9
  %1358 = icmp eq ptr %1357, null
  br i1 %1358, label %1363, label %1359

1359:                                             ; preds = %1355
  %1360 = load ptr, ptr %1357, align 8, !tbaa !18
  %1361 = getelementptr inbounds ptr, ptr %1360, i64 2
  %1362 = load ptr, ptr %1361, align 8
  call void %1362(ptr noundef nonnull align 8 dereferenceable(8) %1357) #10
  br label %1363

1363:                                             ; preds = %1359, %1355
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #10
  call void @_ZN7cascadb9InnerNodeD1Ev(ptr noundef nonnull align 8 dereferenceable(312) %66) #10
  call void @llvm.lifetime.end.p0(i64 312, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  call void @_ZN7cascadb9InnerNodeD1Ev(ptr noundef nonnull align 8 dereferenceable(312) %34) #10
  call void @llvm.lifetime.end.p0(i64 312, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 40960, ptr %29) #10
  store i32 0, ptr %15, align 4
  br label %1364

1364:                                             ; preds = %1363, %321
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %1365

1365:                                             ; preds = %1364, %264
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %1366

1366:                                             ; preds = %1365, %218
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr %3) #10
  %1367 = load i32, ptr %15, align 4
  switch i32 %1367, label %1386 [
    i32 0, label %1368
    i32 1, label %1368
  ]

1368:                                             ; preds = %1366, %1366
  ret void

1369:                                             ; preds = %1328, %1305
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #10
  br label %1370

1370:                                             ; preds = %1369, %1301
  call void @llvm.lifetime.end.p0(i64 16, ptr %143) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #10
  br label %1371

1371:                                             ; preds = %1370, %1300, %1261, %1214, %1174, %1136, %1098, %1061, %1021, %981, %941, %901, %861, %821, %781, %741, %701, %656, %618, %576
  call void @_ZN7cascadb9InnerNodeD1Ev(ptr noundef nonnull align 8 dereferenceable(312) %66) #10
  br label %1372

1372:                                             ; preds = %1371, %530
  call void @llvm.lifetime.end.p0(i64 312, ptr %66) #10
  br label %1373

1373:                                             ; preds = %1372, %521
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  br label %1374

1374:                                             ; preds = %1373, %470, %466, %465, %456, %447, %435, %431
  call void @_ZN7cascadb9InnerNodeD1Ev(ptr noundef nonnull align 8 dereferenceable(312) %34) #10
  br label %1375

1375:                                             ; preds = %1374, %430
  call void @llvm.lifetime.end.p0(i64 312, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 40960, ptr %29) #10
  br label %1376

1376:                                             ; preds = %1375, %421, %289
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %1377

1377:                                             ; preds = %1376, %277, %229
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %1378

1378:                                             ; preds = %1377, %228, %183
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  br label %1379

1379:                                             ; preds = %1378, %182
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #10
  br label %1380

1380:                                             ; preds = %1379, %170
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr %3) #10
  br label %1381

1381:                                             ; preds = %1380
  %1382 = load ptr, ptr %5, align 8
  %1383 = load i32, ptr %6, align 4
  %1384 = insertvalue { ptr, i32 } poison, ptr %1382, 0
  %1385 = insertvalue { ptr, i32 } %1384, i32 %1383, 1
  resume { ptr, i32 } %1385

1386:                                             ; preds = %1366
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7cascadb9InnerNodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmPNS_4TreeE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, ptr noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef) unnamed_addr #4 align 2

declare void @_ZN7cascadb6MsgBuf5writeERKNS_3MsgE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(40)) #5

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12)) #4 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7cascadb3MsgC2ENS_7MsgTypeENS_5SliceES2_(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, ptr, i32, ptr, i32) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN7cascadb5PivotESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #4 align 2

declare noundef zeroext i1 @_ZN7cascadb9InnerNode8write_toERNS_11BlockWriterERm(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5

declare noundef zeroext i1 @_ZN7cascadb9InnerNode9read_fromERNS_11BlockReaderEb(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) unnamed_addr #5

declare noundef i64 @_ZN7cascadb9InnerNode10bloom_sizeEi(ptr noundef nonnull align 8 dereferenceable(312), i32 noundef) #5

; Function Attrs: nounwind
declare void @_ZN7cascadb9InnerNodeD1Ev(ptr noundef nonnull align 8 dereferenceable(312)) unnamed_addr #6

attributes #0 = { nobuiltin allocsize(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 #1 = { nobuiltin 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 #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "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 = { 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 #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nounwind }
attributes #11 = { builtin allocsize(0) }
attributes #12 = { builtin 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, !6, i64 8}
!10 = !{!"_ZTSN7cascadb7OptionsE", !6, i64 0, !6, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !12, i64 72, !12, i64 76, !12, i64 80, !12, i64 84, !12, i64 88, !12, i64 92, !13, i64 96, !14, i64 100}
!11 = !{!"long", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!"_ZTSN7cascadb8CompressE", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!10, !11, i64 48}
!16 = !{!10, !11, i64 24}
!17 = !{!10, !11, i64 56}
!18 = !{!19, !19, i64 0}
!19 = !{!"vtable pointer", !8, i64 0}
!20 = !{!21, !14, i64 212}
!21 = !{!"_ZTSN7cascadb9InnerNodeE", !22, i64 0, !14, i64 212, !11, i64 216, !6, i64 224, !30, i64 232, !12, i64 248, !12, i64 252, !12, i64 256, !31, i64 260, !32, i64 264, !11, i64 288, !11, i64 296, !11, i64 304}
!22 = !{!"_ZTSN7cascadb8DataNodeE", !23, i64 0, !6, i64 200, !29, i64 208}
!23 = !{!"_ZTSN7cascadb4NodeE", !24, i64 8, !11, i64 40, !26, i64 48, !14, i64 96, !14, i64 97, !14, i64 98, !27, i64 104, !27, i64 120, !12, i64 136, !12, i64 140, !28, i64 144}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !25, i64 0, !11, i64 8, !7, i64 16}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!26 = !{!"_ZTSN7cascadb5MutexE", !14, i64 0, !7, i64 8}
!27 = !{!"_ZTS7timeval", !11, i64 0, !11, i64 8}
!28 = !{!"_ZTSN7cascadb6RWLockE", !7, i64 0}
!29 = !{!"_ZTSN7cascadb10NodeStatusE", !7, i64 0}
!30 = !{!"_ZTSN7cascadb5SliceE", !6, i64 0, !12, i64 8}
!31 = !{!"short", !7, i64 0}
!32 = !{!"_ZTSSt6vectorIN7cascadb5PivotESaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIN7cascadb5PivotESaIS1_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7cascadb5PivotESaIS1_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIN7cascadb5PivotESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!21, !11, i64 216}
!37 = !{!21, !6, i64 224}
!38 = !{i64 0, i64 8, !5, i64 8, i64 4, !39}
!39 = !{!12, !12, i64 0}
!40 = !{!41, !11, i64 32}
!41 = !{!"_ZTSN7cascadb5PivotE", !30, i64 0, !30, i64 16, !11, i64 32, !6, i64 40, !12, i64 48, !12, i64 52, !12, i64 56, !31, i64 60}
!42 = !{!41, !6, i64 40}
!43 = !{i8 0, i8 2}
!44 = !{}
!45 = !{!11, !11, i64 0}
!46 = !{!47, !47, i64 0}
!47 = !{!"_ZTSN7cascadb7MsgTypeE", !7, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.testing::AssertionResult" = type { i8, %"class.testing::internal::scoped_ptr" }
%"class.testing::internal::scoped_ptr" = type { ptr }
%"class.testing::internal::String" = type { ptr, i64 }
%"class.cascadb::Options" = type <{ ptr, ptr, i64, i64, i64, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i32, i8, [3 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.2" = type { i8 }
%"class.testing::Message" = type { %"class.testing::internal::scoped_ptr.0" }
%"class.testing::internal::scoped_ptr.0" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.cascadb::Block" = type { %"class.cascadb::Slice", i64, i64 }
%"class.cascadb::Slice" = type <{ ptr, i32, [4 x i8] }>
%"class.cascadb::BlockReader" = type { ptr, i64 }
%"class.cascadb::BlockWriter" = type { ptr, i64 }
%"class.cascadb::InnerNode" = type { %"class.cascadb::DataNode.base", i8, i64, ptr, %"class.cascadb::Slice", i32, i32, i32, i16, %"class.std::vector", i64, i64, i64 }
%"class.cascadb::DataNode.base" = type <{ %"class.cascadb::Node", ptr, i32 }>
%"class.cascadb::Node" = type { ptr, %"class.std::__cxx11::basic_string", i64, %"class.cascadb::Mutex", i8, i8, i8, %struct.timeval, %struct.timeval, i32, i32, %"class.cascadb::RWLock" }
%"class.cascadb::Mutex" = type { i8, %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%struct.timeval = type { i64, i64 }
%"class.cascadb::RWLock" = type { %union.pthread_rwlock_t }
%union.pthread_rwlock_t = type { %struct.__pthread_rwlock_arch_t }
%struct.__pthread_rwlock_arch_t = type { i32, i32, i32, i32, i32, i32, i32, i32, i8, [7 x i8], i64, i32 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<cascadb::Pivot, std::allocator<cascadb::Pivot>>::_Vector_impl" }
%"struct.std::_Vector_base<cascadb::Pivot, std::allocator<cascadb::Pivot>>::_Vector_impl" = type { %"struct.std::_Vector_base<cascadb::Pivot, std::allocator<cascadb::Pivot>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cascadb::Pivot, std::allocator<cascadb::Pivot>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.cascadb::Msg" = type { i32, [4 x i8], %"class.cascadb::Slice", %"class.cascadb::Slice" }

@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [17 x i8], align 1

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #0

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7cascadb5BlockC2ENS_5SliceEmm(ptr noundef nonnull align 8 dereferenceable(32), ptr, i32, i64 noundef, i64 noundef) unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef) unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7cascadb7OptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(101)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7cascadb12RAMDirectoryC2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 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 #4 align 2

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

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

declare void @_ZN7cascadb6LayoutC1EPNS_7AIOFileEmRKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(600), ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(101)) unnamed_addr #5

declare noundef zeroext i1 @_ZN7cascadb6Layout4initEb(ptr noundef nonnull align 8 dereferenceable(600), i1 noundef zeroext) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) unnamed_addr #4 align 2

declare void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.testing::internal::String") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

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

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

declare void @_ZN7cascadb5CacheC1ERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(432), ptr noundef nonnull align 8 dereferenceable(101)) unnamed_addr #5

declare noundef zeroext i1 @_ZN7cascadb5Cache4initEv(ptr noundef nonnull align 8 dereferenceable(432)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7cascadb4TreeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7OptionsEPNS_5CacheEPNS_6LayoutE(ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(101), ptr noundef, ptr noundef) unnamed_addr #4 align 2

declare noundef zeroext i1 @_ZN7cascadb4Tree4initEv(ptr noundef nonnull align 8 dereferenceable(184)) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK7cascadb6MsgBuf5countEv(ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104), i64 noundef) local_unnamed_addr #4 align 2

; Function Attrs: nounwind
declare void @_ZN7cascadb4TreeD1Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #6

; Function Attrs: nounwind
declare void @_ZN7cascadb5CacheD1Ev(ptr noundef nonnull align 8 dereferenceable(432)) unnamed_addr #6

; Function Attrs: nounwind
declare void @_ZN7cascadb6LayoutD1Ev(ptr noundef nonnull align 8 dereferenceable(600)) unnamed_addr #6

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN24InnerNode_serialize_Test8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %0) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.cascadb::Options", align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator.2", align 1
  %5 = alloca %"class.testing::AssertionResult", align 8
  %6 = alloca %"class.testing::Message", align 8
  %7 = alloca %"class.testing::internal::AssertHelper", align 8
  %8 = alloca %"class.testing::internal::String", align 8
  %9 = alloca %"class.testing::AssertionResult", align 8
  %10 = alloca %"class.testing::Message", align 8
  %11 = alloca %"class.testing::internal::AssertHelper", align 8
  %12 = alloca %"class.testing::internal::String", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.2", align 1
  %15 = alloca %"class.testing::AssertionResult", align 8
  %16 = alloca %"class.testing::Message", align 8
  %17 = alloca %"class.testing::internal::AssertHelper", align 8
  %18 = alloca %"class.testing::internal::String", align 8
  %19 = alloca [40960 x i8], align 16
  %20 = alloca %"class.cascadb::Block", align 8
  %21 = alloca %"class.cascadb::Slice", align 8
  %22 = alloca %"class.cascadb::BlockReader", align 8
  %23 = alloca %"class.cascadb::BlockWriter", align 8
  %24 = alloca %"class.cascadb::InnerNode", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.2", align 1
  %27 = alloca %"class.cascadb::Msg", align 8
  %28 = alloca %"class.cascadb::Slice", align 8
  %29 = alloca %"class.cascadb::Slice", align 8
  %30 = alloca %"class.cascadb::Msg", align 8
  %31 = alloca %"class.cascadb::Slice", align 8
  %32 = alloca %"class.cascadb::Slice", align 8
  %33 = alloca %"class.cascadb::Msg", align 8
  %34 = alloca %"class.cascadb::Slice", align 8
  %35 = alloca %"class.cascadb::Slice", align 8
  %36 = alloca %"class.cascadb::Slice", align 8
  %37 = alloca i64, align 8
  %38 = alloca %"class.testing::AssertionResult", align 8
  %39 = alloca %"class.testing::Message", align 8
  %40 = alloca %"class.testing::internal::AssertHelper", align 8
  %41 = alloca %"class.testing::internal::String", align 8
  %42 = alloca %"class.cascadb::InnerNode", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator.2", align 1
  %45 = alloca %"class.testing::AssertionResult", align 8
  %46 = alloca %"class.testing::Message", align 8
  %47 = alloca %"class.testing::internal::AssertHelper", align 8
  %48 = alloca %"class.testing::internal::String", align 8
  %49 = alloca %"class.testing::AssertionResult", align 8
  %50 = alloca %"class.testing::Message", align 8
  %51 = alloca %"class.testing::internal::AssertHelper", align 8
  %52 = alloca %"class.testing::internal::String", align 8
  %53 = alloca %"class.testing::AssertionResult", align 8
  %54 = alloca i64, align 8
  %55 = alloca %"class.testing::Message", align 8
  %56 = alloca %"class.testing::internal::AssertHelper", align 8
  %57 = alloca %"class.testing::AssertionResult", align 8
  %58 = alloca %"class.testing::Message", align 8
  %59 = alloca %"class.testing::internal::AssertHelper", align 8
  %60 = alloca %"class.testing::internal::String", align 8
  %61 = alloca %"class.testing::AssertionResult", align 8
  %62 = alloca i32, align 4
  %63 = alloca i64, align 8
  %64 = alloca %"class.testing::Message", align 8
  %65 = alloca %"class.testing::internal::AssertHelper", align 8
  %66 = alloca %"class.testing::AssertionResult", align 8
  %67 = alloca i32, align 4
  %68 = alloca %"class.testing::Message", align 8
  %69 = alloca %"class.testing::internal::AssertHelper", align 8
  %70 = alloca %"class.testing::AssertionResult", align 8
  %71 = alloca %"class.testing::Message", align 8
  %72 = alloca %"class.testing::internal::AssertHelper", align 8
  %73 = alloca %"class.testing::AssertionResult", align 8
  %74 = alloca %"class.testing::Message", align 8
  %75 = alloca %"class.testing::internal::AssertHelper", align 8
  %76 = alloca %"class.testing::AssertionResult", align 8
  %77 = alloca i32, align 4
  %78 = alloca %"class.testing::Message", align 8
  %79 = alloca %"class.testing::internal::AssertHelper", align 8
  %80 = alloca %"class.testing::AssertionResult", align 8
  %81 = alloca %"class.testing::Message", align 8
  %82 = alloca %"class.testing::internal::AssertHelper", align 8
  %83 = alloca %"class.testing::AssertionResult", align 8
  %84 = alloca %"class.testing::Message", align 8
  %85 = alloca %"class.testing::internal::AssertHelper", align 8
  %86 = alloca %"class.testing::AssertionResult", align 8
  %87 = alloca i32, align 4
  %88 = alloca %"class.testing::Message", align 8
  %89 = alloca %"class.testing::internal::AssertHelper", align 8
  %90 = alloca %"class.testing::AssertionResult", align 8
  %91 = alloca %"class.testing::Message", align 8
  %92 = alloca %"class.testing::internal::AssertHelper", align 8
  %93 = alloca %"class.testing::AssertionResult", align 8
  %94 = alloca %"class.testing::Message", align 8
  %95 = alloca %"class.testing::internal::AssertHelper", align 8
  %96 = alloca %"class.testing::AssertionResult", align 8
  %97 = alloca i32, align 4
  %98 = alloca i64, align 8
  %99 = alloca %"class.testing::Message", align 8
  %100 = alloca %"class.testing::internal::AssertHelper", align 8
  %101 = alloca %"class.testing::AssertionResult", align 8
  %102 = alloca %"class.testing::Message", align 8
  %103 = alloca %"class.testing::internal::AssertHelper", align 8
  %104 = alloca %"class.testing::AssertionResult", align 8
  %105 = alloca i64, align 8
  %106 = alloca %"class.testing::Message", align 8
  %107 = alloca %"class.testing::internal::AssertHelper", align 8
  %108 = alloca %"class.testing::AssertionResult", align 8
  %109 = alloca %"class.testing::Message", align 8
  %110 = alloca %"class.testing::internal::AssertHelper", align 8
  %111 = alloca %"class.testing::internal::String", align 8
  %112 = alloca %"class.testing::AssertionResult", align 8
  %113 = alloca i32, align 4
  %114 = alloca i64, align 8
  %115 = alloca %"class.testing::Message", align 8
  %116 = alloca %"class.testing::internal::AssertHelper", align 8
  %117 = alloca i64, align 8
  %118 = alloca %"class.testing::AssertionResult", align 8
  %119 = alloca i64, align 8
  %120 = alloca %"class.testing::Message", align 8
  %121 = alloca %"class.testing::internal::AssertHelper", align 8
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %2) #8
  call void @_ZN7cascadb7OptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(101) %2)
  %122 = call noalias noundef nonnull dereferenceable(8) ptr @_Znwm(i64 noundef 8) #9
  store i64 0, ptr %122, align 8
  call void @_ZN7cascadb17LexicalComparatorC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #8
  %123 = getelementptr inbounds i8, ptr %2, i64 8
  store ptr %122, ptr %123, align 8, !tbaa !5
  %124 = getelementptr inbounds i8, ptr %2, i64 48
  store i64 4, ptr %124, align 8, !tbaa !14
  %125 = getelementptr inbounds i8, ptr %2, i64 24
  store i64 2, ptr %125, align 8, !tbaa !15
  %126 = getelementptr inbounds i8, ptr %2, i64 56
  store i64 4, ptr %126, align 8, !tbaa !16
  %127 = call noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #9
  invoke void @_ZN7cascadb12RAMDirectoryC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %127)
          to label %128 unwind label %139

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

129:                                              ; preds = %128
  %130 = load ptr, ptr %127, align 8, !tbaa !17
  %131 = getelementptr inbounds i8, ptr %130, i64 40
  %132 = load ptr, ptr %131, align 8
  %133 = invoke noundef ptr %132(ptr noundef nonnull align 8 dereferenceable(8) %127, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %134 unwind label %143

134:                                              ; preds = %129
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #8
  %135 = call noalias noundef nonnull dereferenceable(600) ptr @_Znwm(i64 noundef 600) #9
  invoke void @_ZN7cascadb6LayoutC1EPNS_7AIOFileEmRKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(600) %135, ptr noundef %133, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(101) %2)
          to label %136 unwind label %146

136:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %137 = call noundef zeroext i1 @_ZN7cascadb6Layout4initEb(ptr noundef nonnull align 8 dereferenceable(600) %135, i1 noundef zeroext true)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %5, i1 noundef zeroext %137)
  %138 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %5)
  br i1 %138, label %165, label %148

139:                                              ; preds = %1
  %140 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %127, i64 noundef 104) #10
  br label %815

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

143:                                              ; preds = %129
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  br label %145

145:                                              ; preds = %143, %141
  %.pn = phi { ptr, i32 } [ %144, %143 ], [ %142, %141 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #8
  br label %815

146:                                              ; preds = %134
  %147 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %135, i64 noundef 600) #10
  br label %815

148:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %149 unwind label %154

149:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #8
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::String") align 8 %8, ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18)
          to label %150 unwind label %156

150:                                              ; preds = %149
  %151 = call noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %7, i32 noundef 2, ptr noundef nonnull @.str.7, i32 noundef 218, ptr noundef %151)
          to label %152 unwind label %158

152:                                              ; preds = %150
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %153 unwind label %160

153:                                              ; preds = %152
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  br label %808

154:                                              ; preds = %148
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %164

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

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

160:                                              ; preds = %152
  %161 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  br label %162

162:                                              ; preds = %160, %158
  %.pn160 = phi { ptr, i32 } [ %161, %160 ], [ %159, %158 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #8
  br label %163

163:                                              ; preds = %162, %156
  %.pn160.pn = phi { ptr, i32 } [ %.pn160, %162 ], [ %157, %156 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  br label %164

164:                                              ; preds = %163, %154
  %.pn160.pn.pn = phi { ptr, i32 } [ %.pn160.pn, %163 ], [ %155, %154 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  br label %815

165:                                              ; preds = %136
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  %166 = call noalias noundef nonnull dereferenceable(432) ptr @_Znwm(i64 noundef 432) #9
  invoke void @_ZN7cascadb5CacheC1ERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(432) %166, ptr noundef nonnull align 8 dereferenceable(101) %2)
          to label %167 unwind label %170

167:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #8
  %168 = call noundef zeroext i1 @_ZN7cascadb5Cache4initEv(ptr noundef nonnull align 8 dereferenceable(432) %166)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext %168)
  %169 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %9)
  br i1 %169, label %189, label %172

170:                                              ; preds = %165
  %171 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %166, i64 noundef 432) #10
  br label %815

172:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %173 unwind label %178

173:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #8
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::String") align 8 %12, ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18)
          to label %174 unwind label %180

174:                                              ; preds = %173
  %175 = call noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %11, i32 noundef 2, ptr noundef nonnull @.str.7, i32 noundef 220, ptr noundef %175)
          to label %176 unwind label %182

176:                                              ; preds = %174
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %177 unwind label %184

177:                                              ; preds = %176
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #8
  br label %808

178:                                              ; preds = %172
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %188

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

182:                                              ; preds = %174
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %186

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

186:                                              ; preds = %184, %182
  %.pn164 = phi { ptr, i32 } [ %185, %184 ], [ %183, %182 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #8
  br label %187

187:                                              ; preds = %186, %180
  %.pn164.pn = phi { ptr, i32 } [ %.pn164, %186 ], [ %181, %180 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  br label %188

188:                                              ; preds = %187, %178
  %.pn164.pn.pn = phi { ptr, i32 } [ %.pn164.pn, %187 ], [ %179, %178 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #8
  br label %815

189:                                              ; preds = %167
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #8
  %190 = call noalias noundef nonnull dereferenceable(184) ptr @_Znwm(i64 noundef 184) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %191 unwind label %195

191:                                              ; preds = %189
  invoke void @_ZN7cascadb4TreeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7OptionsEPNS_5CacheEPNS_6LayoutE(ptr noundef nonnull align 8 dereferenceable(184) %190, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(101) %2, ptr noundef nonnull %166, ptr noundef nonnull %135)
          to label %192 unwind label %197

192:                                              ; preds = %191
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #8
  %193 = call noundef zeroext i1 @_ZN7cascadb4Tree4initEv(ptr noundef nonnull align 8 dereferenceable(184) %190)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %15, i1 noundef zeroext %193)
  %194 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %15)
  br i1 %194, label %217, label %200

195:                                              ; preds = %189
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %199

197:                                              ; preds = %191
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %199

199:                                              ; preds = %197, %195
  %.pn168 = phi { ptr, i32 } [ %198, %197 ], [ %196, %195 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @_ZdlPvm(ptr noundef nonnull %190, i64 noundef 184) #10
  br label %815

200:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %201 unwind label %206

201:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #8
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::String") align 8 %18, ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18)
          to label %202 unwind label %208

202:                                              ; preds = %201
  %203 = call noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %18)
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %17, i32 noundef 2, ptr noundef nonnull @.str.7, i32 noundef 222, ptr noundef %203)
          to label %204 unwind label %210

204:                                              ; preds = %202
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %205 unwind label %212

205:                                              ; preds = %204
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  br label %808

206:                                              ; preds = %200
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %216

208:                                              ; preds = %201
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %215

210:                                              ; preds = %202
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %214

212:                                              ; preds = %204
  %213 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  br label %214

214:                                              ; preds = %212, %210
  %.pn170 = phi { ptr, i32 } [ %213, %212 ], [ %211, %210 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  br label %215

215:                                              ; preds = %214, %208
  %.pn170.pn = phi { ptr, i32 } [ %.pn170, %214 ], [ %209, %208 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  br label %216

216:                                              ; preds = %215, %206
  %.pn170.pn.pn = phi { ptr, i32 } [ %.pn170.pn, %215 ], [ %207, %206 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  br label %815

217:                                              ; preds = %192
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 40960, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #8
  call void @_ZN7cascadb5SliceC2EPKcm(ptr noundef nonnull align 8 dereferenceable(12) %21, ptr noundef nonnull %19, i64 noundef 40960)
  %218 = load ptr, ptr %21, align 8
  %219 = getelementptr inbounds i8, ptr %21, i64 8
  %220 = load i32, ptr %219, align 8
  call void @_ZN7cascadb5BlockC2ENS_5SliceEmm(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr %218, i32 %220, i64 noundef 0, i64 noundef 0)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #8
  call void @_ZN7cascadb11BlockReaderC2EPNS_5BlockE(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull %20)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #8
  call void @_ZN7cascadb11BlockWriterC2EPNS_5BlockE(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull %20)
  call void @llvm.lifetime.start.p0(i64 312, ptr nonnull %24) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %221 unwind label %264

221:                                              ; preds = %217
  invoke void @_ZN7cascadb9InnerNodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmPNS_4TreeE(ptr noundef nonnull align 8 dereferenceable(312) %24, ptr noundef nonnull align 8 dereferenceable(32) %25, i64 noundef 2, ptr noundef nonnull %190)
          to label %222 unwind label %266

222:                                              ; preds = %221
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  %223 = getelementptr inbounds i8, ptr %24, i64 212
  store i8 1, ptr %223, align 4, !tbaa !19
  %224 = getelementptr inbounds i8, ptr %24, i64 216
  store i64 281474976710657, ptr %224, align 8, !tbaa !35
  %225 = invoke noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #9
          to label %226 unwind label %269

226:                                              ; preds = %222
  %227 = load ptr, ptr %123, align 8, !tbaa !5
  invoke void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104) %225, ptr noundef %227)
          to label %228 unwind label %271

228:                                              ; preds = %226
  %229 = getelementptr inbounds i8, ptr %24, i64 224
  store ptr %225, ptr %229, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #8
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %28, ptr noundef nonnull @.str.3)
  %230 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %28)
          to label %231 unwind label %273

231:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #8
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %29, ptr noundef nonnull @.str.4)
  %232 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %29)
          to label %233 unwind label %275

233:                                              ; preds = %231
  %.fca.1.extract35 = extractvalue { ptr, i32 } %230, 1
  %.fca.0.extract34 = extractvalue { ptr, i32 } %230, 0
  %.fca.0.extract28 = extractvalue { ptr, i32 } %232, 0
  %.fca.1.extract29 = extractvalue { ptr, i32 } %232, 1
  call void @_ZN7cascadb3MsgC2ENS_7MsgTypeENS_5SliceES2_(ptr noundef nonnull align 8 dereferenceable(40) %27, i32 noundef 1, ptr %.fca.0.extract34, i32 %.fca.1.extract35, ptr %.fca.0.extract28, i32 %.fca.1.extract29)
  invoke void @_ZN7cascadb6MsgBuf5writeERKNS_3MsgE(ptr noundef nonnull align 8 dereferenceable(104) %225, ptr noundef nonnull align 8 dereferenceable(40) %27)
          to label %234 unwind label %275

234:                                              ; preds = %233
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #8
  %235 = load ptr, ptr %229, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #8
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %31, ptr noundef nonnull @.str.24)
  %236 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %31)
          to label %237 unwind label %278

237:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #8
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %32, ptr noundef nonnull @.str.4)
  %238 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %32)
          to label %239 unwind label %280

239:                                              ; preds = %237
  %.fca.1.extract23 = extractvalue { ptr, i32 } %236, 1
  %.fca.0.extract22 = extractvalue { ptr, i32 } %236, 0
  %.fca.0.extract16 = extractvalue { ptr, i32 } %238, 0
  %.fca.1.extract17 = extractvalue { ptr, i32 } %238, 1
  call void @_ZN7cascadb3MsgC2ENS_7MsgTypeENS_5SliceES2_(ptr noundef nonnull align 8 dereferenceable(40) %30, i32 noundef 1, ptr %.fca.0.extract22, i32 %.fca.1.extract23, ptr %.fca.0.extract16, i32 %.fca.1.extract17)
  invoke void @_ZN7cascadb6MsgBuf5writeERKNS_3MsgE(ptr noundef nonnull align 8 dereferenceable(104) %235, ptr noundef nonnull align 8 dereferenceable(40) %30)
          to label %240 unwind label %280

240:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #8
  %241 = load ptr, ptr %229, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #8
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %34, ptr noundef nonnull @.str.25)
  %242 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %34)
          to label %243 unwind label %283

243:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #8
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %35, ptr noundef nonnull @.str.4)
  %244 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %35)
          to label %245 unwind label %285

245:                                              ; preds = %243
  %.fca.1.extract11 = extractvalue { ptr, i32 } %242, 1
  %.fca.0.extract10 = extractvalue { ptr, i32 } %242, 0
  %.fca.0.extract4 = extractvalue { ptr, i32 } %244, 0
  %.fca.1.extract5 = extractvalue { ptr, i32 } %244, 1
  call void @_ZN7cascadb3MsgC2ENS_7MsgTypeENS_5SliceES2_(ptr noundef nonnull align 8 dereferenceable(40) %33, i32 noundef 1, ptr %.fca.0.extract10, i32 %.fca.1.extract11, ptr %.fca.0.extract4, i32 %.fca.1.extract5)
  invoke void @_ZN7cascadb6MsgBuf5writeERKNS_3MsgE(ptr noundef nonnull align 8 dereferenceable(104) %241, ptr noundef nonnull align 8 dereferenceable(40) %33)
          to label %246 unwind label %285

246:                                              ; preds = %245
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #8
  %247 = getelementptr inbounds i8, ptr %24, i64 264
  invoke void @_ZNSt6vectorIN7cascadb5PivotESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %247, i64 noundef 1)
          to label %248 unwind label %269

248:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #8
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %36, ptr noundef nonnull @.str.30)
  %249 = invoke { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12) %36)
          to label %250 unwind label %288

250:                                              ; preds = %248
  %.fca.0.extract = extractvalue { ptr, i32 } %249, 0
  %.fca.1.extract = extractvalue { ptr, i32 } %249, 1
  %251 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %247, i64 noundef 0) #8
  store ptr %.fca.0.extract, ptr %251, align 8, !tbaa !37
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %251, i64 8
  store i32 %.fca.1.extract, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !38
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #8
  %252 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %247, i64 noundef 0) #8
  %253 = getelementptr inbounds i8, ptr %252, i64 32
  store i64 281474976710658, ptr %253, align 8, !tbaa !39
  %254 = invoke noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #9
          to label %255 unwind label %269

255:                                              ; preds = %250
  %256 = load ptr, ptr %123, align 8, !tbaa !5
  invoke void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104) %254, ptr noundef %256)
          to label %257 unwind label %290

257:                                              ; preds = %255
  %258 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %247, i64 noundef 0) #8
  %259 = getelementptr inbounds i8, ptr %258, i64 40
  store ptr %254, ptr %259, align 8, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #8
  %260 = invoke noundef zeroext i1 @_ZN7cascadb9InnerNode8write_toERNS_11BlockWriterERm(ptr noundef nonnull align 8 dereferenceable(312) %24, ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %261 unwind label %292

261:                                              ; preds = %257
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %38, i1 noundef zeroext %260)
          to label %262 unwind label %292

262:                                              ; preds = %261
  %263 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %38)
  br i1 %263, label %311, label %294

264:                                              ; preds = %217
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %268

266:                                              ; preds = %221
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %268

268:                                              ; preds = %266, %264
  %.pn174 = phi { ptr, i32 } [ %267, %266 ], [ %265, %264 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %814

269:                                              ; preds = %250, %246, %222
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %813

271:                                              ; preds = %226
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %225, i64 noundef 104) #10
  br label %813

273:                                              ; preds = %228
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %277

275:                                              ; preds = %233, %231
  %276 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #8
  br label %277

277:                                              ; preds = %275, %273
  %.pn176 = phi { ptr, i32 } [ %276, %275 ], [ %274, %273 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #8
  br label %813

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

280:                                              ; preds = %239, %237
  %281 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  br label %282

282:                                              ; preds = %280, %278
  %.pn178 = phi { ptr, i32 } [ %281, %280 ], [ %279, %278 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #8
  br label %813

283:                                              ; preds = %240
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %287

285:                                              ; preds = %245, %243
  %286 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #8
  br label %287

287:                                              ; preds = %285, %283
  %.pn180 = phi { ptr, i32 } [ %286, %285 ], [ %284, %283 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #8
  br label %813

288:                                              ; preds = %248
  %289 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #8
  br label %813

290:                                              ; preds = %255
  %291 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %254, i64 noundef 104) #10
  br label %813

292:                                              ; preds = %261, %257
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %318

294:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %295 unwind label %300

295:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #8
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::String") align 8 %41, ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull @.str.154, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18)
          to label %296 unwind label %302

296:                                              ; preds = %295
  %297 = call noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %41)
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %40, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 242, ptr noundef %297)
          to label %298 unwind label %304

298:                                              ; preds = %296
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %299 unwind label %306

299:                                              ; preds = %298
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  br label %311

300:                                              ; preds = %294
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %310

302:                                              ; preds = %295
  %303 = landingpad { ptr, i32 }
          cleanup
  br label %309

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

306:                                              ; preds = %298
  %307 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  br label %308

308:                                              ; preds = %306, %304
  %.pn182 = phi { ptr, i32 } [ %307, %306 ], [ %305, %304 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #8
  br label %309

309:                                              ; preds = %308, %302
  %.pn182.pn = phi { ptr, i32 } [ %.pn182, %308 ], [ %303, %302 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  br label %310

310:                                              ; preds = %309, %300
  %.pn182.pn.pn = phi { ptr, i32 } [ %.pn182.pn, %309 ], [ %301, %300 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #8
  br label %318

311:                                              ; preds = %262, %299
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #8
  call void @llvm.lifetime.start.p0(i64 312, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %312 unwind label %319

312:                                              ; preds = %311
  invoke void @_ZN7cascadb9InnerNodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmPNS_4TreeE(ptr noundef nonnull align 8 dereferenceable(312) %42, ptr noundef nonnull align 8 dereferenceable(32) %43, i64 noundef 2, ptr noundef nonnull %190)
          to label %313 unwind label %321

313:                                              ; preds = %312
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #8
  %314 = invoke noundef zeroext i1 @_ZN7cascadb9InnerNode9read_fromERNS_11BlockReaderEb(ptr noundef nonnull align 8 dereferenceable(312) %42, ptr noundef nonnull align 8 dereferenceable(16) %22, i1 noundef zeroext false)
          to label %315 unwind label %324

315:                                              ; preds = %313
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %45, i1 noundef zeroext %314)
          to label %316 unwind label %324

316:                                              ; preds = %315
  %317 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %45)
  br i1 %317, label %343, label %326

318:                                              ; preds = %310, %292
  %.pn182.pn.pn.pn = phi { ptr, i32 } [ %.pn182.pn.pn, %310 ], [ %293, %292 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #8
  br label %812

319:                                              ; preds = %311
  %320 = landingpad { ptr, i32 }
          cleanup
  br label %323

321:                                              ; preds = %312
  %322 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %323

323:                                              ; preds = %321, %319
  %.pn187 = phi { ptr, i32 } [ %322, %321 ], [ %320, %319 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  br label %811

324:                                              ; preds = %315, %313
  %325 = landingpad { ptr, i32 }
          cleanup
  br label %349

326:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %327 unwind label %332

327:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #8
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::String") align 8 %48, ptr noundef nonnull align 8 dereferenceable(16) %45, ptr noundef nonnull @.str.155, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18)
          to label %328 unwind label %334

328:                                              ; preds = %327
  %329 = call noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %48)
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %47, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 245, ptr noundef %329)
          to label %330 unwind label %336

330:                                              ; preds = %328
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %331 unwind label %338

331:                                              ; preds = %330
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #8
  br label %343

332:                                              ; preds = %326
  %333 = landingpad { ptr, i32 }
          cleanup
  br label %342

334:                                              ; preds = %327
  %335 = landingpad { ptr, i32 }
          cleanup
  br label %341

336:                                              ; preds = %328
  %337 = landingpad { ptr, i32 }
          cleanup
  br label %340

338:                                              ; preds = %330
  %339 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  br label %340

340:                                              ; preds = %338, %336
  %.pn189 = phi { ptr, i32 } [ %339, %338 ], [ %337, %336 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #8
  br label %341

341:                                              ; preds = %340, %334
  %.pn189.pn = phi { ptr, i32 } [ %.pn189, %340 ], [ %335, %334 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  br label %342

342:                                              ; preds = %341, %332
  %.pn189.pn.pn = phi { ptr, i32 } [ %.pn189.pn, %341 ], [ %333, %332 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #8
  br label %349

343:                                              ; preds = %316, %331
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #8
  %344 = getelementptr inbounds i8, ptr %42, i64 212
  %345 = load i8, ptr %344, align 4, !tbaa !19, !range !42, !noundef !43
  %346 = trunc nuw i8 %345 to i1
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %49, i1 noundef zeroext %346)
          to label %347 unwind label %350

347:                                              ; preds = %343
  %348 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %49)
  br i1 %348, label %369, label %352

349:                                              ; preds = %342, %324
  %.pn189.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn, %342 ], [ %325, %324 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #8
  br label %810

350:                                              ; preds = %343
  %351 = landingpad { ptr, i32 }
          cleanup
  br label %373

352:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %353 unwind label %358

353:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %52) #8
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::String") align 8 %52, ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18)
          to label %354 unwind label %360

354:                                              ; preds = %353
  %355 = call noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %52)
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %51, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 247, ptr noundef %355)
          to label %356 unwind label %362

356:                                              ; preds = %354
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %357 unwind label %364

357:                                              ; preds = %356
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #8
  br label %369

358:                                              ; preds = %352
  %359 = landingpad { ptr, i32 }
          cleanup
  br label %368

360:                                              ; preds = %353
  %361 = landingpad { ptr, i32 }
          cleanup
  br label %367

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

364:                                              ; preds = %356
  %365 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  br label %366

366:                                              ; preds = %364, %362
  %.pn194 = phi { ptr, i32 } [ %365, %364 ], [ %363, %362 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #8
  br label %367

367:                                              ; preds = %366, %360
  %.pn194.pn = phi { ptr, i32 } [ %.pn194, %366 ], [ %361, %360 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #8
  br label %368

368:                                              ; preds = %367, %358
  %.pn194.pn.pn = phi { ptr, i32 } [ %.pn194.pn, %367 ], [ %359, %358 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #8
  br label %373

369:                                              ; preds = %347, %357
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #8
  store i64 281474976710657, ptr %54, align 8, !tbaa !44
  %370 = getelementptr inbounds i8, ptr %42, i64 216
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareImmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %53, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.157, ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %370)
          to label %371 unwind label %374

371:                                              ; preds = %369
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #8
  %372 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %53)
  br i1 %372, label %390, label %376

373:                                              ; preds = %368, %350
  %.pn194.pn.pn.pn = phi { ptr, i32 } [ %.pn194.pn.pn, %368 ], [ %351, %350 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #8
  br label %810

374:                                              ; preds = %369
  %375 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #8
  br label %396

376:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %377 unwind label %382

377:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #8
  %378 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %53)
          to label %379 unwind label %384

379:                                              ; preds = %377
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %56, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 248, ptr noundef %378)
          to label %380 unwind label %384

380:                                              ; preds = %379
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %381 unwind label %386

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

382:                                              ; preds = %376
  %383 = landingpad { ptr, i32 }
          cleanup
  br label %389

384:                                              ; preds = %379, %377
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %388

386:                                              ; preds = %380
  %387 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  br label %388

388:                                              ; preds = %386, %384
  %.pn199 = phi { ptr, i32 } [ %387, %386 ], [ %385, %384 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br label %389

389:                                              ; preds = %388, %382
  %.pn199.pn = phi { ptr, i32 } [ %.pn199, %388 ], [ %383, %382 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #8
  br label %396

390:                                              ; preds = %371, %381
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %57) #8
  %391 = getelementptr inbounds i8, ptr %42, i64 224
  %392 = load ptr, ptr %391, align 8, !tbaa !36
  %393 = icmp ne ptr %392, null
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %57, i1 noundef zeroext %393)
          to label %394 unwind label %397

394:                                              ; preds = %390
  %395 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %57)
  br i1 %395, label %416, label %399

396:                                              ; preds = %389, %374
  %.pn199.pn.pn = phi { ptr, i32 } [ %.pn199.pn, %389 ], [ %375, %374 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #8
  br label %810

397:                                              ; preds = %390
  %398 = landingpad { ptr, i32 }
          cleanup
  br label %422

399:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %400 unwind label %405

400:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %60) #8
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::String") align 8 %60, ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef nonnull @.str.158, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18)
          to label %401 unwind label %407

401:                                              ; preds = %400
  %402 = call noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %59, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 249, ptr noundef %402)
          to label %403 unwind label %409

403:                                              ; preds = %401
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %404 unwind label %411

404:                                              ; preds = %403
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #8
  br label %416

405:                                              ; preds = %399
  %406 = landingpad { ptr, i32 }
          cleanup
  br label %415

407:                                              ; preds = %400
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %414

409:                                              ; preds = %401
  %410 = landingpad { ptr, i32 }
          cleanup
  br label %413

411:                                              ; preds = %403
  %412 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  br label %413

413:                                              ; preds = %411, %409
  %.pn203 = phi { ptr, i32 } [ %412, %411 ], [ %410, %409 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #8
  br label %414

414:                                              ; preds = %413, %407
  %.pn203.pn = phi { ptr, i32 } [ %.pn203, %413 ], [ %408, %407 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  br label %415

415:                                              ; preds = %414, %405
  %.pn203.pn.pn = phi { ptr, i32 } [ %.pn203.pn, %414 ], [ %406, %405 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #8
  br label %422

416:                                              ; preds = %394, %404
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %62) #8
  store i32 3, ptr %62, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #8
  %417 = load ptr, ptr %391, align 8, !tbaa !36
  %418 = invoke noundef i64 @_ZNK7cascadb6MsgBuf5countEv(ptr noundef nonnull align 8 dereferenceable(104) %417)
          to label %419 unwind label %423

419:                                              ; preds = %416
  store i64 %418, ptr %63, align 8, !tbaa !44
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %61, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.159, ptr noundef nonnull align 4 dereferenceable(4) %62, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %420 unwind label %423

420:                                              ; preds = %419
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #8
  %421 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %61)
  br i1 %421, label %439, label %425

422:                                              ; preds = %415, %397
  %.pn203.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn, %415 ], [ %398, %397 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #8
  br label %810

423:                                              ; preds = %419, %416
  %424 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #8
  br label %445

425:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %426 unwind label %431

426:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #8
  %427 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %61)
          to label %428 unwind label %433

428:                                              ; preds = %426
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %65, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 250, ptr noundef %427)
          to label %429 unwind label %433

429:                                              ; preds = %428
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %430 unwind label %435

430:                                              ; preds = %429
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #8
  br label %439

431:                                              ; preds = %425
  %432 = landingpad { ptr, i32 }
          cleanup
  br label %438

433:                                              ; preds = %428, %426
  %434 = landingpad { ptr, i32 }
          cleanup
  br label %437

435:                                              ; preds = %429
  %436 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  br label %437

437:                                              ; preds = %435, %433
  %.pn208 = phi { ptr, i32 } [ %436, %435 ], [ %434, %433 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  br label %438

438:                                              ; preds = %437, %431
  %.pn208.pn = phi { ptr, i32 } [ %.pn208, %437 ], [ %432, %431 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  br label %445

439:                                              ; preds = %420, %430
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %66) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %67) #8
  store i32 1, ptr %67, align 4, !tbaa !45
  %440 = load ptr, ptr %391, align 8, !tbaa !36
  %441 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %440, i64 noundef 0)
          to label %442 unwind label %446

442:                                              ; preds = %439
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIN7cascadb7MsgTypeES5_EENS_15AssertionResultEPKcS8_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %66, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.160, ptr noundef nonnull align 4 dereferenceable(4) %67, ptr noundef nonnull align 4 dereferenceable(4) %441)
          to label %443 unwind label %446

443:                                              ; preds = %442
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #8
  %444 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %66)
  br i1 %444, label %462, label %448

445:                                              ; preds = %438, %423
  %.pn208.pn.pn = phi { ptr, i32 } [ %.pn208.pn, %438 ], [ %424, %423 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #8
  br label %810

446:                                              ; preds = %442, %439
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #8
  br label %469

448:                                              ; preds = %443
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %449 unwind label %454

449:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #8
  %450 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %66)
          to label %451 unwind label %456

451:                                              ; preds = %449
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %69, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 251, ptr noundef %450)
          to label %452 unwind label %456

452:                                              ; preds = %451
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %453 unwind label %458

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

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

456:                                              ; preds = %451, %449
  %457 = landingpad { ptr, i32 }
          cleanup
  br label %460

458:                                              ; preds = %452
  %459 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  br label %460

460:                                              ; preds = %458, %456
  %.pn212 = phi { ptr, i32 } [ %459, %458 ], [ %457, %456 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  br label %461

461:                                              ; preds = %460, %454
  %.pn212.pn = phi { ptr, i32 } [ %.pn212, %460 ], [ %455, %454 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #8
  br label %469

462:                                              ; preds = %443, %453
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %66) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %70) #8
  %463 = load ptr, ptr %391, align 8, !tbaa !36
  %464 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %463, i64 noundef 0)
          to label %465 unwind label %470

465:                                              ; preds = %462
  %466 = getelementptr inbounds i8, ptr %464, i64 8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %70, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.161, ptr noundef nonnull align 1 dereferenceable(2) @.str.3, ptr noundef nonnull align 8 dereferenceable(12) %466)
          to label %467 unwind label %470

467:                                              ; preds = %465
  %468 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %70)
  br i1 %468, label %486, label %472

469:                                              ; preds = %461, %446
  %.pn212.pn.pn = phi { ptr, i32 } [ %.pn212.pn, %461 ], [ %447, %446 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %66) #8
  br label %810

470:                                              ; preds = %465, %462
  %471 = landingpad { ptr, i32 }
          cleanup
  br label %493

472:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %473 unwind label %478

473:                                              ; preds = %472
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #8
  %474 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %70)
          to label %475 unwind label %480

475:                                              ; preds = %473
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %72, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 251, ptr noundef %474)
          to label %476 unwind label %480

476:                                              ; preds = %475
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %477 unwind label %482

477:                                              ; preds = %476
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #8
  br label %486

478:                                              ; preds = %472
  %479 = landingpad { ptr, i32 }
          cleanup
  br label %485

480:                                              ; preds = %475, %473
  %481 = landingpad { ptr, i32 }
          cleanup
  br label %484

482:                                              ; preds = %476
  %483 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  br label %484

484:                                              ; preds = %482, %480
  %.pn216 = phi { ptr, i32 } [ %483, %482 ], [ %481, %480 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  br label %485

485:                                              ; preds = %484, %478
  %.pn216.pn = phi { ptr, i32 } [ %.pn216, %484 ], [ %479, %478 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #8
  br label %493

486:                                              ; preds = %467, %477
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %73) #8
  %487 = load ptr, ptr %391, align 8, !tbaa !36
  %488 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %487, i64 noundef 0)
          to label %489 unwind label %494

489:                                              ; preds = %486
  %490 = getelementptr inbounds i8, ptr %488, i64 24
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %73, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.162, ptr noundef nonnull align 1 dereferenceable(2) @.str.4, ptr noundef nonnull align 8 dereferenceable(12) %490)
          to label %491 unwind label %494

491:                                              ; preds = %489
  %492 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
  br i1 %492, label %510, label %496

493:                                              ; preds = %485, %470
  %.pn216.pn.pn = phi { ptr, i32 } [ %.pn216.pn, %485 ], [ %471, %470 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #8
  br label %810

494:                                              ; preds = %489, %486
  %495 = landingpad { ptr, i32 }
          cleanup
  br label %516

496:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %497 unwind label %502

497:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #8
  %498 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %499 unwind label %504

499:                                              ; preds = %497
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %75, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 251, ptr noundef %498)
          to label %500 unwind label %504

500:                                              ; preds = %499
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %501 unwind label %506

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

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

504:                                              ; preds = %499, %497
  %505 = landingpad { ptr, i32 }
          cleanup
  br label %508

506:                                              ; preds = %500
  %507 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  br label %508

508:                                              ; preds = %506, %504
  %.pn220 = phi { ptr, i32 } [ %507, %506 ], [ %505, %504 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  br label %509

509:                                              ; preds = %508, %502
  %.pn220.pn = phi { ptr, i32 } [ %.pn220, %508 ], [ %503, %502 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #8
  br label %516

510:                                              ; preds = %491, %501
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %76) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %77) #8
  store i32 1, ptr %77, align 4, !tbaa !45
  %511 = load ptr, ptr %391, align 8, !tbaa !36
  %512 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %511, i64 noundef 1)
          to label %513 unwind label %517

513:                                              ; preds = %510
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIN7cascadb7MsgTypeES5_EENS_15AssertionResultEPKcS8_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %76, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.163, ptr noundef nonnull align 4 dereferenceable(4) %77, ptr noundef nonnull align 4 dereferenceable(4) %512)
          to label %514 unwind label %517

514:                                              ; preds = %513
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #8
  %515 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %76)
  br i1 %515, label %533, label %519

516:                                              ; preds = %509, %494
  %.pn220.pn.pn = phi { ptr, i32 } [ %.pn220.pn, %509 ], [ %495, %494 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #8
  br label %810

517:                                              ; preds = %513, %510
  %518 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #8
  br label %540

519:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %520 unwind label %525

520:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #8
  %521 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %76)
          to label %522 unwind label %527

522:                                              ; preds = %520
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %79, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 252, ptr noundef %521)
          to label %523 unwind label %527

523:                                              ; preds = %522
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %524 unwind label %529

524:                                              ; preds = %523
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #8
  br label %533

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

527:                                              ; preds = %522, %520
  %528 = landingpad { ptr, i32 }
          cleanup
  br label %531

529:                                              ; preds = %523
  %530 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #8
  br label %531

531:                                              ; preds = %529, %527
  %.pn224 = phi { ptr, i32 } [ %530, %529 ], [ %528, %527 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #8
  br label %532

532:                                              ; preds = %531, %525
  %.pn224.pn = phi { ptr, i32 } [ %.pn224, %531 ], [ %526, %525 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #8
  br label %540

533:                                              ; preds = %514, %524
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %76) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %80) #8
  %534 = load ptr, ptr %391, align 8, !tbaa !36
  %535 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %534, i64 noundef 1)
          to label %536 unwind label %541

536:                                              ; preds = %533
  %537 = getelementptr inbounds i8, ptr %535, i64 8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %80, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.164, ptr noundef nonnull align 1 dereferenceable(2) @.str.24, ptr noundef nonnull align 8 dereferenceable(12) %537)
          to label %538 unwind label %541

538:                                              ; preds = %536
  %539 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %80)
  br i1 %539, label %557, label %543

540:                                              ; preds = %532, %517
  %.pn224.pn.pn = phi { ptr, i32 } [ %.pn224.pn, %532 ], [ %518, %517 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %76) #8
  br label %810

541:                                              ; preds = %536, %533
  %542 = landingpad { ptr, i32 }
          cleanup
  br label %564

543:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %544 unwind label %549

544:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #8
  %545 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %80)
          to label %546 unwind label %551

546:                                              ; preds = %544
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %82, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 252, ptr noundef %545)
          to label %547 unwind label %551

547:                                              ; preds = %546
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %548 unwind label %553

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

549:                                              ; preds = %543
  %550 = landingpad { ptr, i32 }
          cleanup
  br label %556

551:                                              ; preds = %546, %544
  %552 = landingpad { ptr, i32 }
          cleanup
  br label %555

553:                                              ; preds = %547
  %554 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #8
  br label %555

555:                                              ; preds = %553, %551
  %.pn228 = phi { ptr, i32 } [ %554, %553 ], [ %552, %551 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  br label %556

556:                                              ; preds = %555, %549
  %.pn228.pn = phi { ptr, i32 } [ %.pn228, %555 ], [ %550, %549 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #8
  br label %564

557:                                              ; preds = %538, %548
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %80) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %83) #8
  %558 = load ptr, ptr %391, align 8, !tbaa !36
  %559 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %558, i64 noundef 1)
          to label %560 unwind label %565

560:                                              ; preds = %557
  %561 = getelementptr inbounds i8, ptr %559, i64 24
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %83, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.165, ptr noundef nonnull align 1 dereferenceable(2) @.str.4, ptr noundef nonnull align 8 dereferenceable(12) %561)
          to label %562 unwind label %565

562:                                              ; preds = %560
  %563 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %83)
  br i1 %563, label %581, label %567

564:                                              ; preds = %556, %541
  %.pn228.pn.pn = phi { ptr, i32 } [ %.pn228.pn, %556 ], [ %542, %541 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %80) #8
  br label %810

565:                                              ; preds = %560, %557
  %566 = landingpad { ptr, i32 }
          cleanup
  br label %587

567:                                              ; preds = %562
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %568 unwind label %573

568:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #8
  %569 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %83)
          to label %570 unwind label %575

570:                                              ; preds = %568
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %85, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 252, ptr noundef %569)
          to label %571 unwind label %575

571:                                              ; preds = %570
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %572 unwind label %577

572:                                              ; preds = %571
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #8
  br label %581

573:                                              ; preds = %567
  %574 = landingpad { ptr, i32 }
          cleanup
  br label %580

575:                                              ; preds = %570, %568
  %576 = landingpad { ptr, i32 }
          cleanup
  br label %579

577:                                              ; preds = %571
  %578 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #8
  br label %579

579:                                              ; preds = %577, %575
  %.pn232 = phi { ptr, i32 } [ %578, %577 ], [ %576, %575 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #8
  br label %580

580:                                              ; preds = %579, %573
  %.pn232.pn = phi { ptr, i32 } [ %.pn232, %579 ], [ %574, %573 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #8
  br label %587

581:                                              ; preds = %562, %572
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %86) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %87) #8
  store i32 1, ptr %87, align 4, !tbaa !45
  %582 = load ptr, ptr %391, align 8, !tbaa !36
  %583 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %582, i64 noundef 2)
          to label %584 unwind label %588

584:                                              ; preds = %581
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIN7cascadb7MsgTypeES5_EENS_15AssertionResultEPKcS8_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %86, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.166, ptr noundef nonnull align 4 dereferenceable(4) %87, ptr noundef nonnull align 4 dereferenceable(4) %583)
          to label %585 unwind label %588

585:                                              ; preds = %584
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %87) #8
  %586 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %86)
  br i1 %586, label %604, label %590

587:                                              ; preds = %580, %565
  %.pn232.pn.pn = phi { ptr, i32 } [ %.pn232.pn, %580 ], [ %566, %565 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #8
  br label %810

588:                                              ; preds = %584, %581
  %589 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %87) #8
  br label %611

590:                                              ; preds = %585
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %591 unwind label %596

591:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #8
  %592 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %593 unwind label %598

593:                                              ; preds = %591
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %89, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 253, ptr noundef %592)
          to label %594 unwind label %598

594:                                              ; preds = %593
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %595 unwind label %600

595:                                              ; preds = %594
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #8
  br label %604

596:                                              ; preds = %590
  %597 = landingpad { ptr, i32 }
          cleanup
  br label %603

598:                                              ; preds = %593, %591
  %599 = landingpad { ptr, i32 }
          cleanup
  br label %602

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

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

603:                                              ; preds = %602, %596
  %.pn236.pn = phi { ptr, i32 } [ %.pn236, %602 ], [ %597, %596 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #8
  br label %611

604:                                              ; preds = %585, %595
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %86) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %90) #8
  %605 = load ptr, ptr %391, align 8, !tbaa !36
  %606 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %605, i64 noundef 2)
          to label %607 unwind label %612

607:                                              ; preds = %604
  %608 = getelementptr inbounds i8, ptr %606, i64 8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %90, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.167, ptr noundef nonnull align 1 dereferenceable(2) @.str.25, ptr noundef nonnull align 8 dereferenceable(12) %608)
          to label %609 unwind label %612

609:                                              ; preds = %607
  %610 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %90)
  br i1 %610, label %628, label %614

611:                                              ; preds = %603, %588
  %.pn236.pn.pn = phi { ptr, i32 } [ %.pn236.pn, %603 ], [ %589, %588 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %86) #8
  br label %810

612:                                              ; preds = %607, %604
  %613 = landingpad { ptr, i32 }
          cleanup
  br label %635

614:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %615 unwind label %620

615:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #8
  %616 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %90)
          to label %617 unwind label %622

617:                                              ; preds = %615
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %92, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 253, ptr noundef %616)
          to label %618 unwind label %622

618:                                              ; preds = %617
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %619 unwind label %624

619:                                              ; preds = %618
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #8
  br label %628

620:                                              ; preds = %614
  %621 = landingpad { ptr, i32 }
          cleanup
  br label %627

622:                                              ; preds = %617, %615
  %623 = landingpad { ptr, i32 }
          cleanup
  br label %626

624:                                              ; preds = %618
  %625 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #8
  br label %626

626:                                              ; preds = %624, %622
  %.pn240 = phi { ptr, i32 } [ %625, %624 ], [ %623, %622 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #8
  br label %627

627:                                              ; preds = %626, %620
  %.pn240.pn = phi { ptr, i32 } [ %.pn240, %626 ], [ %621, %620 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #8
  br label %635

628:                                              ; preds = %609, %619
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %90) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %93) #8
  %629 = load ptr, ptr %391, align 8, !tbaa !36
  %630 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK7cascadb6MsgBuf3getEm(ptr noundef nonnull align 8 dereferenceable(104) %629, i64 noundef 2)
          to label %631 unwind label %636

631:                                              ; preds = %628
  %632 = getelementptr inbounds i8, ptr %630, i64 24
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %93, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.168, ptr noundef nonnull align 1 dereferenceable(2) @.str.4, ptr noundef nonnull align 8 dereferenceable(12) %632)
          to label %633 unwind label %636

633:                                              ; preds = %631
  %634 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %93)
  br i1 %634, label %652, label %638

635:                                              ; preds = %627, %612
  %.pn240.pn.pn = phi { ptr, i32 } [ %.pn240.pn, %627 ], [ %613, %612 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %90) #8
  br label %810

636:                                              ; preds = %631, %628
  %637 = landingpad { ptr, i32 }
          cleanup
  br label %657

638:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %94) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94)
          to label %639 unwind label %644

639:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #8
  %640 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %93)
          to label %641 unwind label %646

641:                                              ; preds = %639
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %95, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 253, ptr noundef %640)
          to label %642 unwind label %646

642:                                              ; preds = %641
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 8 dereferenceable(8) %94)
          to label %643 unwind label %648

643:                                              ; preds = %642
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #8
  br label %652

644:                                              ; preds = %638
  %645 = landingpad { ptr, i32 }
          cleanup
  br label %651

646:                                              ; preds = %641, %639
  %647 = landingpad { ptr, i32 }
          cleanup
  br label %650

648:                                              ; preds = %642
  %649 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #8
  br label %650

650:                                              ; preds = %648, %646
  %.pn244 = phi { ptr, i32 } [ %649, %648 ], [ %647, %646 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #8
  br label %651

651:                                              ; preds = %650, %644
  %.pn244.pn = phi { ptr, i32 } [ %.pn244, %650 ], [ %645, %644 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #8
  br label %657

652:                                              ; preds = %633, %643
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %96) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %97) #8
  store i32 1, ptr %97, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %98) #8
  %653 = getelementptr inbounds i8, ptr %42, i64 264
  %654 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %653) #8
  store i64 %654, ptr %98, align 8, !tbaa !44
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %96, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.169, ptr noundef nonnull align 4 dereferenceable(4) %97, ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %655 unwind label %658

655:                                              ; preds = %652
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %97) #8
  %656 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %96)
  br i1 %656, label %674, label %660

657:                                              ; preds = %651, %636
  %.pn244.pn.pn = phi { ptr, i32 } [ %.pn244.pn, %651 ], [ %637, %636 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #8
  br label %810

658:                                              ; preds = %652
  %659 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %97) #8
  br label %678

660:                                              ; preds = %655
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %661 unwind label %666

661:                                              ; preds = %660
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %100) #8
  %662 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %96)
          to label %663 unwind label %668

663:                                              ; preds = %661
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %100, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 254, ptr noundef %662)
          to label %664 unwind label %668

664:                                              ; preds = %663
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %665 unwind label %670

665:                                              ; preds = %664
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #8
  br label %674

666:                                              ; preds = %660
  %667 = landingpad { ptr, i32 }
          cleanup
  br label %673

668:                                              ; preds = %663, %661
  %669 = landingpad { ptr, i32 }
          cleanup
  br label %672

670:                                              ; preds = %664
  %671 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #8
  br label %672

672:                                              ; preds = %670, %668
  %.pn248 = phi { ptr, i32 } [ %671, %670 ], [ %669, %668 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #8
  br label %673

673:                                              ; preds = %672, %666
  %.pn248.pn = phi { ptr, i32 } [ %.pn248, %672 ], [ %667, %666 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %96) #8
  br label %678

674:                                              ; preds = %655, %665
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %96) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %96) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %101) #8
  %675 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %653, i64 noundef 0) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %101, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.170, ptr noundef nonnull align 1 dereferenceable(2) @.str.30, ptr noundef nonnull align 8 dereferenceable(12) %675)
          to label %676 unwind label %679

676:                                              ; preds = %674
  %677 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %101)
  br i1 %677, label %695, label %681

678:                                              ; preds = %673, %658
  %.pn248.pn.pn = phi { ptr, i32 } [ %.pn248.pn, %673 ], [ %659, %658 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %96) #8
  br label %810

679:                                              ; preds = %674
  %680 = landingpad { ptr, i32 }
          cleanup
  br label %700

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

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

684:                                              ; preds = %682
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %103, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 255, ptr noundef %683)
          to label %685 unwind label %689

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

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

687:                                              ; preds = %681
  %688 = landingpad { ptr, i32 }
          cleanup
  br label %694

689:                                              ; preds = %684, %682
  %690 = landingpad { ptr, i32 }
          cleanup
  br label %693

691:                                              ; preds = %685
  %692 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #8
  br label %693

693:                                              ; preds = %691, %689
  %.pn252 = phi { ptr, i32 } [ %692, %691 ], [ %690, %689 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #8
  br label %694

694:                                              ; preds = %693, %687
  %.pn252.pn = phi { ptr, i32 } [ %.pn252, %693 ], [ %688, %687 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #8
  br label %700

695:                                              ; preds = %676, %686
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %104) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %105) #8
  store i64 281474976710658, ptr %105, align 8, !tbaa !44
  %696 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %653, i64 noundef 0) #8
  %697 = getelementptr inbounds i8, ptr %696, i64 32
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareImmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %104, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.171, ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull align 8 dereferenceable(8) %697)
          to label %698 unwind label %701

698:                                              ; preds = %695
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %105) #8
  %699 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %104)
  br i1 %699, label %717, label %703

700:                                              ; preds = %694, %679
  %.pn252.pn.pn = phi { ptr, i32 } [ %.pn252.pn, %694 ], [ %680, %679 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #8
  br label %810

701:                                              ; preds = %695
  %702 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %105) #8
  br label %724

703:                                              ; preds = %698
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %106) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106)
          to label %704 unwind label %709

704:                                              ; preds = %703
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %107) #8
  %705 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %104)
          to label %706 unwind label %711

706:                                              ; preds = %704
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %107, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 256, ptr noundef %705)
          to label %707 unwind label %711

707:                                              ; preds = %706
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull align 8 dereferenceable(8) %106)
          to label %708 unwind label %713

708:                                              ; preds = %707
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %107) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #8
  br label %717

709:                                              ; preds = %703
  %710 = landingpad { ptr, i32 }
          cleanup
  br label %716

711:                                              ; preds = %706, %704
  %712 = landingpad { ptr, i32 }
          cleanup
  br label %715

713:                                              ; preds = %707
  %714 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #8
  br label %715

715:                                              ; preds = %713, %711
  %.pn256 = phi { ptr, i32 } [ %714, %713 ], [ %712, %711 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %107) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #8
  br label %716

716:                                              ; preds = %715, %709
  %.pn256.pn = phi { ptr, i32 } [ %.pn256, %715 ], [ %710, %709 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #8
  br label %724

717:                                              ; preds = %698, %708
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %104) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %108) #8
  %718 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %653, i64 noundef 0) #8
  %719 = getelementptr inbounds i8, ptr %718, i64 40
  %720 = load ptr, ptr %719, align 8, !tbaa !41
  %721 = icmp ne ptr %720, null
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %108, i1 noundef zeroext %721)
          to label %722 unwind label %725

722:                                              ; preds = %717
  %723 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %108)
  br i1 %723, label %744, label %727

724:                                              ; preds = %716, %701
  %.pn256.pn.pn = phi { ptr, i32 } [ %.pn256.pn, %716 ], [ %702, %701 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %104) #8
  br label %810

725:                                              ; preds = %717
  %726 = landingpad { ptr, i32 }
          cleanup
  br label %752

727:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %109) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109)
          to label %728 unwind label %733

728:                                              ; preds = %727
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %110) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %111) #8
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::String") align 8 %111, ptr noundef nonnull align 8 dereferenceable(16) %108, ptr noundef nonnull @.str.172, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18)
          to label %729 unwind label %735

729:                                              ; preds = %728
  %730 = call noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %111)
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %110, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 257, ptr noundef %730)
          to label %731 unwind label %737

731:                                              ; preds = %729
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull align 8 dereferenceable(8) %109)
          to label %732 unwind label %739

732:                                              ; preds = %731
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #8
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %111) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #8
  br label %744

733:                                              ; preds = %727
  %734 = landingpad { ptr, i32 }
          cleanup
  br label %743

735:                                              ; preds = %728
  %736 = landingpad { ptr, i32 }
          cleanup
  br label %742

737:                                              ; preds = %729
  %738 = landingpad { ptr, i32 }
          cleanup
  br label %741

739:                                              ; preds = %731
  %740 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #8
  br label %741

741:                                              ; preds = %739, %737
  %.pn260 = phi { ptr, i32 } [ %740, %739 ], [ %738, %737 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %111) #8
  br label %742

742:                                              ; preds = %741, %735
  %.pn260.pn = phi { ptr, i32 } [ %.pn260, %741 ], [ %736, %735 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #8
  br label %743

743:                                              ; preds = %742, %733
  %.pn260.pn.pn = phi { ptr, i32 } [ %.pn260.pn, %742 ], [ %734, %733 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %108) #8
  br label %752

744:                                              ; preds = %722, %732
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %108) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %108) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %112) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %113) #8
  store i32 0, ptr %113, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %114) #8
  %745 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %653, i64 noundef 0) #8
  %746 = getelementptr inbounds i8, ptr %745, i64 40
  %747 = load ptr, ptr %746, align 8, !tbaa !41
  %748 = invoke noundef i64 @_ZNK7cascadb6MsgBuf5countEv(ptr noundef nonnull align 8 dereferenceable(104) %747)
          to label %749 unwind label %753

749:                                              ; preds = %744
  store i64 %748, ptr %114, align 8, !tbaa !44
  invoke void @_ZN7testing8internal8EqHelperILb1EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_PNS0_8EnableIfIXntsr10is_pointerISA_EE5valueEE4typeE(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %112, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.173, ptr noundef nonnull align 4 dereferenceable(4) %113, ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef null)
          to label %750 unwind label %753

750:                                              ; preds = %749
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %113) #8
  %751 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %112)
  br i1 %751, label %769, label %755

752:                                              ; preds = %743, %725
  %.pn260.pn.pn.pn = phi { ptr, i32 } [ %.pn260.pn.pn, %743 ], [ %726, %725 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %108) #8
  br label %810

753:                                              ; preds = %749, %744
  %754 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %113) #8
  br label %774

755:                                              ; preds = %750
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %115) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115)
          to label %756 unwind label %761

756:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %116) #8
  %757 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %112)
          to label %758 unwind label %763

758:                                              ; preds = %756
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %116, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 258, ptr noundef %757)
          to label %759 unwind label %763

759:                                              ; preds = %758
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %116, ptr noundef nonnull align 8 dereferenceable(8) %115)
          to label %760 unwind label %765

760:                                              ; preds = %759
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #8
  br label %769

761:                                              ; preds = %755
  %762 = landingpad { ptr, i32 }
          cleanup
  br label %768

763:                                              ; preds = %758, %756
  %764 = landingpad { ptr, i32 }
          cleanup
  br label %767

765:                                              ; preds = %759
  %766 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #8
  br label %767

767:                                              ; preds = %765, %763
  %.pn265 = phi { ptr, i32 } [ %766, %765 ], [ %764, %763 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #8
  br label %768

768:                                              ; preds = %767, %761
  %.pn265.pn = phi { ptr, i32 } [ %.pn265, %767 ], [ %762, %761 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #8
  br label %774

769:                                              ; preds = %750, %760
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %112) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %117) #8
  store i64 25, ptr %117, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %118) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %119) #8
  %770 = invoke noundef i64 @_ZN7cascadb9InnerNode10bloom_sizeEi(ptr noundef nonnull align 8 dereferenceable(312) %24, i32 noundef 13)
          to label %771 unwind label %775

771:                                              ; preds = %769
  store i64 %770, ptr %119, align 8, !tbaa !44
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareImmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %118, ptr noundef nonnull @.str.174, ptr noundef nonnull @.str.175, ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull align 8 dereferenceable(8) %119)
          to label %772 unwind label %775

772:                                              ; preds = %771
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #8
  %773 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %118)
  br i1 %773, label %791, label %777

774:                                              ; preds = %768, %753
  %.pn265.pn.pn = phi { ptr, i32 } [ %.pn265.pn, %768 ], [ %754, %753 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %112) #8
  br label %810

775:                                              ; preds = %771, %769
  %776 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #8
  br label %809

777:                                              ; preds = %772
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %120) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120)
          to label %778 unwind label %783

778:                                              ; preds = %777
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %121) #8
  %779 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %118)
          to label %780 unwind label %785

780:                                              ; preds = %778
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %121, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 265, ptr noundef %779)
          to label %781 unwind label %785

781:                                              ; preds = %780
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 8 dereferenceable(8) %120)
          to label %782 unwind label %787

782:                                              ; preds = %781
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #8
  br label %791

783:                                              ; preds = %777
  %784 = landingpad { ptr, i32 }
          cleanup
  br label %790

785:                                              ; preds = %780, %778
  %786 = landingpad { ptr, i32 }
          cleanup
  br label %789

787:                                              ; preds = %781
  %788 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #8
  br label %789

789:                                              ; preds = %787, %785
  %.pn269 = phi { ptr, i32 } [ %788, %787 ], [ %786, %785 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120) #8
  br label %790

790:                                              ; preds = %789, %783
  %.pn269.pn = phi { ptr, i32 } [ %.pn269, %789 ], [ %784, %783 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %118) #8
  br label %809

791:                                              ; preds = %772, %782
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %118) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %118) #8
  call void @_ZN7cascadb4TreeD1Ev(ptr noundef nonnull align 8 dereferenceable(184) %190) #8
  call void @_ZdlPvm(ptr noundef nonnull %190, i64 noundef 184) #10
  call void @_ZN7cascadb5CacheD1Ev(ptr noundef nonnull align 8 dereferenceable(432) %166) #8
  call void @_ZdlPvm(ptr noundef nonnull %166, i64 noundef 432) #10
  call void @_ZN7cascadb6LayoutD1Ev(ptr noundef nonnull align 8 dereferenceable(600) %135) #8
  call void @_ZdlPvm(ptr noundef nonnull %135, i64 noundef 600) #10
  %792 = icmp eq ptr %133, null
  br i1 %792, label %797, label %793

793:                                              ; preds = %791
  %794 = load ptr, ptr %133, align 8, !tbaa !17
  %795 = getelementptr inbounds i8, ptr %794, i64 8
  %796 = load ptr, ptr %795, align 8
  call void %796(ptr noundef nonnull align 8 dereferenceable(8) %133) #8
  br label %797

797:                                              ; preds = %791, %793
  %798 = load ptr, ptr %127, align 8, !tbaa !17
  %799 = getelementptr inbounds i8, ptr %798, i64 8
  %800 = load ptr, ptr %799, align 8
  call void %800(ptr noundef nonnull align 8 dereferenceable(8) %127) #8
  %801 = load ptr, ptr %123, align 8, !tbaa !5
  %802 = icmp eq ptr %801, null
  br i1 %802, label %807, label %803

803:                                              ; preds = %797
  %804 = load ptr, ptr %801, align 8, !tbaa !17
  %805 = getelementptr inbounds i8, ptr %804, i64 16
  %806 = load ptr, ptr %805, align 8
  call void %806(ptr noundef nonnull align 8 dereferenceable(8) %801) #8
  br label %807

807:                                              ; preds = %803, %797
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #8
  call void @_ZN7cascadb9InnerNodeD1Ev(ptr noundef nonnull align 8 dereferenceable(312) %42) #8
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @_ZN7cascadb9InnerNodeD1Ev(ptr noundef nonnull align 8 dereferenceable(312) %24) #8
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 40960, ptr nonnull %19) #8
  br label %808

808:                                              ; preds = %205, %177, %153, %807
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %2) #8
  ret void

809:                                              ; preds = %790, %775
  %.pn269.pn.pn = phi { ptr, i32 } [ %.pn269.pn, %790 ], [ %776, %775 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %118) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #8
  br label %810

810:                                              ; preds = %809, %774, %752, %724, %700, %678, %657, %635, %611, %587, %564, %540, %516, %493, %469, %445, %422, %396, %373, %349
  %.pn269.pn.pn.pn = phi { ptr, i32 } [ %.pn269.pn.pn, %809 ], [ %.pn265.pn.pn, %774 ], [ %.pn260.pn.pn.pn, %752 ], [ %.pn256.pn.pn, %724 ], [ %.pn252.pn.pn, %700 ], [ %.pn248.pn.pn, %678 ], [ %.pn244.pn.pn, %657 ], [ %.pn240.pn.pn, %635 ], [ %.pn236.pn.pn, %611 ], [ %.pn232.pn.pn, %587 ], [ %.pn228.pn.pn, %564 ], [ %.pn224.pn.pn, %540 ], [ %.pn220.pn.pn, %516 ], [ %.pn216.pn.pn, %493 ], [ %.pn212.pn.pn, %469 ], [ %.pn208.pn.pn, %445 ], [ %.pn203.pn.pn.pn, %422 ], [ %.pn199.pn.pn, %396 ], [ %.pn194.pn.pn.pn, %373 ], [ %.pn189.pn.pn.pn, %349 ]
  call void @_ZN7cascadb9InnerNodeD1Ev(ptr noundef nonnull align 8 dereferenceable(312) %42) #8
  br label %811

811:                                              ; preds = %810, %323
  %.pn269.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn269.pn.pn.pn, %810 ], [ %.pn187, %323 ]
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %42) #8
  br label %812

812:                                              ; preds = %811, %318
  %.pn269.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn269.pn.pn.pn.pn, %811 ], [ %.pn182.pn.pn.pn, %318 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  br label %813

813:                                              ; preds = %812, %290, %288, %287, %282, %277, %271, %269
  %.pn269.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn269.pn.pn.pn.pn.pn, %812 ], [ %291, %290 ], [ %270, %269 ], [ %289, %288 ], [ %.pn180, %287 ], [ %.pn178, %282 ], [ %.pn176, %277 ], [ %272, %271 ]
  call void @_ZN7cascadb9InnerNodeD1Ev(ptr noundef nonnull align 8 dereferenceable(312) %24) #8
  br label %814

814:                                              ; preds = %813, %268
  %.pn269.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn269.pn.pn.pn.pn.pn.pn, %813 ], [ %.pn174, %268 ]
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 40960, ptr nonnull %19) #8
  br label %815

815:                                              ; preds = %145, %170, %188, %199, %814, %216, %164, %146, %139
  %.pn269.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %140, %139 ], [ %.pn, %145 ], [ %.pn160.pn.pn, %164 ], [ %147, %146 ], [ %.pn164.pn.pn, %188 ], [ %171, %170 ], [ %.pn269.pn.pn.pn.pn.pn.pn.pn, %814 ], [ %.pn170.pn.pn, %216 ], [ %.pn168, %199 ]
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn269.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7cascadb9InnerNodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmPNS_4TreeE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, ptr noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef) unnamed_addr #4 align 2

declare void @_ZN7cascadb6MsgBuf5writeERKNS_3MsgE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i32 } @_ZNK7cascadb5Slice5cloneEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7cascadb3MsgC2ENS_7MsgTypeENS_5SliceES2_(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, ptr, i32, ptr, i32) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN7cascadb5PivotESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #4 align 2

declare noundef zeroext i1 @_ZN7cascadb9InnerNode8write_toERNS_11BlockWriterERm(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5

declare noundef zeroext i1 @_ZN7cascadb9InnerNode9read_fromERNS_11BlockReaderEb(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) unnamed_addr #5

declare noundef i64 @_ZN7cascadb9InnerNode10bloom_sizeEi(ptr noundef nonnull align 8 dereferenceable(312), i32 noundef) local_unnamed_addr #5

; Function Attrs: nounwind
declare void @_ZN7cascadb9InnerNodeD1Ev(ptr noundef nonnull align 8 dereferenceable(312)) unnamed_addr #6

attributes #0 = { nobuiltin allocsize(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 #1 = { nobuiltin 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 #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "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 = { 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 #8 = { nounwind }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { builtin 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, !7, i64 8}
!6 = !{!"_ZTSN7cascadb7OptionsE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !11, i64 72, !11, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !11, i64 92, !12, i64 96, !13, i64 100}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"long", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"_ZTSN7cascadb8CompressE", !8, i64 0}
!13 = !{!"bool", !8, i64 0}
!14 = !{!6, !10, i64 48}
!15 = !{!6, !10, i64 24}
!16 = !{!6, !10, i64 56}
!17 = !{!18, !18, i64 0}
!18 = !{!"vtable pointer", !9, i64 0}
!19 = !{!20, !13, i64 212}
!20 = !{!"_ZTSN7cascadb9InnerNodeE", !21, i64 0, !13, i64 212, !10, i64 216, !7, i64 224, !29, i64 232, !11, i64 248, !11, i64 252, !11, i64 256, !30, i64 260, !31, i64 264, !10, i64 288, !10, i64 296, !10, i64 304}
!21 = !{!"_ZTSN7cascadb8DataNodeE", !22, i64 0, !7, i64 200, !28, i64 208}
!22 = !{!"_ZTSN7cascadb4NodeE", !23, i64 8, !10, i64 40, !25, i64 48, !13, i64 96, !13, i64 97, !13, i64 98, !26, i64 104, !26, i64 120, !11, i64 136, !11, i64 140, !27, i64 144}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !10, i64 8, !8, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!25 = !{!"_ZTSN7cascadb5MutexE", !13, i64 0, !8, i64 8}
!26 = !{!"_ZTS7timeval", !10, i64 0, !10, i64 8}
!27 = !{!"_ZTSN7cascadb6RWLockE", !8, i64 0}
!28 = !{!"_ZTSN7cascadb10NodeStatusE", !8, i64 0}
!29 = !{!"_ZTSN7cascadb5SliceE", !7, i64 0, !11, i64 8}
!30 = !{!"short", !8, i64 0}
!31 = !{!"_ZTSSt6vectorIN7cascadb5PivotESaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIN7cascadb5PivotESaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN7cascadb5PivotESaIS1_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7cascadb5PivotESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!35 = !{!20, !10, i64 216}
!36 = !{!20, !7, i64 224}
!37 = !{!7, !7, i64 0}
!38 = !{!11, !11, i64 0}
!39 = !{!40, !10, i64 32}
!40 = !{!"_ZTSN7cascadb5PivotE", !29, i64 0, !29, i64 16, !10, i64 32, !7, i64 40, !11, i64 48, !11, i64 52, !11, i64 56, !30, i64 60}
!41 = !{!40, !7, i64 40}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = !{!10, !10, i64 0}
!45 = !{!46, !46, i64 0}
!46 = !{!"_ZTSN7cascadb7MsgTypeE", !8, i64 0}


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