; LLVM IR from weicao/cascadb :: test/t_node.ll (ZN20InnerNode_split_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.std::vector.45" = type { %"struct.std::_Vector_base.46" }
%"struct.std::_Vector_base.46" = type { %"struct.std::_Vector_base<cascadb::DataNode *, std::allocator<cascadb::DataNode *>>::_Vector_impl" }
%"struct.std::_Vector_base<cascadb::DataNode *, std::allocator<cascadb::DataNode *>>::_Vector_impl" = type { %"struct.std::_Vector_base<cascadb::DataNode *, std::allocator<cascadb::DataNode *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cascadb::DataNode *, std::allocator<cascadb::DataNode *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.cascadb::Slice" = type <{ ptr, i32, [4 x i8] }>
%"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::Pivot" = type <{ %"class.cascadb::Slice", %"class.cascadb::Slice", i64, ptr, i32, i32, i32, i16, [2 x i8] }>

@.str.7 = external hidden unnamed_addr constant [64 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.26 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [19 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 @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef) unnamed_addr #3 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

declare noundef ptr @_ZN7cascadb4Tree9load_nodeEmb(ptr noundef nonnull align 8 dereferenceable(184), i64 noundef, i1 noundef zeroext) #5

; 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 @_ZN7cascadb4Node7dec_refEv(ptr noundef nonnull align 8 dereferenceable(200)) #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
declare dso_local void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef) unnamed_addr #4 align 2

declare noundef ptr @_ZN7cascadb4Tree14new_inner_nodeEv(ptr noundef nonnull align 8 dereferenceable(184)) #5

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN20InnerNode_split_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 ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %"class.std::vector.45", align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca %"class.cascadb::Slice", align 8
  %35 = alloca %"class.testing::AssertionResult", align 8
  %36 = alloca i32, align 4
  %37 = alloca i64, align 8
  %38 = alloca %"class.testing::Message", align 8
  %39 = alloca %"class.testing::internal::AssertHelper", align 8
  %40 = alloca %"class.testing::AssertionResult", align 8
  %41 = alloca %"class.testing::Message", align 8
  %42 = alloca %"class.testing::internal::AssertHelper", align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca %"class.cascadb::Slice", align 8
  %46 = alloca %"class.testing::AssertionResult", align 8
  %47 = alloca i32, align 4
  %48 = alloca i64, align 8
  %49 = alloca %"class.testing::Message", align 8
  %50 = alloca %"class.testing::internal::AssertHelper", align 8
  %51 = alloca %"class.testing::AssertionResult", align 8
  %52 = alloca %"class.testing::Message", align 8
  %53 = alloca %"class.testing::internal::AssertHelper", align 8
  %54 = alloca %"class.testing::AssertionResult", align 8
  %55 = alloca %"class.testing::Message", align 8
  %56 = alloca %"class.testing::internal::AssertHelper", align 8
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca %"class.cascadb::Slice", align 8
  %60 = alloca %"class.testing::AssertionResult", align 8
  %61 = alloca i32, align 4
  %62 = alloca i64, align 8
  %63 = alloca %"class.testing::Message", align 8
  %64 = alloca %"class.testing::internal::AssertHelper", align 8
  %65 = alloca %"class.testing::AssertionResult", align 8
  %66 = alloca %"class.testing::Message", align 8
  %67 = alloca %"class.testing::internal::AssertHelper", align 8
  %68 = alloca %"class.testing::AssertionResult", align 8
  %69 = alloca i32, align 4
  %70 = alloca i64, 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 i64, align 8
  %78 = alloca %"class.testing::Message", align 8
  %79 = alloca %"class.testing::internal::AssertHelper", align 8
  %80 = alloca ptr, 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 %"class.testing::Message", align 8
  %92 = alloca %"class.testing::internal::AssertHelper", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %93 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 104, ptr %3) #9
  call void @_ZN7cascadb7OptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(101) %3)
  %94 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #10
  call void @llvm.memset.p0.i64(ptr align 8 %94, i8 0, i64 8, i1 false)
  call void @_ZN7cascadb17LexicalComparatorC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #9
  %95 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  store ptr %94, ptr %95, align 8, !tbaa !9
  %96 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 3
  store i64 3, ptr %96, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %97 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #10
  invoke void @_ZN7cascadb12RAMDirectoryC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %97)
          to label %98 unwind label %114

98:                                               ; preds = %1
  store ptr %97, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  %99 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  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 %100 unwind label %118

100:                                              ; preds = %98
  %101 = load ptr, ptr %99, align 8, !tbaa !16
  %102 = getelementptr inbounds ptr, ptr %101, i64 5
  %103 = load ptr, ptr %102, align 8
  %104 = invoke noundef ptr %103(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %105 unwind label %122

105:                                              ; preds = %100
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #9
  store ptr %104, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %106 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 600) #10
  %107 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN7cascadb6LayoutC1EPNS_7AIOFileEmRKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(600) %106, ptr noundef %107, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(101) %3)
          to label %108 unwind label %127

108:                                              ; preds = %105
  store ptr %106, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #9
  %109 = load ptr, ptr %10, align 8, !tbaa !5
  %110 = call noundef zeroext i1 @_ZN7cascadb6Layout4initEb(ptr noundef nonnull align 8 dereferenceable(600) %109, i1 noundef zeroext true)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %11, i1 noundef zeroext %110)
  %111 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %112 unwind label %131

112:                                              ; preds = %108
  br i1 %111, label %113, label %135

113:                                              ; preds = %112
  br label %161

114:                                              ; preds = %1
  %115 = landingpad { ptr, i32 }
          cleanup
  %116 = extractvalue { ptr, i32 } %115, 0
  store ptr %116, ptr %5, align 8
  %117 = extractvalue { ptr, i32 } %115, 1
  store i32 %117, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %97, i64 noundef 104) #11
  br label %975

118:                                              ; preds = %98
  %119 = landingpad { ptr, i32 }
          cleanup
  %120 = extractvalue { ptr, i32 } %119, 0
  store ptr %120, ptr %5, align 8
  %121 = extractvalue { ptr, i32 } %119, 1
  store i32 %121, ptr %6, align 4
  br label %126

122:                                              ; preds = %100
  %123 = landingpad { ptr, i32 }
          cleanup
  %124 = extractvalue { ptr, i32 } %123, 0
  store ptr %124, ptr %5, align 8
  %125 = extractvalue { ptr, i32 } %123, 1
  store i32 %125, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %126

126:                                              ; preds = %122, %118
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #9
  br label %974

127:                                              ; preds = %105
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %5, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %106, i64 noundef 600) #11
  br label %973

131:                                              ; preds = %108
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %5, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %6, align 4
  br label %172

135:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %136 unwind label %142

136:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #9
  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 %137 unwind label %146

137:                                              ; preds = %136
  %138 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %139 unwind label %150

139:                                              ; preds = %137
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef 2, ptr noundef @.str.7, i32 noundef 486, ptr noundef %138)
          to label %140 unwind label %150

140:                                              ; preds = %139
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %141 unwind label %154

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

142:                                              ; preds = %135
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %5, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %6, align 4
  br label %160

146:                                              ; preds = %136
  %147 = landingpad { ptr, i32 }
          cleanup
  %148 = extractvalue { ptr, i32 } %147, 0
  store ptr %148, ptr %5, align 8
  %149 = extractvalue { ptr, i32 } %147, 1
  store i32 %149, ptr %6, align 4
  br label %159

150:                                              ; preds = %139, %137
  %151 = landingpad { ptr, i32 }
          cleanup
  %152 = extractvalue { ptr, i32 } %151, 0
  store ptr %152, ptr %5, align 8
  %153 = extractvalue { ptr, i32 } %151, 1
  store i32 %153, ptr %6, align 4
  br label %158

154:                                              ; preds = %140
  %155 = landingpad { ptr, i32 }
          cleanup
  %156 = extractvalue { ptr, i32 } %155, 0
  store ptr %156, ptr %5, align 8
  %157 = extractvalue { ptr, i32 } %155, 1
  store i32 %157, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  br label %158

158:                                              ; preds = %154, %150
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #9
  br label %159

159:                                              ; preds = %158, %146
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #9
  br label %160

160:                                              ; preds = %159, %142
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %172

161:                                              ; preds = %113
  store i32 0, ptr %15, align 4
  br label %162

162:                                              ; preds = %161, %141
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #9
  %163 = load i32, ptr %15, align 4
  switch i32 %163, label %963 [
    i32 0, label %164
  ]

164:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %165 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 432) #10
  invoke void @_ZN7cascadb5CacheC1ERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(432) %165, ptr noundef nonnull align 8 dereferenceable(101) %3)
          to label %166 unwind label %173

166:                                              ; preds = %164
  store ptr %165, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #9
  %167 = load ptr, ptr %16, align 8, !tbaa !5
  %168 = call noundef zeroext i1 @_ZN7cascadb5Cache4initEv(ptr noundef nonnull align 8 dereferenceable(432) %167)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %17, i1 noundef zeroext %168)
  %169 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %170 unwind label %177

170:                                              ; preds = %166
  br i1 %169, label %171, label %181

171:                                              ; preds = %170
  br label %207

172:                                              ; preds = %160, %131
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #9
  br label %973

173:                                              ; preds = %164
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %5, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %165, i64 noundef 432) #11
  br label %972

177:                                              ; preds = %166
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %5, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %6, align 4
  br label %221

181:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %182 unwind label %188

182:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #9
  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 %183 unwind label %192

183:                                              ; preds = %182
  %184 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %185 unwind label %196

185:                                              ; preds = %183
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %19, i32 noundef 2, ptr noundef @.str.7, i32 noundef 488, ptr noundef %184)
          to label %186 unwind label %196

186:                                              ; preds = %185
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %187 unwind label %200

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

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

192:                                              ; preds = %182
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %5, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %6, align 4
  br label %205

196:                                              ; preds = %185, %183
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %5, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %6, align 4
  br label %204

200:                                              ; preds = %186
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %5, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #9
  br label %204

204:                                              ; preds = %200, %196
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #9
  br label %205

205:                                              ; preds = %204, %192
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  br label %206

206:                                              ; preds = %205, %188
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %221

207:                                              ; preds = %171
  store i32 0, ptr %15, align 4
  br label %208

208:                                              ; preds = %207, %187
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #9
  %209 = load i32, ptr %15, align 4
  switch i32 %209, label %962 [
    i32 0, label %210
  ]

210:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %211 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 184) #10
  store i1 true, ptr %24, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  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 %212 unwind label %222

212:                                              ; preds = %210
  %213 = load ptr, ptr %16, align 8, !tbaa !5
  %214 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN7cascadb4TreeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7OptionsEPNS_5CacheEPNS_6LayoutE(ptr noundef nonnull align 8 dereferenceable(184) %211, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(101) %3, ptr noundef %213, ptr noundef %214)
          to label %215 unwind label %226

215:                                              ; preds = %212
  store i1 false, ptr %24, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  store ptr %211, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #9
  %216 = load ptr, ptr %21, align 8, !tbaa !5
  %217 = call noundef zeroext i1 @_ZN7cascadb4Tree4initEv(ptr noundef nonnull align 8 dereferenceable(184) %216)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %25, i1 noundef zeroext %217)
  %218 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %25)
          to label %219 unwind label %234

219:                                              ; preds = %215
  br i1 %218, label %220, label %238

220:                                              ; preds = %219
  br label %264

221:                                              ; preds = %206, %177
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #9
  br label %972

222:                                              ; preds = %210
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %5, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %6, align 4
  br label %230

226:                                              ; preds = %212
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %5, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %230

230:                                              ; preds = %226, %222
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  %231 = load i1, ptr %24, align 1
  br i1 %231, label %232, label %233

232:                                              ; preds = %230
  call void @_ZdlPvm(ptr noundef %211, i64 noundef 184) #11
  br label %233

233:                                              ; preds = %232, %230
  br label %971

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

238:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %239 unwind label %245

239:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #9
  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 %240 unwind label %249

240:                                              ; preds = %239
  %241 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %28)
          to label %242 unwind label %253

