; LLVM IR from weicao/cascadb :: test/t_node.ll (ZN24InnerNode_add_pivot_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.28 = external hidden unnamed_addr constant [3 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.178 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.180 = 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

; 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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN24InnerNode_add_pivot_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 %"class.std::vector.45", align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"class.cascadb::Slice", align 8
  %33 = alloca %"class.testing::AssertionResult", align 8
  %34 = alloca i32, align 4
  %35 = alloca i64, align 8
  %36 = alloca %"class.testing::Message", align 8
  %37 = alloca %"class.testing::internal::AssertHelper", align 8
  %38 = alloca %"class.testing::AssertionResult", align 8
  %39 = alloca %"class.testing::Message", align 8
  %40 = alloca %"class.testing::internal::AssertHelper", align 8
  %41 = alloca ptr, align 8
  %42 = alloca %"class.cascadb::Slice", align 8
  %43 = alloca %"class.testing::AssertionResult", align 8
  %44 = alloca i32, align 4
  %45 = alloca i64, align 8
  %46 = alloca %"class.testing::Message", align 8
  %47 = alloca %"class.testing::internal::AssertHelper", align 8
  %48 = alloca %"class.testing::AssertionResult", 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 ptr, align 8
  %55 = alloca %"class.cascadb::Slice", 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 %"class.testing::Message", align 8
  %66 = alloca %"class.testing::internal::AssertHelper", align 8
  %67 = alloca %"class.testing::AssertionResult", align 8
  %68 = alloca %"class.testing::Message", align 8
  %69 = alloca %"class.testing::internal::AssertHelper", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %70 = 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)
  %71 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #10
  call void @llvm.memset.p0.i64(ptr align 8 %71, i8 0, i64 8, i1 false)
  call void @_ZN7cascadb17LexicalComparatorC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #9
  %72 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  store ptr %71, ptr %72, align 8, !tbaa !9
  %73 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 3
  store i64 4, ptr %73, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %74 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #10
  invoke void @_ZN7cascadb12RAMDirectoryC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %74)
          to label %75 unwind label %91

75:                                               ; preds = %1
  store ptr %74, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  %76 = 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 %77 unwind label %95

77:                                               ; preds = %75
  %78 = load ptr, ptr %76, align 8, !tbaa !16
  %79 = getelementptr inbounds ptr, ptr %78, i64 5
  %80 = load ptr, ptr %79, align 8
  %81 = invoke noundef ptr %80(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %82 unwind label %99

82:                                               ; preds = %77
  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 %81, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %83 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 600) #10
  %84 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN7cascadb6LayoutC1EPNS_7AIOFileEmRKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(600) %83, ptr noundef %84, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(101) %3)
          to label %85 unwind label %104

85:                                               ; preds = %82
  store ptr %83, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #9
  %86 = load ptr, ptr %10, align 8, !tbaa !5
  %87 = call noundef zeroext i1 @_ZN7cascadb6Layout4initEb(ptr noundef nonnull align 8 dereferenceable(600) %86, i1 noundef zeroext true)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %11, i1 noundef zeroext %87)
  %88 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %89 unwind label %108

89:                                               ; preds = %85
  br i1 %88, label %90, label %112

90:                                               ; preds = %89
  br label %138

91:                                               ; preds = %1
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %5, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %74, i64 noundef 104) #11
  br label %720

95:                                               ; preds = %75
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %5, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %6, align 4
  br label %103

99:                                               ; preds = %77
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %5, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %103

103:                                              ; preds = %99, %95
  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 %719

104:                                              ; preds = %82
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %5, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %83, i64 noundef 600) #11
  br label %718

108:                                              ; preds = %85
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %5, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %6, align 4
  br label %149

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

113:                                              ; preds = %112
  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 %114 unwind label %123

114:                                              ; preds = %113
  %115 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %116 unwind label %127

116:                                              ; preds = %114
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef 2, ptr noundef @.str.7, i32 noundef 427, ptr noundef %115)
          to label %117 unwind label %127

117:                                              ; preds = %116
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %118 unwind label %131

118:                                              ; preds = %117
  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 %139

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

123:                                              ; preds = %113
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %5, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %6, align 4
  br label %136

127:                                              ; preds = %116, %114
  %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
  br label %135

131:                                              ; preds = %117
  %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
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  br label %135

135:                                              ; preds = %131, %127
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #9
  br label %136

136:                                              ; preds = %135, %123
  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 %137

137:                                              ; preds = %136, %119
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %149

138:                                              ; preds = %90
  store i32 0, ptr %15, align 4
  br label %139

139:                                              ; preds = %138, %118
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #9
  %140 = load i32, ptr %15, align 4
  switch i32 %140, label %709 [
    i32 0, label %141
  ]

141:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %142 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 432) #10
  invoke void @_ZN7cascadb5CacheC1ERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(432) %142, ptr noundef nonnull align 8 dereferenceable(101) %3)
          to label %143 unwind label %150

143:                                              ; preds = %141
  store ptr %142, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #9
  %144 = load ptr, ptr %16, align 8, !tbaa !5
  %145 = call noundef zeroext i1 @_ZN7cascadb5Cache4initEv(ptr noundef nonnull align 8 dereferenceable(432) %144)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %17, i1 noundef zeroext %145)
  %146 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %147 unwind label %154

147:                                              ; preds = %143
  br i1 %146, label %148, label %158

148:                                              ; preds = %147
  br label %184

149:                                              ; preds = %137, %108
  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 %718

150:                                              ; preds = %141
  %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
  call void @_ZdlPvm(ptr noundef %142, i64 noundef 432) #11
  br label %717

154:                                              ; preds = %143
  %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
  br label %198

158:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %159 unwind label %165

159:                                              ; preds = %158
  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 %160 unwind label %169

160:                                              ; preds = %159
  %161 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %162 unwind label %173

162:                                              ; preds = %160
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %19, i32 noundef 2, ptr noundef @.str.7, i32 noundef 429, ptr noundef %161)
          to label %163 unwind label %173

163:                                              ; preds = %162
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %164 unwind label %177

164:                                              ; preds = %163
  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 %185

165:                                              ; preds = %158
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %5, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %6, align 4
  br label %183

169:                                              ; preds = %159
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %5, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %6, align 4
  br label %182

173:                                              ; preds = %162, %160
  %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
  br label %181

177:                                              ; preds = %163
  %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
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #9
  br label %181

181:                                              ; preds = %177, %173
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #9
  br label %182

182:                                              ; preds = %181, %169
  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 %183

183:                                              ; preds = %182, %165
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %198

184:                                              ; preds = %148
  store i32 0, ptr %15, align 4
  br label %185

185:                                              ; preds = %184, %164
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #9
  %186 = load i32, ptr %15, align 4
  switch i32 %186, label %708 [
    i32 0, label %187
  ]

187:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %188 = 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 %189 unwind label %199

189:                                              ; preds = %187
  %190 = load ptr, ptr %16, align 8, !tbaa !5
  %191 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN7cascadb4TreeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7OptionsEPNS_5CacheEPNS_6LayoutE(ptr noundef nonnull align 8 dereferenceable(184) %188, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(101) %3, ptr noundef %190, ptr noundef %191)
          to label %192 unwind label %203

192:                                              ; preds = %189
  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 %188, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #9
  %193 = load ptr, ptr %21, align 8, !tbaa !5
  %194 = call noundef zeroext i1 @_ZN7cascadb4Tree4initEv(ptr noundef nonnull align 8 dereferenceable(184) %193)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %25, i1 noundef zeroext %194)
  %195 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %25)
          to label %196 unwind label %211

196:                                              ; preds = %192
  br i1 %195, label %197, label %215

197:                                              ; preds = %196
  br label %241

198:                                              ; preds = %183, %154
  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 %717

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

203:                                              ; preds = %189
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %5, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %207

207:                                              ; preds = %203, %199
  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
  %208 = load i1, ptr %24, align 1
  br i1 %208, label %209, label %210

209:                                              ; preds = %207
  call void @_ZdlPvm(ptr noundef %188, i64 noundef 184) #11
  br label %210

210:                                              ; preds = %209, %207
  br label %716

211:                                              ; preds = %192
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %5, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %6, align 4
  br label %285

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

216:                                              ; preds = %215
  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 %217 unwind label %226

217:                                              ; preds = %216
  %218 = invoke noundef ptr @_ZNK7testing8internal6String5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %28)
          to label %219 unwind label %230

219:                                              ; preds = %217
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %27, i32 noundef 2, ptr noundef @.str.7, i32 noundef 431, ptr noundef %218)
          to label %220 unwind label %230

220:                                              ; preds = %219
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %221 unwind label %234

221:                                              ; preds = %220
  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 %242

222:                                              ; preds = %215
  %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 %240

226:                                              ; preds = %216
  %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
  br label %239

230:                                              ; preds = %219, %217
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %5, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %6, align 4
  br label %238

234:                                              ; preds = %220
  %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
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  br label %238

238:                                              ; preds = %234, %230
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #9
  br label %239

239:                                              ; preds = %238, %226
  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 %240

240:                                              ; preds = %239, %222
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  br label %285

241:                                              ; preds = %197
  store i32 0, ptr %15, align 4
  br label %242

242:                                              ; preds = %241, %221
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #9
  %243 = load i32, ptr %15, align 4
  switch i32 %243, label %707 [
    i32 0, label %244
  ]

244:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %245 = load ptr, ptr %21, align 8, !tbaa !5
  %246 = call noundef ptr @_ZN7cascadb4Tree14new_inner_nodeEv(ptr noundef nonnull align 8 dereferenceable(184) %245)
  store ptr %246, ptr %29, align 8, !tbaa !5
  %247 = load ptr, ptr %29, align 8, !tbaa !5
  %248 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %247, i32 0, i32 1
  store i8 1, ptr %248, align 4, !tbaa !18
  %249 = load ptr, ptr %29, align 8, !tbaa !5
  %250 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %249, i32 0, i32 2
  store i64 102, ptr %250, align 8, !tbaa !34
  %251 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #10
  %252 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  %253 = load ptr, ptr %252, align 8, !tbaa !9
  invoke void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104) %251, ptr noundef %253)
          to label %254 unwind label %286

254:                                              ; preds = %244
  %255 = load ptr, ptr %29, align 8, !tbaa !5
  %256 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %255, i32 0, i32 3
  store ptr %251, ptr %256, align 8, !tbaa !35
  %257 = load ptr, ptr %29, align 8, !tbaa !5
  %258 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %257, i32 0, i32 11
  store i64 0, ptr %258, align 8, !tbaa !36
  %259 = load ptr, ptr %29, align 8, !tbaa !5
  %260 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %259, i32 0, i32 3
  %261 = load ptr, ptr %260, align 8, !tbaa !35
  %262 = call noundef i64 @_ZNK7cascadb6MsgBuf4sizeEv(ptr noundef nonnull align 8 dereferenceable(104) %261)
  %263 = load ptr, ptr %29, align 8, !tbaa !5
  %264 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %263, i32 0, i32 12
  store i64 %262, ptr %264, align 8, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 24, ptr %30) #9
  call void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %265 = load ptr, ptr %29, align 8, !tbaa !5
  store ptr %265, ptr %31, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %266 unwind label %290

266:                                              ; preds = %254
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  %267 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %267)
          to label %268 unwind label %294

268:                                              ; preds = %266
  %269 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %269)
          to label %270 unwind label %294

270:                                              ; preds = %268
  %271 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %32, ptr noundef @.str.48)
          to label %272 unwind label %294

272:                                              ; preds = %270
  %273 = getelementptr inbounds { ptr, i32 }, ptr %32, i32 0, i32 0
  %274 = load ptr, ptr %273, align 8
  %275 = getelementptr inbounds { ptr, i32 }, ptr %32, i32 0, i32 1
  %276 = load i32, ptr %275, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %271, ptr %274, i32 %276, i64 noundef 103, ptr noundef nonnull align 8 dereferenceable(24) %30)
          to label %277 unwind label %294

277:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  store i32 1, ptr %34, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %278 = load ptr, ptr %29, align 8, !tbaa !5
  %279 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %278, i32 0, i32 9
  %280 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %279) #9
  store i64 %280, ptr %35, align 8, !tbaa !39
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %33, ptr noundef @.str.52, ptr noundef @.str.53, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %281 unwind label %298

281:                                              ; preds = %277
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  %282 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %283 unwind label %302

283:                                              ; preds = %281
  br i1 %282, label %284, label %306

284:                                              ; preds = %283
  br label %326

285:                                              ; preds = %240, %211
  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 %716

286:                                              ; preds = %244
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %5, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %251, i64 noundef 104) #11
  br label %715

290:                                              ; preds = %254
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %5, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %714

294:                                              ; preds = %670, %506, %504, %502, %500, %373, %371, %369, %367, %272, %270, %268, %266
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %5, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %6, align 4
  br label %714

298:                                              ; preds = %277
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %5, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %336

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

306:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %307 unwind label %312

307:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  %308 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %309 unwind label %316

309:                                              ; preds = %307
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %37, i32 noundef 1, ptr noundef @.str.7, i32 noundef 447, ptr noundef %308)
          to label %310 unwind label %316

310:                                              ; preds = %309
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %311 unwind label %320

311:                                              ; preds = %310
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  br label %326

312:                                              ; preds = %306
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %5, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %6, align 4
  br label %325

316:                                              ; preds = %309, %307
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %5, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %6, align 4
  br label %324

320:                                              ; preds = %310
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %5, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  br label %324

324:                                              ; preds = %320, %316
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #9
  br label %325

325:                                              ; preds = %324, %312
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  br label %335

326:                                              ; preds = %311, %284
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %38) #9
  %327 = load ptr, ptr %29, align 8, !tbaa !5
  %328 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %327, i32 0, i32 9
  %329 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %328, i64 noundef 0) #9
  %330 = getelementptr inbounds %"class.cascadb::Pivot", ptr %329, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %38, ptr noundef @.str.60, ptr noundef @.str.178, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %330)
          to label %331 unwind label %337

331:                                              ; preds = %326
  %332 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %38)
          to label %333 unwind label %341

333:                                              ; preds = %331
  br i1 %332, label %334, label %345

334:                                              ; preds = %333
  br label %365

335:                                              ; preds = %325, %302
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #9
  br label %336

336:                                              ; preds = %335, %298
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #9
  br label %714

337:                                              ; preds = %326
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %5, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %6, align 4
  br label %387

341:                                              ; preds = %331
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %5, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %6, align 4
  br label %386

345:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %346 unwind label %351

346:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  %347 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %38)
          to label %348 unwind label %355

348:                                              ; preds = %346
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %40, i32 noundef 1, ptr noundef @.str.7, i32 noundef 448, ptr noundef %347)
          to label %349 unwind label %355

349:                                              ; preds = %348
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %350 unwind label %359

350:                                              ; preds = %349
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  br label %365

351:                                              ; preds = %345
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %5, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %6, align 4
  br label %364

355:                                              ; preds = %348, %346
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %5, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %6, align 4
  br label %363

359:                                              ; preds = %349
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %5, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #9
  br label %363

363:                                              ; preds = %359, %355
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  br label %364

364:                                              ; preds = %363, %351
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  br label %386

365:                                              ; preds = %350, %334
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %366 = load ptr, ptr %29, align 8, !tbaa !5
  store ptr %366, ptr %41, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %367 unwind label %388