242:                                              ; preds = %240
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %27, i32 noundef 2, ptr noundef @.str.7, i32 noundef 490, ptr noundef %241)
          to label %243 unwind label %253

243:                                              ; preds = %242
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %244 unwind label %257

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

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

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

253:                                              ; preds = %242, %240
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %5, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %6, align 4
  br label %261

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

261:                                              ; preds = %257, %253
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #9
  br label %262

262:                                              ; preds = %261, %249
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  br label %263

263:                                              ; preds = %262, %245
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  br label %337

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

265:                                              ; preds = %264, %244
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #9
  %266 = load i32, ptr %15, align 4
  switch i32 %266, label %961 [
    i32 0, label %267
  ]

267:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %268 = load ptr, ptr %21, align 8, !tbaa !5
  %269 = call noundef ptr @_ZN7cascadb4Tree14new_inner_nodeEv(ptr noundef nonnull align 8 dereferenceable(184) %268)
  store ptr %269, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %270 = load ptr, ptr %21, align 8, !tbaa !5
  %271 = call noundef ptr @_ZN7cascadb4Tree14new_inner_nodeEv(ptr noundef nonnull align 8 dereferenceable(184) %270)
  store ptr %271, ptr %30, align 8, !tbaa !5
  %272 = load ptr, ptr %29, align 8, !tbaa !5
  %273 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %272, i32 0, i32 1
  store i8 0, ptr %273, align 4, !tbaa !18
  %274 = load ptr, ptr %30, align 8, !tbaa !5
  %275 = getelementptr inbounds %"class.cascadb::Node", ptr %274, i32 0, i32 2
  %276 = load i64, ptr %275, align 8, !tbaa !34
  %277 = load ptr, ptr %29, align 8, !tbaa !5
  %278 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %277, i32 0, i32 2
  store i64 %276, ptr %278, align 8, !tbaa !35
  %279 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #10
  %280 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  %281 = load ptr, ptr %280, align 8, !tbaa !9
  invoke void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104) %279, ptr noundef %281)
          to label %282 unwind label %338

282:                                              ; preds = %267
  %283 = load ptr, ptr %29, align 8, !tbaa !5
  %284 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %283, i32 0, i32 3
  store ptr %279, ptr %284, align 8, !tbaa !36
  %285 = load ptr, ptr %29, align 8, !tbaa !5
  %286 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %285, i32 0, i32 11
  store i64 0, ptr %286, align 8, !tbaa !37
  %287 = load ptr, ptr %29, align 8, !tbaa !5
  %288 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %287, i32 0, i32 3
  %289 = load ptr, ptr %288, align 8, !tbaa !36
  %290 = call noundef i64 @_ZNK7cascadb6MsgBuf4sizeEv(ptr noundef nonnull align 8 dereferenceable(104) %289)
  %291 = load ptr, ptr %29, align 8, !tbaa !5
  %292 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %291, i32 0, i32 12
  store i64 %290, ptr %292, align 8, !tbaa !38
  %293 = load ptr, ptr %30, align 8, !tbaa !5
  %294 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %293, i32 0, i32 1
  store i8 0, ptr %294, align 4, !tbaa !18
  %295 = load ptr, ptr %30, align 8, !tbaa !5
  %296 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %295, i32 0, i32 2
  store i64 102, ptr %296, align 8, !tbaa !35
  %297 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #10
  %298 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  %299 = load ptr, ptr %298, align 8, !tbaa !9
  invoke void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104) %297, ptr noundef %299)
          to label %300 unwind label %342

300:                                              ; preds = %282
  %301 = load ptr, ptr %30, align 8, !tbaa !5
  %302 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %301, i32 0, i32 3
  store ptr %297, ptr %302, align 8, !tbaa !36
  %303 = load ptr, ptr %30, align 8, !tbaa !5
  %304 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %303, i32 0, i32 11
  store i64 0, ptr %304, align 8, !tbaa !37
  %305 = load ptr, ptr %30, align 8, !tbaa !5
  %306 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %305, i32 0, i32 3
  %307 = load ptr, ptr %306, align 8, !tbaa !36
  %308 = call noundef i64 @_ZNK7cascadb6MsgBuf4sizeEv(ptr noundef nonnull align 8 dereferenceable(104) %307)
  %309 = load ptr, ptr %30, align 8, !tbaa !5
  %310 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %309, i32 0, i32 12
  store i64 %308, ptr %310, align 8, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #9
  call void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %311 = load ptr, ptr %29, align 8, !tbaa !5
  store ptr %311, ptr %32, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %312 unwind label %346

312:                                              ; preds = %300
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %313 = load ptr, ptr %30, align 8, !tbaa !5
  store ptr %313, ptr %33, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %314 unwind label %350

314:                                              ; preds = %312
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  %315 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %315)
          to label %316 unwind label %354

316:                                              ; preds = %314
  %317 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %317)
          to label %318 unwind label %354

318:                                              ; preds = %316
  %319 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %319)
          to label %320 unwind label %354

320:                                              ; preds = %318
  %321 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %321)
          to label %322 unwind label %354

322:                                              ; preds = %320
  %323 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %34, ptr noundef @.str.48)
          to label %324 unwind label %354

324:                                              ; preds = %322
  %325 = getelementptr inbounds { ptr, i32 }, ptr %34, i32 0, i32 0
  %326 = load ptr, ptr %325, align 8
  %327 = getelementptr inbounds { ptr, i32 }, ptr %34, i32 0, i32 1
  %328 = load i32, ptr %327, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %323, ptr %326, i32 %328, i64 noundef 103, ptr noundef nonnull align 8 dereferenceable(24) %31)
          to label %329 unwind label %354

329:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 1, ptr %36, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  %330 = load ptr, ptr %30, align 8, !tbaa !5
  %331 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %330, i32 0, i32 9
  %332 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %331) #9
  store i64 %332, ptr %37, align 8, !tbaa !40
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %35, ptr noundef @.str.52, ptr noundef @.str.108, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %333 unwind label %358

333:                                              ; preds = %329
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  %334 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %35)
          to label %335 unwind label %362

335:                                              ; preds = %333
  br i1 %334, label %336, label %366

336:                                              ; preds = %335
  br label %386

337:                                              ; preds = %263, %234
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #9
  br label %971

338:                                              ; preds = %267
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %5, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %279, i64 noundef 104) #11
  br label %970

342:                                              ; preds = %282
  %343 = landingpad { ptr, i32 }
          cleanup
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %5, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %297, i64 noundef 104) #11
  br label %970

346:                                              ; preds = %300
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %5, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %969

350:                                              ; preds = %312
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %5, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  br label %969

354:                                              ; preds = %582, %580, %578, %576, %574, %572, %439, %437, %435, %433, %431, %429, %324, %322, %320, %318, %316, %314
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %5, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %6, align 4
  br label %969

358:                                              ; preds = %329
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %5, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %396

362:                                              ; preds = %333
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %5, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %6, align 4
  br label %395

366:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %367 unwind label %372

367:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  %368 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %35)
          to label %369 unwind label %376

369:                                              ; preds = %367
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %39, i32 noundef 1, ptr noundef @.str.7, i32 noundef 516, ptr noundef %368)
          to label %370 unwind label %376

370:                                              ; preds = %369
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %371 unwind label %380

371:                                              ; preds = %370
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  br label %386

372:                                              ; preds = %366
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %5, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %6, align 4
  br label %385

376:                                              ; preds = %369, %367
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %5, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %6, align 4
  br label %384

380:                                              ; preds = %370
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %5, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  br label %384

384:                                              ; preds = %380, %376
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  br label %385

385:                                              ; preds = %384, %372
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  br label %395

386:                                              ; preds = %371, %336
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #9
  %387 = load ptr, ptr %30, align 8, !tbaa !5
  %388 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %387, i32 0, i32 9
  %389 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %388, i64 noundef 0) #9
  %390 = getelementptr inbounds %"class.cascadb::Pivot", ptr %389, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %40, ptr noundef @.str.60, ptr noundef @.str.141, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %390)
          to label %391 unwind label %397

391:                                              ; preds = %386
  %392 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %40)
          to label %393 unwind label %401

393:                                              ; preds = %391
  br i1 %392, label %394, label %405

394:                                              ; preds = %393
  br label %425

395:                                              ; preds = %385, %362
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #9
  br label %396

396:                                              ; preds = %395, %358
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #9
  br label %969

397:                                              ; preds = %386
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %5, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %6, align 4
  br label %453

401:                                              ; preds = %391
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %5, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %6, align 4
  br label %452

405:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %406 unwind label %411

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

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

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

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

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

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

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

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

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

425:                                              ; preds = %410, %394
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %426 = load ptr, ptr %29, align 8, !tbaa !5
  store ptr %426, ptr %43, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %427 unwind label %454

427:                                              ; preds = %425
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %428 = load ptr, ptr %30, align 8, !tbaa !5
  store ptr %428, ptr %44, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %429 unwind label %458

429:                                              ; preds = %427
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  %430 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %430)
          to label %431 unwind label %354

431:                                              ; preds = %429
  %432 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %432)
          to label %433 unwind label %354

433:                                              ; preds = %431
  %434 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %434)
          to label %435 unwind label %354

435:                                              ; preds = %433
  %436 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %436)
          to label %437 unwind label %354

437:                                              ; preds = %435
  %438 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %45, ptr noundef @.str.30)
          to label %439 unwind label %354

439:                                              ; preds = %437
  %440 = getelementptr inbounds { ptr, i32 }, ptr %45, i32 0, i32 0
  %441 = load ptr, ptr %440, align 8
  %442 = getelementptr inbounds { ptr, i32 }, ptr %45, i32 0, i32 1
  %443 = load i32, ptr %442, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %438, ptr %441, i32 %443, i64 noundef 104, ptr noundef nonnull align 8 dereferenceable(24) %31)
          to label %444 unwind label %354

444:                                              ; preds = %439
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  store i32 2, ptr %47, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %445 = load ptr, ptr %30, align 8, !tbaa !5
  %446 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %445, i32 0, i32 9
  %447 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %446) #9
  store i64 %447, ptr %48, align 8, !tbaa !40
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %46, ptr noundef @.str.86, ptr noundef @.str.108, ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %448 unwind label %462

448:                                              ; preds = %444
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  %449 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %46)
          to label %450 unwind label %466

450:                                              ; preds = %448
  br i1 %449, label %451, label %470

451:                                              ; preds = %450
  br label %490

452:                                              ; preds = %424, %401
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #9
  br label %453

453:                                              ; preds = %452, %397
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #9
  br label %969

454:                                              ; preds = %425
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %5, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  br label %969

458:                                              ; preds = %427
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %5, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  br label %969

462:                                              ; preds = %444
  %463 = landingpad { ptr, i32 }
          cleanup
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %5, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %500

466:                                              ; preds = %448
  %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
  br label %499

470:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %471 unwind label %476

471:                                              ; preds = %470
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %472 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %46)
          to label %473 unwind label %480

473:                                              ; preds = %471
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %50, i32 noundef 1, ptr noundef @.str.7, i32 noundef 526, ptr noundef %472)
          to label %474 unwind label %480

474:                                              ; preds = %473
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %475 unwind label %484

475:                                              ; preds = %474
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %490

476:                                              ; preds = %470
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %5, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %6, align 4
  br label %489

480:                                              ; preds = %473, %471
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %5, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %6, align 4
  br label %488

484:                                              ; preds = %474
  %485 = landingpad { ptr, i32 }
          cleanup
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %5, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  br label %488

488:                                              ; preds = %484, %480
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  br label %489

489:                                              ; preds = %488, %476
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %499

490:                                              ; preds = %475, %451
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #9
  %491 = load ptr, ptr %30, align 8, !tbaa !5
  %492 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %491, i32 0, i32 9
  %493 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %492, i64 noundef 0) #9
  %494 = getelementptr inbounds %"class.cascadb::Pivot", ptr %493, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %51, ptr noundef @.str.45, ptr noundef @.str.141, ptr noundef nonnull align 1 dereferenceable(2) @.str.30, ptr noundef nonnull align 8 dereferenceable(12) %494)
          to label %495 unwind label %501

495:                                              ; preds = %490
  %496 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %497 unwind label %505

497:                                              ; preds = %495
  br i1 %496, label %498, label %509