367:                                              ; preds = %365
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  %368 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %368)
          to label %369 unwind label %294

369:                                              ; preds = %367
  %370 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %370)
          to label %371 unwind label %294

371:                                              ; preds = %369
  %372 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %42, ptr noundef @.str.30)
          to label %373 unwind label %294

373:                                              ; preds = %371
  %374 = getelementptr inbounds { ptr, i32 }, ptr %42, i32 0, i32 0
  %375 = load ptr, ptr %374, align 8
  %376 = getelementptr inbounds { ptr, i32 }, ptr %42, i32 0, i32 1
  %377 = load i32, ptr %376, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %372, ptr %375, i32 %377, i64 noundef 104, ptr noundef nonnull align 8 dereferenceable(24) %30)
          to label %378 unwind label %294

378:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  store i32 2, ptr %44, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  %379 = load ptr, ptr %29, align 8, !tbaa !5
  %380 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %379, i32 0, i32 9
  %381 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %380) #9
  store i64 %381, ptr %45, align 8, !tbaa !39
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %43, ptr noundef @.str.86, ptr noundef @.str.53, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %382 unwind label %392

382:                                              ; preds = %378
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  %383 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %384 unwind label %396

384:                                              ; preds = %382
  br i1 %383, label %385, label %400

385:                                              ; preds = %384
  br label %420

386:                                              ; preds = %364, %341
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #9
  br label %387

387:                                              ; preds = %386, %337
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #9
  br label %714

388:                                              ; preds = %365
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %5, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  br label %714

392:                                              ; preds = %378
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %5, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %430

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

400:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %401 unwind label %406

401:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %402 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %403 unwind label %410

403:                                              ; preds = %401
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %47, i32 noundef 1, ptr noundef @.str.7, i32 noundef 454, ptr noundef %402)
          to label %404 unwind label %410

404:                                              ; preds = %403
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %405 unwind label %414

405:                                              ; preds = %404
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  br label %420

406:                                              ; preds = %400
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %5, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %6, align 4
  br label %419

410:                                              ; preds = %403, %401
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %5, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %6, align 4
  br label %418

414:                                              ; preds = %404
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %5, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #9
  br label %418

418:                                              ; preds = %414, %410
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  br label %419

419:                                              ; preds = %418, %406
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  br label %429

420:                                              ; preds = %405, %385
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #9
  %421 = load ptr, ptr %29, align 8, !tbaa !5
  %422 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %421, i32 0, i32 9
  %423 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef 0) #9
  %424 = getelementptr inbounds %"class.cascadb::Pivot", ptr %423, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %48, ptr noundef @.str.45, ptr noundef @.str.178, ptr noundef nonnull align 1 dereferenceable(2) @.str.30, ptr noundef nonnull align 8 dereferenceable(12) %424)
          to label %425 unwind label %431

425:                                              ; preds = %420
  %426 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %427 unwind label %435

427:                                              ; preds = %425
  br i1 %426, label %428, label %439

428:                                              ; preds = %427
  br label %459

429:                                              ; preds = %419, %396
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #9
  br label %430

430:                                              ; preds = %429, %392
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #9
  br label %714

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

435:                                              ; preds = %425
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %5, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %6, align 4
  br label %468

439:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %440 unwind label %445

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

442:                                              ; preds = %440
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %50, i32 noundef 1, ptr noundef @.str.7, i32 noundef 455, ptr noundef %441)
          to label %443 unwind label %449

443:                                              ; preds = %442
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %444 unwind label %453

444:                                              ; preds = %443
  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 %459

445:                                              ; preds = %439
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %5, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %6, align 4
  br label %458

449:                                              ; preds = %442, %440
  %450 = landingpad { ptr, i32 }
          cleanup
  %451 = extractvalue { ptr, i32 } %450, 0
  store ptr %451, ptr %5, align 8
  %452 = extractvalue { ptr, i32 } %450, 1
  store i32 %452, ptr %6, align 4
  br label %457

453:                                              ; preds = %443
  %454 = landingpad { ptr, i32 }
          cleanup
  %455 = extractvalue { ptr, i32 } %454, 0
  store ptr %455, ptr %5, align 8
  %456 = extractvalue { ptr, i32 } %454, 1
  store i32 %456, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  br label %457

457:                                              ; preds = %453, %449
  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 %458

458:                                              ; preds = %457, %445
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %468

459:                                              ; preds = %444, %428
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #9
  %460 = load ptr, ptr %29, align 8, !tbaa !5
  %461 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %460, i32 0, i32 9
  %462 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %461, i64 noundef 1) #9
  %463 = getelementptr inbounds %"class.cascadb::Pivot", ptr %462, 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.60, ptr noundef @.str.179, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %463)
          to label %464 unwind label %470

464:                                              ; preds = %459
  %465 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %466 unwind label %474

466:                                              ; preds = %464
  br i1 %465, label %467, label %478

467:                                              ; preds = %466
  br label %498

468:                                              ; preds = %458, %435
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #9
  br label %469

469:                                              ; preds = %468, %431
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #9
  br label %714

470:                                              ; preds = %459
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %5, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %6, align 4
  br label %520

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

478:                                              ; preds = %466
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %479 unwind label %484

479:                                              ; preds = %478
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %480 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %481 unwind label %488

481:                                              ; preds = %479
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %53, i32 noundef 1, ptr noundef @.str.7, i32 noundef 456, ptr noundef %480)
          to label %482 unwind label %488

482:                                              ; preds = %481
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %483 unwind label %492

483:                                              ; preds = %482
  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 %498

484:                                              ; preds = %478
  %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
  br label %497

488:                                              ; preds = %481, %479
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %5, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %6, align 4
  br label %496

492:                                              ; preds = %482
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %5, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  br label %496

496:                                              ; preds = %492, %488
  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 %497

497:                                              ; preds = %496, %484
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  br label %519

498:                                              ; preds = %483, %467
  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 8, ptr %54) #9
  %499 = load ptr, ptr %29, align 8, !tbaa !5
  store ptr %499, ptr %54, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %500 unwind label %521

500:                                              ; preds = %498
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  %501 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %501)
          to label %502 unwind label %294

502:                                              ; preds = %500
  %503 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %503)
          to label %504 unwind label %294

504:                                              ; preds = %502
  %505 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %55, ptr noundef @.str.49)
          to label %506 unwind label %294

506:                                              ; preds = %504
  %507 = getelementptr inbounds { ptr, i32 }, ptr %55, i32 0, i32 0
  %508 = load ptr, ptr %507, align 8
  %509 = getelementptr inbounds { ptr, i32 }, ptr %55, i32 0, i32 1
  %510 = load i32, ptr %509, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %505, ptr %508, i32 %510, i64 noundef 105, ptr noundef nonnull align 8 dereferenceable(24) %30)
          to label %511 unwind label %294

511:                                              ; preds = %506
  call void @llvm.lifetime.start.p0(i64 16, ptr %56) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  store i32 3, ptr %57, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  %512 = load ptr, ptr %29, align 8, !tbaa !5
  %513 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %512, i32 0, i32 9
  %514 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %513) #9
  store i64 %514, ptr %58, align 8, !tbaa !39
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %56, ptr noundef @.str.28, ptr noundef @.str.53, ptr noundef nonnull align 4 dereferenceable(4) %57, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %515 unwind label %525

515:                                              ; preds = %511
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  %516 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
          to label %517 unwind label %529

517:                                              ; preds = %515
  br i1 %516, label %518, label %533

518:                                              ; preds = %517
  br label %553

519:                                              ; preds = %497, %474
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #9
  br label %520

520:                                              ; preds = %519, %470
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #9
  br label %714

521:                                              ; preds = %498
  %522 = landingpad { ptr, i32 }
          cleanup
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %5, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  br label %714

525:                                              ; preds = %511
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %5, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %563