498:                                              ; preds = %497
  br label %529

499:                                              ; preds = %489, %466
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #9
  br label %500

500:                                              ; preds = %499, %462
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #9
  br label %969

501:                                              ; preds = %490
  %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
  br label %539

505:                                              ; preds = %495
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %5, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %6, align 4
  br label %538

509:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %510 unwind label %515

510:                                              ; preds = %509
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %511 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %512 unwind label %519

512:                                              ; preds = %510
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %53, i32 noundef 1, ptr noundef @.str.7, i32 noundef 527, ptr noundef %511)
          to label %513 unwind label %519

513:                                              ; preds = %512
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %514 unwind label %523

514:                                              ; preds = %513
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  br label %529

515:                                              ; preds = %509
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %5, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %6, align 4
  br label %528

519:                                              ; preds = %512, %510
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %5, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %6, align 4
  br label %527

523:                                              ; preds = %513
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %5, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  br label %527

527:                                              ; preds = %523, %519
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #9
  br label %528

528:                                              ; preds = %527, %515
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  br label %538

529:                                              ; preds = %514, %498
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #9
  %530 = load ptr, ptr %30, align 8, !tbaa !5
  %531 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %530, i32 0, i32 9
  %532 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %531, i64 noundef 1) #9
  %533 = getelementptr inbounds %"class.cascadb::Pivot", ptr %532, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %54, ptr noundef @.str.60, ptr noundef @.str.183, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %533)
          to label %534 unwind label %540

534:                                              ; preds = %529
  %535 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %54)
          to label %536 unwind label %544

536:                                              ; preds = %534
  br i1 %535, label %537, label %548

537:                                              ; preds = %536
  br label %568

538:                                              ; preds = %528, %505
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #9
  br label %539

539:                                              ; preds = %538, %501
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #9
  br label %969

540:                                              ; preds = %529
  %541 = landingpad { ptr, i32 }
          cleanup
  %542 = extractvalue { ptr, i32 } %541, 0
  store ptr %542, ptr %5, align 8
  %543 = extractvalue { ptr, i32 } %541, 1
  store i32 %543, ptr %6, align 4
  br label %596

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

548:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %549 unwind label %554

549:                                              ; preds = %548
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %550 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %54)
          to label %551 unwind label %558

551:                                              ; preds = %549
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %56, i32 noundef 1, ptr noundef @.str.7, i32 noundef 528, ptr noundef %550)
          to label %552 unwind label %558

552:                                              ; preds = %551
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %553 unwind label %562

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

554:                                              ; preds = %548
  %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 %567

558:                                              ; preds = %551, %549
  %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
  br label %566

562:                                              ; preds = %552
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %5, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #9
  br label %566

566:                                              ; preds = %562, %558
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #9
  br label %567

567:                                              ; preds = %566, %554
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  br label %595

568:                                              ; preds = %553, %537
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #9
  %569 = load ptr, ptr %29, align 8, !tbaa !5
  store ptr %569, ptr %57, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %570 unwind label %597

570:                                              ; preds = %568
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  %571 = load ptr, ptr %30, align 8, !tbaa !5
  store ptr %571, ptr %58, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %572 unwind label %601

572:                                              ; preds = %570
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  %573 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %573)
          to label %574 unwind label %354

574:                                              ; preds = %572
  %575 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %575)
          to label %576 unwind label %354

576:                                              ; preds = %574
  %577 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %577)
          to label %578 unwind label %354

578:                                              ; preds = %576
  %579 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %579)
          to label %580 unwind label %354

580:                                              ; preds = %578
  %581 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %59, ptr noundef @.str.49)
          to label %582 unwind label %354

582:                                              ; preds = %580
  %583 = getelementptr inbounds { ptr, i32 }, ptr %59, i32 0, i32 0
  %584 = load ptr, ptr %583, align 8
  %585 = getelementptr inbounds { ptr, i32 }, ptr %59, i32 0, i32 1
  %586 = load i32, ptr %585, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %581, ptr %584, i32 %586, i64 noundef 105, ptr noundef nonnull align 8 dereferenceable(24) %31)
          to label %587 unwind label %354

587:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  store i32 1, ptr %61, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  %588 = load ptr, ptr %30, align 8, !tbaa !5
  %589 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %588, i32 0, i32 9
  %590 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %589) #9
  store i64 %590, ptr %62, align 8, !tbaa !40
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %60, ptr noundef @.str.52, ptr noundef @.str.108, ptr noundef nonnull align 4 dereferenceable(4) %61, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %591 unwind label %605

591:                                              ; preds = %587
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  %592 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %593 unwind label %609

593:                                              ; preds = %591
  br i1 %592, label %594, label %613

594:                                              ; preds = %593
  br label %633

595:                                              ; preds = %567, %544
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #9
  br label %596

596:                                              ; preds = %595, %540
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  br label %969

597:                                              ; preds = %568
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %5, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  br label %969

601:                                              ; preds = %570
  %602 = landingpad { ptr, i32 }
          cleanup
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %5, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  br label %969

605:                                              ; preds = %587
  %606 = landingpad { ptr, i32 }
          cleanup
  %607 = extractvalue { ptr, i32 } %606, 0
  store ptr %607, ptr %5, align 8
  %608 = extractvalue { ptr, i32 } %606, 1
  store i32 %608, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %643

609:                                              ; preds = %591
  %610 = landingpad { ptr, i32 }
          cleanup
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %5, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %6, align 4
  br label %642

613:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %614 unwind label %619

614:                                              ; preds = %613
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  %615 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %616 unwind label %623

616:                                              ; preds = %614
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %64, i32 noundef 1, ptr noundef @.str.7, i32 noundef 537, ptr noundef %615)
          to label %617 unwind label %623

617:                                              ; preds = %616
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %618 unwind label %627

618:                                              ; preds = %617
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br label %633

619:                                              ; preds = %613
  %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
  br label %632

623:                                              ; preds = %616, %614
  %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 %631

627:                                              ; preds = %617
  %628 = landingpad { ptr, i32 }
          cleanup
  %629 = extractvalue { ptr, i32 } %628, 0
  store ptr %629, ptr %5, align 8
  %630 = extractvalue { ptr, i32 } %628, 1
  store i32 %630, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  br label %631

631:                                              ; preds = %627, %623
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #9
  br label %632

632:                                              ; preds = %631, %619
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br label %642

633:                                              ; preds = %618, %594
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #9
  %634 = load ptr, ptr %30, align 8, !tbaa !5
  %635 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %634, i32 0, i32 9
  %636 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %635, i64 noundef 0) #9
  %637 = getelementptr inbounds %"class.cascadb::Pivot", ptr %636, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %65, ptr noundef @.str.45, ptr noundef @.str.141, ptr noundef nonnull align 1 dereferenceable(2) @.str.30, ptr noundef nonnull align 8 dereferenceable(12) %637)
          to label %638 unwind label %644

638:                                              ; preds = %633
  %639 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %65)
          to label %640 unwind label %648

640:                                              ; preds = %638
  br i1 %639, label %641, label %652

641:                                              ; preds = %640
  br label %672

642:                                              ; preds = %632, %609
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #9
  br label %643

643:                                              ; preds = %642, %605
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #9
  br label %969

644:                                              ; preds = %633
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %5, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %6, align 4
  br label %681

648:                                              ; preds = %638
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %5, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %6, align 4
  br label %680

652:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %653 unwind label %658

653:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  %654 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %65)
          to label %655 unwind label %662

655:                                              ; preds = %653
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %67, i32 noundef 1, ptr noundef @.str.7, i32 noundef 538, ptr noundef %654)
          to label %656 unwind label %662

656:                                              ; preds = %655
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %657 unwind label %666

657:                                              ; preds = %656
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  br label %672

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

662:                                              ; preds = %655, %653
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %5, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %6, align 4
  br label %670

666:                                              ; preds = %656
  %667 = landingpad { ptr, i32 }
          cleanup
  %668 = extractvalue { ptr, i32 } %667, 0
  store ptr %668, ptr %5, align 8
  %669 = extractvalue { ptr, i32 } %667, 1
  store i32 %669, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  br label %670

670:                                              ; preds = %666, %662
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #9
  br label %671

671:                                              ; preds = %670, %658
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  br label %680

672:                                              ; preds = %657, %641
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  store i32 1, ptr %69, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  %673 = load ptr, ptr %29, align 8, !tbaa !5
  %674 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %673, i32 0, i32 9
  %675 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %674) #9
  store i64 %675, ptr %70, align 8, !tbaa !40
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %68, ptr noundef @.str.52, ptr noundef @.str.53, ptr noundef nonnull align 4 dereferenceable(4) %69, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %676 unwind label %682

676:                                              ; preds = %672
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  %677 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %68)
          to label %678 unwind label %686

678:                                              ; preds = %676
  br i1 %677, label %679, label %690

679:                                              ; preds = %678
  br label %710

680:                                              ; preds = %671, %648
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #9
  br label %681

681:                                              ; preds = %680, %644
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #9
  br label %969

682:                                              ; preds = %672
  %683 = landingpad { ptr, i32 }
          cleanup
  %684 = extractvalue { ptr, i32 } %683, 0
  store ptr %684, ptr %5, align 8
  %685 = extractvalue { ptr, i32 } %683, 1
  store i32 %685, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %720

686:                                              ; preds = %676
  %687 = landingpad { ptr, i32 }
          cleanup
  %688 = extractvalue { ptr, i32 } %687, 0
  store ptr %688, ptr %5, align 8
  %689 = extractvalue { ptr, i32 } %687, 1
  store i32 %689, ptr %6, align 4
  br label %719

690:                                              ; preds = %678
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %691 unwind label %696

691:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #9
  %692 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %68)
          to label %693 unwind label %700

693:                                              ; preds = %691
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %72, i32 noundef 1, ptr noundef @.str.7, i32 noundef 539, ptr noundef %692)
          to label %694 unwind label %700

694:                                              ; preds = %693
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %695 unwind label %704

695:                                              ; preds = %694
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  br label %710

696:                                              ; preds = %690
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %5, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %6, align 4
  br label %709

700:                                              ; preds = %693, %691
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %5, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %6, align 4
  br label %708

704:                                              ; preds = %694
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %5, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #9
  br label %708

708:                                              ; preds = %704, %700
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #9
  br label %709

709:                                              ; preds = %708, %696
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  br label %719

710:                                              ; preds = %695, %679
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %73) #9
  %711 = load ptr, ptr %29, align 8, !tbaa !5
  %712 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %711, i32 0, i32 9
  %713 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %712, i64 noundef 0) #9
  %714 = getelementptr inbounds %"class.cascadb::Pivot", ptr %713, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %73, ptr noundef @.str.60, ptr noundef @.str.178, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %714)
          to label %715 unwind label %721

715:                                              ; preds = %710
  %716 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %717 unwind label %725

717:                                              ; preds = %715
  br i1 %716, label %718, label %729

718:                                              ; preds = %717
  br label %749

719:                                              ; preds = %709, %686
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #9
  br label %720

720:                                              ; preds = %719, %682
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #9
  br label %969

721:                                              ; preds = %710
  %722 = landingpad { ptr, i32 }
          cleanup
  %723 = extractvalue { ptr, i32 } %722, 0
  store ptr %723, ptr %5, align 8
  %724 = extractvalue { ptr, i32 } %722, 1
  store i32 %724, ptr %6, align 4
  br label %759

725:                                              ; preds = %715
  %726 = landingpad { ptr, i32 }
          cleanup
  %727 = extractvalue { ptr, i32 } %726, 0
  store ptr %727, ptr %5, align 8
  %728 = extractvalue { ptr, i32 } %726, 1
  store i32 %728, ptr %6, align 4
  br label %758

729:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %730 unwind label %735

730:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #9
  %731 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %732 unwind label %739

732:                                              ; preds = %730
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %75, i32 noundef 1, ptr noundef @.str.7, i32 noundef 540, ptr noundef %731)
          to label %733 unwind label %739

733:                                              ; preds = %732
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %734 unwind label %743

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

735:                                              ; preds = %729
  %736 = landingpad { ptr, i32 }
          cleanup
  %737 = extractvalue { ptr, i32 } %736, 0
  store ptr %737, ptr %5, align 8
  %738 = extractvalue { ptr, i32 } %736, 1
  store i32 %738, ptr %6, align 4
  br label %748

739:                                              ; preds = %732, %730
  %740 = landingpad { ptr, i32 }
          cleanup
  %741 = extractvalue { ptr, i32 } %740, 0
  store ptr %741, ptr %5, align 8
  %742 = extractvalue { ptr, i32 } %740, 1
  store i32 %742, ptr %6, align 4
  br label %747

743:                                              ; preds = %733
  %744 = landingpad { ptr, i32 }
          cleanup
  %745 = extractvalue { ptr, i32 } %744, 0
  store ptr %745, ptr %5, align 8
  %746 = extractvalue { ptr, i32 } %744, 1
  store i32 %746, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #9
  br label %747

747:                                              ; preds = %743, %739
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #9
  br label %748

748:                                              ; preds = %747, %735
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  br label %758

749:                                              ; preds = %734, %718
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %73) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %76) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #9
  store i64 0, ptr %77, align 8, !tbaa !40
  %750 = load ptr, ptr %29, align 8, !tbaa !5
  %751 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %750, i32 0, i32 9
  %752 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %751, i64 noundef 0) #9
  %753 = getelementptr inbounds %"class.cascadb::Pivot", ptr %752, i32 0, i32 2
  invoke void @_ZN7testing8internal11CmpHelperNEImmEENS_15AssertionResultEPKcS4_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %76, ptr noundef @.str.26, ptr noundef @.str.184, ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull align 8 dereferenceable(8) %753)
          to label %754 unwind label %760

754:                                              ; preds = %749
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  %755 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %76)
          to label %756 unwind label %764

756:                                              ; preds = %754
  br i1 %755, label %757, label %768

757:                                              ; preds = %756
  br label %788

758:                                              ; preds = %748, %725
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #9
  br label %759

759:                                              ; preds = %758, %721
  call void @llvm.lifetime.end.p0(i64 16, ptr %73) #9
  br label %969

760:                                              ; preds = %749
  %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
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  br label %804

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
  br label %803

768:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %769 unwind label %774

769:                                              ; preds = %768
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  %770 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %76)
          to label %771 unwind label %778

771:                                              ; preds = %769
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %79, i32 noundef 1, ptr noundef @.str.7, i32 noundef 541, ptr noundef %770)
          to label %772 unwind label %778

772:                                              ; preds = %771
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %773 unwind label %782

773:                                              ; preds = %772
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  br label %788

774:                                              ; preds = %768
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %5, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %6, align 4
  br label %787

778:                                              ; preds = %771, %769
  %779 = landingpad { ptr, i32 }
          cleanup
  %780 = extractvalue { ptr, i32 } %779, 0
  store ptr %780, ptr %5, align 8
  %781 = extractvalue { ptr, i32 } %779, 1
  store i32 %781, ptr %6, align 4
  br label %786

782:                                              ; preds = %772
  %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
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #9
  br label %786

786:                                              ; preds = %782, %778
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #9
  br label %787

787:                                              ; preds = %786, %774
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  br label %803

788:                                              ; preds = %773, %757
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #9
  %789 = load ptr, ptr %21, align 8, !tbaa !5
  %790 = load ptr, ptr %29, align 8, !tbaa !5
  %791 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %790, i32 0, i32 9
  %792 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %791, i64 noundef 0) #9
  %793 = getelementptr inbounds %"class.cascadb::Pivot", ptr %792, i32 0, i32 2
  %794 = load i64, ptr %793, align 8, !tbaa !41
  %795 = invoke noundef ptr @_ZN7cascadb4Tree9load_nodeEmb(ptr noundef nonnull align 8 dereferenceable(184) %789, i64 noundef %794, i1 noundef zeroext false)
          to label %796 unwind label %805

796:                                              ; preds = %788
  store ptr %795, ptr %80, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %81) #9
  %797 = load ptr, ptr %80, align 8, !tbaa !5
  %798 = icmp ne ptr %797, null
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %81, i1 noundef zeroext %798)
          to label %799 unwind label %809

799:                                              ; preds = %796
  %800 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %81)
          to label %801 unwind label %813

801:                                              ; preds = %799
  br i1 %800, label %802, label %817

802:                                              ; preds = %801
  br label %843

803:                                              ; preds = %787, %764
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #9
  br label %804

804:                                              ; preds = %803, %760
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #9
  br label %969

805:                                              ; preds = %924, %922, %920, %788
  %806 = landingpad { ptr, i32 }
          cleanup
  %807 = extractvalue { ptr, i32 } %806, 0
  store ptr %807, ptr %5, align 8
  %808 = extractvalue { ptr, i32 } %806, 1
  store i32 %808, ptr %6, align 4
  br label %968

809:                                              ; preds = %796
  %810 = landingpad { ptr, i32 }
          cleanup
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %5, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %6, align 4
  br label %852

813:                                              ; preds = %799
  %814 = landingpad { ptr, i32 }
          cleanup
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %5, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %6, align 4
  br label %851

817:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %818 unwind label %824

818:                                              ; preds = %817
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #9
  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.185, ptr noundef @.str.17, ptr noundef @.str.18)
          to label %819 unwind label %828

819:                                              ; preds = %818
  %820 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %84)
          to label %821 unwind label %832

821:                                              ; preds = %819
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %83, i32 noundef 1, ptr noundef @.str.7, i32 noundef 543, ptr noundef %820)
          to label %822 unwind label %832

822:                                              ; preds = %821
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %823 unwind label %836

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

824:                                              ; preds = %817
  %825 = landingpad { ptr, i32 }
          cleanup
  %826 = extractvalue { ptr, i32 } %825, 0
  store ptr %826, ptr %5, align 8
  %827 = extractvalue { ptr, i32 } %825, 1
  store i32 %827, ptr %6, align 4
  br label %842

828:                                              ; preds = %818
  %829 = landingpad { ptr, i32 }
          cleanup
  %830 = extractvalue { ptr, i32 } %829, 0
  store ptr %830, ptr %5, align 8
  %831 = extractvalue { ptr, i32 } %829, 1
  store i32 %831, ptr %6, align 4
  br label %841

832:                                              ; preds = %821, %819
  %833 = landingpad { ptr, i32 }
          cleanup
  %834 = extractvalue { ptr, i32 } %833, 0
  store ptr %834, ptr %5, align 8
  %835 = extractvalue { ptr, i32 } %833, 1
  store i32 %835, ptr %6, align 4
  br label %840

836:                                              ; preds = %822
  %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
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #9
  br label %840

840:                                              ; preds = %836, %832
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84) #9
  br label %841

841:                                              ; preds = %840, %828
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  br label %842

842:                                              ; preds = %841, %824
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  br label %851

843:                                              ; preds = %823, %802
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %85) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  store i32 1, ptr %86, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #9
  %844 = load ptr, ptr %80, align 8, !tbaa !5
  %845 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %844, i32 0, i32 9
  %846 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %845) #9
  store i64 %846, ptr %87, align 8, !tbaa !40
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %85, ptr noundef @.str.52, ptr noundef @.str.97, ptr noundef nonnull align 4 dereferenceable(4) %86, ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %847 unwind label %853

847:                                              ; preds = %843
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  %848 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %85)
          to label %849 unwind label %857

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

850:                                              ; preds = %849
  br label %881

851:                                              ; preds = %842, %813
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #9
  br label %852

852:                                              ; preds = %851, %809
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #9
  br label %968

853:                                              ; preds = %843
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %5, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %891

857:                                              ; preds = %847
  %858 = landingpad { ptr, i32 }
          cleanup
  %859 = extractvalue { ptr, i32 } %858, 0
  store ptr %859, ptr %5, align 8
  %860 = extractvalue { ptr, i32 } %858, 1
  store i32 %860, ptr %6, align 4
  br label %890

861:                                              ; preds = %849
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %862 unwind label %867

862:                                              ; preds = %861
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #9
  %863 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %85)
          to label %864 unwind label %871

864:                                              ; preds = %862
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %89, i32 noundef 1, ptr noundef @.str.7, i32 noundef 544, ptr noundef %863)
          to label %865 unwind label %871

865:                                              ; preds = %864
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %866 unwind label %875

866:                                              ; preds = %865
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br label %881

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

871:                                              ; preds = %864, %862
  %872 = landingpad { ptr, i32 }
          cleanup
  %873 = extractvalue { ptr, i32 } %872, 0
  store ptr %873, ptr %5, align 8
  %874 = extractvalue { ptr, i32 } %872, 1
  store i32 %874, ptr %6, align 4
  br label %879

875:                                              ; preds = %865
  %876 = landingpad { ptr, i32 }
          cleanup
  %877 = extractvalue { ptr, i32 } %876, 0
  store ptr %877, ptr %5, align 8
  %878 = extractvalue { ptr, i32 } %876, 1
  store i32 %878, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #9
  br label %879

879:                                              ; preds = %875, %871
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #9
  br label %880

880:                                              ; preds = %879, %867
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br label %890

881:                                              ; preds = %866, %850
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %85) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #9
  %882 = load ptr, ptr %80, align 8, !tbaa !5
  %883 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %882, i32 0, i32 9
  %884 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %883, i64 noundef 0) #9
  %885 = getelementptr inbounds %"class.cascadb::Pivot", ptr %884, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %90, ptr noundef @.str.63, ptr noundef @.str.186, ptr noundef nonnull align 1 dereferenceable(2) @.str.49, ptr noundef nonnull align 8 dereferenceable(12) %885)
          to label %886 unwind label %892

886:                                              ; preds = %881
  %887 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %90)
          to label %888 unwind label %896

888:                                              ; preds = %886
  br i1 %887, label %889, label %900

889:                                              ; preds = %888
  br label %920

890:                                              ; preds = %880, %857
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %85) #9
  br label %891

891:                                              ; preds = %890, %853
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #9
  br label %968

892:                                              ; preds = %881
  %893 = landingpad { ptr, i32 }
          cleanup
  %894 = extractvalue { ptr, i32 } %893, 0
  store ptr %894, ptr %5, align 8
  %895 = extractvalue { ptr, i32 } %893, 1
  store i32 %895, ptr %6, align 4
  br label %967

896:                                              ; preds = %886
  %897 = landingpad { ptr, i32 }
          cleanup
  %898 = extractvalue { ptr, i32 } %897, 0
  store ptr %898, ptr %5, align 8
  %899 = extractvalue { ptr, i32 } %897, 1
  store i32 %899, ptr %6, align 4
  br label %966

900:                                              ; preds = %888
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %901 unwind label %906

901:                                              ; preds = %900
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #9
  %902 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %90)
          to label %903 unwind label %910

903:                                              ; preds = %901
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %92, i32 noundef 1, ptr noundef @.str.7, i32 noundef 545, ptr noundef %902)
          to label %904 unwind label %910

904:                                              ; preds = %903
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %905 unwind label %914

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

906:                                              ; preds = %900
  %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 %919

910:                                              ; preds = %903, %901
  %911 = landingpad { ptr, i32 }
          cleanup
  %912 = extractvalue { ptr, i32 } %911, 0
  store ptr %912, ptr %5, align 8
  %913 = extractvalue { ptr, i32 } %911, 1
  store i32 %913, ptr %6, align 4
  br label %918

914:                                              ; preds = %904
  %915 = landingpad { ptr, i32 }
          cleanup
  %916 = extractvalue { ptr, i32 } %915, 0
  store ptr %916, ptr %5, align 8
  %917 = extractvalue { ptr, i32 } %915, 1
  store i32 %917, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #9
  br label %918

918:                                              ; preds = %914, %910
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #9
  br label %919

919:                                              ; preds = %918, %906
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  br label %966

920:                                              ; preds = %905, %889
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #9
  %921 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7dec_refEv(ptr noundef nonnull align 8 dereferenceable(200) %921)
          to label %922 unwind label %805

922:                                              ; preds = %920
  %923 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7dec_refEv(ptr noundef nonnull align 8 dereferenceable(200) %923)
          to label %924 unwind label %805