529:                                              ; preds = %515
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %5, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %6, align 4
  br label %562

533:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %534 unwind label %539

534:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  %535 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
          to label %536 unwind label %543

536:                                              ; preds = %534
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %60, i32 noundef 1, ptr noundef @.str.7, i32 noundef 462, ptr noundef %535)
          to label %537 unwind label %543

537:                                              ; preds = %536
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %538 unwind label %547

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

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

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

547:                                              ; preds = %537
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %5, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #9
  br label %551

551:                                              ; preds = %547, %543
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  br label %552

552:                                              ; preds = %551, %539
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  br label %562

553:                                              ; preds = %538, %518
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #9
  %554 = load ptr, ptr %29, align 8, !tbaa !5
  %555 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %554, i32 0, i32 9
  %556 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %555, i64 noundef 0) #9
  %557 = getelementptr inbounds %"class.cascadb::Pivot", ptr %556, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %61, ptr noundef @.str.45, ptr noundef @.str.178, ptr noundef nonnull align 1 dereferenceable(2) @.str.30, ptr noundef nonnull align 8 dereferenceable(12) %557)
          to label %558 unwind label %564

558:                                              ; preds = %553
  %559 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %61)
          to label %560 unwind label %568

560:                                              ; preds = %558
  br i1 %559, label %561, label %572

561:                                              ; preds = %560
  br label %592

562:                                              ; preds = %552, %529
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #9
  br label %563

563:                                              ; preds = %562, %525
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #9
  br label %714

564:                                              ; preds = %553
  %565 = landingpad { ptr, i32 }
          cleanup
  %566 = extractvalue { ptr, i32 } %565, 0
  store ptr %566, ptr %5, align 8
  %567 = extractvalue { ptr, i32 } %565, 1
  store i32 %567, ptr %6, align 4
  br label %602

568:                                              ; preds = %558
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %5, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %6, align 4
  br label %601

572:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %573 unwind label %578

573:                                              ; preds = %572
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %574 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %61)
          to label %575 unwind label %582

575:                                              ; preds = %573
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %63, i32 noundef 1, ptr noundef @.str.7, i32 noundef 463, ptr noundef %574)
          to label %576 unwind label %582

576:                                              ; preds = %575
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %577 unwind label %586

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

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

582:                                              ; preds = %575, %573
  %583 = landingpad { ptr, i32 }
          cleanup
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %5, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %6, align 4
  br label %590

586:                                              ; preds = %576
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %5, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %6, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #9
  br label %590

590:                                              ; preds = %586, %582
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #9
  br label %591

591:                                              ; preds = %590, %578
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  br label %601

592:                                              ; preds = %577, %561
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #9
  %593 = load ptr, ptr %29, align 8, !tbaa !5
  %594 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %593, i32 0, i32 9
  %595 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %594, i64 noundef 1) #9
  %596 = getelementptr inbounds %"class.cascadb::Pivot", ptr %595, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %64, ptr noundef @.str.60, ptr noundef @.str.179, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %596)
          to label %597 unwind label %603

597:                                              ; preds = %592
  %598 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %64)
          to label %599 unwind label %607

599:                                              ; preds = %597
  br i1 %598, label %600, label %611

600:                                              ; preds = %599
  br label %631

601:                                              ; preds = %591, %568
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #9
  br label %602

602:                                              ; preds = %601, %564
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #9
  br label %714

603:                                              ; preds = %592
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %5, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %6, align 4
  br label %641

607:                                              ; preds = %597
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %5, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %6, align 4
  br label %640

611:                                              ; preds = %599
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %612 unwind label %617

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

614:                                              ; preds = %612
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %66, i32 noundef 1, ptr noundef @.str.7, i32 noundef 464, ptr noundef %613)
          to label %615 unwind label %621

615:                                              ; preds = %614
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %616 unwind label %625

616:                                              ; preds = %615
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %631

617:                                              ; preds = %611
  %618 = landingpad { ptr, i32 }
          cleanup
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %5, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %6, align 4
  br label %630

621:                                              ; preds = %614, %612
  %622 = landingpad { ptr, i32 }
          cleanup
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %5, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %6, align 4
  br label %629

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

629:                                              ; preds = %625, %621
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #9
  br label %630

630:                                              ; preds = %629, %617
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %640

631:                                              ; preds = %616, %600
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %67) #9
  %632 = load ptr, ptr %29, align 8, !tbaa !5
  %633 = getelementptr inbounds %"class.cascadb::InnerNode", ptr %632, i32 0, i32 9
  %634 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %633, i64 noundef 2) #9
  %635 = getelementptr inbounds %"class.cascadb::Pivot", ptr %634, i32 0, i32 0
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %67, ptr noundef @.str.63, ptr noundef @.str.180, ptr noundef nonnull align 1 dereferenceable(2) @.str.49, ptr noundef nonnull align 8 dereferenceable(12) %635)
          to label %636 unwind label %642

636:                                              ; preds = %631
  %637 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %67)
          to label %638 unwind label %646

638:                                              ; preds = %636
  br i1 %637, label %639, label %650

639:                                              ; preds = %638
  br label %670

640:                                              ; preds = %630, %607
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #9
  br label %641

641:                                              ; preds = %640, %603
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #9
  br label %714

642:                                              ; preds = %631
  %643 = landingpad { ptr, i32 }
          cleanup
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %5, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %6, align 4
  br label %713

646:                                              ; preds = %636
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %5, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %6, align 4
  br label %712

650:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %651 unwind label %656

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

653:                                              ; preds = %651
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %69, i32 noundef 1, ptr noundef @.str.7, i32 noundef 465, ptr noundef %652)
          to label %654 unwind label %660

654:                                              ; preds = %653
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %655 unwind label %664

655:                                              ; preds = %654
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  br label %670

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

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

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

668:                                              ; preds = %664, %660
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #9
  br label %669

669:                                              ; preds = %668, %656
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  br label %712

670:                                              ; preds = %655, %639
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #9
  %671 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN7cascadb4Node7dec_refEv(ptr noundef nonnull align 8 dereferenceable(200) %671)
          to label %672 unwind label %294

672:                                              ; preds = %670
  %673 = load ptr, ptr %21, align 8, !tbaa !5
  %674 = icmp eq ptr %673, null
  br i1 %674, label %676, label %675

675:                                              ; preds = %672
  call void @_ZN7cascadb4TreeD1Ev(ptr noundef nonnull align 8 dereferenceable(184) %673) #9
  call void @_ZdlPvm(ptr noundef %673, i64 noundef 184) #11
  br label %676

676:                                              ; preds = %675, %672
  %677 = load ptr, ptr %16, align 8, !tbaa !5
  %678 = icmp eq ptr %677, null
  br i1 %678, label %680, label %679

679:                                              ; preds = %676
  call void @_ZN7cascadb5CacheD1Ev(ptr noundef nonnull align 8 dereferenceable(432) %677) #9
  call void @_ZdlPvm(ptr noundef %677, i64 noundef 432) #11
  br label %680

680:                                              ; preds = %679, %676
  %681 = load ptr, ptr %10, align 8, !tbaa !5
  %682 = icmp eq ptr %681, null
  br i1 %682, label %684, label %683

683:                                              ; preds = %680
  call void @_ZN7cascadb6LayoutD1Ev(ptr noundef nonnull align 8 dereferenceable(600) %681) #9
  call void @_ZdlPvm(ptr noundef %681, i64 noundef 600) #11
  br label %684

684:                                              ; preds = %683, %680
  %685 = load ptr, ptr %7, align 8, !tbaa !5
  %686 = icmp eq ptr %685, null
  br i1 %686, label %691, label %687

687:                                              ; preds = %684
  %688 = load ptr, ptr %685, align 8, !tbaa !16
  %689 = getelementptr inbounds ptr, ptr %688, i64 1
  %690 = load ptr, ptr %689, align 8
  call void %690(ptr noundef nonnull align 8 dereferenceable(8) %685) #9
  br label %691