924:                                              ; preds = %922
  %925 = load ptr, ptr %80, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7dec_refEv(ptr noundef nonnull align 8 dereferenceable(200) %925)
          to label %926 unwind label %805

926:                                              ; preds = %924
  %927 = load ptr, ptr %21, align 8, !tbaa !5
  %928 = icmp eq ptr %927, null
  br i1 %928, label %930, label %929

929:                                              ; preds = %926
  call void @_ZN7cascadb4TreeD1Ev(ptr noundef nonnull align 8 dereferenceable(184) %927) #9
  call void @_ZdlPvm(ptr noundef %927, i64 noundef 184) #11
  br label %930

930:                                              ; preds = %929, %926
  %931 = load ptr, ptr %16, align 8, !tbaa !5
  %932 = icmp eq ptr %931, null
  br i1 %932, label %934, label %933

933:                                              ; preds = %930
  call void @_ZN7cascadb5CacheD1Ev(ptr noundef nonnull align 8 dereferenceable(432) %931) #9
  call void @_ZdlPvm(ptr noundef %931, i64 noundef 432) #11
  br label %934

934:                                              ; preds = %933, %930
  %935 = load ptr, ptr %10, align 8, !tbaa !5
  %936 = icmp eq ptr %935, null
  br i1 %936, label %938, label %937

937:                                              ; preds = %934
  call void @_ZN7cascadb6LayoutD1Ev(ptr noundef nonnull align 8 dereferenceable(600) %935) #9
  call void @_ZdlPvm(ptr noundef %935, i64 noundef 600) #11
  br label %938

938:                                              ; preds = %937, %934
  %939 = load ptr, ptr %7, align 8, !tbaa !5
  %940 = icmp eq ptr %939, null
  br i1 %940, label %945, label %941

941:                                              ; preds = %938
  %942 = load ptr, ptr %939, align 8, !tbaa !16
  %943 = getelementptr inbounds ptr, ptr %942, i64 1
  %944 = load ptr, ptr %943, align 8
  call void %944(ptr noundef nonnull align 8 dereferenceable(8) %939) #9
  br label %945

945:                                              ; preds = %941, %938
  %946 = load ptr, ptr %4, align 8, !tbaa !5
  %947 = icmp eq ptr %946, null
  br i1 %947, label %952, label %948

948:                                              ; preds = %945
  %949 = load ptr, ptr %946, align 8, !tbaa !16
  %950 = getelementptr inbounds ptr, ptr %949, i64 1
  %951 = load ptr, ptr %950, align 8
  call void %951(ptr noundef nonnull align 8 dereferenceable(8) %946) #9
  br label %952

952:                                              ; preds = %948, %945
  %953 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  %954 = load ptr, ptr %953, align 8, !tbaa !9
  %955 = icmp eq ptr %954, null
  br i1 %955, label %960, label %956

956:                                              ; preds = %952
  %957 = load ptr, ptr %954, align 8, !tbaa !16
  %958 = getelementptr inbounds ptr, ptr %957, i64 2
  %959 = load ptr, ptr %958, align 8
  call void %959(ptr noundef nonnull align 8 dereferenceable(8) %954) #9
  br label %960

960:                                              ; preds = %956, %952
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  call void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  store i32 0, ptr %15, align 4
  br label %961

961:                                              ; preds = %960, %265
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %962

962:                                              ; preds = %961, %208
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %963

963:                                              ; preds = %962, %162
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #9
  call void @llvm.lifetime.end.p0(i64 104, ptr %3) #9
  %964 = load i32, ptr %15, align 4
  switch i32 %964, label %981 [
    i32 0, label %965
    i32 1, label %965
  ]

965:                                              ; preds = %963, %963
  ret void

966:                                              ; preds = %919, %896
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #9
  br label %967

967:                                              ; preds = %966, %892
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #9
  br label %968

968:                                              ; preds = %967, %891, %852, %805
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  br label %969

969:                                              ; preds = %968, %804, %759, %720, %681, %643, %601, %597, %596, %539, %500, %458, %454, %453, %396, %354, %350, %346
  call void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #9
  br label %970

970:                                              ; preds = %969, %342, %338
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %971

971:                                              ; preds = %970, %337, %233
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %972

972:                                              ; preds = %971, %221, %173
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %973

973:                                              ; preds = %972, %172, %127
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  br label %974

974:                                              ; preds = %973, %126
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  br label %975

975:                                              ; preds = %974, %114
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #9
  call void @llvm.lifetime.end.p0(i64 104, ptr %3) #9
  br label %976

976:                                              ; preds = %975
  %977 = load ptr, ptr %5, align 8
  %978 = load i32, ptr %6, align 4
  %979 = insertvalue { ptr, i32 } poison, ptr %977, 0
  %980 = insertvalue { ptr, i32 } %979, i32 %978, 1
  resume { ptr, i32 } %980

981:                                              ; preds = %963
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal11CmpHelperNEImmEENS_15AssertionResultEPKcS4_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

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 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { 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 24}
!16 = !{!17, !17, i64 0}
!17 = !{!"vtable pointer", !8, i64 0}
!18 = !{!19, !14, i64 212}
!19 = !{!"_ZTSN7cascadb9InnerNodeE", !20, i64 0, !14, i64 212, !11, i64 216, !6, i64 224, !28, i64 232, !12, i64 248, !12, i64 252, !12, i64 256, !29, i64 260, !30, i64 264, !11, i64 288, !11, i64 296, !11, i64 304}
!20 = !{!"_ZTSN7cascadb8DataNodeE", !21, i64 0, !6, i64 200, !27, i64 208}
!21 = !{!"_ZTSN7cascadb4NodeE", !22, i64 8, !11, i64 40, !24, i64 48, !14, i64 96, !14, i64 97, !14, i64 98, !25, i64 104, !25, i64 120, !12, i64 136, !12, i64 140, !26, i64 144}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !11, i64 8, !7, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!24 = !{!"_ZTSN7cascadb5MutexE", !14, i64 0, !7, i64 8}
!25 = !{!"_ZTS7timeval", !11, i64 0, !11, i64 8}
!26 = !{!"_ZTSN7cascadb6RWLockE", !7, i64 0}
!27 = !{!"_ZTSN7cascadb10NodeStatusE", !7, i64 0}
!28 = !{!"_ZTSN7cascadb5SliceE", !6, i64 0, !12, i64 8}
!29 = !{!"short", !7, i64 0}
!30 = !{!"_ZTSSt6vectorIN7cascadb5PivotESaIS1_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIN7cascadb5PivotESaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIN7cascadb5PivotESaIS1_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN7cascadb5PivotESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!34 = !{!21, !11, i64 40}
!35 = !{!19, !11, i64 216}
!36 = !{!19, !6, i64 224}
!37 = !{!19, !11, i64 296}
!38 = !{!19, !11, i64 304}
!39 = !{!12, !12, i64 0}
!40 = !{!11, !11, i64 0}
!41 = !{!42, !11, i64 32}
!42 = !{!"_ZTSN7cascadb5PivotE", !28, i64 0, !28, i64 16, !11, i64 32, !6, i64 40, !12, i64 48, !12, i64 52, !12, i64 56, !29, i64 60}


; 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.std::vector.45" = type { %"struct.std::_Vector_base.46" }
%"struct.std::_Vector_base.46" = type { %"struct.std::_Vector_base<cascadb::DataNode *, std::allocator<cascadb::DataNode *>>::_Vector_impl" }
%"struct.std::_Vector_base<cascadb::DataNode *, std::allocator<cascadb::DataNode *>>::_Vector_impl" = type { %"struct.std::_Vector_base<cascadb::DataNode *, std::allocator<cascadb::DataNode *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cascadb::DataNode *, std::allocator<cascadb::DataNode *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.cascadb::Slice" = type <{ ptr, i32, [4 x i8] }>

@.str.7 = external hidden unnamed_addr constant [64 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.26 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [19 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 @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef) unnamed_addr #3 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

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

; 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 @_ZN7cascadb4Node7dec_refEv(ptr noundef nonnull align 8 dereferenceable(200)) 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
declare dso_local void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef) unnamed_addr #4 align 2

declare noundef ptr @_ZN7cascadb4Tree14new_inner_nodeEv(ptr noundef nonnull align 8 dereferenceable(184)) local_unnamed_addr #5

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

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

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

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

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

declare void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312), ptr, i32, i64 noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN20InnerNode_split_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 %"class.std::vector.45", align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"class.cascadb::Slice", align 8
  %23 = alloca %"class.testing::AssertionResult", align 8
  %24 = alloca i32, align 4
  %25 = alloca i64, align 8
  %26 = alloca %"class.testing::Message", align 8
  %27 = alloca %"class.testing::internal::AssertHelper", align 8
  %28 = alloca %"class.testing::AssertionResult", align 8
  %29 = alloca %"class.testing::Message", align 8
  %30 = alloca %"class.testing::internal::AssertHelper", align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"class.cascadb::Slice", align 8
  %34 = alloca %"class.testing::AssertionResult", align 8
  %35 = alloca i32, align 4
  %36 = alloca i64, align 8
  %37 = alloca %"class.testing::Message", align 8
  %38 = alloca %"class.testing::internal::AssertHelper", align 8
  %39 = alloca %"class.testing::AssertionResult", align 8
  %40 = alloca %"class.testing::Message", align 8
  %41 = alloca %"class.testing::internal::AssertHelper", align 8
  %42 = alloca %"class.testing::AssertionResult", align 8
  %43 = alloca %"class.testing::Message", align 8
  %44 = alloca %"class.testing::internal::AssertHelper", align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca %"class.cascadb::Slice", align 8
  %48 = alloca %"class.testing::AssertionResult", align 8
  %49 = alloca i32, align 4
  %50 = alloca i64, align 8
  %51 = alloca %"class.testing::Message", align 8
  %52 = alloca %"class.testing::internal::AssertHelper", align 8
  %53 = alloca %"class.testing::AssertionResult", align 8
  %54 = alloca %"class.testing::Message", align 8
  %55 = alloca %"class.testing::internal::AssertHelper", align 8
  %56 = alloca %"class.testing::AssertionResult", align 8
  %57 = alloca i32, align 4
  %58 = alloca i64, align 8
  %59 = alloca %"class.testing::Message", align 8
  %60 = alloca %"class.testing::internal::AssertHelper", align 8
  %61 = alloca %"class.testing::AssertionResult", align 8
  %62 = alloca %"class.testing::Message", align 8
  %63 = alloca %"class.testing::internal::AssertHelper", align 8
  %64 = alloca %"class.testing::AssertionResult", align 8
  %65 = alloca i64, align 8
  %66 = alloca %"class.testing::Message", align 8
  %67 = alloca %"class.testing::internal::AssertHelper", align 8
  %68 = alloca %"class.testing::AssertionResult", align 8
  %69 = alloca %"class.testing::Message", align 8
  %70 = alloca %"class.testing::internal::AssertHelper", align 8
  %71 = alloca %"class.testing::internal::String", align 8
  %72 = alloca %"class.testing::AssertionResult", align 8
  %73 = alloca i32, align 4
  %74 = alloca i64, align 8
  %75 = alloca %"class.testing::Message", align 8
  %76 = alloca %"class.testing::internal::AssertHelper", align 8
  %77 = alloca %"class.testing::AssertionResult", align 8
  %78 = alloca %"class.testing::Message", align 8
  %79 = 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)
  %80 = call noalias noundef nonnull dereferenceable(8) ptr @_Znwm(i64 noundef 8) #9
  store i64 0, ptr %80, align 8
  call void @_ZN7cascadb17LexicalComparatorC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #8
  %81 = getelementptr inbounds i8, ptr %2, i64 8
  store ptr %80, ptr %81, align 8, !tbaa !5
  %82 = getelementptr inbounds i8, ptr %2, i64 24
  store i64 3, ptr %82, align 8, !tbaa !14
  %83 = call noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #9
  invoke void @_ZN7cascadb12RAMDirectoryC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %83)
          to label %84 unwind label %95

84:                                               ; 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 %85 unwind label %97