691:                                              ; preds = %687, %684
  %692 = load ptr, ptr %4, align 8, !tbaa !5
  %693 = icmp eq ptr %692, null
  br i1 %693, label %698, label %694

694:                                              ; preds = %691
  %695 = load ptr, ptr %692, align 8, !tbaa !16
  %696 = getelementptr inbounds ptr, ptr %695, i64 1
  %697 = load ptr, ptr %696, align 8
  call void %697(ptr noundef nonnull align 8 dereferenceable(8) %692) #9
  br label %698

698:                                              ; preds = %694, %691
  %699 = getelementptr inbounds %"class.cascadb::Options", ptr %3, i32 0, i32 1
  %700 = load ptr, ptr %699, align 8, !tbaa !9
  %701 = icmp eq ptr %700, null
  br i1 %701, label %706, label %702

702:                                              ; preds = %698
  %703 = load ptr, ptr %700, align 8, !tbaa !16
  %704 = getelementptr inbounds ptr, ptr %703, i64 2
  %705 = load ptr, ptr %704, align 8
  call void %705(ptr noundef nonnull align 8 dereferenceable(8) %700) #9
  br label %706

706:                                              ; preds = %702, %698
  call void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  store i32 0, ptr %15, align 4
  br label %707

707:                                              ; preds = %706, %242
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %708

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

709:                                              ; preds = %708, %139
  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
  %710 = load i32, ptr %15, align 4
  switch i32 %710, label %726 [
    i32 0, label %711
    i32 1, label %711
  ]

711:                                              ; preds = %709, %709
  ret void

712:                                              ; preds = %669, %646
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #9
  br label %713

713:                                              ; preds = %712, %642
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #9
  br label %714

714:                                              ; preds = %713, %641, %602, %563, %521, %520, %469, %430, %388, %387, %336, %294, %290
  call void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #9
  br label %715

715:                                              ; preds = %714, %286
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %716

716:                                              ; preds = %715, %285, %210
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %717

717:                                              ; preds = %716, %198, %150
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %718

718:                                              ; preds = %717, %149, %104
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  br label %719

719:                                              ; preds = %718, %103
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  br label %720

720:                                              ; preds = %719, %91
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #9
  call void @llvm.lifetime.end.p0(i64 104, ptr %3) #9
  br label %721

721:                                              ; preds = %720
  %722 = load ptr, ptr %5, align 8
  %723 = load i32, ptr %6, align 4
  %724 = insertvalue { ptr, i32 } poison, ptr %722, 0
  %725 = insertvalue { ptr, i32 } %724, i32 %723, 1
  resume { ptr, i32 } %725

726:                                              ; preds = %709
  unreachable
}

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

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 = !{!19, !11, i64 216}
!35 = !{!19, !6, i64 224}
!36 = !{!19, !11, i64 296}
!37 = !{!19, !11, i64 304}
!38 = !{!12, !12, i64 0}
!39 = !{!11, !11, i64 0}


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

%"class.testing::AssertionResult" = type { i8, %"class.testing::internal::scoped_ptr" }
%"class.testing::internal::scoped_ptr" = type { ptr }
%"class.testing::internal::String" = type { ptr, i64 }
%"class.cascadb::Options" = type <{ ptr, ptr, i64, i64, i64, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i32, i8, [3 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.2" = type { i8 }
%"class.testing::Message" = type { %"class.testing::internal::scoped_ptr.0" }
%"class.testing::internal::scoped_ptr.0" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.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.28 = external hidden unnamed_addr constant [3 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.178 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.180 = 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

; 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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN24InnerNode_add_pivot_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 %"class.cascadb::Slice", align 8
  %22 = alloca %"class.testing::AssertionResult", align 8
  %23 = alloca i32, align 4
  %24 = alloca i64, align 8
  %25 = alloca %"class.testing::Message", align 8
  %26 = alloca %"class.testing::internal::AssertHelper", align 8
  %27 = alloca %"class.testing::AssertionResult", align 8
  %28 = alloca %"class.testing::Message", align 8
  %29 = alloca %"class.testing::internal::AssertHelper", align 8
  %30 = alloca ptr, align 8
  %31 = alloca %"class.cascadb::Slice", align 8
  %32 = alloca %"class.testing::AssertionResult", align 8
  %33 = alloca i32, align 4
  %34 = alloca i64, align 8
  %35 = alloca %"class.testing::Message", align 8
  %36 = alloca %"class.testing::internal::AssertHelper", align 8
  %37 = alloca %"class.testing::AssertionResult", 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 %"class.cascadb::Slice", align 8
  %45 = alloca %"class.testing::AssertionResult", align 8
  %46 = alloca i32, align 4
  %47 = alloca i64, align 8
  %48 = alloca %"class.testing::Message", align 8
  %49 = alloca %"class.testing::internal::AssertHelper", align 8
  %50 = alloca %"class.testing::AssertionResult", align 8
  %51 = alloca %"class.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 %"class.testing::Message", align 8
  %58 = 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)
  %59 = call noalias noundef nonnull dereferenceable(8) ptr @_Znwm(i64 noundef 8) #9
  store i64 0, ptr %59, align 8
  call void @_ZN7cascadb17LexicalComparatorC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  %60 = getelementptr inbounds i8, ptr %2, i64 8
  store ptr %59, ptr %60, align 8, !tbaa !5
  %61 = getelementptr inbounds i8, ptr %2, i64 24
  store i64 4, ptr %61, align 8, !tbaa !14
  %62 = call noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #9
  invoke void @_ZN7cascadb12RAMDirectoryC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %62)
          to label %63 unwind label %74

63:                                               ; 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 %64 unwind label %76

64:                                               ; preds = %63
  %65 = load ptr, ptr %62, align 8, !tbaa !15
  %66 = getelementptr inbounds i8, ptr %65, i64 40
  %67 = load ptr, ptr %66, align 8
  %68 = invoke noundef ptr %67(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %69 unwind label %78

69:                                               ; preds = %64
  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
  %70 = call noalias noundef nonnull dereferenceable(600) ptr @_Znwm(i64 noundef 600) #9
  invoke void @_ZN7cascadb6LayoutC1EPNS_7AIOFileEmRKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(600) %70, ptr noundef %68, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(101) %2)
          to label %71 unwind label %81

71:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %72 = call noundef zeroext i1 @_ZN7cascadb6Layout4initEb(ptr noundef nonnull align 8 dereferenceable(600) %70, i1 noundef zeroext true)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %5, i1 noundef zeroext %72)
  %73 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %5)
  br i1 %73, label %100, label %83

74:                                               ; preds = %1
  %75 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %62, i64 noundef 104) #10
  br label %403

76:                                               ; preds = %63
  %77 = landingpad { ptr, i32 }
          cleanup
  br label %80

78:                                               ; preds = %64
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  br label %80

80:                                               ; preds = %78, %76
  %.pn = phi { ptr, i32 } [ %79, %78 ], [ %77, %76 ]
  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 %403

81:                                               ; preds = %69
  %82 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %70, i64 noundef 600) #10
  br label %403

83:                                               ; preds = %71
  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 %84 unwind label %89

84:                                               ; preds = %83
  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 %85 unwind label %91

85:                                               ; preds = %84
  %86 = 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 427, ptr noundef %86)
          to label %87 unwind label %93

87:                                               ; preds = %85
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %88 unwind label %95

88:                                               ; preds = %87
  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 %400

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

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

93:                                               ; preds = %85
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %97

95:                                               ; preds = %87
  %96 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  br label %97

97:                                               ; preds = %95, %93
  %.pn100 = phi { ptr, i32 } [ %96, %95 ], [ %94, %93 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #8
  br label %98

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

99:                                               ; preds = %98, %89
  %.pn100.pn.pn = phi { ptr, i32 } [ %.pn100.pn, %98 ], [ %90, %89 ]
  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 %403

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

102:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #8
  %103 = call noundef zeroext i1 @_ZN7cascadb5Cache4initEv(ptr noundef nonnull align 8 dereferenceable(432) %101)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext %103)
  %104 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %9)
  br i1 %104, label %124, label %107

105:                                              ; preds = %100
  %106 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %101, i64 noundef 432) #10
  br label %403

107:                                              ; preds = %102
  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 %108 unwind label %113

108:                                              ; preds = %107
  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 %109 unwind label %115

109:                                              ; preds = %108
  %110 = 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 429, ptr noundef %110)
          to label %111 unwind label %117

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

112:                                              ; preds = %111
  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 %400

113:                                              ; preds = %107
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %123

115:                                              ; preds = %108
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %122

117:                                              ; preds = %109
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %121

119:                                              ; preds = %111
  %120 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  br label %121

121:                                              ; preds = %119, %117
  %.pn104 = phi { ptr, i32 } [ %120, %119 ], [ %118, %117 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #8
  br label %122

122:                                              ; preds = %121, %115
  %.pn104.pn = phi { ptr, i32 } [ %.pn104, %121 ], [ %116, %115 ]
  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 %123

123:                                              ; preds = %122, %113
  %.pn104.pn.pn = phi { ptr, i32 } [ %.pn104.pn, %122 ], [ %114, %113 ]
  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 %403

124:                                              ; preds = %102
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #8
  %125 = 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 %126 unwind label %130

126:                                              ; preds = %124
  invoke void @_ZN7cascadb4TreeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7OptionsEPNS_5CacheEPNS_6LayoutE(ptr noundef nonnull align 8 dereferenceable(184) %125, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(101) %2, ptr noundef nonnull %101, ptr noundef nonnull %70)
          to label %127 unwind label %132

127:                                              ; preds = %126
  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
  %128 = call noundef zeroext i1 @_ZN7cascadb4Tree4initEv(ptr noundef nonnull align 8 dereferenceable(184) %125)
  call void @_ZN7testing15AssertionResultC2Eb(ptr noundef nonnull align 8 dereferenceable(16) %15, i1 noundef zeroext %128)
  %129 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %15)
  br i1 %129, label %152, label %135

130:                                              ; preds = %124
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %134

132:                                              ; preds = %126
  %133 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %134

134:                                              ; preds = %132, %130
  %.pn108 = phi { ptr, i32 } [ %133, %132 ], [ %131, %130 ]
  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 %125, i64 noundef 184) #10
  br label %403

135:                                              ; preds = %127
  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 %136 unwind label %141

136:                                              ; preds = %135
  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 %137 unwind label %143

137:                                              ; preds = %136
  %138 = 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 431, ptr noundef %138)
          to label %139 unwind label %145

139:                                              ; preds = %137
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %140 unwind label %147

140:                                              ; preds = %139
  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 %400

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

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

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

147:                                              ; preds = %139
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  br label %149

149:                                              ; preds = %147, %145
  %.pn110 = phi { ptr, i32 } [ %148, %147 ], [ %146, %145 ]
  call void @_ZN7testing8internal6StringD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  br label %150

150:                                              ; preds = %149, %143
  %.pn110.pn = phi { ptr, i32 } [ %.pn110, %149 ], [ %144, %143 ]
  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 %151

151:                                              ; preds = %150, %141
  %.pn110.pn.pn = phi { ptr, i32 } [ %.pn110.pn, %150 ], [ %142, %141 ]
  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 %403

152:                                              ; preds = %127
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  %153 = call noundef ptr @_ZN7cascadb4Tree14new_inner_nodeEv(ptr noundef nonnull align 8 dereferenceable(184) %125)
  %154 = getelementptr inbounds i8, ptr %153, i64 212
  store i8 1, ptr %154, align 4, !tbaa !17
  %155 = getelementptr inbounds i8, ptr %153, i64 216
  store i64 102, ptr %155, align 8, !tbaa !33
  %156 = call noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #9
  %157 = load ptr, ptr %60, align 8, !tbaa !5
  invoke void @_ZN7cascadb6MsgBufC2EPNS_10ComparatorE(ptr noundef nonnull align 8 dereferenceable(104) %156, ptr noundef %157)
          to label %158 unwind label %174

158:                                              ; preds = %152
  %159 = getelementptr inbounds i8, ptr %153, i64 224
  store ptr %156, ptr %159, align 8, !tbaa !34
  %160 = getelementptr inbounds i8, ptr %153, i64 296
  store i64 0, ptr %160, align 8, !tbaa !35
  %161 = call noundef i64 @_ZNK7cascadb6MsgBuf4sizeEv(ptr noundef nonnull align 8 dereferenceable(104) %156)
  %162 = getelementptr inbounds i8, ptr %153, i64 304
  store i64 %161, ptr %162, align 8, !tbaa !36
  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 %153, ptr %20, align 8, !tbaa !37
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %163 unwind label %176

163:                                              ; preds = %158
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %153)
          to label %164 unwind label %178

164:                                              ; preds = %163
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %153)
          to label %165 unwind label %178

165:                                              ; preds = %164
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %21, ptr noundef nonnull @.str.48)
  %166 = load ptr, ptr %21, align 8
  %167 = getelementptr inbounds i8, ptr %21, i64 8
  %168 = load i32, ptr %167, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %153, ptr %166, i32 %168, i64 noundef 103, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %169 unwind label %178

169:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #8
  store i32 1, ptr %23, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  %170 = getelementptr inbounds i8, ptr %153, i64 264
  %171 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %170) #8
  store i64 %171, ptr %24, align 8, !tbaa !39
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %22, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.53, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %172 unwind label %180

172:                                              ; preds = %169
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #8
  %173 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %22)
  br i1 %173, label %196, label %182

174:                                              ; preds = %152
  %175 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %156, i64 noundef 104) #10
  br label %403

176:                                              ; preds = %158
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  br label %402

178:                                              ; preds = %382, %292, %291, %290, %220, %219, %218, %165, %164, %163
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %402

180:                                              ; preds = %169
  %181 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #8
  br label %200

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

183:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  %184 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %22)
          to label %185 unwind label %190

185:                                              ; preds = %183
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %26, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 447, ptr noundef %184)
          to label %186 unwind label %190

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

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

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

190:                                              ; preds = %185, %183
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %194

192:                                              ; preds = %186
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  br label %194

194:                                              ; preds = %192, %190
  %.pn114 = phi { ptr, i32 } [ %193, %192 ], [ %191, %190 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br label %195

195:                                              ; preds = %194, %188
  %.pn114.pn = phi { ptr, i32 } [ %.pn114, %194 ], [ %189, %188 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #8
  br label %200

196:                                              ; preds = %172, %187
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #8
  %197 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef 0) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %27, 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) %197)
          to label %198 unwind label %201

198:                                              ; preds = %196
  %199 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %27)
  br i1 %199, label %217, label %203

200:                                              ; preds = %195, %180
  %.pn114.pn.pn = phi { ptr, i32 } [ %.pn114.pn, %195 ], [ %181, %180 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #8
  br label %402

201:                                              ; preds = %196
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %228

203:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %204 unwind label %209

204:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #8
  %205 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %206 unwind label %211

206:                                              ; preds = %204
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %29, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 448, ptr noundef %205)
          to label %207 unwind label %211

207:                                              ; preds = %206
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %208 unwind label %213

208:                                              ; preds = %207
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  br label %217

209:                                              ; preds = %203
  %210 = landingpad { ptr, i32 }
          cleanup
  br label %216

211:                                              ; preds = %206, %204
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %215

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