85:                                               ; preds = %84
  %86 = load ptr, ptr %83, align 8, !tbaa !15
  %87 = getelementptr inbounds i8, ptr %86, i64 40
  %88 = load ptr, ptr %87, align 8
  %89 = invoke noundef ptr %88(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %90 unwind label %99

90:                                               ; preds = %85
  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
  %91 = call noalias noundef nonnull dereferenceable(600) ptr @_Znwm(i64 noundef 600) #9
  invoke void @_ZN7cascadb6LayoutC1EPNS_7AIOFileEmRKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(600) %91, ptr noundef %89, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(101) %2)
          to label %92 unwind label %102

92:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %93 = call noundef zeroext i1 @_ZN7cascadb6Layout4initEb(ptr noundef nonnull align 8 dereferenceable(600) %91, i1 noundef zeroext true)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %5, i1 noundef zeroext %93)
  %94 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %5)
  br i1 %94, label %121, label %104

95:                                               ; preds = %1
  %96 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %83, i64 noundef 104) #10
  br label %552

97:                                               ; preds = %84
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %101

99:                                               ; preds = %85
  %100 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  br label %101

101:                                              ; preds = %99, %97
  %.pn = phi { ptr, i32 } [ %100, %99 ], [ %98, %97 ]
  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 %552

102:                                              ; preds = %90
  %103 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %91, i64 noundef 600) #10
  br label %552

104:                                              ; preds = %92
  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 %105 unwind label %110

105:                                              ; preds = %104
  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 %106 unwind label %112

106:                                              ; preds = %105
  %107 = 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 486, ptr noundef %107)
          to label %108 unwind label %114

108:                                              ; preds = %106
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %109 unwind label %116

109:                                              ; preds = %108
  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 %549

110:                                              ; preds = %104
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %120

112:                                              ; preds = %105
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %119

114:                                              ; preds = %106
  %115 = landingpad { ptr, i32 }
          cleanup
  br label %118

116:                                              ; preds = %108
  %117 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  br label %118

118:                                              ; preds = %116, %114
  %.pn139 = phi { ptr, i32 } [ %117, %116 ], [ %115, %114 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #8
  br label %119

119:                                              ; preds = %118, %112
  %.pn139.pn = phi { ptr, i32 } [ %.pn139, %118 ], [ %113, %112 ]
  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 %120

120:                                              ; preds = %119, %110
  %.pn139.pn.pn = phi { ptr, i32 } [ %.pn139.pn, %119 ], [ %111, %110 ]
  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 %552

121:                                              ; preds = %92
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  %122 = call noalias noundef nonnull dereferenceable(432) ptr @_Znwm(i64 noundef 432) #9
  invoke void @_ZN7cascadb5CacheC1ERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(432) %122, ptr noundef nonnull align 8 dereferenceable(101) %2)
          to label %123 unwind label %126

123:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #8
  %124 = call noundef zeroext i1 @_ZN7cascadb5Cache4initEv(ptr noundef nonnull align 8 dereferenceable(432) %122)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext %124)
  %125 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %9)
  br i1 %125, label %145, label %128

126:                                              ; preds = %121
  %127 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %122, i64 noundef 432) #10
  br label %552

128:                                              ; preds = %123
  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 %129 unwind label %134

129:                                              ; preds = %128
  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 %130 unwind label %136

130:                                              ; preds = %129
  %131 = 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 488, ptr noundef %131)
          to label %132 unwind label %138

132:                                              ; preds = %130
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %133 unwind label %140

133:                                              ; preds = %132
  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 %549

134:                                              ; preds = %128
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %144

136:                                              ; preds = %129
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %143

138:                                              ; preds = %130
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %142

140:                                              ; preds = %132
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  br label %142

142:                                              ; preds = %140, %138
  %.pn143 = phi { ptr, i32 } [ %141, %140 ], [ %139, %138 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #8
  br label %143

143:                                              ; preds = %142, %136
  %.pn143.pn = phi { ptr, i32 } [ %.pn143, %142 ], [ %137, %136 ]
  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 %144

144:                                              ; preds = %143, %134
  %.pn143.pn.pn = phi { ptr, i32 } [ %.pn143.pn, %143 ], [ %135, %134 ]
  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 %552

145:                                              ; preds = %123
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #8
  %146 = 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 %147 unwind label %151

147:                                              ; preds = %145
  invoke void @_ZN7cascadb4TreeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7OptionsEPNS_5CacheEPNS_6LayoutE(ptr noundef nonnull align 8 dereferenceable(184) %146, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(101) %2, ptr noundef nonnull %122, ptr noundef nonnull %91)
          to label %148 unwind label %153

148:                                              ; preds = %147
  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
  %149 = call noundef zeroext i1 @_ZN7cascadb4Tree4initEv(ptr noundef nonnull align 8 dereferenceable(184) %146)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %15, i1 noundef zeroext %149)
  %150 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %15)
  br i1 %150, label %173, label %156

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

153:                                              ; preds = %147
  %154 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %155

155:                                              ; preds = %153, %151
  %.pn147 = phi { ptr, i32 } [ %154, %153 ], [ %152, %151 ]
  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 %146, i64 noundef 184) #10
  br label %552

156:                                              ; preds = %148
  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 %157 unwind label %162

157:                                              ; preds = %156
  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 %158 unwind label %164

158:                                              ; preds = %157
  %159 = 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 490, ptr noundef %159)
          to label %160 unwind label %166

160:                                              ; preds = %158
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %161 unwind label %168

161:                                              ; preds = %160
  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 %549

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

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

166:                                              ; preds = %158
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %170

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

170:                                              ; preds = %168, %166
  %.pn149 = phi { ptr, i32 } [ %169, %168 ], [ %167, %166 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  br label %171

171:                                              ; preds = %170, %164
  %.pn149.pn = phi { ptr, i32 } [ %.pn149, %170 ], [ %165, %164 ]
  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 %172

172:                                              ; preds = %171, %162
  %.pn149.pn.pn = phi { ptr, i32 } [ %.pn149.pn, %171 ], [ %163, %162 ]
  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 %552

173:                                              ; preds = %148
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  %174 = call noundef ptr @_ZN7cascadb4Tree14new_inner_nodeEv(ptr noundef nonnull align 8 dereferenceable(184) %146)
  %175 = call noundef ptr @_ZN7cascadb4Tree14new_inner_nodeEv(ptr noundef nonnull align 8 dereferenceable(184) %146)
  %176 = getelementptr inbounds i8, ptr %174, i64 212
  store i8 0, ptr %176, align 4, !tbaa !17
  %177 = getelementptr inbounds i8, ptr %175, i64 40
  %178 = load i64, ptr %177, align 8, !tbaa !33
  %179 = getelementptr inbounds i8, ptr %174, i64 216
  store i64 %178, ptr %179, align 8, !tbaa !34
  %180 = call noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #9
  %181 = load ptr, ptr %81, align 8, !tbaa !5
  invoke void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104) %180, ptr noundef %181)
          to label %182 unwind label %210

182:                                              ; preds = %173
  %183 = getelementptr inbounds i8, ptr %174, i64 224
  store ptr %180, ptr %183, align 8, !tbaa !35
  %184 = getelementptr inbounds i8, ptr %174, i64 296
  store i64 0, ptr %184, align 8, !tbaa !36
  %185 = call noundef i64 @_ZNK7cascadb6MsgBuf4sizeEv(ptr noundef nonnull align 8 dereferenceable(104) %180)
  %186 = getelementptr inbounds i8, ptr %174, i64 304
  store i64 %185, ptr %186, align 8, !tbaa !37
  %187 = getelementptr inbounds i8, ptr %175, i64 212
  store i8 0, ptr %187, align 4, !tbaa !17
  %188 = getelementptr inbounds i8, ptr %175, i64 216
  store i64 102, ptr %188, align 8, !tbaa !34
  %189 = call noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #9
  %190 = load ptr, ptr %81, align 8, !tbaa !5
  invoke void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104) %189, ptr noundef %190)
          to label %191 unwind label %212

191:                                              ; preds = %182
  %192 = getelementptr inbounds i8, ptr %175, i64 224
  store ptr %189, ptr %192, align 8, !tbaa !35
  %193 = getelementptr inbounds i8, ptr %175, i64 296
  store i64 0, ptr %193, align 8, !tbaa !36
  %194 = call noundef i64 @_ZNK7cascadb6MsgBuf4sizeEv(ptr noundef nonnull align 8 dereferenceable(104) %189)
  %195 = getelementptr inbounds i8, ptr %175, i64 304
  store i64 %194, ptr %195, align 8, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #8
  call void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #8
  store ptr %174, ptr %20, align 8, !tbaa !38
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %196 unwind label %214

196:                                              ; preds = %191
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  store ptr %175, ptr %21, align 8, !tbaa !38
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %197 unwind label %216

197:                                              ; preds = %196
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %174)
          to label %198 unwind label %218

198:                                              ; preds = %197
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %174)
          to label %199 unwind label %218

199:                                              ; preds = %198
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %175)
          to label %200 unwind label %218

200:                                              ; preds = %199
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %175)
          to label %201 unwind label %218

201:                                              ; preds = %200
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %22, ptr noundef nonnull @.str.48)
  %202 = load ptr, ptr %22, align 8
  %203 = getelementptr inbounds i8, ptr %22, i64 8
  %204 = load i32, ptr %203, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %175, ptr %202, i32 %204, i64 noundef 103, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %205 unwind label %218

205:                                              ; preds = %201
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #8
  store i32 1, ptr %24, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  %206 = getelementptr inbounds i8, ptr %175, i64 264
  %207 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #8
  store i64 %207, ptr %25, align 8, !tbaa !40
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %23, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.108, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %208 unwind label %220

208:                                              ; preds = %205
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #8
  %209 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
  br i1 %209, label %236, label %222

210:                                              ; preds = %173
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %180, i64 noundef 104) #10
  br label %552

212:                                              ; preds = %182
  %213 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %189, i64 noundef 104) #10
  br label %552

214:                                              ; preds = %191
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  br label %551

216:                                              ; preds = %196
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  br label %551

218:                                              ; preds = %340, %339, %338, %337, %336, %263, %262, %261, %260, %259, %201, %200, %199, %198, %197
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %551

220:                                              ; preds = %205
  %221 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #8
  br label %240

222:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %223 unwind label %228

223:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  %224 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %225 unwind label %230

225:                                              ; preds = %223
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %27, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 516, ptr noundef %224)
          to label %226 unwind label %230

226:                                              ; preds = %225
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %227 unwind label %232

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

228:                                              ; preds = %222
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %235

230:                                              ; preds = %225, %223
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %234

232:                                              ; preds = %226
  %233 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  br label %234

234:                                              ; preds = %232, %230
  %.pn153 = phi { ptr, i32 } [ %233, %232 ], [ %231, %230 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  br label %235

235:                                              ; preds = %234, %228
  %.pn153.pn = phi { ptr, i32 } [ %.pn153, %234 ], [ %229, %228 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #8
  br label %240

236:                                              ; preds = %208, %227
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #8
  %237 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef 0) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %28, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.141, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %237)
          to label %238 unwind label %241

238:                                              ; preds = %236
  %239 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %28)
  br i1 %239, label %257, label %243

240:                                              ; preds = %235, %220
  %.pn153.pn.pn = phi { ptr, i32 } [ %.pn153.pn, %235 ], [ %221, %220 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  br label %551

241:                                              ; preds = %236
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %271

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

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

246:                                              ; preds = %244
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %30, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 517, ptr noundef %245)
          to label %247 unwind label %251

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

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

249:                                              ; preds = %243
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %256

251:                                              ; preds = %246, %244
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %255

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

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

256:                                              ; preds = %255, %249
  %.pn157.pn = phi { ptr, i32 } [ %.pn157, %255 ], [ %250, %249 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #8
  br label %271

257:                                              ; preds = %238, %248
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #8
  store ptr %174, ptr %31, align 8, !tbaa !38
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %258 unwind label %272

258:                                              ; preds = %257
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #8
  store ptr %175, ptr %32, align 8, !tbaa !38
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %259 unwind label %274

259:                                              ; preds = %258
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %174)
          to label %260 unwind label %218

260:                                              ; preds = %259
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %174)
          to label %261 unwind label %218

261:                                              ; preds = %260
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %175)
          to label %262 unwind label %218

262:                                              ; preds = %261
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %175)
          to label %263 unwind label %218

263:                                              ; preds = %262
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %33, ptr noundef nonnull @.str.30)
  %264 = load ptr, ptr %33, align 8
  %265 = getelementptr inbounds i8, ptr %33, i64 8
  %266 = load i32, ptr %265, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %175, ptr %264, i32 %266, i64 noundef 104, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %267 unwind label %218

267:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #8
  store i32 2, ptr %35, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #8
  %268 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #8
  store i64 %268, ptr %36, align 8, !tbaa !40
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %34, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.108, ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %269 unwind label %276

269:                                              ; preds = %267
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #8
  %270 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
  br i1 %270, label %292, label %278

271:                                              ; preds = %256, %241
  %.pn157.pn.pn = phi { ptr, i32 } [ %.pn157.pn, %256 ], [ %242, %241 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #8
  br label %551

272:                                              ; preds = %257
  %273 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  br label %551

274:                                              ; preds = %258
  %275 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  br label %551

276:                                              ; preds = %267
  %277 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #8
  br label %296

278:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %279 unwind label %284

279:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #8
  %280 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
          to label %281 unwind label %286

281:                                              ; preds = %279
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %38, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 526, ptr noundef %280)
          to label %282 unwind label %286

282:                                              ; preds = %281
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %283 unwind label %288

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

284:                                              ; preds = %278
  %285 = landingpad { ptr, i32 }
          cleanup
  br label %291

286:                                              ; preds = %281, %279
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %290

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

290:                                              ; preds = %288, %286
  %.pn161 = phi { ptr, i32 } [ %289, %288 ], [ %287, %286 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  br label %291

291:                                              ; preds = %290, %284
  %.pn161.pn = phi { ptr, i32 } [ %.pn161, %290 ], [ %285, %284 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #8
  br label %296

292:                                              ; preds = %269, %283
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #8
  %293 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef 0) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %39, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.141, ptr noundef nonnull align 1 dereferenceable(2) @.str.30, ptr noundef nonnull align 8 dereferenceable(12) %293)
          to label %294 unwind label %297

294:                                              ; preds = %292
  %295 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
  br i1 %295, label %313, label %299

296:                                              ; preds = %291, %276
  %.pn161.pn.pn = phi { ptr, i32 } [ %.pn161.pn, %291 ], [ %277, %276 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #8
  br label %551

297:                                              ; preds = %292
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %317

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

300:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #8
  %301 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
          to label %302 unwind label %307

302:                                              ; preds = %300
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %41, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 527, ptr noundef %301)
          to label %303 unwind label %307

303:                                              ; preds = %302
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %304 unwind label %309

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

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

307:                                              ; preds = %302, %300
  %308 = landingpad { ptr, i32 }
          cleanup
  br label %311

309:                                              ; preds = %303
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #8
  br label %311

311:                                              ; preds = %309, %307
  %.pn165 = phi { ptr, i32 } [ %310, %309 ], [ %308, %307 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  br label %312

312:                                              ; preds = %311, %305
  %.pn165.pn = phi { ptr, i32 } [ %.pn165, %311 ], [ %306, %305 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  br label %317

313:                                              ; preds = %294, %304
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #8
  %314 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef 1) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %42, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.183, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %314)
          to label %315 unwind label %318

315:                                              ; preds = %313
  %316 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %42)
  br i1 %316, label %334, label %320

317:                                              ; preds = %312, %297
  %.pn165.pn.pn = phi { ptr, i32 } [ %.pn165.pn, %312 ], [ %298, %297 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #8
  br label %551

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

320:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %321 unwind label %326

321:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #8
  %322 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %323 unwind label %328

323:                                              ; preds = %321
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %44, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 528, ptr noundef %322)
          to label %324 unwind label %328

324:                                              ; preds = %323
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %325 unwind label %330

325:                                              ; preds = %324
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  br label %334

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

328:                                              ; preds = %323, %321
  %329 = landingpad { ptr, i32 }
          cleanup
  br label %332

330:                                              ; preds = %324
  %331 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  br label %332

332:                                              ; preds = %330, %328
  %.pn169 = phi { ptr, i32 } [ %331, %330 ], [ %329, %328 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  br label %333

333:                                              ; preds = %332, %326
  %.pn169.pn = phi { ptr, i32 } [ %.pn169, %332 ], [ %327, %326 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #8
  br label %348

334:                                              ; preds = %315, %325
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #8
  store ptr %174, ptr %45, align 8, !tbaa !38
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %335 unwind label %349

335:                                              ; preds = %334
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #8
  store ptr %175, ptr %46, align 8, !tbaa !38
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %336 unwind label %351

336:                                              ; preds = %335
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #8
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %174)
          to label %337 unwind label %218

337:                                              ; preds = %336
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %174)
          to label %338 unwind label %218

338:                                              ; preds = %337
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %175)
          to label %339 unwind label %218

339:                                              ; preds = %338
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %175)
          to label %340 unwind label %218

340:                                              ; preds = %339
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %47, ptr noundef nonnull @.str.49)
  %341 = load ptr, ptr %47, align 8
  %342 = getelementptr inbounds i8, ptr %47, i64 8
  %343 = load i32, ptr %342, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %175, ptr %341, i32 %343, i64 noundef 105, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %344 unwind label %218

344:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #8
  store i32 1, ptr %49, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #8
  %345 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #8
  store i64 %345, ptr %50, align 8, !tbaa !40
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %48, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.108, ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %346 unwind label %353

346:                                              ; preds = %344
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #8
  %347 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %48)
  br i1 %347, label %369, label %355

348:                                              ; preds = %333, %318
  %.pn169.pn.pn = phi { ptr, i32 } [ %.pn169.pn, %333 ], [ %319, %318 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #8
  br label %551

349:                                              ; preds = %334
  %350 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  br label %551

351:                                              ; preds = %335
  %352 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #8
  br label %551

353:                                              ; preds = %344
  %354 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #8
  br label %373

355:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %356 unwind label %361

356:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #8
  %357 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %358 unwind label %363

358:                                              ; preds = %356
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %52, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 537, ptr noundef %357)
          to label %359 unwind label %363

359:                                              ; preds = %358
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %360 unwind label %365

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

361:                                              ; preds = %355
  %362 = landingpad { ptr, i32 }
          cleanup
  br label %368

363:                                              ; preds = %358, %356
  %364 = landingpad { ptr, i32 }
          cleanup
  br label %367

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

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

368:                                              ; preds = %367, %361
  %.pn173.pn = phi { ptr, i32 } [ %.pn173, %367 ], [ %362, %361 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #8
  br label %373

369:                                              ; preds = %346, %360
  call void @_ZN7testing15AssertionResultD2Ev(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.start.p0(i64 16, ptr nonnull %53) #8
  %370 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef 0) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %53, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.141, ptr noundef nonnull align 1 dereferenceable(2) @.str.30, ptr noundef nonnull align 8 dereferenceable(12) %370)
          to label %371 unwind label %374

371:                                              ; preds = %369
  %372 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %53)
  br i1 %372, label %390, label %376

373:                                              ; preds = %368, %353
  %.pn173.pn.pn = phi { ptr, i32 } [ %.pn173.pn, %368 ], [ %354, %353 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #8
  br label %551

374:                                              ; preds = %369
  %375 = landingpad { ptr, i32 }
          cleanup
  br label %395

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

377:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #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) %55, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 538, ptr noundef %378)
          to label %380 unwind label %384

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

381:                                              ; preds = %380
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #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) %55) #8
  br label %388

388:                                              ; preds = %386, %384
  %.pn177 = phi { ptr, i32 } [ %387, %386 ], [ %385, %384 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  br label %389

389:                                              ; preds = %388, %382
  %.pn177.pn = phi { ptr, i32 } [ %.pn177, %388 ], [ %383, %382 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #8
  br label %395

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 %56) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %57) #8
  store i32 1, ptr %57, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #8
  %391 = getelementptr inbounds i8, ptr %174, i64 264
  %392 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %391) #8
  store i64 %392, ptr %58, align 8, !tbaa !40
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %56, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.53, ptr noundef nonnull align 4 dereferenceable(4) %57, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %393 unwind label %396

393:                                              ; preds = %390
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #8
  %394 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
  br i1 %394, label %412, label %398

395:                                              ; preds = %389, %374
  %.pn177.pn.pn = phi { ptr, i32 } [ %.pn177.pn, %389 ], [ %375, %374 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #8
  br label %551

396:                                              ; preds = %390
  %397 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #8
  br label %416

398:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %399 unwind label %404

399:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #8
  %400 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
          to label %401 unwind label %406

401:                                              ; preds = %399
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %60, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 539, ptr noundef %400)
          to label %402 unwind label %406

402:                                              ; preds = %401
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %403 unwind label %408

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

404:                                              ; preds = %398
  %405 = landingpad { ptr, i32 }
          cleanup
  br label %411

406:                                              ; preds = %401, %399
  %407 = landingpad { ptr, i32 }
          cleanup
  br label %410

408:                                              ; preds = %402
  %409 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #8
  br label %410

410:                                              ; preds = %408, %406
  %.pn181 = phi { ptr, i32 } [ %409, %408 ], [ %407, %406 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  br label %411

411:                                              ; preds = %410, %404
  %.pn181.pn = phi { ptr, i32 } [ %.pn181, %410 ], [ %405, %404 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #8
  br label %416

412:                                              ; preds = %393, %403
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #8
  %413 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %391, i64 noundef 0) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %61, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.178, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %413)
          to label %414 unwind label %417

414:                                              ; preds = %412
  %415 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %61)
  br i1 %415, label %433, label %419

416:                                              ; preds = %411, %396
  %.pn181.pn.pn = phi { ptr, i32 } [ %.pn181.pn, %411 ], [ %397, %396 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #8
  br label %551

417:                                              ; preds = %412
  %418 = landingpad { ptr, i32 }
          cleanup
  br label %438

419:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %420 unwind label %425

420:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #8
  %421 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %61)
          to label %422 unwind label %427

422:                                              ; preds = %420
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %63, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 540, ptr noundef %421)
          to label %423 unwind label %427

423:                                              ; preds = %422
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %424 unwind label %429

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

425:                                              ; preds = %419
  %426 = landingpad { ptr, i32 }
          cleanup
  br label %432

427:                                              ; preds = %422, %420
  %428 = landingpad { ptr, i32 }
          cleanup
  br label %431

429:                                              ; preds = %423
  %430 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  br label %431

431:                                              ; preds = %429, %427
  %.pn185 = phi { ptr, i32 } [ %430, %429 ], [ %428, %427 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #8
  br label %432

432:                                              ; preds = %431, %425
  %.pn185.pn = phi { ptr, i32 } [ %.pn185, %431 ], [ %426, %425 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  br label %438

433:                                              ; preds = %414, %424
  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 %64) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #8
  store i64 0, ptr %65, align 8, !tbaa !40
  %434 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %391, i64 noundef 0) #8
  %435 = getelementptr inbounds i8, ptr %434, i64 32
  invoke void @_ZN7testing8internal11CmpHelperNEImmEENS_15AssertionResultEPKcS4_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %64, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.184, ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %435)
          to label %436 unwind label %439

436:                                              ; preds = %433
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #8
  %437 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %64)
  br i1 %437, label %455, label %441

438:                                              ; preds = %432, %417
  %.pn185.pn.pn = phi { ptr, i32 } [ %.pn185.pn, %432 ], [ %418, %417 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #8
  br label %551

439:                                              ; preds = %433
  %440 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #8
  br label %464

441:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %442 unwind label %447

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

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

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

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

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

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

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

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

454:                                              ; preds = %453, %447
  %.pn189.pn = phi { ptr, i32 } [ %.pn189, %453 ], [ %448, %447 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #8
  br label %464

455:                                              ; preds = %436, %446
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #8
  %456 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %391, i64 noundef 0) #8
  %457 = getelementptr inbounds i8, ptr %456, i64 32
  %458 = load i64, ptr %457, align 8, !tbaa !41
  %459 = invoke noundef ptr @_ZN7cascadb4Tree9load_nodeEmb(ptr noundef nonnull align 8 dereferenceable(184) %146, i64 noundef %458, i1 noundef zeroext false)
          to label %460 unwind label %465

460:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %68) #8
  %461 = icmp ne ptr %459, null
  invoke void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %68, i1 noundef zeroext %461)
          to label %462 unwind label %467