215:                                              ; preds = %213, %211
  %.pn118 = phi { ptr, i32 } [ %214, %213 ], [ %212, %211 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  br label %216

216:                                              ; preds = %215, %209
  %.pn118.pn = phi { ptr, i32 } [ %.pn118, %215 ], [ %210, %209 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #8
  br label %228

217:                                              ; preds = %198, %208
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #8
  store ptr %153, ptr %30, align 8, !tbaa !37
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %218 unwind label %229

218:                                              ; preds = %217
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %153)
          to label %219 unwind label %178

219:                                              ; preds = %218
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %153)
          to label %220 unwind label %178

220:                                              ; preds = %219
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %31, ptr noundef nonnull @.str.30)
  %221 = load ptr, ptr %31, align 8
  %222 = getelementptr inbounds i8, ptr %31, i64 8
  %223 = load i32, ptr %222, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %153, ptr %221, i32 %223, i64 noundef 104, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %224 unwind label %178

224:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #8
  store i32 2, ptr %33, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #8
  %225 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %170) #8
  store i64 %225, ptr %34, align 8, !tbaa !39
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %32, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.53, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %226 unwind label %231

226:                                              ; preds = %224
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #8
  %227 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %32)
  br i1 %227, label %247, label %233

228:                                              ; preds = %216, %201
  %.pn118.pn.pn = phi { ptr, i32 } [ %.pn118.pn, %216 ], [ %202, %201 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #8
  br label %402

229:                                              ; preds = %217
  %230 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  br label %402

231:                                              ; preds = %224
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #8
  br label %251

233:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %234 unwind label %239

234:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #8
  %235 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %236 unwind label %241

236:                                              ; preds = %234
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %36, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 454, ptr noundef %235)
          to label %237 unwind label %241

237:                                              ; preds = %236
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %238 unwind label %243

238:                                              ; preds = %237
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  br label %247

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

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

243:                                              ; preds = %237
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  br label %245

245:                                              ; preds = %243, %241
  %.pn122 = phi { ptr, i32 } [ %244, %243 ], [ %242, %241 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  br label %246

246:                                              ; preds = %245, %239
  %.pn122.pn = phi { ptr, i32 } [ %.pn122, %245 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  br label %251

247:                                              ; preds = %226, %238
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #8
  %248 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef 0) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %37, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.178, ptr noundef nonnull align 1 dereferenceable(2) @.str.30, ptr noundef nonnull align 8 dereferenceable(12) %248)
          to label %249 unwind label %252

249:                                              ; preds = %247
  %250 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %37)
  br i1 %250, label %268, label %254

251:                                              ; preds = %246, %231
  %.pn122.pn.pn = phi { ptr, i32 } [ %.pn122.pn, %246 ], [ %232, %231 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  br label %402

252:                                              ; preds = %247
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %272

254:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %255 unwind label %260

255:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #8
  %256 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %37)
          to label %257 unwind label %262

257:                                              ; preds = %255
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %39, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 455, ptr noundef %256)
          to label %258 unwind label %262

258:                                              ; preds = %257
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %259 unwind label %264

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

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

262:                                              ; preds = %257, %255
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %266

264:                                              ; preds = %258
  %265 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  br label %266

266:                                              ; preds = %264, %262
  %.pn126 = phi { ptr, i32 } [ %265, %264 ], [ %263, %262 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #8
  br label %267

267:                                              ; preds = %266, %260
  %.pn126.pn = phi { ptr, i32 } [ %.pn126, %266 ], [ %261, %260 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  br label %272

268:                                              ; preds = %249, %259
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #8
  %269 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef 1) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %40, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.179, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %269)
          to label %270 unwind label %273

270:                                              ; preds = %268
  %271 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %40)
  br i1 %271, label %289, label %275

272:                                              ; preds = %267, %252
  %.pn126.pn.pn = phi { ptr, i32 } [ %.pn126.pn, %267 ], [ %253, %252 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #8
  br label %402

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

275:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %276 unwind label %281

276:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #8
  %277 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %40)
          to label %278 unwind label %283

278:                                              ; preds = %276
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %42, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 456, ptr noundef %277)
          to label %279 unwind label %283

279:                                              ; preds = %278
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %280 unwind label %285

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

281:                                              ; preds = %275
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %288

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

285:                                              ; preds = %279
  %286 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  br label %287

287:                                              ; preds = %285, %283
  %.pn130 = phi { ptr, i32 } [ %286, %285 ], [ %284, %283 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #8
  br label %288

288:                                              ; preds = %287, %281
  %.pn130.pn = phi { ptr, i32 } [ %.pn130, %287 ], [ %282, %281 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  br label %300

289:                                              ; preds = %270, %280
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  store ptr %153, ptr %43, align 8, !tbaa !37
  invoke void @_ZNSt6vectorIPN7cascadb8DataNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %290 unwind label %301

290:                                              ; preds = %289
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  invoke void @_ZN7cascadb4Node7inc_refEv(ptr noundef nonnull align 8 dereferenceable(200) %153)
          to label %291 unwind label %178

291:                                              ; preds = %290
  invoke void @_ZN7cascadb4Node10write_lockEv(ptr noundef nonnull align 8 dereferenceable(200) %153)
          to label %292 unwind label %178

292:                                              ; preds = %291
  call void @_ZN7cascadb5SliceC2EPKc(ptr noundef nonnull align 8 dereferenceable(12) %44, ptr noundef nonnull @.str.49)
  %293 = load ptr, ptr %44, align 8
  %294 = getelementptr inbounds i8, ptr %44, i64 8
  %295 = load i32, ptr %294, align 8
  invoke void @_ZN7cascadb9InnerNode9add_pivotENS_5SliceEmRSt6vectorIPNS_8DataNodeESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %153, ptr %293, i32 %295, i64 noundef 105, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %296 unwind label %178

296:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #8
  store i32 3, ptr %46, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #8
  %297 = call noundef i64 @_ZNKSt6vectorIN7cascadb5PivotESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %170) #8
  store i64 %297, ptr %47, align 8, !tbaa !39
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIjmEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %45, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.53, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %298 unwind label %303

298:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #8
  %299 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %45)
  br i1 %299, label %319, label %305

300:                                              ; preds = %288, %273
  %.pn130.pn.pn = phi { ptr, i32 } [ %.pn130.pn, %288 ], [ %274, %273 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #8
  br label %402

301:                                              ; preds = %289
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  br label %402

303:                                              ; preds = %296
  %304 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #8
  br label %323

305:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %306 unwind label %311

306:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #8
  %307 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %45)
          to label %308 unwind label %313

308:                                              ; preds = %306
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %49, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 462, ptr noundef %307)
          to label %309 unwind label %313

309:                                              ; preds = %308
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %310 unwind label %315

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

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

313:                                              ; preds = %308, %306
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %317

315:                                              ; preds = %309
  %316 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  br label %317

317:                                              ; preds = %315, %313
  %.pn134 = phi { ptr, i32 } [ %316, %315 ], [ %314, %313 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  br label %318

318:                                              ; preds = %317, %311
  %.pn134.pn = phi { ptr, i32 } [ %.pn134, %317 ], [ %312, %311 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #8
  br label %323

319:                                              ; preds = %298, %310
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #8
  %320 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef 0) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %50, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.178, ptr noundef nonnull align 1 dereferenceable(2) @.str.30, ptr noundef nonnull align 8 dereferenceable(12) %320)
          to label %321 unwind label %324

321:                                              ; preds = %319
  %322 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %50)
  br i1 %322, label %340, label %326

323:                                              ; preds = %318, %303
  %.pn134.pn.pn = phi { ptr, i32 } [ %.pn134.pn, %318 ], [ %304, %303 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #8
  br label %402

324:                                              ; preds = %319
  %325 = landingpad { ptr, i32 }
          cleanup
  br label %344

326:                                              ; preds = %321
  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 %327 unwind label %332

327:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #8
  %328 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %50)
          to label %329 unwind label %334

329:                                              ; preds = %327
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %52, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 463, ptr noundef %328)
          to label %330 unwind label %334

330:                                              ; preds = %329
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %331 unwind label %336

331:                                              ; preds = %330
  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 %340

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

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

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

338:                                              ; preds = %336, %334
  %.pn138 = phi { ptr, i32 } [ %337, %336 ], [ %335, %334 ]
  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 %339

339:                                              ; preds = %338, %332
  %.pn138.pn = phi { ptr, i32 } [ %.pn138, %338 ], [ %333, %332 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #8
  br label %344

340:                                              ; preds = %321, %331
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #8
  %341 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef 1) #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.60, ptr noundef nonnull @.str.179, ptr noundef nonnull align 1 dereferenceable(2) @.str.48, ptr noundef nonnull align 8 dereferenceable(12) %341)
          to label %342 unwind label %345

342:                                              ; preds = %340
  %343 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %53)
  br i1 %343, label %361, label %347

344:                                              ; preds = %339, %324
  %.pn138.pn.pn = phi { ptr, i32 } [ %.pn138.pn, %339 ], [ %325, %324 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #8
  br label %402

345:                                              ; preds = %340
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %365

347:                                              ; preds = %342
  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 %348 unwind label %353

348:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #8
  %349 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %53)
          to label %350 unwind label %355

350:                                              ; preds = %348
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %55, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 464, ptr noundef %349)
          to label %351 unwind label %355

351:                                              ; preds = %350
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %352 unwind label %357

352:                                              ; preds = %351
  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 %361

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

355:                                              ; preds = %350, %348
  %356 = landingpad { ptr, i32 }
          cleanup
  br label %359

357:                                              ; preds = %351
  %358 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br label %359

359:                                              ; preds = %357, %355
  %.pn142 = phi { ptr, i32 } [ %358, %357 ], [ %356, %355 ]
  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 %360

360:                                              ; preds = %359, %353
  %.pn142.pn = phi { ptr, i32 } [ %.pn142, %359 ], [ %354, %353 ]
  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 %365

361:                                              ; preds = %342, %352
  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
  %362 = call noundef nonnull align 8 dereferenceable(62) ptr @_ZNSt6vectorIN7cascadb5PivotESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef 2) #8
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA2_cN7cascadb5SliceEEENS_15AssertionResultEPKcS9_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %56, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.180, ptr noundef nonnull align 1 dereferenceable(2) @.str.49, ptr noundef nonnull align 8 dereferenceable(12) %362)
          to label %363 unwind label %366

363:                                              ; preds = %361
  %364 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
  br i1 %364, label %382, label %368

365:                                              ; preds = %360, %345
  %.pn142.pn.pn = phi { ptr, i32 } [ %.pn142.pn, %360 ], [ %346, %345 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #8
  br label %402

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

368:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #8
  invoke void @_ZN7testing7MessageC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %369 unwind label %374

369:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #8
  %370 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
          to label %371 unwind label %376

371:                                              ; preds = %369
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %58, i32 noundef 1, ptr noundef nonnull @.str.7, i32 noundef 465, ptr noundef %370)
          to label %372 unwind label %376

372:                                              ; preds = %371
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %373 unwind label %378

373:                                              ; preds = %372
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #8
  br label %382

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

376:                                              ; preds = %371, %369
  %377 = landingpad { ptr, i32 }
          cleanup
  br label %380

378:                                              ; preds = %372
  %379 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  br label %380

380:                                              ; preds = %378, %376
  %.pn146 = phi { ptr, i32 } [ %379, %378 ], [ %377, %376 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #8
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  br label %381

381:                                              ; preds = %380, %374
  %.pn146.pn = phi { ptr, i32 } [ %.pn146, %380 ], [ %375, %374 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #8
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #8
  br label %401

382:                                              ; preds = %363, %373
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #8
  invoke void @_ZN7cascadb4Node7dec_refEv(ptr noundef nonnull align 8 dereferenceable(200) %153)
          to label %383 unwind label %178

383:                                              ; preds = %382
  call void @_ZN7cascadb4TreeD1Ev(ptr noundef nonnull align 8 dereferenceable(184) %125) #8
  call void @_ZdlPvm(ptr noundef nonnull %125, i64 noundef 184) #10
  call void @_ZN7cascadb5CacheD1Ev(ptr noundef nonnull align 8 dereferenceable(432) %101) #8
  call void @_ZdlPvm(ptr noundef nonnull %101, i64 noundef 432) #10
  call void @_ZN7cascadb6LayoutD1Ev(ptr noundef nonnull align 8 dereferenceable(600) %70) #8
  call void @_ZdlPvm(ptr noundef nonnull %70, i64 noundef 600) #10
  %384 = icmp eq ptr %68, null
  br i1 %384, label %389, label %385

385:                                              ; preds = %383
  %386 = load ptr, ptr %68, align 8, !tbaa !15
  %387 = getelementptr inbounds i8, ptr %386, i64 8
  %388 = load ptr, ptr %387, align 8
  call void %388(ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  br label %389

389:                                              ; preds = %383, %385
  %390 = load ptr, ptr %62, align 8, !tbaa !15
  %391 = getelementptr inbounds i8, ptr %390, i64 8
  %392 = load ptr, ptr %391, align 8
  call void %392(ptr noundef nonnull align 8 dereferenceable(8) %62) #8
  %393 = load ptr, ptr %60, align 8, !tbaa !5
  %394 = icmp eq ptr %393, null
  br i1 %394, label %399, label %395

395:                                              ; preds = %389
  %396 = load ptr, ptr %393, align 8, !tbaa !15
  %397 = getelementptr inbounds i8, ptr %396, i64 16
  %398 = load ptr, ptr %397, align 8
  call void %398(ptr noundef nonnull align 8 dereferenceable(8) %393) #8
  br label %399

399:                                              ; preds = %395, %389
  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 %400

400:                                              ; preds = %140, %112, %88, %399
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %2) #8
  ret void

401:                                              ; preds = %381, %366
  %.pn146.pn.pn = phi { ptr, i32 } [ %.pn146.pn, %381 ], [ %367, %366 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #8
  br label %402

402:                                              ; preds = %401, %365, %344, %323, %301, %300, %272, %251, %229, %228, %200, %178, %176
  %.pn150 = phi { ptr, i32 } [ %179, %178 ], [ %.pn146.pn.pn, %401 ], [ %.pn142.pn.pn, %365 ], [ %.pn138.pn.pn, %344 ], [ %.pn134.pn.pn, %323 ], [ %302, %301 ], [ %.pn130.pn.pn, %300 ], [ %.pn126.pn.pn, %272 ], [ %.pn122.pn.pn, %251 ], [ %230, %229 ], [ %.pn118.pn.pn, %228 ], [ %.pn114.pn.pn, %200 ], [ %177, %176 ]
  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 %403

403:                                              ; preds = %80, %105, %123, %174, %402, %134, %151, %99, %81, %74
  %.pn150.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %75, %74 ], [ %.pn, %80 ], [ %.pn100.pn.pn, %99 ], [ %82, %81 ], [ %.pn104.pn.pn, %123 ], [ %106, %105 ], [ %.pn110.pn.pn, %151 ], [ %.pn108, %134 ], [ %.pn150, %402 ], [ %175, %174 ]
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn150.pn.pn.pn.pn.pn.pn
}

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

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 = !{!18, !10, i64 216}
!34 = !{!18, !7, i64 224}
!35 = !{!18, !10, i64 296}
!36 = !{!18, !10, i64 304}
!37 = !{!7, !7, i64 0}
!38 = !{!11, !11, i64 0}
!39 = !{!10, !10, i64 0}


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