462:                                              ; preds = %460
  %463 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %68)
  br i1 %463, label %486, label %469

464:                                              ; preds = %454, %439
  %.pn189.pn.pn = phi { ptr, i32 } [ %.pn189.pn, %454 ], [ %440, %439 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #8
  br label %551

465:                                              ; preds = %531, %530, %529, %455
  %466 = landingpad { ptr, i32 }
          cleanup
  br label %551

467:                                              ; preds = %460
  %468 = landingpad { ptr, i32 }
          cleanup
  br label %491

469:                                              ; preds = %462
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %470 unwind label %475

470:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %71) #8
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.testing::internal::String") align 8 %71, ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef nonnull @.str.185, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18)
          to label %471 unwind label %477

471:                                              ; preds = %470
  %472 = call noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %71)
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %70, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 543, ptr noundef %472)
          to label %473 unwind label %479

473:                                              ; preds = %471
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %474 unwind label %481

474:                                              ; preds = %473
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #8
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #8
  br label %486

475:                                              ; preds = %469
  %476 = landingpad { ptr, i32 }
          cleanup
  br label %485

477:                                              ; preds = %470
  %478 = landingpad { ptr, i32 }
          cleanup
  br label %484

479:                                              ; preds = %471
  %480 = landingpad { ptr, i32 }
          cleanup
  br label %483

481:                                              ; preds = %473
  %482 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #8
  br label %483

483:                                              ; preds = %481, %479
  %.pn193 = phi { ptr, i32 } [ %482, %481 ], [ %480, %479 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71) #8
  br label %484

484:                                              ; preds = %483, %477
  %.pn193.pn = phi { ptr, i32 } [ %.pn193, %483 ], [ %478, %477 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  br label %485

485:                                              ; preds = %484, %475
  %.pn193.pn.pn = phi { ptr, i32 } [ %.pn193.pn, %484 ], [ %476, %475 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #8
  br label %491

486:                                              ; preds = %462, %474
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %72) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %73) #8
  store i32 1, ptr %73, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #8
  %487 = getelementptr inbounds i8, ptr %459, i64 264
  %488 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %487) #8
  store i64 %488, ptr %74, align 8, !tbaa !40
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %72, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.97, ptr noundef nonnull align 4 dereferenceable(4) %73, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %489 unwind label %492

489:                                              ; preds = %486
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %73) #8
  %490 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %72)
  br i1 %490, label %508, label %494

491:                                              ; preds = %485, %467
  %.pn193.pn.pn.pn = phi { ptr, i32 } [ %.pn193.pn.pn, %485 ], [ %468, %467 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #8
  br label %551

492:                                              ; preds = %486
  %493 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %73) #8
  br label %512

494:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %495 unwind label %500

495:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #8
  %496 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %72)
          to label %497 unwind label %502

497:                                              ; preds = %495
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %76, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 544, ptr noundef %496)
          to label %498 unwind label %502

498:                                              ; preds = %497
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %499 unwind label %504

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

500:                                              ; preds = %494
  %501 = landingpad { ptr, i32 }
          cleanup
  br label %507

502:                                              ; preds = %497, %495
  %503 = landingpad { ptr, i32 }
          cleanup
  br label %506

504:                                              ; preds = %498
  %505 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #8
  br label %506

506:                                              ; preds = %504, %502
  %.pn198 = phi { ptr, i32 } [ %505, %504 ], [ %503, %502 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  br label %507

507:                                              ; preds = %506, %500
  %.pn198.pn = phi { ptr, i32 } [ %.pn198, %506 ], [ %501, %500 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #8
  br label %512

508:                                              ; preds = %489, %499
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %77) #8
  %509 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %487, i64 noundef 0) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %77, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.186, ptr noundef nonnull align 1 dereferenceable(2) @.str.49, ptr noundef nonnull align 8 dereferenceable(12) %509)
          to label %510 unwind label %513

510:                                              ; preds = %508
  %511 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %77)
  br i1 %511, label %529, label %515

512:                                              ; preds = %507, %492
  %.pn198.pn.pn = phi { ptr, i32 } [ %.pn198.pn, %507 ], [ %493, %492 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  br label %551

513:                                              ; preds = %508
  %514 = landingpad { ptr, i32 }
          cleanup
  br label %550

515:                                              ; preds = %510
  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 %516 unwind label %521

516:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #8
  %517 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %77)
          to label %518 unwind label %523

518:                                              ; preds = %516
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %79, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 545, ptr noundef %517)
          to label %519 unwind label %523

519:                                              ; preds = %518
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %520 unwind label %525

520:                                              ; preds = %519
  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 %529

521:                                              ; preds = %515
  %522 = landingpad { ptr, i32 }
          cleanup
  br label %528

523:                                              ; preds = %518, %516
  %524 = landingpad { ptr, i32 }
          cleanup
  br label %527

525:                                              ; preds = %519
  %526 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #8
  br label %527

527:                                              ; preds = %525, %523
  %.pn202 = phi { ptr, i32 } [ %526, %525 ], [ %524, %523 ]
  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 %528

528:                                              ; preds = %527, %521
  %.pn202.pn = phi { ptr, i32 } [ %.pn202, %527 ], [ %522, %521 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #8
  br label %550

529:                                              ; preds = %510, %520
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #8
  invoke void @_ZN7cascadb4Node7dec_refEv(ptr noundef nonnull align 8 dereferenceable(200) %174)
          to label %530 unwind label %465

530:                                              ; preds = %529
  invoke void @_ZN7cascadb4Node7dec_refEv(ptr noundef nonnull align 8 dereferenceable(200) %175)
          to label %531 unwind label %465

531:                                              ; preds = %530
  invoke void @_ZN7cascadb4Node7dec_refEv(ptr noundef nonnull align 8 dereferenceable(200) %459)
          to label %532 unwind label %465

532:                                              ; preds = %531
  call void @_ZN7cascadb4TreeD1Ev(ptr noundef nonnull align 8 dereferenceable(184) %146) #8
  call void @_ZdlPvm(ptr noundef nonnull %146, i64 noundef 184) #10
  call void @_ZN7cascadb5CacheD1Ev(ptr noundef nonnull align 8 dereferenceable(432) %122) #8
  call void @_ZdlPvm(ptr noundef nonnull %122, i64 noundef 432) #10
  call void @_ZN7cascadb6LayoutD1Ev(ptr noundef nonnull align 8 dereferenceable(600) %91) #8
  call void @_ZdlPvm(ptr noundef nonnull %91, i64 noundef 600) #10
  %533 = icmp eq ptr %89, null
  br i1 %533, label %538, label %534

534:                                              ; preds = %532
  %535 = load ptr, ptr %89, align 8, !tbaa !15
  %536 = getelementptr inbounds i8, ptr %535, i64 8
  %537 = load ptr, ptr %536, align 8
  call void %537(ptr noundef nonnull align 8 dereferenceable(8) %89) #8
  br label %538

538:                                              ; preds = %532, %534
  %539 = load ptr, ptr %83, align 8, !tbaa !15
  %540 = getelementptr inbounds i8, ptr %539, i64 8
  %541 = load ptr, ptr %540, align 8
  call void %541(ptr noundef nonnull align 8 dereferenceable(8) %83) #8
  %542 = load ptr, ptr %81, align 8, !tbaa !5
  %543 = icmp eq ptr %542, null
  br i1 %543, label %548, label %544

544:                                              ; preds = %538
  %545 = load ptr, ptr %542, align 8, !tbaa !15
  %546 = getelementptr inbounds i8, ptr %545, i64 16
  %547 = load ptr, ptr %546, align 8
  call void %547(ptr noundef nonnull align 8 dereferenceable(8) %542) #8
  br label %548

548:                                              ; preds = %544, %538
  call void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #8
  br label %549

549:                                              ; preds = %161, %133, %109, %548
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %2) #8
  ret void

550:                                              ; preds = %528, %513
  %.pn202.pn.pn = phi { ptr, i32 } [ %.pn202.pn, %528 ], [ %514, %513 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #8
  br label %551

551:                                              ; preds = %465, %491, %512, %550, %464, %438, %416, %395, %373, %351, %349, %348, %317, %296, %274, %272, %271, %240, %218, %216, %214
  %.pn206.pn = phi { ptr, i32 } [ %.pn189.pn.pn, %464 ], [ %.pn185.pn.pn, %438 ], [ %.pn181.pn.pn, %416 ], [ %.pn177.pn.pn, %395 ], [ %.pn173.pn.pn, %373 ], [ %219, %218 ], [ %352, %351 ], [ %350, %349 ], [ %.pn169.pn.pn, %348 ], [ %.pn165.pn.pn, %317 ], [ %.pn161.pn.pn, %296 ], [ %275, %274 ], [ %273, %272 ], [ %.pn157.pn.pn, %271 ], [ %.pn153.pn.pn, %240 ], [ %217, %216 ], [ %215, %214 ], [ %466, %465 ], [ %.pn202.pn.pn, %550 ], [ %.pn198.pn.pn, %512 ], [ %.pn193.pn.pn.pn, %491 ]
  call void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #8
  br label %552

552:                                              ; preds = %101, %126, %144, %210, %212, %551, %155, %172, %120, %102, %95
  %.pn206.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %96, %95 ], [ %.pn, %101 ], [ %.pn139.pn.pn, %120 ], [ %103, %102 ], [ %.pn143.pn.pn, %144 ], [ %127, %126 ], [ %.pn149.pn.pn, %172 ], [ %.pn147, %155 ], [ %.pn206.pn, %551 ], [ %213, %212 ], [ %211, %210 ]
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn206.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal11CmpHelperNEImmEENS_15AssertionResultEPKcS4_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

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 24}
!15 = !{!16, !16, i64 0}
!16 = !{!"vtable pointer", !9, i64 0}
!17 = !{!18, !13, i64 212}
!18 = !{!"_ZTSN7cascadb9InnerNodeE", !19, i64 0, !13, i64 212, !10, i64 216, !7, i64 224, !27, i64 232, !11, i64 248, !11, i64 252, !11, i64 256, !28, i64 260, !29, i64 264, !10, i64 288, !10, i64 296, !10, i64 304}
!19 = !{!"_ZTSN7cascadb8DataNodeE", !20, i64 0, !7, i64 200, !26, i64 208}
!20 = !{!"_ZTSN7cascadb4NodeE", !21, i64 8, !10, i64 40, !23, i64 48, !13, i64 96, !13, i64 97, !13, i64 98, !24, i64 104, !24, i64 120, !11, i64 136, !11, i64 140, !25, i64 144}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !10, i64 8, !8, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!23 = !{!"_ZTSN7cascadb5MutexE", !13, i64 0, !8, i64 8}
!24 = !{!"_ZTS7timeval", !10, i64 0, !10, i64 8}
!25 = !{!"_ZTSN7cascadb6RWLockE", !8, i64 0}
!26 = !{!"_ZTSN7cascadb10NodeStatusE", !8, i64 0}
!27 = !{!"_ZTSN7cascadb5SliceE", !7, i64 0, !11, i64 8}
!28 = !{!"short", !8, i64 0}
!29 = !{!"_ZTSSt6vectorIN7cascadb5PivotESaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseIN7cascadb5PivotESaIS1_EE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIN7cascadb5PivotESaIS1_EE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIN7cascadb5PivotESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!33 = !{!20, !10, i64 40}
!34 = !{!18, !10, i64 216}
!35 = !{!18, !7, i64 224}
!36 = !{!18, !10, i64 296}
!37 = !{!18, !10, i64 304}
!38 = !{!7, !7, i64 0}
!39 = !{!11, !11, i64 0}
!40 = !{!10, !10, i64 0}
!41 = !{!42, !10, i64 32}
!42 = !{!"_ZTSN7cascadb5PivotE", !27, i64 0, !27, i64 16, !10, i64 32, !7, i64 40, !11, i64 48, !11, i64 52, !11, i64 56, !28, i64 60}


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